Scrivener Table of Contents the Easy Way!

The first thing that most of us do when we're deciding whether or not we want to buy a book is skim the table of contents. So the folks at Literature and Latte have made Scrivener table of contents creation a breeze.
After all, a good table of contents is like a roadmap for readers. With it, they'll know exactly what they're getting and when.
With a bad TOC or none at all, your readers will be finished before they ever start reading.
What you'll learn.
- What a table of contents is
- The four main types of TOCs that Scrivener deals with
- How to create a Scrivener table of contents
- How to format a Scrivener TOC
What is a Scrivener table of contents?
A Scrivener table of contents is a bit like an index at the back of a book, where readers can look up terms and cross reference them to page numbers. But a TOC is at the beginning of your book and it helps readers find and navigate to major sections and chapters.
Table of contents are usually handled by a reader's reading device using links. These links let the reader go directly to a particular spot in the book. In that way, they're much like Internet hyperlinks.
What you name folders, subfolders and documents determines what labels are in a table of contents.
Four types of TOCs.
Scrivener allows you to take advantage of three to four, depending on how you look at it, types of tables of contents.
- An automatically generated NCX flat list of sections and chapters
- An automatically generated HTML table of contents
- A manually created Scrivener table of contents for print.
- A manually created Scrivener table of contents for ebook (Kindle).
What the heck is an NCX table of contents?
NCX stands for Navigation Control file for XML.
An NCX "table of contents" helps readers find their way around your book. But unlike print books, NCX TOCs, as well as other types of eBook TOCs, don't list page numbers.
The number of pages in your eBook changes from one type of device to another. Change the text size and the length changes. Tilt your kindle, iPad or mobile device vertical or horizontal and the "length" of your book changes again.
So, a table of contents that uses page numbers won't work.
How NCX generates TOC headings.
A Scrivener NCX table of contents is supposed to generate navigation links to three major parts of your book:
- Heading 1 - Section folder name title
- Heading 2 - Chapter folder name title
- Heading 3 - Sub chapter folder name title
To give the NCX automatically generated table of contents its best shot at turning out correctly, nest your book’s folders like this:
- Section
Chapter
Subchapter
I say “supposed to” and “best chance” because there are forums filled with authors tweaking their table of contents in Word or Sigil or some other eBook compiler, trying to force the NCX TOC to come out just right.
In Scrivener, and other than titles, you have little control over how a NCX TOC renders. But there’s a better way.
First, let's take a look at your book.
Your book's major parts.
Most books are organized into three primary sections:
- Front matter - Title, Copyright, Dedication, Table of Contents...
- Body - Sections, Chapters, and Sub chapters. Or in Fiction, chapters.
- BackMatter - About the author page, how to get the next book, footnotes...
A good book allows a reader to easily navigate to these sections and all the major subsections beneath them. To do that you need to provide readers with a well-formatted and organized table of contents.
Which leads us to the next type of TOC on our list.
Scrivener’s HTML table of contents.
Define section breaks for your table of contents.
Scrivener will automatically generate a table of contents by looking for section breaks in your book.
You can define where those breaks are in the COMPILE > SEPARATORS section by telling Scrivener when to set a break between files and folders. You can also define breaks in the COMPILE > CONTENTS section by clicking the “Page Break Before” checkbox for any document or folder in your book.
Define table of contents type settings.
Then, in the COMPILE > LAYOUT section, you can define the settings for the automatically generated table of contents. This is where you tell Scrivener whether it should include an NCX flat TOC, whether or not to automatically generate an HTML TOC, and if you want the contents centered.

These settings control the automatically generated HTML Scrivener table of contents.
Manually create a TOC.
If you want a little more control over your TOC, you can designate a specific page in the Scrivener Binder as your book's TOC. You simply need to put that manually created page's name in the “HTML table of contents title:” section within the COMPILE > LAYOUT setting.
So, let’s create that custom HTML TOC.
Easy Scrivener table of contents with page numbers.
As I mentioned before, page numbering is really only relevant and useful for print books. However, readers still read them, so you'll still want to know how to create a TOC for a print book.
Quick and dirty print TOC creation.
- In the Binder, click and select all the documents you want to include in the TOC. You can do that with (ctrl or cmd) + click to select out of order items, or shift + click to select ranges of documents and folders that are right next to each other in your Binder.
- Then use the menu item EDIT > COPY SPECIAL > COPY DOCUMENTS AS TOC.
- Create a new, blank page that you want to use as a Scrivener table of contents and paste the copied items.

