根据文档中是否声明变量来更改类文件的标题

根据文档中是否声明变量来更改类文件的标题

我正在尝试编辑我的类文件,使其具有标题或不具有标题,这取决于\cv{}文档中是否设置了变量()。我在网上搜索答案,并根据类似的工作示例编写了初始代码,但没有任何效果。唯一似乎有区别的是我是否在类文件中定义变量;在文档本身中更改它没有影响。我也尝试过使用显式\ifthenelse语句代替\@ifundefined,但我无法让它找到相等性(我确信这是一个字符串/整数问题,但我对 latex 不够熟悉,无法解决它)。我的 MWE 有一个类文件:

\ProvidesClass{resume}[2010/07/10 v0.9 Resume class]

\LoadClass[11pt,letterpaper]{article} % Font size and paper type

\usepackage{ifthen} 
\usepackage{fancyhdr}

%\def \@cv {} %uncommenting this is the only thing that changes the outcome, regardless of what is in the main document
\def \cv#1{\def\@cv{#1}}

\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt} %clear the default lines; the footer one has 0 width automatically, but the header one doesn't
\renewcommand{\footrulewidth}{0pt}

\@ifundefined{@cv}{
    \fancyhead{\textsc{this}}}
    {\fancyhead{\textsc{that}}}

并记录:

\documentclass{resume-mwe} % Use the custom resume.cls style

\usepackage[left=0.75in,top=0.6in,right=0.75in,bottom=0.6in]{geometry} % Document margins


%\cv{true}

\begin{document}

there is text in here

\end{document}

答案1

您正在测试

\@ifundefined{@cv}

在加载类文件时,您知道它尚未定义,除非(如您在注释中指出的)您已定义它。

您希望在用户有机会在序言中定义这一点之后进行测试,因此

\AtBeginDocument{
  \@ifundefined...

}

相关内容