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⟩}

MWE

\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!

관련 정보