如何让 Friggeri CV 模板接受条目列表中的一行条目?

如何让 Friggeri CV 模板接受条目列表中的一行条目?

我注意到 Friggeri 模板似乎要求每个条目至少有一个描述行(第 4 个参数),否则会破坏代码。例如:

    \section{Awards}
    \begin{entrylist}
    \entry
    {2014}{Cookie Award}{Bakery Bob}
    {--This argument has to be here or it breaks everything--}
    \end{entrylist}

我想让这一行可选,这样我就可以用一行来输入一些条目。有什么想法吗?删除不需要的参数会产生大量错误并破坏它,而将参数留空则会生成一个空行。例如,可以编辑 cls 文件以忽略空参数吗?

答案1

解决这个问题的一个简单方法是添加一个空参数:

\entry{2014}{Cookie Award}{Bakery Bob}{}

这确实有效,但会弄乱间距。通过查看 的定义可以找到原因\entry

\newcommand{\entry}[4]{%
  #1&\parbox[t]{11.8cm}{%
    \textbf{#2}%
    \hfill%
    {\footnotesize\addfontfeature{Color=lightgray} #3}\\%
    #4\vspace{\parsep}%
  }\\}

这会\\在第三个参数后添加一个。现在,如果最后一个参数#4为空,则仍会进行换行,从而产生这个丑陋的空行。为了防止 LaTeX 在第四个参数为空时进行换行,我们可以只检查参数是否为空,并且只#4在存在时进行换行并打印:

\documentclass[]{friggeri-cv}

\renewcommand{\entry}[4]{%
  #1&\parbox[t]{11.8cm}{%
    \textbf{#2}%
    \hfill%
    {\footnotesize\addfontfeature{Color=lightgray} #3}%
    \ifthenelse{\equal{#4}{}} 
        {}                      % if #4 == blank
        {\\#4\vspace{\parsep}}  % else
  }\\}

\begin{document}
    \header{john}{smith}{junior business analyst}
    \section{Awards}
    \begin{entrylist}
        \entry{2014}{Cookie Award}{Bakery Bob}{An optional description}
        \entry{2013}{Cake Award}{Bakery John}{}
        \entry{2012}{Bread Award}{Bakery Jack}{}
    \end{entrylist}
\end{document}

带有和不带有描述的结果输出

相关内容