Использование пакета глоссариев с Texmaker (запуск PDFLaTex)

Использование пакета глоссариев с Texmaker (запуск PDFLaTex)

В настоящее время я использую acronymпакет для генерации глоссария сокращений, но я хотел бы также иметь глоссарий математических символов. Поэтому я хочу перейти на пакет glossaries. У меня возникли проблемы (подробно описанные ниже), из-за которых раздел глоссария не генерируется, и поэтому я хотел бы узнать, какой самый простой способ сделать это?

Ниже приведен простой РАБОЧИЙ пример использования acronym, с помощью которого я могу создать PDF-файл на Mac OS X в Texmaker (4.4.1), запустив опцию быстрой сборки;

PdfLaTex + Bib(la)tex + PdfLaTex(x2) + View Pdf

main.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}

пример_биб.биб:

  @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. Обычно он устанавливается в ограниченный режим, который позволяет запускать только доверенные приложения. К счастью, makeindexэто доверенное приложение.

Скрипт makeglossariesPerl, поставляемый с 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}

(Естьвопрос по интеграции 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приложение, чтобы проверить, сможет ли оно обнаружить проблему.

Связанные ресурсы:

Связанный контент