SCRIVENER TIPS: In the Binder, if you want to quickly see all of your folders and documents, you just need to select any document in the Binder and click (cntrl or cmd) + 9.
This will expand your entire directory tree of folders and documents, making it easier for you to pick and choose which folders/documents you want to include in your TOC.
Print TOC continued...
The selected Binder items are pasted into your empty document with placeholder tags. These tags will automatically insert the page number any time the project is compiled using the Print, PDF, or RTF output type.
You may have to do some margin formatting to get the TOC to look the way you want it to.
Then point to that new TOC in the COMPILE > LAYOUT section by by putting its title in the “HTML table of contents title." Scrivener will compile that document to be your TOC instead of automatically creating one for you.
Formatting a print table of contents
When you paste the TOC into a blank document, it creates the following: title of the document copied, a series of “dots” and then the wildcard page numbering that looks like this tag: <$p>.
Wherever that tag appears, a page number will be inserted in the compiled document. You can also insert the tag <$r> which will insert roman numerals.
I’ll show you why you might want to include roman numerals in a minute.

SCRIVENER TIPS: WARNING: the page placeholder tags are not dynamic. If you change the locations or names of documents, chapters or sections after you create your TOC, the numbers and names won’t automatically update.
You'll have to recreate the TOC to get the page numbers and titles corrected.
Roman numerals in your TOC
Generally, the front matter of your book isn’t counted in the page numbering for the actual body of the book. But if you still want to include the front matter in your TOC, here’s how to do it.
In the document you designated as your TOC, change all of the front matter <$p> tags to <$r> tags. This effectively creates two sections in your book: front matter labeled with roman numerals and the body of your book labeled with page numbers.
Scrivener TOC for ebook or Kindle.
Now, as I mentioned before, ibooks, Kindle books, and other types of eBooks are virtual. So, the “length” changes as you change settings. This makes page numbering irrelevant.
To deal with that we need to create a Scrivener table of contents document that has no page numbering.
This type of TOC is basically a list of HTML hyperlinks that connect to pages you designate by the same three steps above. Except instead of EDIT > COPY SPECIAL > COPY DOCUMENTS AS TOC, this time you select "COPY DOCUMENTS AS SCRIVENER LINKS."
So your TOC list will effectively be a listing of internal hyperlinks that point to other folders and documents inside your Scrivener project file.
Once you paste these links into a blank document, we need to do some formatting.
Formatting an eBook table of contents
Many authors center the generated HTML table of contents that they generate for ebook readers.
You can do that manually in the actual document that contains your TOC by formatting the text to be centered. Then under COMPILE > CONTENTS check the box to print it “as-is.
Or you could go to COMPILE > LAYOUT and check the “Center body text of HTML table of contents” checkbox.
Professional and Free Table of Contents
One of the major benefits to Scrivener is the easy ability to upload professionally made scrivener templates to yours. Basically, you can copy setups that others have created and access them upon opening Scrivener.
So, why's this pertain to an article about creating table of contents in scrivener?
Because many of these templates include incredibly well designed table of contents that are perfect for your type of writing. In many cases, most have been stylized to fit your need and can really save you time instead of following the above steps.
The best part is that we have a bunch of free templates that you can use. Just check out our list here, download them and upload them using our steps in that article, and you can quickly see some amazing TOC's that will save you time.
When you should remove a Scrivener table of contents.
After going to such lengths to figure out how to add and customize a table of contents in your book, why would you ever want to remove it?
Fiction novels generally don’t have a table of contents.
Most novels contain a couple of sections and numerous chapter headings that are usually numbered. Since the reader isn’t given any information as to what’s in a chapter by a label like “Chapter 27” there’s really no need to create a laundry list of headings for them to use as navigation.
You could still include the NCX TOC and just remove the HTML TOC by unchecking the “Generate HTML table of contents” checkbox in the COMPILE > LAYOUT section.

MORE SCRIVENER TIPS:
- If you compile your doc to a Microsoft Word .doc file, when you first open it, you'll have to generate the table of contents numbers by running a test print preview. Otherwise, they’ll only show up as “??” question marks.
- You can move Scrivener's automatically generated TOC to a custom location in your manuscript by creating a blank page, titling it, and putting the tag <$toc> in the otherwise blank document. Then just drag the document to wherever you want it to be in the Binder.
- If you create your own custom TOC, you can override Scrivener’s automatically generated TOC by pointing the “HTML table of contents title:” to the title name of the document that you created as a custom TOC.
Now you're armed with enough information to create Scrivener table of contents documents.
For an in-depth look at the Scrivener table of contents options and settings, try Scrivener for Dummies.
Get smart with author Gwen Hernandez's Scrivener for Dummies.
How do you create TOCs for your books?
Now it's your turn.
I know Scrivener isn't the only way that authors create TOCs. It's just the easiest way . . . IMO.
In the comments below, tell us how you've been creating TOCs for your books.