这个问题是tex4ht:自定义列表...(第 2 部分,共 2 部分)
我使用来以每页一个子部分为基础htlatex
进行制作。我还使用上面链接的帖子中描述的技术来生成自定义列表。这两种方法似乎互相干扰,如以下最小工作示例所示。html
<things>
mwe.tex
\documentclass{article}
\usepackage{figuredescriptions}
\begin{document}
\section{First section}
\subsection{subsection}
\figuredescription{Figure description needed: 9}
\figuredescription{Figure description needed: 10}
\subsection{another subsection}
\section{Second section}
section text
\subsection{a subsection}
subsection text
\listofdesc
\end{document}
ht-mwe.cfg
\Preamble{xhtml,3}
\begin{document}
\EndPreamble
figuredescriptions.sty
\ProvidesPackage{figuredescriptions}
\newcommand\printdescentry[1]{#1}
\newcommand{\figuredescription}[1]{\addcontentsline{desc}{subsection}{#1}\printdescentry{#1}}
\newcommand{\listofdesc}{\section{List of figure descriptions}\@starttoc{desc}}
\endinput
该文件figuredescriptions.4ht
对于演示该问题来说并不是必需的。
运行命令后
htlatex mwe.tex "ht-mwe.cfg"
然后我收到以下输出:
请注意,第 2 节的“minitoc”不正确。
minitoc
我可以通过使用来解决这个问题\Preamble{xhtml,3,nominitoc}
,但也许在将来我实际上非常喜欢基于每个部分(正确的!)的 minitoc。
问题
我怎样才能修改上述代码,以便minitoc
每个部分的输出都是正确的html
?
答案1
这个问题似乎是由命令\addtocontentsline
中使用manual 引起的\figuredescription
。在这种情况下,一些计数器需要更新。我在tex4ht
资料中发现了以下说明:
Tex4ht 依靠两个计数器“\TitleCount”和“\TocCount”来决定全局目录中的哪些条目应该进入本地目录。遇到分段命令时,第一个计数器会增加。遍历全局目录时,第二个计数器会增加。
当分段命令对全局 TOC 的贡献与第一个计数器的增量不同步时,就会出现差异。通常情况下,在引入分段命令时,tex4h 并不知道它们被指定为分段命令。
据我了解,必须手动更新计数器\TitleCount
。例如,通过将以下代码附加到figuredescription.4ht
:
\pend:defI\figuredescription{\gHAdvance\TitleCount 1\relax}
该\pend:defI
命令将在命令开头插入带有一个参数的代码。我在源代码\gHAdvance\TitleCount 1
中的各个地方找到了该代码。tex4ht
TOC 现在似乎是正确的:
请注意,我已添加\TocAt{section,subsection}
到 .cfg 文件中,以请求章节文本之前的目录。