我注意到 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}