moderncv \cventry entfernt Punkte am Zeilenende

moderncv \cventry entfernt Punkte am Zeilenende

Ich verwende die Vorlage für ModernCV und möchte die Punkte am Ende der Zeile entfernen \cventry. Kann jemand den Befehl für mich umcodieren?

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

Antwort1

Um dies zu ändern, müssen Sie die \cventryDefinition ändern.

\cventryist definiert als:

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

Sie können das Paket verwendenxpatchum diesen Befehl in der Präambel Ihres Dokuments zu patchen. Wenn Sie sich die obige Definition ansehen, werden Sie feststellen, dass die relevante zu ändernde Zeile die Zeile ist, die besagt .\strut}%:

xpatchstellt den Befehl bereit \xpatchcmd. Die Syntax für den Befehl lautet:

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

Bildbeschreibung hier eingeben

Antwort2

Das hier funktioniert bei mir auch:

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

Antwort3

Als Hinweis, ausgehend von der Antwort von @AdamLiter, müssen Sie die \moderncvstyleverwendeten berücksichtigen. Beispielsweise durch die Verwendung von \moderncvstyle{casual}, Lesen innerhalb der Datei moderncvstylecasual.sty(befindet sich in„/texmf-dist/tex/latex/moderncv“, angesichtsTeXlive 2019), werden Sie sehen, \moderncvbody{1}dass bedeutet moderncvbodyi.sty. In diesem letzten können Sie also die Definition von nehmen \cventry, die in diesem Fall lautet:

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

In Ihrer texDatei preamblekönnen Sie es jetzt kopieren und .\strut%mit ändern \strut%, und ich schlage vor, dass Sie diesem einen anderen Namen geben.neuer Befehl(zum Beispiel \cventrynofinaldotcasual) das Original nicht zu überschreiben, sondern dieses zu verwendenBrauch \cventrynur wenn Sie es brauchen, etwa so:

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

bodyJetzt können Sie den neuen Befehl in Ihrer texDatei wie folgt verwenden :

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

verwandte Informationen