在我的论文中,我使用nomencl
包含不同组的包。由于一个组中的几个条目相当长,因此我想专门增加其中的\nomlabelwidth
。\nomgroup
全局增加\nomlabelwidth
会导致所有其他组中出现大量不必要的空白,而我想避免这种情况。
是否有可能\setlength{\nomlabelwidth}{<value>}
在一个群体内而不是在全球范围内进行?
这是 MWE
\documentclass{article}
\usepackage{amsmath}
\usepackage{nomencl}
\makenomenclature
\setlength{\nomlabelwidth}{3em}
\renewcommand{\nomgroup}[1]{%
\ifthenelse{\equal{#1}{D}}{\item[\textbf{General notation}]}{%
\ifthenelse{\equal{#1}{A}}{\item[\textbf{Acronyms}]}{}}
\vspace{1.5em}% add space between groups
}
\begin{document}
Test nomenclature.
\nomenclature[D]{$\{\boldmath{e}_z,\boldmath{e}_y,\boldmath{e}_z\}$ or $\{\boldmath{e}_1,\boldmath{e}_2,\boldmath{e}_3\}$}{a long entry}
\nomenclature[D]{$\{\boldmath{E}\}$}{a short entry}
\nomenclature[A]{ADA}{a dummy acronym }
\printnomenclature
\end{document}
答案1
要获得所需的输出,您可以在\nomgroup
命令中启动一个新列表,并在其中设置相关尺寸,其中\labelwidth
控制标签宽度。其他相关尺寸是\leftmargin
和\itemsep
。左边距是新标签宽度减去旧标签宽度。此代码主要取自包的源代码,特别是定义环境nomencl
的部分(在 中的第 250 行左右)。nomenclature
nomencl.sty
此外,您还应该使用负数反转新列表生成的额外空间\vspace
。总而言之,这有点混乱,但似乎有效:)
梅威瑟:
\documentclass{article}
\usepackage{amsmath}
\usepackage{nomencl}
\makenomenclature
\setlength{\nomlabelwidth}{3em}
\renewcommand{\nomgroup}[1]{%
\ifthenelse{\equal{#1}{D}}{%
\endlist%
\list{}{%
\labelwidth15em
\leftmargin12em
\itemsep\nomitemsep
\let\makelabel\nomlabel}%
\vspace{-1.5em}%
\item[\textbf{General notation}]}{%
\ifthenelse{\equal{#1}{A}}{\item[\textbf{Acronyms}]}{}}
\vspace{1.5em}% add space between groups
}
\begin{document}
Test nomenclature.
\nomenclature[D]{$\{\mathbf{e}_z,\mathbf{e}_y,\mathbf{e}_z\}$ or $\{\mathbf{e}_1,\mathbf{e}_2,\mathbf{e}_3\}$}{a long entry}
\nomenclature[D]{$\{\mathbf{E}\}$}{a short entry}
\nomenclature[A]{ADA}{a dummy acronym }
\printnomenclature
\end{document}
结果: