这是一个后续问题:两种不同语言的目录页
现在,我已经有了可用的第二语言目录,并尝试将文章的部分内容(例如图表、表格和术语)包括在内。这是实现第二 ToC 的代码。
\usepackage{etoolbox,pdftexcmds}
\let\englishtableofcontents\tableofcontents
\patchcmd\englishtableofcontents{{toc}}{{tec}}{}{}
\preto\englishtableofcontents{\begin{otherlanguage}{english}}
\appto\englishtableofcontents{\end{otherlanguage}}
\let\englishlistoffigures\listoffigures
\patchcmd\englishlistoffigures{{lof}}{{lef}}{}{}
\preto\englishlistoffigures{\begin{otherlanguage}{english}}
\appto\englishlistoffigures{\end{otherlanguage}}
\let\englishlistoftables\listoftables
\patchcmd\englishlistoftables{{lot}}{{let}}{}{}
\preto\englishlistoftables{\begin{otherlanguage}{english}}
\appto\englishlistoftables{\end{otherlanguage}}
\newcommand{\addetoc}[2]{%
\addcontentsline{tec}{#1}{\protect\numberline{\csname the#1\endcsname}#2}%
}
\makeatletter
\newcommand{\englishcaption}[1]{%
\ifnum\pdf@strcmp{\@captype}{figure}=\z@
\addcontentsline{lef}{figure}{\protect\numberline{\thefigure}#1}%
\else
\addcontentsline{let}{table}{\protect\numberline{\thetable}#1}%
\fi
}
\makeatother
为了添加章节,我在打印术语后简单地添加了以下一行:
\printnomenclature
\addetoc{section}{Nomenclature}
但是,由于它出现在目录本身之前,因此将其作为一个编号为“0”的节包含在内。例如,我怎样才能在此函数中执行 \section* 的等效操作,以便在第二种语言的目录中没有出现节编号。
先感谢您。
答案1
按照命令采取行动可能会更好\thenomenclature
;如果命名法超过一页长,则添加\addetoc
后面的内容将产生错误的结果。\printnomenclature
\makeatletter
\def\thenomenclature{%
\@ifundefined{chapter}%
{
\section*{\nomname}
\if@intoc
\addcontentsline{toc}{section}{\nomname}%
\addcontentsline{tec}{section}{Nomenclature}%
\fi
}%
{
\chapter*{\nomname}
\if@intoc
\addcontentsline{toc}{chapter}{\nomname}%
\addcontentsline{tec}{chapter}{Nomenclature}%
\fi
}%
\nompreamble
\list{}{%
\labelwidth\nom@tempdim
\leftmargin\labelwidth
\advance\leftmargin\labelsep
\itemsep\nomitemsep
\let\makelabel\nomlabel}}
\makeatother
有了etoolbox
它就简单多了:
\usepackage{nomencl}
\usepackage{etoolbox}
\patchcmd{\thenomenclature}
{\addcontentsline{toc}{section}{\nomname}}
{\addcontentsline{toc}{section}{\nomname}\addcontentsline{tec}{section}{Nomenclature}}
{}{}
\patchcmd{\thenomenclature}
{\addcontentsline{toc}{chapter}{\nomname}}
{\addcontentsline{toc}{chapter}{\nomname}\addcontentsline{tec}{chapter}{Nomenclature}}
{}{}