是否有一种设置允许从另一个文件导入词汇表定义,同时能够以独立方式编译该文件(出于测试目的)?
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.sty
和test_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。