moderncv \cventry remove pontos no final da linha

moderncv \cventry remove pontos no final da linha

Estou usando o modelo para moderncv e quero remover os pontos no final da linha \cventry, alguém pode recodificar o comando para mim?

\documentclass[11pt,a4paper,sans]{moderncv}
\moderncvstyle{casual}
\name{John}{Doe}
\begin{document}
\makecvtitle
\section{Education}
\cventry{1990--2015}{Wisdom}{School of life}{Earth}{}{Description}
\end{document}

Responder1

Para mudar isso, você precisará alterar a forma como \cventryestá definido.

\cventryé definido como:

\renewcommand*{\cventry}[7][.25em]{%
  \savebox{\cventryyearbox}{%
    \hspace*{2\separatorcolumnwidth}%
    \hintstyle{#2}}%
  \setlength{\cventrytitleboxwidth}{\widthof{\usebox{\cventryyearbox}}}%
  \setlength{\cventrytitleboxwidth}{\maincolumnwidth-\cventrytitleboxwidth}%
  \begin{minipage}{\maincolumnwidth}%
    \parbox[t]{\cventrytitleboxwidth}{%
      \strut%
      {\bfseries#3}%
      \ifthenelse{\equal{#4}{}}{}{, {\slshape#4}}%
      \ifthenelse{\equal{#5}{}}{}{, #5}%
      \ifthenelse{\equal{#6}{}}{}{, #6}%
      .\strut}%
    \usebox{\cventryyearbox}%
  \end{minipage}%
  \ifx&#7&%
    \else{%
      \newline{}%
      \begin{minipage}[t]{\maincolumnwidth}%
        \small%
        #7%
      \end{minipage}}\fi%
  \par\addvspace{#1}}

Você pode usar o pacotexpatchpara corrigir este comando no preâmbulo do seu documento. Se você olhar a definição acima, verá que o que é relevante mudar é a linha que diz .\strut}%.

xpatchfornece o comando \xpatchcmd. A sintaxe do comando é:

\xpatchcmd{⟨command⟩}{⟨search⟩}{⟨replace⟩}{⟨success⟩}{⟨failure⟩}

MWE

\documentclass{moderncv}

\moderncvstyle{casual}
\name{John}{Doe}

\usepackage{xpatch}
\xpatchcmd{\cventry}{.\strut}{\strut}{}{}

\begin{document}
\makecvtitle
\section{Education}
\cventry{1990--2015}{Wisdom}{School of life}{Earth}{}{Description}
\end{document}

insira a descrição da imagem aqui

Responder2

Isso também funciona para mim:

\usepackage{xpatch}
\xpatchcmd\cventry{.}{}{}{}

Responder3

Como observação, a partir da resposta do @AdamLiter, você precisa considerar o \moderncvstyleusado. Por exemplo, usando \moderncvstyle{casual}, lendo dentro do arquivo moderncvstylecasual.sty(localizado em'/texmf-dist/tex/latex/moderncv', considerandoTeXlive 2019), você verá \moderncvbody{1}que isso significa moderncvbodyi.sty. Então, dentro desta última, você pode pegar a definição de \cventry, que neste caso é:

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

No seu texarquivo preambleagora você pode copiá-lo, alterando .\strut%com \strut%, e sugiro que você dê outro nome para issonovo comando(por exemplo \cventrynofinaldotcasual) para não substituir o original, mas para usar estepersonalizado \cventrysomente quando você precisar, assim:

\newcommand*{\cventrynofinaldotcasual}[7][.25em]{% ROW CHANGED: NOTE '\newcommand', NOT '\renewcommand'!
  \cvitem[#1]{#2}{%
    {\bfseries#3}%
    \ifthenelse{\equal{#4}{}}{}{, {\slshape#4}}%
    \ifthenelse{\equal{#5}{}}{}{, #5}%
    \ifthenelse{\equal{#6}{}}{}{, #6}%
    \strut% ROW CHANGED!
    \ifx&#7&%
    \else{\newline{}\begin{minipage}[t]{\linewidth}\small#7\end{minipage}}\fi}}

Agora você pode usar o novo comando no bodyseu texarquivo assim:

\cventrynofinaldotcasual[spacing]{years}{degree/job title}{institution/employer}{localization}{optional: grade/...}{optional: comment/job description} % OUTPUT WITHOUT FINAL DOT!

informação relacionada