单独编译词汇表文件进行测试

单独编译词汇表文件进行测试

是否有一种设置允许从另一个文件导入词汇表定义,同时能够以独立方式编译该文件(出于测试目的)?

acronyms.tex

\documentclass{article}
\usepackage[acronym]{glossaries}

\makeglossaries
\newacronym{gcd}{GCD}{Greatest Common Divisor}
\newacronym{lcm}{LCM}{Least Common Multiple}
\newacronym{relu}{ReLU}{Rectified Linear Unit}

\glsaddall[types=acronym]

\begin{document}
% we want to test compiling this single glossary in a standalone manner.
\printglossary[type=acronym, title=List of Acronyms, toctitle=List of Acronyms]
\end{document}

main.tex

\documentclass{book}
\usepackage{import}

\import{glossaries/}{acronyms.tex}
\import{glossaries/}{symbols.tex}
\import{glossaries/}{units.tex}

\AtDocumentEnd{
   \backmatter
   \printglossaries
   \printindex
   \printbliography
}

...

我知道有几种可能的解决方法,例如将分成acronyms.tex两个文件acronyms.stytest_acronyms.tex,但我想知道是否有一个使用单个外部文件的优雅解决方案。

答案1

您可以使用该包。它会删除子文件standalone之前的所有内容。\begin{document}

acronyms.tex

\documentclass{article}
\usepackage[acronym]{glossaries}
\usepackage{standalone}
\standalonetrue

\makeglossaries

\begin{document}

\newacronym{gcd}{GCD}{Greatest Common Divisor}
\newacronym{lcm}{LCM}{Least Common Multiple}
\newacronym{relu}{ReLU}{Rectified Linear Unit}
\glsaddall[types=acronym]

% we want to test compiling this single glossary in a standalone manner.
\ifstandalone
  \printglossary[type=acronym, title=List of Acronyms, toctitle=List of Acronyms]
\fi
\end{document}

我将所有定义都移到了 之后\begin{document},因此当acronyms.tex是子文件时,它们会被读取。单独编译时,开关\ifstandalone会手动设置为 true。

main.tex

\documentclass{book}
\usepackage{standalone}
\usepackage{import}
\usepackage[acronym]{glossaries}

\makeglossaries

\AtEndDocument{
   \backmatter
   \printglossaries
}

\begin{document}

\import{glossaries/}{acronyms.tex}

\end{document}

您还必须加载包glossaries(仅一个前导码)。开关\ifstandalone手动设置为 false。

相关内容