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!

Связанный контент