moderncv \cventry elimina puntos al final de la línea

moderncv \cventry elimina puntos al final de la línea

Estoy usando la plantilla para moderncv y quiero eliminar los puntos al final de la línea \cventry. ¿Alguien puede recodificar el comando por mí?

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

Respuesta1

Para cambiar esto, deberá cambiar cómo \cventryestá definido.

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

Puedes usar el paquete.xpatchpara parchear este comando en el preámbulo de su documento. Si observa la definición anterior, verá que lo relevante a cambiar es la línea que dice .\strut}%.

xpatchproporciona el comando \xpatchcmd. La sintaxis del comando es:

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

ingrese la descripción de la imagen aquí

Respuesta2

Esto también funciona para mí:

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

Respuesta3

Como nota, a partir de la respuesta de @AdamLiter, debes considerar el \moderncvstyleusado. Por ejemplo, al usar \moderncvstyle{casual}, leer dentro del archivo moderncvstylecasual.sty(ubicado en'/texmf-dist/tex/latex/moderncv', considerandoTeXlive 2019), verás \moderncvbody{1}que significa moderncvbodyi.sty. Entonces, dentro de este último, puedes tomar la definición de \cventry, que en este caso es:

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

En tu texarchivo preambleahora puedes copiarlo, cambiándolo .\strut%por \strut%, y te sugiero que le des otro nombre a estenuevo comando(por ejemplo \cventrynofinaldotcasual) para no sobrescribir el original sino para usar estecostumbre \cventrysólo cuando lo necesites, así:

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

Ahora puedes usar el nuevo comando en bodytu texarchivo de esta manera:

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

información relacionada