使用 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}

示例_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避免使用诸如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应用程序来查看它是否能够检测到该问题。

相关资源:

相关内容