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

関連情報