如何从 amsart 的目录中排除命名法?

如何从 amsart 的目录中排除命名法?

我想从 amsart 的目录中排除命名法。

\documentclass[15pt]{amsart}

\usepackage{nomencl}

\renewcommand{\nomname}{List of Notations}

\makenomenclature  

\makeindex

\setcounter{tocdepth}{1}

\begin{document}

\tableofcontents

\nomenclature[000]{$Hi$}{World}

\makenomenclature  

\printnomenclature[1in]

\section{world}

\end{document}

答案1

amsart课程努力包括每一个目录中的节单元,即使是未编号的。

通过一些技巧就有可能实现你想要的结果。

% arara: pdflatex
% arara: nomencl
% arara: pdflatex

\documentclass{amsart}
\usepackage{nomencl}

\usepackage{etoolbox}
\makeatletter
% copy the formatting of section titles
\let\nomencl@section\section
% if the level is greater than 1000, then amsart
% doesn't include the section's title in the toc
\patchcmd{\nomencl@section}{{1}}{{1001}}{}{}
% patch \thenomenclature to call \nomencl@section
% instead of \section*
\patchcmd{\thenomenclature}
  {\section*}
  {\nomencl@section}
  {}{}
\makeatother

\renewcommand{\nomname}{List of Notations}
\makenomenclature

\setcounter{tocdepth}{1}

\nomenclature[000]{$Hi$}{World}

\begin{document}
\tableofcontents

\printnomenclature[1in]

\section{world}
\end{document}

这些arara指令使得编译文档变得简单(但如果您不使用 arara 也不会造成任何损害)。

enter image description here

请注意,您的第二\makenomenclature条指令\makeindex什么也不做,所以我将其删除了。

答案2

有时,需要(或希望)更改或省略目录中的标题。由于 ams 文档类默认甚至包含目录中带星号的章节(和部分等),因此必须明确进行此类更改。

ams 作者常见问题解答中有一条条目是“如何省略或更改目录中的标题?“。它告诉如何创建一个命令\SkipTocEntry(定义取决于是否hyperref涉及;给出了两个版本)并使用它来修改目录。这是删除条目的代码。

在序言中,

\DeclareRobustCommand{\SkipTocEntry}[5]{}

(如hyperref不涉及,则改为[5][4]

在将条目写入.toc文件的命令之前,插入以下行

\addtocontents{toc}{\SkipTocEntry}

在本例中,在之前插入这一行\printnomenclature[1in]应该可以完成这项工作,但由于 latex 有时会延迟某些命令,直到真正需要它们之后,所以需要通过实验来检查。(例如,如果将SkipTocEntry放在某一\include行之前,它将不会被处理,直到\included 文件完成后才会被处理,这就太晚了;在这种情况下,必须\SkipTocEntry将 放在\included 文件中。)

请参阅完整的作者常见问题解答条目以了解更多详细信息。

相关内容