I am not talking about making a Table of Contents page inside the e-book.
I am talking about the Table of Contents shown on the left of a Kindle/Kobe/etc.
For example, I am uploading the new e-book to Kindle and ePub right now. The Table of Contents shows all the titles and subtitles. I would like to show titles only.
I don’t think you can control that, unless you edit the .mobi file in som other program afterwards. That ToC is essentially created by the reader software.
What you can experiment with is to change the organisation of your Binder structure, so that only top levels are folders and you have as few sub-levels as possible.
Everything that has a title in the ebook will end up in the automatic toc, irrespective if they are folders or files in the Binder.
In my latest ebook the Binder has three levels: parts (titles checked in Compile), chapters (titles checked in Compile) and chapter content (text checked in Compile). Parts and Chapters end up in the automatic toc in both the .mobi and .epub files.
There should be more control over this with Scrivener 3, which imports ePub 3. In ePub 2, the sidebar contents is a separate entity from the HTML table of contents that can optionally be included at the start of the book. The sidebar is generated from an NCX XML file, whereas the contents the user sees inside the book is HTML. It would have been added a layer of complexity to allow the user to determine the NCX (which wasn’t shown by many e-readers anyway), so Scrivener generates that automatically, while allowing the user to override the HTML contents.
The NCX file is deprecated in ePub 3. The sidebar contents are now taken directly from the HTML file which is built around a block. This means that when you override the HTML file in ePub 3 in Scrivener 3, then you also override the sidebar navigation. This also affects Kindle export since Kindle files are generated from the raw ePub files internally. (Scrivener 3 will still include an NCX file in its ePub 3 files for backwards-compatibility with older readers, but Kindle and ePub 3-supporting readers - which is most of them these days - will use the user-defined HTML table of contents everywhere.)
In the meantime, however, until Scrivener 3 is released, the only way is indeed to edit the file using a third-party tool such as Calibre.
In my testing in different previewers, e-readings apps, it seems that the presence of the NCX in my epub3 export, which is there for backwards compatibility, is always displayed in the app.
If this is the case, S3 should give us the option to shut it off if we don’t want it there, knowing that we will take the risk of our book not working on older devices.
Any app conforming to ePub 3 specs should use the navigable table of contents rather than the NCX file - this would be a bug in the reader app if not. The inclusion of the NCX for compatibility with older readers is something recommended in the ePub 3 specs:
But, as I say, ePub 3 readers should just use the ToC nav document (the table of contents file). In all of my tests, e-readers have displayed the table of contents as expected for ePub 3 files and have not unexpectedly used the NCX. Perhaps you could provide a sample epub file or Scrivener project that shows the issue along with information about in which readers you are seeing the problem?
I cannot figure out how it works in Scrivener 3. The documents I don’t want to include into ToC, are assigned to a section with “Hide entry in HTML table of contents” on. Indeed, if a “Generate HTML table of contents” option is on, then this extra-ToC is generated correctly, with only chapter titles.
However in the automatic ToC (I’m talking about epub now, and I’m using Apple Books to look at it) each and every document from the binder appears with the title (“scene”, “dedication” and so on).
I looked at it in Sigil, and these links are shown with “hidden” attribute, like that:
If Apple Books is ignoring the “hidden” attribute then no, there isn’t much you can do about it in Scrivener.
You could fix the problem by merging documents in Scrivener so that the Scrivener Binder matches what you want to see in the ebook ToC. But that’s obviously a fairly radical step.