I have a book to convert to EPUB 3.0 and want to give the reader two ways to navigate through the book (two different table of contents). Is there any way to do that?
First, we need to define our terms more precisely.
EPUB 2 uses the toc.ncx file to produce a machine-processed table of contents. It is not human readable but automatically appears in most ebook reading platforms.
EPUB 3 allows the use of toc.ncx (for back compatibility reasons) but also allows a (human readable) "navigation document", which is an HTML5 file including this tag:
<nav epub:type="toc" id="toc">
(See this example: http://wiki.mobileread.com/wiki/EPub_3#Navigation )
According to the latest Kindle Formatting guide and iBooksAssetGuide, Apple and Kindle both support the NAV tag in an HTML navigation document rather than using a toc.ncx
Finally, you can create a TOC MANUALLY using simple human-readable HTML. (In the Kindle Formatting Guide, this is referred to as a "logical TOC"). This does not replace the HTML5 navigation document or the (EPUB 2 friendly) tox.ncx file. In fact, Kindle requires a logical TOC in addition to a navigation document. You can create as many logical TOCs as you want, but Kindle strongly requires one or more.
Using EPUB3 navigation documents (instead of toc.ncx), Kindle only supports three different guide items: cover, TOC and start reading location. iBooks is practically the same. If you do the NAV tag (i.e., the epub3 way), you do it by adding something called a LANDMARK http://www.idpf.org/epub/301/spec/epub-contentdocs.html#sec-xhtml-nav-def-types-landmarks but right now the only one it recognizes is a landmark to denote where the ebook begins. So that does not help you now. LANDMARKS are very dependent on the reading system.
However, there is another option. You could create an alternate "logical TOC" and keep this file "hidden" from the navigation document. There are two ways you can do this:
If you are using toc.ncx (the epub2 way), you would add the attribute linear="no".
<spine toc="ncx"> <itemref idref="cover" linear="no"/> <itemref idref="htmltoc" linear="yes"/> <itemref idref="alternate-toc" linear="no"/> ...
alternate-toc would not appear in the reading system's table of contents. BTW, you see that for the first itemred, linear is also NO because Amazon doesn't want it to be in the table of contents.
- If you are using an HTML5 navigation document, you can do this with the "hidden" attribute
To summarize: you can include as many "manual TOCs" as you want (and use some methods to hide them from the ebook system's builtin TOC navigation system).
Finally I would recommend Matt Garish's book EPUB 3 Best Practices. It came out in 2013, but is still very current. It has a great section on epub3 navigation. (I just re-read it). Also, it explained how to make LIST OF ILLUSTRATIONS and LIST OF TABLES which is sort of what you are looking for.