自定义 ModernCV 标题:照片下方的行,“标题左对齐”

自定义 ModernCV 标题:照片下方的行,“标题左对齐”

我想改变主题moderncv casual

  1. 图片下方或“Persönliches”上方的空间太多...图片应直接位于第一个块的右侧。
  2. 我希望“Lebenslauf”位于线的左侧或中间......但不位于右侧......

我尝试了一下更改标题,但没有完全成功。而且我认为标题中有很多内容并不是真正需要的。

有人可以给我提示吗?

谢谢

在此处输入图片描述

\documentclass[a4paper,11pt]{moderncv}
\usepackage[scale=0.75,tmargin=2.0cm,right=2.8cm,left=2.5cm,bmargin=2.7cm]{geometry}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{paralist}
\usepackage{lmodern}

\moderncvtheme[red]{casual}
\nopagenumbers{}

\usepackage[scale=0.75]{geometry}       
\renewcommand*{\titlefont}{\LARGE\mdseries\upshape}
\makeatletter
\renewcommand*{\makecvtitle}{
\recomputecvlengths
\makecvfooter%

\newbox{\makecvtitlepicturebox}
\savebox{\makecvtitlepicturebox}{
\ifthenelse{\isundefined{\@photo}}
{}
{%
\setlength\fboxrule{\@photoframewidth}%
\ifdim\@photoframewidth=0pt%
\setlength{\fboxsep}{0pt}\fi%
{\color{color1}\framebox{\includegraphics[width=\@photowidth]{\@photo}}}}}
\hfill%\usebox{\makecvtitlepicturebox}%

\@initializelength{\makecvtitlepicturewidth}
\settowidth{\makecvtitlepicturewidth}{\usebox{\makecvtitlepicturebox}}%
\parbox[b]{\textwidth-\makecvtitlepicturewidth}{
\raggedleft\namefont{\color{color2!50}\textsf{\@firstname}} {
\color{color2}\textsf{\@familyname}}}\\        [-.35em] 
{\color{color2!50}\rule{\textwidth}{.25ex}}%

\ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\null\titlestyle{\@title}}
\hfill\smash{\raisebox{\dimexpr-\ht\makecvtitlepicturebox+\baselineskip \relax}{
\usebox{\makecvtitlepicturebox}}}\\[0.5em]  
\ifthenelse{\isundefined{\@quote}}%
{}
{{\null\hfill\begin{minipage}   {\quotewidth}\centering \quotestyle{\@quote}\end{minipage}\hfill\null\\[2.5em]}}
\par}%
\makeatother

\setlength{\hintscolumnwidth}{3.5cm}    
\name{}{Lebenslauf}
\photo[110pt][0.0pt]{picture.jpg}
\title{~}

\begin{document}
\maketitle

\section{Persönliches}
\cvitem{Name}{-------------}
\cvitem{Adresse}{--------------------------}
\cvitem{Handy}{0176 / 0000 0000}

\cvitem{E-Mail}{[email protected]}

\cvitem{Geburtsdatum}{40. Dezember 1900}
\cvitem{Geburtsort}{Berlin}
\cvitem{Nationalität}{Deutsch}

\section{Promotion}
\end{document}

答案1

你问了两件事:

  1. 图片下方或“Persönliches”上方的空间太多...图片应直接位于第一个块的右侧。
  2. 我希望“Lebenslauf”位于线的左侧或中间......但不位于右侧......

在这种情况下,要获得您想要的东西,一个简单的方法是使用包设置照片,textpos如下所示:

\usepackage[absolute,overlay]{textpos} 
...
%  in cm:           (length from right, length from above)
\begin{textblock}{0}(8.5,2.6) % <=======================================
  \includegraphics[width=110pt]{example-image-a}\par
\end{textblock}

请根据您自己的需要更改给定的宽度和图像放置width=110pt位置(以厘米为单位)。这最终取决于所使用的图像以及您希望它位于何处...(8.5,2.6)

因为您没有告诉我们您是否正在使用字母(那么您可能需要使用给定的变量moderncv)我更改了您现在可以使用的标题代码:

\name{Max}{Musterfrau}
%\photo[110pt][0.0pt]{example-image-a} % <============================!!
\title{Lebenslauf} % <==================================================

你看我评论了的定义\photo,在你的情况下它是不需要的。

因为您的愿望完全破坏了样式的布局,casual我们现在可以缩短代码以仅生成想要的标题(请查看字体更改!)和规则(旧代码中有很多新行,导致标题和简历第一部分之间的距离很大):

\renewcommand*{\titlefont}{\fontsize{34}{36}\mdseries\upshape} % <======

\makeatletter
\renewcommand*{\makecvtitle}{%
  \recomputecvlengths
  %\makecvfooter%

  \newbox{\makecvtitlepicturebox}
  \savebox{\makecvtitlepicturebox}{}
  \@initializelength{\makecvtitlepicturewidth}
  \settowidth{\makecvtitlepicturewidth}{\usebox{\makecvtitlepicturebox}}%
  \parbox[b]{\textwidth-\makecvtitlepicturewidth}{%
    \raggedright\titlestyle{\@title}\\[-.35em] 
    {\color{color2!50}\rule{\textwidth}{.25ex}}%
    \\[2ex]% <==================== change to your needs: space title-cv
  }%
}
%  \par}}%
\makeatother

您可以通过将代码更改为数字来更改标题/规则和简历第一部分(Persönliches)之间的距离\\[2ex],例如您需要的\\[2cm]

完整的 MWE

\documentclass[a4paper,11pt]{moderncv} % version 2.0.0

\usepackage[scale=0.75]{geometry}
\usepackage[ngerman]{babel}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}

% \moderncvtheme[red]{casual} % <=========================== old version 
\moderncvstyle{casual}  % <=============================================
\moderncvcolor{red}
\nopagenumbers{}

\renewcommand*{\titlefont}{\fontsize{34}{36}\mdseries\upshape} % <======

\makeatletter
\renewcommand*{\makecvtitle}{%
  \recomputecvlengths
  %\makecvfooter%

  \newbox{\makecvtitlepicturebox}
  \savebox{\makecvtitlepicturebox}{}
  \@initializelength{\makecvtitlepicturewidth}
  \settowidth{\makecvtitlepicturewidth}{\usebox{\makecvtitlepicturebox}}%
  \parbox[b]{\textwidth-\makecvtitlepicturewidth}{%
    \raggedright\titlestyle{\@title}\\[-.35em] 
    {\color{color2!50}\rule{\textwidth}{.25ex}}%
    \\[2ex]% <==================== change to your needs: space title-cv
  }%
}
%  \par}}%
\makeatother


\setlength{\hintscolumnwidth}{3.5cm}    
\name{Max}{Musterfrau}
%\photo[110pt][0.0pt]{example-image-a} % <============================!!
\title{Lebenslauf} % <==================================================

\usepackage[absolute,overlay]{textpos} % <==============================


\begin{document}

\makecvtitle

%  in cm:           (length from right, length from above)
\begin{textblock}{0}(8.5,2.6) % <=======================================
  \includegraphics[width=110pt]{example-image-a}\par
\end{textblock}

\section{Persönliches}
\cvitem{Name}{-------------}
\cvitem{Adresse}{--------------------------}
\cvitem{Handy}{0176 / 0000 0000}

\cvitem{E-Mail}{[email protected]}

\cvitem{Geburtsdatum}{40. Dezember 1900}
\cvitem{Geburtsort}{Berlin}
\cvitem{Nationalität}{Deutsch}

\section{Promotion}
\end{document}

给出了期望的结果:

上述 mwe 的结果

相关内容