微软
\documentclass{amsart}
\begin{document}
\title{Test}
\author{Anonymous}
\date{}
\maketitle
\setcounter{tocdepth}{1}
\tableofcontents
\section{Test A}
\section{Test B}
\subsection{Test Ba}
\subsection{Test Bb}
\section{Test C}
\subsection{Test Ca}
\end{document}
在epub
生成的文件中tex4ebook
,目录的编号(即作为书签的目录,而不是打印的目录)很奇怪,如下所示:
2 Contents
13 Test A
24 Test B
2.14 Test Ba
2.24 Test Bb
35 Test C
3.15 Test Ca
但是打印的目录是正常的。我想知道这是为什么,以及解决这个问题的解决方法。
答案1
编辑:我在tex4ebook
源代码中修复了这个问题,新版本已经在 CTAN 和 TeX Live 中。所以这个错误将来应该不会再发生。
原始答案:
尝试这个配置文件:
\Preamble{xhtml}
\ExplSyntaxOn
% get filename for the section label
% sometimes, TeX4ht returns list of file numbers for label. we must use just
% the first number. we use the LaTeX 3 sequence list to get it.
\def\ncx:newhfile#1{
\cs_if_exist:cTF{cw:)Q#1}{%
% cw:)Q#1 is csname of tag from the xref file. we convert it to sequence
\seq_set_from_clist:Nc\l_tmpa_seq{cw:)Q#1}
% get first item and put it to a token list
\seq_get_left:NN \l_tmpa_seq \l_tmpa_tl
% \RefFileNumber returns file name for the given file number
% \ncx:hfilename contains the filename for later use
\tl_set:Nx \ncx:hfilename {\RefFileNumber{\l_tmpa_tl}}
}{%
\tl_set:Nn \ncx:hfilename {nic}
}
}
\ExplSyntaxOff
\begin{document}
\EndPreamble
它修复了 中的一个错误tex4ebook.4ht
,该错误使用\cs_if_exist_use:cTF
命令。这个错误的命令将测试宏的结果打印到输出中。这会导致 NCX 文件中出现虚假数字。
如果没有修复,NCX 文件中的典型 TOC 条目如下所示:
<text><navmark type="section"> 3</navmark>5 Test C </text>
数字5
是虚假的,它不应该在那里。修复方法如下:
<text><navmark type="section"> 3</navmark> Test C </text>