將字彙表包與 Texmaker 一起使用(運行 PDFLaTex)

將字彙表包與 Texmaker 一起使用(運行 PDFLaTex)

目前我正在使用該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 腳本運行glossariesmakeindexxindy),但它也提供了一些診斷資訊。 (有些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章/標題等命令\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應用程式來查看是否可以檢測到問題。

相關資源:

相關內容