我正在使用 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
你的问题。