从 moderncv 的 \cventry 中删除逗号

从 moderncv 的 \cventry 中删除逗号

此图显示的是简历使用文档类生成moderncv

请注意,粗体文本后面有一个逗号。这似乎是自动生成的。我该如何停止这种情况?

答案1

您显示的条目是用 生成的\cventry,因此我们想更改此宏的定义。它在 中定义moderncvstyleclassic.sty。我所做的就是将其逐字复制到我的序言中并删除不需要的逗号。(在 MWE 中,我实际上复制了该行并注释掉了原始行,以使更改可识别。

\documentclass{moderncv}
\moderncvstyle{casual}
%%%
% the following definition is from the file moderncvstyleclassic.sty
\renewcommand*{\cventry}[7][.25em]{%
  \cvitem[#1]{#2}{%
    {\bfseries#3}%
%   \ifthenelse{\equal{#4}{}}{}{, {\slshape#4}}% I changed this line (with comma) ...
    \ifthenelse{\equal{#4}{}}{}{ {\slshape#4}}% ... into this one (without comma).
    \ifthenelse{\equal{#5}{}}{}{, #5}%
    \ifthenelse{\equal{#6}{}}{}{, #6}%
    .\strut%
    \ifx&#7&%
      \else{\newline{}\begin{minipage}[t]{\linewidth}\small#7\end{minipage}}\fi}}
%%%
\firstname{John}
\familyname{Doe}
\begin{document}
\section{Education}
\cventry{December 2012}{Master of Science in Chocolatology}{University of Candyland}{Sugartown}{A+ with Golden Gummy Bear}{I am the chocolate-man.} 
\end{document}

输出

答案2

除了自己重新定义整个命令外,还可以考虑使用xpatch

\usepackage{xpatch}

\xpatchcmd\cventry{,}{}{}{}

,此行用空字符串替换宏文本中第一次出现的字符- 即删除它。

这也是关于命令如何工作的详细文档

答案3

明显的注释,但是如果你想要在有逗号和无逗号之间切换,你可以定义一个新命令,\cventrynocomma如下:

\newcommand*{\cventrynocomma}[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}}

答案4

从文件 moderncvstyleclassic.sty 中,删除逗号和点,如下所示:

\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}}

它将从 \cventry 中删除自动生成的逗号和点。

相关内容