moderncv에서 \section 사용자 정의

moderncv에서 \section 사용자 정의

내 moderncv를 약간 사용자 정의하고 싶습니다. 내 섹션의 제목에 색상이 희미해지기를 원합니다. 이를 위해 Latex에서 다음 코드를 얻었습니다.

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{fadings,patterns,positioning,fit,calc}
\tikzset{
  zero sep/.style = {inner sep=0pt, outer sep=0pt},
}

\newcommand\tikzsection[1]{%
  \pgfmathsetmacro\randref{rand}
  \begin{tikzfadingfrompicture}[name=tikzsection \randref]
    \node[fill=white,anchor=south east,zero sep,minimum width=5cm,minimum height=2.5mm] (box node){};
    \node [text=white,anchor=base west,text depth=5pt,text height=12pt,zero sep,
    font=\normalfont\Large\bfseries,right=10pt of box node,
    text width=5.9cm,align=left] (text node) {#1};
    \node [fit={(box node)(text node)
      },zero sep] (myfit) {};
    \path let \p1=(myfit.south west), \p2=(myfit.north east), \n1={\x2-\x1}, \n2={\y2-\y1} in
    \pgfextra{\xdef\lenx{\n1} \xdef\leny{\n2}};
  \end{tikzfadingfrompicture}
  \section[#1]{%
    \begin{tikzpicture}[baseline=.5*5pt-.5*12pt]
      \path[path fading=tikzsection \randref, fit fading=false,left color=blue, right color=black]
      (-.5*\lenx,-.5*\leny) rectangle ++(\lenx,\leny);
    \end{tikzpicture}
  }
}
\pagestyle{empty}

\begin{document}
\tikzsection{First section}
Some text
\tikzsection{Secoooooond segtion}
Some text
\tikzsection{Short}
Some text

\end{document}

섹션에서 맞춤형 색상 페이드 인

나는 이것을 my 에 포함시키려고 했지만 분명히 명령이 에 이미 정의되어 있기 moderncv때문에 그렇게 사용할 수는 없습니다 . 나는 그것을 재정의하려고 시도했지만 여전히 오류가 발생합니다. 대신에 내 moderncv에서 그것을 사용하려면 어떻게 해야 하는지 아시나요 ?\sectionmoderncvmoderncvmoderncvstyleclassic\section

\sectionmoderncv에서 명령이 정의되는 방식은 다음과 같습니다 .

\renewcommand*{\section}[1]{%
  \par\addvspace{2.5ex}%
  \phantomsection{}% reset the anchor for hyperrefs
  \addcontentsline{toc}{section}{#1}%
  \strut\sectionstyle{#1}%
  {\color{color1}\hrule}%
  \par\nobreak\addvspace{1ex}\@afterheading}

다시 자체 명령이 어디에 \sectionstyle있습니까? (죄송하지만 지금은 파일에 액세스할 수 없습니다 moderncv.)

답변1

한 가지 가능성은 다음과 같습니다.

\documentclass{moderncv}
\usepackage{tikz}
\usetikzlibrary{fadings,patterns,positioning,fit,calc}

\tikzset{
  zero sep/.style = {inner sep=0pt, outer sep=0pt},
}

\moderncvstyle{classic}

\makeatletter
\renewcommand\section[1]{%
  \par\addvspace{2.5ex}%
  \phantomsection{}% reset the anchor for hyperrefs
  \addcontentsline{toc}{section}{#1}%
  \pgfmathsetmacro\randref{rand}
  \begin{tikzfadingfrompicture}[name=tikzsection \randref]
    \node[fill=white,anchor=south east,zero sep,minimum width=5cm,minimum height=2.5mm] (box node){};
    \node [text=white,anchor=base west,text depth=5pt,text height=12pt,zero sep,
    font=\normalfont\Large\bfseries,right=10pt of box node,
    text width=5.9cm,align=left] (text node) {\strut#1\strut};
    \node [fit={(box node)(text node)
      },zero sep] (myfit) {};
    \path let \p1=(myfit.south west), \p2=(myfit.north east), \n1={\x2-\x1}, \n2={\y2-\y1} in
    \pgfextra{\xdef\lenx{\n1} \xdef\leny{\n2}};
  \end{tikzfadingfrompicture}
    \begin{tikzpicture}[baseline=.5*5pt-.5*12pt]
      \path[path fading=tikzsection \randref, fit fading=false,left color=blue, right color=black]
      (-.5*\lenx,-.5*\leny) rectangle ++(\lenx,\leny);
    \end{tikzpicture}%
    \par\nobreak\addvspace{1ex}\@afterheading%
}
\makeatother  


\firstname{John}
\lastname{Doe}

\begin{document}

\section{First section}
Some text
\section{Second section with a long title to see what happens when spanning more than one line}
Some text
\section{Short}
Some text

\end{document}

결과 문서:

여기에 이미지 설명을 입력하세요

그러나 사용하려는 코드는 긴 제목에 대해 예상치 못한 결과를 생성한다는 점에 유의하세요(두 번째 섹션의 긴 제목에 어떤 일이 발생하는지 확인하세요).

관련 정보