命名包和附录

命名包和附录

有很多类似的帖子,但我还没有找到一个能正确解决我的问题的帖子。总结一下:如何nomenclature只生成变量列表而不生成新章节?

长版本:

我想使用该nomencl包在我的论文的第一章附录中创建一个变量的排序列表。我正在 Overleaf 中编写。

附录包本身就很好用。在我的主 .tex 文件中,我有

\include{introduction}
...
\include{conclusion}
\appendix
\include{appa}
\include{appb}
\include{biblio}
\end{document}

我的附录文件appaappb都以章节标题开头。例如,appb以该章节标题开头,\chapter{Figures}在页面上显示为

页面上的附录 B

并在目录中

目录中的附录 A

nomenclature 包本身就很好用。我定义了所有变量,在放置 的位置出现了一个包含列表的新章节\printnomenclature。但我只想要列表。它应该在页面上显示为

附录 A

命名法

(术语列表)

因为\printnomenclature开始新的篇章,如果我写

\chapter{Nomenclature}
\printnomenclature

appa最终得到了

命名错误

第 A 章:术语表在第 55 页,列表实际上在第 57 页。它仅出现在目录中,因为我将其包含在内[intoc]以方便说明。我希望所有内容都出现在第 55 页,页面本身像第一张图中的附录 B 一样出现。我该怎么做?

我尝试了其他帖子中的各种解决方案来删除第 57 页的章节标题,但我找不到阻止该章节自动生成的方法。结果,我在第 55 页的章节标题和第 57 页的列表之间跳过了页面。

答案1

警告:此答案可能不适用于您的实际需要。

如果如果你想完全忽略\chapter*附录中的所有命令,并自己进行分段,那么你可以声明

\makeatletter
\g@addto@macro\appendix{\renewcommand\@schapter[1]{}}
\makeatother

在您的文件序言中。

如果如果你想将这些\chapter*声明视为编号(字母)章节(附录),那么咒语是

\makeatletter
\g@addto@macro\appendix{\renewcommand\@schapter{\chapter}}
\makeatother

(“ ” 在上班*前被消耗掉。)\@schapter

请注意,这些对文档类如何定义做出了假设\chapter,因此不能在任何地方依赖它们。

答案2

利用(如果在类中nomencl可用\chapter*{})来创建符号列表,从而创建一个新页面。

首先,nomencl使用选项加载包notocbasic(否则intoc,目录中的条目将会重复),即

\usepackage[notocbasic]{nomencl}

我们nomencl.sty发现:

\makeatletter % added
\def\thenomenclature{%
  \providecommand*{\listofnlsname}{\nomname}%
  \if@nomencl@tocbasic
    \let\list@fname\listofnlsname
    \def\@currext{nls}%
    \tocbasic@listhead{\list@fname}%
   \else
    \@ifundefined{chapter}%
    {
      \section{\nomname}
      \if@intoc\addcontentsline{toc}{section}{\nomname}\fi%
    }%
    {
      \chapter{\nomname} %%% <----------- deleted * here
      \@mkboth{\nomname}{\nomname}%
      \if@intoc\addcontentsline{toc}{chapter}{\nomname}\fi%
    }%
  \fi
  \nompreamble
  \if@nomentbl
    \let\itemOrig=\item
    \def\item{\gdef\item{\\}}%
    \expandafter\longtable\expandafter{\@nomtableformat}
  \else
    \list{}{%
      \labelwidth\nom@tempdim
      \leftmargin\labelwidth
      \advance\leftmargin\labelsep
      \itemsep\nomitemsep
      \let\makelabel\nomlabel}%
  \fi
}

\makeatother % added

然后只需将上述代码放在序言中即可。在文档中,只需使用\appendix和 即可\printnomenclature

在此处输入图片描述

答案3

首先,将以下内容添加到你的序言中

\makenomenclature
\makeatletter
\def\thenomenclature{%
  \chapter{\nomname}
  \nompreamble
  \list{}{%
    \labelwidth\nom@tempdim
    \leftmargin\labelwidth
    \advance\leftmargin\labelsep
    \itemsep\nomitemsep
    \let\makelabel\nomlabel}
  }
\makeatother

第二步也是最后一步,在\appendix命令后添加printnomenclature

注意:这是对提供的 src 代码的修改将命名法从“章”更改为“节”

相关内容