这是我的第一篇文章,所以如果我违反了任何惯例,请原谅!我决定用 LaTeX 写我的博士论文,但在按我想要的方式格式化首字母缩略词/词汇表时遇到了一些麻烦。我正在使用该glossaries
软件包,并希望将其用于两个不同的用例,其中一个(标准用途)我使用得很好。
问题在于尝试使用词汇表来处理制造商/公司,例如在引用化学品时。通常,当您首次列出化学品时,应按照“化学品 X(公司 Y,美国某镇)”的方式引用。如果您使用一家公司的多种产品,则后续引用该公司时只需提及公司名称,而无需提及位置。这些公司引用不应出现在首字母缩略词列表中。
借助此网站以前的回答,我通过定义一个不打印的新“假”词汇表,成功地从首字母缩略词列表中隐藏了公司名称。我尝试使用,\newignoredglossary
但这似乎也隐藏了文本中的首字母缩略词,不知道为什么,但我对假词汇表解决方案很满意。
但是,第一次使用这些公司缩写\gls{}
会产生例如“Company, Sometown, USA (Company)”。我希望显示此内容时不会在末尾的括号中重复显示公司名称。
我意识到我可以使用:
\glsdesc{company}
其次是
\glsunset{company} \gls{company}
以达到我想要的效果 - 但这需要手动查找并标记每个公司名称的第一次使用\glsdesc{}
-\glsunset{}
并且考虑到在撰写论文的过程中段落的顺序可能会发生变化,我更希望它能够自动处理。
这是一个最小的工作示例:
\documentclass{article}
\usepackage[acronym]{glossaries}
\newglossary[flg]{fake}{fls}{flo}{Fake Entries}
\newacronym[type=fake]{bio}{Biohazard Inc}{Biohazard Inc, MA, USA}
\newacronym{pbs}{PBS}{Phosphate Buffered Saline}
\makeglossaries
\begin{document}
First use - \gls{bio}. Second use - \gls{bio}. Not displayed in glossary, but first use repeats company name in parentheses.
\gls{pbs} should appear in the glossary. Second use \gls{pbs}.
\printglossary[type=\acronymtype]
\end{document}
有没有一种简单的方法可以实现这一点glossaries
?我想知道是否glossaries-extra
可以更好地处理这个问题,但文档对我来说并不是 100% 清楚,而且我担心尝试转换可能会破坏目前已经很复杂的多文件文档中普遍有效的首字母缩略词列表,而且不一定能解决我的问题!
答案1
以下是另一种方法:
\documentclass{article}
\usepackage[acronym]{glossaries}
\newignoredglossary{ignored}
% syntax: \newcompany[extra options]{label}{name}{location}
\newcommand*{\newcompany}[4][]{%
\newglossaryentry{#2}{type=ignored,%
name={#3},%
first={#3 (#4)},%
description={#4},%
#1}%
}
\glssetnoexpandfield{first}
% syntax: \newchemical[extra options]{company}{label}{short}{long}
\newcommand{\newchemical}[5][]{%
\newglossaryentry{#3}{type=\acronymtype,%
name={#4},%
first={#5 (\ifglsused{#2}{\glsentryname{#2}}{\glsentryname{#2},
\glsentrydesc{#2}\protect\glsunset{#2}})},%
description={#5},%
#1}%
}
\makeglossaries
\newcompany{bio}{Biohazard Inc}{MA, USA}
\newchemical{bio}{pbs}{PBS}{Phosphate Buffered Saline}
\begin{document}
First use - \gls{bio}. Second use - \gls{bio}.
\gls{pbs} should appear in the glossary. Second use \gls{pbs}.
Reset\glsresetall[ignored,\acronymtype] and try the other way.
\gls{pbs} should appear in the glossary. Second use \gls{pbs}.
First use - \gls{bio}. Second use - \gls{bio}.
\printglossary[type=\acronymtype]
\end{document}
得出的结果为:
答案2
使用first=
定义每个公司缩写时的选项会产生我想要的结果:
\newacronym[type=fake, first=\glsdesc{bio}]{bio}{Biohazard Inc}{Biohazard Inc, MA, USA}
词汇表包非常棒,但功能过于丰富,对于我这样的初学者来说可能很难理解所有的选项。