词汇表包和 LaTeXTools

词汇表包和 LaTeXTools

在撰写学士论文时,我多次使用了 TEX.se 上提供的答案,但却找不到以下问题的答案:

如何使用带有词汇表包的 LaTeXTools 构建系统在我的文档中的某处获取首字母缩略词列表?

我的 MWE:

\documentclass{article} 
\usepackage[acronym,nomain,toc,shortcuts,xindy]{glossaries}
\makeglossaries 

\newacronym{Mr}{M$_r$}{Remanence}
\newacronym{Hc}{H$_c$}{Coercivity}

\setacronymstyle{long-short}
\begin{document}
\tableofcontents

\newpage
Here's a \ac{Mr} glossary entry.
\printglossaries

\end{document}

使用我在 Sublime Text 3 上的 MWE 和最新版本的 LaTeXTools 产生了以下输出: 第 1 页 - 内容中没有首字母缩略词部分;第 2 页 - 格式良好的首字母缩略词 - 但根本没有首字母缩略词部分 使用终端(OS X 和 TeXLive 2016)和以下命令(thesis.tex 是我的文件)

xelatex thesis
makeglossaries thesis
xelatex thesis
xelatex thesis

产生了正确的输出: 终端产生的正确输出

好的,现在为什么我不直接使用终端:我有更多的需要额外命令的包等等。——这可能很明显

为什么我不使用特定于 TEX 的编辑器:到目前为止,LaTeXTools 插件已经做得很好了,而 Sublime Text 是我迄今为止见过的最方便的文本编辑器之一,所以我想继续使用它。

我已经找到一个与此相关的问题,但尚未得到完全解答(我无法链接到它,因为我已经使用了凭借我的小名声所拥有的 2 个链接...)

提前感谢任何帮助!

答案1

有几种不同的方法可以解决这个问题。

traditionalLaTeXTools 使用的构建器将启动,latexmk因此您可以按照与为了latexmk即,.latexmkrc在包含主 tex 文档的目录中添加一个文件,其内容如下:

add_cus_dep('glo', 'gls', 0, 'makeglossaries');
add_cus_dep('acn', 'acr', 0, 'makeglossaries');
sub makeglossaries {
    if ($silent) {
        system("makeglossaries -q \"$_[0]\"");
    } else{
        system("makeglossaries \"$_[0]\"");
    }
}
push @generated_exts, 'glo', 'gls', 'glg';
push @generated_exts, 'acn', 'acr', 'alg';
$clean_ext .= ' %R.ist %R.xdy';

我基于latexmk示例文件和这个答案回答类似的问题。

或者,按照建议在这个问题中(我认为这是你指的那个),就是使用script建造者。为此,在您的LaTeXTools.sublime-settings文件中(或者,更好的是,在settings您的Sublime 项目文件,您需要将builder设置更改为script,然后将builder_settings块更改为如下内容:

"builder_settings": {
    "osx": {
        "script_commands": [
            "pdflatex -interaction=nonstopmode -synctex=1",
            "makeglossaries",
            "pdflatex -interaction=nonstopmode -synctex=1",
            "pdflatex -interaction=nonstopmode -synctex=1"
        ]
    }
}

就我个人而言,我会选择前者,因为第二个选项将在每次构建时运行整个脚本,如果您处理非常长的文档,这可能会花费不必要的时间。

相关内容