私は 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'、考慮してテックスライブ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!