
目前我正在使用該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}
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}}
如果我嘗試將 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}
您在評論中詢問了一些重要提示。以下是我能立即想到的:
- 在序言中定義您的條目(
\newglossaryentry
等)或將它們放入單獨的文件中並使用或將它們加載到序言中。\newacronym
\input
\loadglsentries
- 避免在條目標籤中使用特殊字元。這包括擴展的拉丁或非拉丁字符,除非您使用 XeLaTeX 或 LuaLaTeX。
- 避免使用諸如節/
\gls
章/標題等命令\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
應用程式來查看是否可以檢測到問題。
相關資源: