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/moderncv',考虑到TeXlive 2019),你会看到\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!

相关内容