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你的问题。

相关内容