我正在尝试编辑我的类文件,使其具有标题或不具有标题,这取决于\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...
}