我在文本中写了一些首字母缩略词,但我不想交叉引用它们。但只想将它们的列表打印在 pdf ( pdfLatex
) 输出中。
我尝试使用\acro
和[acronym]{glossaries}
包,但没有得到缩写列表。我只得到了文本“纽约和洛杉矶都在美国。”
请给点建议好吗?
这是一个可编译的示例:
\documentclass[
fontsize=11pt, % Schriftgröße
paper=a4
%......
]{scrbook}
\usepackage[acronym]{glossaries}
\begin{document}
\newacronym{ny}{NY}{New York}
\newacronym{la}{LA}{Los Angeles}
\newacronym{us}{US}{United States}
\section{A}
NY and LA are in US.
\printglossary[type=\acronymtype,title=Abbreviations]
\end{document}
答案1
该glossaries
包(及其扩展glossaries-extra
)提供了索引和引用术语或缩写的命令。这是通过首先定义条目然后使用标记命令(如\gls
在文档中)来完成的。
这是修改后的 MWE(感谢您提供!)
\documentclass[fontsize=11pt,paper=a4]{scrbook}
\usepackage[acronym,automake]{glossaries}
\makeglossaries
\newacronym{ny}{NY}{New York}
\newacronym{la}{LA}{Los Angeles}
\newacronym{us}{US}{United States}
\begin{document}
\section{A}
\gls{ny} and \gls{la} are in \gls{us}.
\printglossary[type=\acronymtype,title=Abbreviations]
\end{document}
为了显示词汇表(缩写列表),您需要以下构建顺序:
pdflatex
makeglossaries
makeindex
(自动运行或xindy
根据文档设置的Perl 脚本)pdflatex
第二步有时会引起混淆,所以有一个automake
包选项,它将使用 TeX 的 shell 转义来自动运行makeindex
或xindy
为您运行。
如果这些步骤成功,则会产生上述结果:
在第一页
在最后一页。
注意我已经将\newacronym
定义移至序言。如果您希望它们在文档中,请使用以下命令:
\documentclass[fontsize=11pt,paper=a4]{scrbook}
\usepackage[acronym,automake,docdef=restricted]{glossaries-extra}
\makeglossaries
% set the "short" style:
\setabbreviationstyle[acronym]{short}
\begin{document}
\newacronym{ny}{NY}{New York}
\newacronym{la}{LA}{Los Angeles}
\newacronym{us}{US}{United States}
\section{A}
\gls{ny} and \gls{la} are in \gls{us}.
\printglossary[type=\acronymtype,title=Abbreviations]
\end{document}
或者:
\documentclass[fontsize=11pt,paper=a4]{scrbook}
\usepackage[abbreviations,automake,docdef=restricted]{glossaries-extra}
\makeglossaries
% set the "short" style:
\setabbreviationstyle{short}
\begin{document}
\newabbreviation{ny}{NY}{New York}
\newabbreviation{la}{LA}{Los Angeles}
\newabbreviation{us}{US}{United States}
\section{A}
\gls{ny} and \gls{la} are in \gls{us}.
\printabbreviations
\end{document}
请注意,只有明确标记了命令的条目\gls
才会添加到列表中。
如果您收到错误消息:
LaTeX Error: Unknown option `automake' for package `glossaries'.
那么你的 版本glossaries
太旧了。如果你没有收到此消息,并且你正在使用automake
但缩写列表仍然缺失,请检查日志文件中是否有以 开头的行runsystem
。如果行末有 ,disabled
则 shell 转义已被禁用,在这种情况下,你需要找到一种运行makeindex
或 的方法makeglossaries
。相关资源:
如果你对 提供的索引和引用命令不感兴趣glossaries
(例如\gls
),那么你实际上并不需要glossaries
。例如:
\documentclass[fontsize=11pt,paper=a4]{scrbook}
\newenvironment{abbrevlist}
{%
\chapter*{List of Abbreviations}
\newcommand\entry[2]{\item[##1] ##2}%
\begin{description}%
}
{\end{description}}
\begin{document}
\section{A}
NY and LA are in US.
\begin{abbrevlist}
\entry{LA}{Los Angeles}
\entry{NY}{New York}
\entry{US}{United States}
\end{abbrevlist}
\end{document}
这仅需要运行一次pdflatex
,无需额外的应用程序。这将产生: