Moderncv \cventry 刪除行尾的點

Moderncv \cventry 刪除行尾的點

我正在使用 Moderncv 的模板,並且我想刪除 行末尾的點\cventry,有人可以為我重新編碼命令嗎?

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

答案1

為了改變這一點,您需要更改\cventry定義方式。

\cventry定義為:

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

您可以使用該套件xpatch在文件的序言中修補此命令。如果您查看上面的定義,您會發現需要變更的相關內容是顯示 的行.\strut}%

xpatch提供命令\xpatchcmd。該指令的語法是:

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

微量元素

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

在此輸入影像描述

答案2

這也適用於我:

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

答案3

請注意,從@AdamLiter 的答案開始,您需要考慮\moderncvstyle使用的。例如,透過使用\moderncvstyle{casual},讀取文件內部moderncvstylecasual.sty(位於'/texmf-dist/tex/latex/modernncv',考慮到2019年TeXlive),你會看到\moderncvbody{1}這意味著moderncvbodyi.sty。因此,在最後一個中,您可以採用 的定義\cventry,在本例中為:

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

在您的tex文件中preamble,您現在可以複製它,並.\strut%使用進行更改\strut%,我建議您為此指定另一個名稱新指令(例如\cventrynofinaldotcasual)不覆蓋原來的而是使用這個風俗 \cventry僅當您需要時才使用,如下所示:

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

body現在您可以在文件中使用新命令,tex如下所示:

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

相關內容