pdflatexmk отлично компилирует \glossaries, но игнорирует \glsaddall

pdflatexmk отлично компилирует \glossaries, но игнорирует \glsaddall

Я использую TeXShop и скрипт pdflatexmk. Когда я связываю хотя бы одну запись глоссария с \gls{label}глоссарием, компиляция проходит нормально, и все работает хорошо (пример рабочего кода). Однако я хочу использовать команду \glsaddallтак, чтобы мне не приходилось связываться со всеми записями глоссария. К сожалению, pdflatexmk игнорирует эту опцию (пример неисправного кода). Почему он так делает?

Я знаю, что могу запустить команду makeglossaries в терминале, но я бы предпочел, чтобы она работала с pdflatexmk. Как мне решить эту проблему? Есть ли более новый скрипт pdflatexmk, который решает эту проблему?

Ниже показан рабочий пример.

Рабочий код: упоминание хотя бы одного элемента глоссария с помощью \gls{label}:

% !TEX TS-program = pdflatexmk
\documentclass[12pt,a4paper,titlepage,final]{report}
\usepackage[toc, nonumberlist]{glossaries}

\makeglossaries

\begin{document}
\title{Title}
\author{Author}
\date{\today}
\tableofcontents
\printglossaries

\chapter{Chapatare Uno}
\newglossaryentry{One}
{name=One, description={First number after zero}}
Body text for chapter one mentioning the glossary item \gls{One}

\chapter{Chapter Deux}
\newglossaryentry{Open}
{name=Open, description={Opposite of closed}}
Body text for chapter two mentioning the glossary item \gls{Open}

\end{document}

Неправильный код: использование \glsaddall для вывода записей без упоминания

% !TEX TS-program = pdflatexmk
\documentclass[12pt,a4paper,titlepage,final]{report}
\usepackage[toc, nonumberlist]{glossaries}

\makeglossaries

\begin{document}
\title{Title}
\author{Author}
\date{\today}
\tableofcontents
\glsaddall
\printglossaries

\chapter{Chapatare Uno}
\newglossaryentry{One}
{name=One, description={First number after zero}}
Body text for chapter one NOT mentioning the glossary item 

\chapter{Chapter Deux}
\newglossaryentry{Open}
{name=Open, description={Opposite of closed}}
Body text for chapter two NOT mentioning the glossary item

\end{document}

решение1

Переместить определения записи глоссариядовыпускающий \glsaddall, и убедитесь, что он latexmkзнает, как обращаться с глоссариями. Существуетпример файлав пакете, который показывает, что вам следует добавить в ваш ~/.latexmkrcфайл настроек.

В целом,

\documentclass[12pt,a4paper,titlepage,final]{report}
\usepackage[toc, nonumberlist]{glossaries}

\makeglossaries
\newglossaryentry{One}
{name=One, description={First number after zero}}
\newglossaryentry{Open}
{name=Open, description={Opposite of closed}}

\begin{document}
\title{Title}
\author{Author}
\date{\today}
\tableofcontents
\glsaddall
\printglossaries

\chapter{Chapatare Uno}
Body text for chapter one NOT mentioning the glossary item

\chapter{Chapter Deux}
Body text for chapter two NOT mentioning the glossary item

\end{document}

и

add_cus_dep( 'glo', 'gls', 0, 'makeglo2gls' );
sub makeglo2gls {
    system("makeindex -s \"$_[0].ist\" -t \"$_[0].glg\" -o \"$_[0].gls\" \"$_[0].glo\"" );
}

или

add_cus_dep( 'glo', 'gls', 0, 'makeglossaries' );
sub makeglossaries {
   system( "makeglossaries \"$_[0]\"" );
}

в ~/.latexmkrcрешена ваша проблема.

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