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 \cventry
está definido.
\cventry
Se 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&%
\else{%
\newline{}%
\begin{minipage}[t]{\maincolumnwidth}%
\small%
#7%
\end{minipage}}\fi%
\par\addvspace{#1}}
Puedes usar el paquete.xpatch
para 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}%
.
xpatch
proporciona 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}
Respuesta2
Esto también funciona para mí:
\usepackage{xpatch}
\xpatchcmd\cventry{.}{}{}{}
Respuesta3
Como nota, a partir de la respuesta de @AdamLiter, debes considerar el \moderncvstyle
usado. 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&%
\else{\newline{}\begin{minipage}[t]{\linewidth}\small#7\end{minipage}}\fi}}
En tu tex
archivo preamble
ahora 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 \cventry
só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&%
\else{\newline{}\begin{minipage}[t]{\linewidth}\small#7\end{minipage}}\fi}}
Ahora puedes usar el nuevo comando en body
tu tex
archivo de esta manera:
\cventrynofinaldotcasual[spacing]{years}{degree/job title}{institution/employer}{localization}{optional: grade/...}{optional: comment/job description} % OUTPUT WITHOUT FINAL DOT!