如何在附加目录中包含未编号的部分?

如何在附加目录中包含未编号的部分?

这是一个后续问题:两种不同语言的目录页

现在,我已经有了可用的第二语言目录,并尝试将文章的部分内容(例如图表、表格和术语)包括在内。这是实现第二 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}}
  {}{}

相关内容