文档内的条件

文档内的条件

抱歉,我无法在 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}

在文档正文中。

相关内容