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你的問題。

相關內容