删除 moderncv 中的空白行

删除 moderncv 中的空白行

moderncv我目前正在使用 Overleaf创建简历。我使用的是pdfLaTeXTeX Live 的 2014(旧版)版本。(我试图重用教授提供的模板,如果使用较新的版本,该模板会显示不正确)。在使输出正确显示方面,我仍遇到一些问题。这是我的代码:

\documentclass[11pt,a4paper,roman]{moderncv}
\moderncvstyle{banking}
\moderncvcolor{black}
\usepackage[utf8]{inputenc}
\usepackage[scale=0.76]{geometry}
\name{John}{Doe}
\title{Resumé tite}
\address{street and number}{postcode city}{country}
\phone[mobile]{+1~(234)~567~890}
\phone[fixed]{+2~(345)~678~901}
\phone[fax]{+3~(456)~789~012}
\email{[email protected]}

\begin{document}
\makecvtitle

\section{EMPLOYMENT}
\vspace{1pt}
\cventry{}{}{Assistant Professor}{Since March 2020}{}{Department 
        of LaTeX, Science University}{}

% --------------------------------------------------------------------
\section{EDUCATION}
\vspace{1pt}
\cventry{}{}{PhD, Science University}{2019}{}
        {Thesis title: \textit{Lorem Ipsum} \\ Supervisor: Jacob Smith}{}


\end{document}

在此处输入图片描述

我希望能够增加标题行和地址行之间的垂直间距。我还想删除粗体文本和下方普通文本之间的空白行(例如“助理教授”和“科学大学 LaTeX 系”)。

答案1

我希望能够增加标题行和地址行之间的垂直空间。

如果你使用的是bankingmoderncv的风格,则的定义\makehead如下moderncvheadiii.sty

\@initializecommand{\makehead}{%
  \setlength{\makeheaddetailswidth}{0.8\textwidth}%
  \hfil%
  \parbox{\makeheaddetailswidth}{%
    \centering%
    \namestyle{\@firstname~\@lastname}%
    \ifthenelse{\equal{\@title}{}}{}{\titlestyle{~|~\@title}}\\
    \if@details{%
      \addressfont\color{color2}%
      \ifthenelse{\isundefined{\@addressstreet}}{}{\addtomakeheaddetails{\addresssymbol\@addressstreet}%
        \ifthenelse{\equal{\@addresscity}{}}{}{\addtomakeheaddetails[~--~]{\@addresscity}}%
        \ifthenelse{\equal{\@addresscountry}{}}{}{\addtomakeheaddetails[~--~]{\@addresscountry}}%
        
...

}

因此,您需要做的就是对此进行修改,在\\和之间插入一些垂直空间\if@details。这是您需要\makecvtitle在文档中执行的所有修改:

\begin{document}
\makeatletter
\let\if@detailsoriginal\if@details
\def\if@details{\vskip1.0\baselineskip\if@detailsoriginal}
\makecvtitle
\let\if@details\if@detailsoriginal
\makeatother

您可以通过修改 的值来改变空间量1.0\baselineskip

结果:结果


我还想删除粗体文本和下方普通文本之间的空行(例如“助理教授”和“科学大学 LaTeX 系”)。

如果你使用的是bankingmoderncv的风格,则的定义\cventry如下moderncvbodyiii.sty

\renewcommand*{\cventry}[7][.25em]{
  \begin{tabular*}{\maincolumnwidth}{l@{\extracolsep{\fill}}r}%
    {\bfseries #4} & {\bfseries #5}\\%
    {\itshape #3\ifthenelse{\equal{#6}{}}{}{, #6}} & {\itshape #2}\\%
  \end{tabular*}%
        
  ...
  
  }

您会在里面看到一个 tabular* 环境。因此,您需要做的是更改\arraystretch。例如,如果您在序言中写下此内容,则可以通过设置拉伸零来打破粗体文本和普通文本之间的夹线:

\let\cventryoriginal\cventry
\def\cventry#1#2#3#4#5#6#7{\bgroup\renewcommand\arraystretch{0}\cventryoriginal{#1}{#2}{#3}{#4}{#5}{#6}{#7}\egroup}

结果:结果

同样,您可以通过修改的值来更改垂直空间的数量\arraystretch{0}


更新:至moderncv 2012 ver。

\makecvtitle所调用的title 命令\maketitle在 moderncvstylebanking.sty 中定义如下:

\renewcommand*{\maketitle}{%
  \setlength{\maketitlewidth}{0.8\textwidth}%
  \hfil%
  \parbox{\maketitlewidth}{%
    \centering%
    \namestyle{\@firstname~\@familyname}%
    \ifthenelse{\isundefined{\@title}}{}{\titlestyle{~|~\@title}}\\%
    \addressfont\color{color2}%
    \ifthenelse{\isundefined{\@addressstreet}}{}{\addtomaketitle{\addresssymbol\@addressstreet}%
      \ifthenelse{\equal{\@addresscity}{}}{}{\addtomaketitle[~--~]{\@addresscity}}\flushmaketitle\@firstmaketitleelementtrue\\}

...

}

因此,您需要做的就是对此进行修改,在\\和之间插入一些垂直空间\addressfont。这是您需要\makecvtitle在文档中执行的所有修改:

\begin{document}
\let\addressfontoriginal\addressfont
\def\addressfont{\vskip1.0\baselineskip\addressfontoriginal}
\makecvtitle
\let\addressfont\addressfontoriginal

您可以通过修改 的值来改变空间量1.0\baselineskip

相关内容