Remova a vírgula do \cventry do moderncv

Remova a vírgula do \cventry do moderncv

Esta imagem mostra o trecho de umcvproduzido com a moderncvclasse de documento:

Observe que após o texto em negrito há uma vírgula. Isso parece ser produzido automaticamente. Como posso parar com isso?

Responder1

A entrada que você está mostrando é produzida com \cventry, então queremos alterar a definição desta macro. Está definido em moderncvstyleclassic.sty. Tudo o que fiz foi copiá-lo literalmente em meu preâmbulo e remover a vírgula indesejada. (No MWE, na verdade copiei a linha e comentei o original, para tornar a alteração reconhecível.

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

saída

Responder2

em vez de redefinir todo o comando você mesmo, considere usar xpatch:

\usepackage{xpatch}

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

esta linha substitui a primeira ocorrência no texto da macro ,pela string vazia - ou seja, remove-a.

Aqui também estáuma boa documentação de como o comando funciona.

Responder3

Comentário óbvio, mas caso você queira alternar entre ter e não ter a vírgula, você pode definir um novo comando \cventrynocommacomo este:

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

Responder4

No arquivo moderncvstyleclassic.sty, remova a vírgula e o ponto como segue:

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

Isso removerá as vírgulas e os pontos gerados automaticamente do \cventry.

informação relacionada