我想在序言文件中使用条件语句,然后定义布尔变量的值然后。原因是我首先在主文件中导入了 preamble.tex,然后我想在其中指定适当的开关。我尝试使用纯 tex \newif 和 etoolbox 包,但两者似乎都需要布尔变量的值前条件的定义。这似乎意味着我必须更改 preamble.tex,这违背了将其作为单独文件的目的。
除了将前言文件分成两部分之外,还有什么简单的方法可以实现这一点?
谢谢,迈克尔
答案1
您所采用的方法不正确。最好的办法是改用preamble.tex
选项preamble.sty
。
文件preamble.sty
\ProvidesPackage{preamble}
\RequirePackage{kvoptions}
% The following defines \ifpreamble@foo (\if<packagename>@<optionname>)
\DeclareBoolOption[true]{foo} % specifying `foo` is the same as `foo=true`
\ExecuteOptions{foo=false} % foo is false by default
\ProcessKeyvalOptions{preamble}
\RequirePackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\ifpreamble@foo
\fancyhead[R]{Michael's report}
\fi
\endinput
文件 test.tex (foo
已启用)
\documentclass{article}
\usepackage[foo]{preamble} % or \usepackage[foo=true]{preamble}
\usepackage{kantlipsum}
\begin{document}
\section{A}
\kant
\end{document}
文件 test.tex (foo
已禁用)
\documentclass{article}
\usepackage{preamble} % or \usepackage[foo=false]{preamble}
\usepackage{kantlipsum}
\begin{document}
\section{A}
\kant
\end{document}