有很多类似的帖子,但我还没有找到一个能正确解决我的问题的帖子。总结一下:如何nomenclature
只生成变量列表而不生成新章节?
长版本:
我想使用该nomencl
包在我的论文的第一章附录中创建一个变量的排序列表。我正在 Overleaf 中编写。
附录包本身就很好用。在我的主 .tex 文件中,我有
\include{introduction}
...
\include{conclusion}
\appendix
\include{appa}
\include{appb}
\include{biblio}
\end{document}
我的附录文件appa
和appb
都以章节标题开头。例如,appb
以该章节标题开头,\chapter{Figures}
在页面上显示为
并在目录中
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 代码的修改将命名法从“章”更改为“节”