我写论文、报告等,经常使用同一套首字母缩略词,所以我认为将所有首字母缩略词定义保存在一个文件中会很有用。对我来说,这似乎是明智的方法。
问题是,有时我确实想要一个首字母缩略词列表,有时我不需要,不幸的是,LaTeX 似乎没有提供一种优雅的方式来做到这一点。如果你使用\acro
latex定义一个首字母缩略词将要把它放在首字母缩略词列表中,如果你用 with 定义它,\acrodef
那么它就不会。
这似乎阻止了我将所有首字母缩略词保留在单个源文件,也无法在我想要首字母缩略词列表的文档和不需要首字母缩略词列表的文档中使用它。
有谁知道这个问题的一个优雅的解决方案?
答案1
我相信acronym
您正在寻找的包选项是nolist
,例如,
\usepackage[nolist,nohyperlinks]{acronym}
CTAN 文档中没有明确列出软件包选项,但可以从实现部分中辨别出来。它们是:
footnote
- 选项脚注使全名显示为脚注。
nohyperlinks
- 如果
hyperref
加载,所有缩写词都将链接到其词汇表条目。通过该选项nohyperlinks
可以抑制这些链接。
- 如果
printonlyused
- 仅列出使用过的缩写
withpage
- 在
printonlyused
模式下显示每个缩写词首次使用的页码。
- 在
smaller
- 使首字母缩略词显得更小。
dua
- 该选项
dua
代表“不使用首字母缩略词”。它导致对\ac
和的重新定义\acp
,使全名始终出现,并隐藏所有首字母缩略词,但\acf
或明确要求除外\acfp
。
- 该选项
nolist
- 该选项
nolist
代表“不要写首字母缩略词列表”。
- 该选项
答案2
根据上面的评论,我写了一个小答案,解释了glossaries
缩写包的用途。
filecontents
首先是使用-environment 为 acronmys 创建外部文件的最小示例:
\RequirePackage{filecontents}
\begin{filecontents}{\jobname-acro.tex}
\newacronym{MS}{MS}{Microsoft}
\newacronym{CD}{CD}{Compact Disc}
\newacronym{Mac}{Mac}{Short form of Apple Mac}
\end{filecontents}
\documentclass[a4paper]{scrartcl}
\usepackage[utf8]{inputenc} %Dateikodierung
\usepackage[acronym,toc]{glossaries}
\loadglsentries[\acronymtype]{\jobname-acro}
\makeglossaries
\begin{document}
\tableofcontents{}
\printglossary[type=\acronymtype,style=long]
\section{Some examples}
Some Text \gls{MS} and \gls{Mac}
\end{document}
外部文件通过 加载\loadglsentries
。
要创建首字母缩略词列表,您可以使用脚本makeglossaries
(需要 perl)
makeglossaries filename
(无扩展)或者使用 makeindex:
makeindex -s filename.ist -t filename.alg -o filename.acr filename.acn
示例表明该条目CD
不是首字母缩略词列表的一部分。
整个编译如下所示:
(pdf)latex
makeglossaries
(pdf)latex
(pdf)latex
答案3
实际上,我发现在 latex .tex 中创建首字母缩略词这种方法更容易,因此我想在这里分享:
\usepackage{acronym}
\acrodef{EX}[EX]{\emph{Example}}
然后你可以像这样调用文本:
\ac{EX}
希望对您有帮助。玩得开心!
答案4
您可以使用包glossaries
。您可以将包含首字母缩略词定义的文件放在您的某个位置local texmf tree
。这将使您能够从不同的目录中使用它。(要查找本地 texmf 的放置位置,请参阅Windows 安装中的“texmf”在哪里?)此文件的内容(我使用了~/texmf/tex/generic/acronyms.tex
我电脑上的位置)
\newacronym{hello}{hw}{hello world}
\newacronym{svm}{svm}{support vector machines}
\newacronym{nu}{nu}{not used}
和示例文档:
\documentclass{article}
\usepackage[acronym,smallcaps]{glossaries}
\loadglsentries{acronyms}
\makeglossaries
\begin{document}
\Gls{hello}, just use some \gls{svm}. Or are \gls{svm} only for watching?
\printglossary[type=\acronymtype]
\end{document}
使用命令 生成词汇表列表makeglossaries documentname
。有关可用选项的更多信息,请参阅词汇表手册 ( texdoc glossaries-user.pdf
),第 13 节。