条件语句定义后的布尔开关?

条件语句定义后的布尔开关?

我想在序言文件中使用条件语句,然后定义布尔变量的值然后。原因是我首先在主文件中导入了 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}

相关内容