Удалить запятую из \cventry в moderncv

Удалить запятую из \cventry в moderncv

На этом изображении показан отрывок изрезюмесоздано с moderncvклассом документа:

Обратите внимание, что после жирного текста стоит запятая. Кажется, это происходит автоматически. Как это остановить?

решение1

Запись, которую вы показываете, это produce with \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.

Связанный контент