.png)
В настоящее время я использую 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
это доверенное приложение.
Скрипт makeglossaries
Perl, поставляемый с 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
приложение, чтобы проверить, сможет ли оно обнаружить проблему.
Связанные ресурсы: