Я использую шаблон для 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&%
\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&%
\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&%
\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!