目前我正在使用该acronym
软件包生成首字母缩略词词汇表,但我还想生成数学符号词汇表。因此,我希望转到该glossaries
软件包。我遇到了无法生成词汇表部分的问题(详见下文),因此想知道最简单的方法是什么?
下面是一个简单的工作用例acronym
,我可以在 mac os X 上,在 texmaker (4.4.1) 中运行快速构建选项生成一个 pdf;
PdfLaTex + Bib(la)tex + PdfLaTex(x2) + View Pdf
主要.tex:
\documentclass{article}
\usepackage{acronym}
\usepackage[backend=bibtex,bibencoding=ascii]{biblatex}
\addbibresource{example_bib.bib}
\begin{document}
\section{Body}
Try printing \ac{aa} and citing something.\cite{a_reference}
\section{Acronyms}
\begin{acronym}[AAAAAAA]
\acro{aa}[AA]{An Acronym}
\end{acronym}
\printbibliography
\end{document}
示例_bib.bib:
@ARTICLE{a_reference,
author = {A, Name},
title = {A Title},
volume = {1},
pages = {1--2},
abstract = {an abstarct},
date = {2013-06},
doi = {10.1016/j.commatsci.2013.03.013},
issn = {0927-0256},
journaltitle = {Computational Materials Science},
keywords = {Keyword},
shortjournal = {Computational Materials Science},
url = {http://www.sciencedirect.com},
urldate = {2015-10-28}}
如果我尝试将 main.tex 文件调整为:
\documentclass{article}
\usepackage[acronym]{glossaries}
\usepackage[backend=bibtex,bibencoding=ascii]{biblatex}
\makeglossaries
\newacronym{aa}{AA}{An Acronym}
\addbibresource{example_bib.bib}
\begin{document}
\section{Body}
Try printing \gls{aa} and citing something.\cite{a_reference}
\printacronyms
\printbibliography
\end{document}
它可以运行,但是没有词汇表部分输出到 pdf!(首字母缩略词插入正文中)
如果我尝试使用词汇表术语,也会出现这种情况:
\documentclass{article}
\usepackage{glossaries}
\usepackage[backend=bibtex,bibencoding=ascii]{biblatex}
\makeglossaries
\newglossaryentry{aa}{name=aa,description={A description of AA}}
\addbibresource{example_bib.bib}
\begin{document}
\section{Body}
Try printing \gls{aa} and citing something.\cite{a_reference}
\printglossaries
\printbibliography
\end{document}
我查看了与此问题相关的许多问题,但似乎没有一个能够提供充分的答案。
答案1
快速简便的方法就是添加选项automake
:
\documentclass{article}
\usepackage{filecontents}
\usepackage[acronym,automake]{glossaries}
\usepackage[backend=bibtex,bibencoding=ascii]{biblatex}
\begin{filecontents*}{example_bib.bib}
@ARTICLE{a_reference,
author = {A, Name},
title = {A Title},
volume = {1},
pages = {1--2},
abstract = {an abstarct},
date = {2013-06},
doi = {10.1016/j.commatsci.2013.03.013},
issn = {0927-0256},
journaltitle = {Computational Materials Science},
keywords = {Keyword},
shortjournal = {Computational Materials Science},
url = {http://www.sciencedirect.com},
urldate = {2015-10-28}}
\end{filecontents*}
\makeglossaries
\newacronym{aa}{AA}{An Acronym}
\addbibresource{example_bib.bib}
\begin{document}
\section{Body}
Try printing \gls{aa} and citing something.\cite{a_reference}
\printacronyms
\printbibliography
\end{document}
这需要两次pdflatex
调用,但您已经在PdfLaTex + Bib(la)tex + PdfLaTex(x2) + View Pdf
构建中进行了调用。此方法利用了 TeX 的 shell 转义机制。这通常设置为受限模式,仅允许受信任的应用程序运行。幸运的是,makeindex
是一个受信任的应用程序。
makeglossaries
软件包提供的 Perl 脚本运行glossaries
(makeindex
或xindy
),但它还提供了一些诊断信息。(一些xindy
的某些消息有点神秘。)egreg 对另一个问题的回答展示如何makeglossaries
与 texmaker 集成。
就我个人而言,我更喜欢使用arara
。使用此方法,我只需要在源代码中添加一些特殊注释:
% arara: pdflatex
% arara: makeglossaries
% arara: bibtex
% arara: pdflatex
\documentclass{article}
\usepackage{filecontents}
\usepackage[acronym]{glossaries}
\usepackage[backend=bibtex,bibencoding=ascii]{biblatex}
\begin{filecontents*}{example_bib.bib}
@ARTICLE{a_reference,
author = {A, Name},
title = {A Title},
volume = {1},
pages = {1--2},
abstract = {an abstarct},
date = {2013-06},
doi = {10.1016/j.commatsci.2013.03.013},
issn = {0927-0256},
journaltitle = {Computational Materials Science},
keywords = {Keyword},
shortjournal = {Computational Materials Science},
url = {http://www.sciencedirect.com},
urldate = {2015-10-28}}
\end{filecontents*}
\makeglossaries
\newacronym{aa}{AA}{An Acronym}
\addbibresource{example_bib.bib}
\begin{document}
\section{Body}
Try printing \gls{aa} and citing something.\cite{a_reference}
\printacronyms
\printbibliography
\end{document}
(有关于 texmaker 与 arara 集成的一个问题。
您在评论中询问了一些重要提示。以下是我能想到的一些提示:
- 在序言中定义您的条目(
\newglossaryentry
,等等)或将它们放在单独的文件中,然后使用或将它们加载到序言中。\newacronym
\input
\loadglsentries
- 避免在条目标签中使用特殊字符。这包括扩展拉丁字符或非拉丁字符,除非您使用 XeLaTeX 或 LuaLaTeX。
\gls
避免使用诸如section/chapter/captions 等命令。如果确实需要它们,请使用诸如 或\glsfmttext{label}
提供的命令\glsfmtshort{label}
\glsfmtlong{label}
glossaries-extra
包裹。如果您的术语包含命令或特殊字符,请提供
sort
密钥。例如:\newglossaryentry{alpha}{name={$\alpha$},text={\alpha},sort={alpha}, description={...}} \newacronym[sort={chi2}]{chisq}{$\chi^2$}{$\chi^2$-squared}
如果你想使用类似
\Gls
这样的命令将首字母转换为大写,请注意\makefirstuc
(由mfirstuc
)因此,上面的例子实际上应该是:\newglossaryentry{alpha}{name={{}$\alpha$},text={{}\alpha},sort={alpha}, description={...}} \newacronym[sort={chi2}]{chisq}{{}$\chi^2$}{{}$\chi^2$-squared}
(即使这些类型的条目出现在句子的开头,也不应该应用任何大小写更改。值开头的空括号会丢弃更改大小写的尝试,否则会导致问题。)
如果出现问题,例如,您的词汇表没有出现或缺少条目,请尝试
makeglossariesgui
应用程序来查看它是否能够检测到该问题。
相关资源: