抱歉,我无法在 Friggeri 的 CV 模板之外重现这个问题......
我在用Friggeri 的简历模板使用相同的 friggeri-cv.cls(我只将所有 Helvetica 字体更改为 Arial)。我想使用“打印”选项,删除颜色,使所有内容变成灰度。
为了这个目的,我想在文档中包含一些条件。虽然我在序言中成功地使用了以下结构:
\ifdefined\@cv@print
do this
\else
do that
\fi
我无法让它在文档主体内工作……这可能吗?我对条件句还不熟悉,所以我在这里很困惑……
我已经包含了以下 MWE:
\documentclass[print]{friggeri-cv}%"BLACK&WHITE" should appear
%- or -%
%\documentclass[]{friggeri-cv}%"COLORS" should appear in red
\begin{document}
\header{name}{surname}
{occupation}
% In the aside, each new line forces a line break
\begin{aside}
\section{section}
aaa
bbb
\end{aside}
\section{section}
\begin{entrylist}
\entry
{2014}
{\ifdefined\@cv@print
BLACK\&WHITE
\else
{\addfontfeature{Color=red}COLOR}
\fi}
{more here}
{and more text}
\end{entrylist}
\end{document}
答案1
\@cv@print
除非在某处有声明,否则不能用作命令名\makeatletter
。
不管你说
\ifcsname @cv@print\endcsname
代替
\ifdefined\@cv@print
或者更好的是,你在序言中定义
\newif\ifdaniceeprint % starts out false
\makeatletter
\ifdefined\@cv@print
\daniceeprint
\fi
\makeatother
并使用\ifdaniceeprint
代替条件涉及\@cv@print
。
甚至更好,说
\makeatletter
\newcommand{\printconditional}{%
\ifdefined\@cv@print
\expandafter\@firstoftwo
\else
\expandafter\@secondoftwo
\fi}
\makeatother
在序言中并使用
\begin{entrylist}
\entry
{2014}
{\printconditional{BLACK\&WHITE}{{\addfontfeature{Color=red}COLOR}}}
{more here}
{and more text}
\end{entrylist}
在文档正文中。