Moderncv \cventry 删除字段

Moderncv \cventry 删除字段

我正在使用 moderncv 编写自己的简历。在“教育”部分,我有一个条目不符合 所需的输入\cventry。通常,\cventry需要 6 个字段,但我只需要 4 个。我的问题是,如果我只在需要的地方插入文本,并将不需要的曲线括号留空,我得到的结果是:

01.2001-02-2002: Name, City, .
Text that briefly describes it.

如您所见,标签“City”后面有一个“,”我不想要。我该如何摆脱它?我现在\cventry是这样的:

 \cventry{Date1-Date2}{Name}{}{City}{\textit{}}{Some text}

我尝试将“城市”切换到其右侧的空括号,我删除了“,”但我的城市名称变成了斜体。另一方面,如果我将“城市”标签向左移动,我仍然会得到“,”符号,城市名称也会变成斜体。

答案1

Moderncv 应该考虑到这一点,以下是定义的摘录\cventry在包中定义的摘录(moderncvbodyi.sty 在http://ctan.org/tex-archive/macros/latex/contrib/moderncv)。

\renewcommand*{\cventry}[7][.25em]{%
  \cvitem[#1]{#2}{%
    {\bfseries#3}%
    \ifthenelse{\equal{#4}{}}{}{, {\slshape#4}}%
    \ifthenelse{\equal{#5}{}}{}{, #5}%
    \ifthenelse{\equal{#6}{}}{}{, #6}%
    .\strut%
    \ifx&#7&%
    \else{\newline{}\begin{minipage}[t]{\linewidth}\small#7\end{minipage}}\fi}}

\ifthenelse检查第四、第五或第六个元素是否为空,以避免空格之间出现逗号。如果括号中没有任何内容,则不会插入逗号,但如果括号不为空,则会添加逗号并插入括号的内容。请注意,这在您的示例中有效,因为您在{}Name 和 City 之间使用的逗号没有出现空白逗号。

我认为问题在于{\textit{}}不等于{},而参数中没有定义打印文本,测试发现\textit{}不同于无。删除它并使用\cventry{Date1-Date2}{Name}{}{City}{}{Some text}应该可以解决问题。

要定义一个简短的条目(假设您从不使用可选参数),以下内容应该足够了,但可能不值得这么麻烦

\newcommand{\cventryshort}[4]{\cventry{#1}{#2}{#3}{}{}{#4}}

相关内容