6

I used the provided answers on TEX.se a lot while writing my Bachelor Thesis but couldn´t find an answer on the following question:

How do I use the LaTeXTools build-system with the glossaries package to have a list of acronyms somewhere in my document?

My 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}

With my MWE on Sublime Text 3 and the latest version of LaTeXTools the following output was produced: Page1 - no Acronyms section in the Content; Page2 - A well formatted acronym - but no Acronyms section at all Using the Terminal (OS X and TeXLive 2016) with the following commands (thesis.tex is my file)

xelatex thesis
makeglossaries thesis
xelatex thesis
xelatex thesis

the correct output was produced: Correct output produced with the terminal

Okay now why don´t I just use the Terminal: I have way more packages that require extra commands etc. - That might be obvious

Why don´t I use a TEX-specific editor: Until now the LaTeXTools Plugin does a great job and sublime text is just one of the most convenient text-editors i´ve seen so far so I would like to keep on going with it.

I already found a question related to this which is not quite answered (I just can´t link to it because i already used the 2 links I have with my little reputation...)

Thanks in Advance for any help!

1 Answer 1

8

There are a few different ways this could be approached.

The traditional builder that LaTeXTools uses launches latexmk, so you can solve the issue the same way you would for latexmk, i.e., add a .latexmkrc file to the directory containing your main tex document with the following contents:

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';

I've based this on both the latexmk example file and this answer to a similar question.

Alternatively, as suggested in this question (I assume this is the one you were referring to), is to use the script builder. To do this, in your LaTeXTools.sublime-settings file (or, better, in the settings section of your Sublime project file, you need to change the builder setting to script and then change the builder_settings block to something like this:

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

Personally, I'd choose the former of these, as the second option will run the whole script every time you build, which could take an unnecessary amount of time if you're working on a really long document.

3
  • Thanks a lot for the fast reply! I now implemented your first (and recommended) answer in my MWE - it works! But - and now I´ll try to figure out why - my original document is still not compiling with the error TeX STOPPED: File ended while scanning use of \\newacronydescription\glspostdescription \space \glossaryentrynumbers {\relax \glsXpageXglsnumberformat TeX reports the error was in file:91 Do you have any idea to that?
    – Lionade
    Commented Sep 15, 2016 at 7:31
  • it was just a bracket missing... as always, isn´t it? :D following your linked post i also added push @generated_exts, 'glo', 'gls', 'glg'; push @generated_exts, 'acn', 'acr', 'alg'; $clean_ext .= ' %R.ist %R.xdy'; to the .latexmkrc file to add the files the cleanup-ability of latexmk =) Great Thanks again!
    – Lionade
    Commented Sep 15, 2016 at 8:15
  • With LatexTools glossaries usually print fine for me. However, if I use xindy as the indexer like in \usepackage[xindy,toc,nonumberlist]{glossaries} it won't. This fixed it for me
    – GeeF
    Commented Dec 4, 2017 at 18:03

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .