TeX4ebook:奇怪的目录编号

TeX4ebook:奇怪的目录编号

微软

\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>

相关内容