我想要一份论文中的缩写列表。我的论文由多个部分组成,这些部分使用“include”命令包含在最终文档中。论文的不同部分有时会引入相同的缩写。但是,我不想在整个论文的层面上保留缩写,而是在所包含部分的层面上保留缩写。
有两个包常用于缩写:nomencl 和 glossaries。两者都存在问题。
Nomencl:我不能有重复的缩写,因此我必须将它们保持在论文级别,这很复杂且令人分心。我希望不同的部分尽可能独立。
词汇表:词汇表与 natbib 配合使用效果不佳,例如 \gls{SOM}\citep{Kohonen2001} 导致 (SOM) (Kohonen, 2001),这被认为是不好的风格。如果它能产生 (SOM; Kohonen, 2001),那就更好了。因此,我的想法是以类似于 nomencl 的方式使用词汇表包。仅为缩写列表定义首字母缩略词,但不在文本中使用 \gls、glspl 等。但是,要打印列表中的首字母缩略词,必须使用 /glsaddall 明确添加它们,但此命令不适用于包含的文档中定义的首字母缩略词。我认为这是一个错误。
因此,我认为最好的办法是坚持使用 nomencl,并以某种方式强制它忽略所包含文档中首字母缩略词的重新定义。这可能吗?
或者,对于我的用例(需要缩写列表,多个包含的文档),您会建议什么方法?
答案1
目前还不清楚您是否希望每次使用首字母缩略词时都引用该引文,还是只希望引用特定实例。如果您尝试重新定义现有首字母缩略词,也不清楚您希望发生什么。假设引用的特定实例和尝试定义现有首字母缩略词时的重置,您可以按如下方式实现此目的。首先是主 tex 文件:
\documentclass{book}
\usepackage{natbib}
\usepackage{etoolbox}
\usepackage[acronym,smallcaps]{glossaries}
\makeglossaries
\newcommand*{\provideacronym}[4][]{%
\ifglsentryexists{#2}%
{%
\glsreset{#2}%
}%
{%
\newacronym[#1]{#2}{#3}{#4}%
}%
}
\newcommand*{\provideglossaryentry}[2]{%
\ifglsentryexists{#1}%
{}%
{%
\newglossaryentry{#1}{#2}%
}%
}
\renewcommand*{\acronymfont}[1]{#1}
\defglsdisplayfirst[acronym]{%
#1 \ifstrempty{#4}{(#3)}{\citep[#3;][]{#4}}%
}
\defglsdisplay[acronym]{%
#1\ifstrempty{#4}{}{ \citep{#4}}%
}
\title{Sample Thesis}
\author{A.N. Other}
\begin{document}
\maketitle
\include{sample1}
\include{sample2}
\printglossaries
\bibliographystyle{plainnat}
\bibliography{xampl}
\end{document}
现在是第一章(sample1.tex
):
\chapter{First Sample Chapter}
\provideacronym{abc}{ABC}{Sample Acronym 1}%
\provideacronym{xyz}{XYZ}{Sample Acronym 2}%
\provideglossaryentry{sample}{name=sample,description=An example}%
An acronym: \gls{abc}. A \gls{sample}.
Sample acronym with a citation
\gls{xyz}[article-minimal].
Another instance with a citation
\gls{xyz}[article-minimal].
第二章(sample2.tex
):
\chapter{Second Sample Chapter}
\provideacronym{abc}{ABC}{Sample Acronym 1}%
\provideglossaryentry{sample2}{name=another sample,description=Another example}%
An acronym: \gls{abc}. \Gls{sample2}.
Sample acronym with a citation
\gls{abc}[article-minimal].
Another instance with a citation
\gls{abc}[article-minimal].