我正在使用该软件包编写我的 CV moderncv
。我已经调整了 CV 以满足我的需求。因此,我扩大了命令中可能的最大参数数量\cventry
。但是,现在如果我不使用所有参数,就会出现一些难看的间距(请参阅\cventry
MWE 中的第二个示例):
如果并非所有参数都被占用,有什么建议可以使间距缩小?正如您从 MWE 中看到的那样,我已经调整了\ifthenelse
命令。我使用 texlive 2014。
\documentclass[11pt,a4paper,sans]{moderncv}
\moderncvstyle{banking}
\moderncvcolor{blue}
\usepackage[scale=0.7]{geometry}
\name{John}{Doe}
\title{Resume title}
\address{street and number}{postcode city}{country}
\phone[mobile]{+1~(234)~567~890}
\renewcommand*{\cventry}[9][.4em]{%
\begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r}%
\ifthenelse{\equal{\bfseries #4}{}}{}{{\bfseries #4}} & \ifthenelse{\equal{\bfseries #5}{}}{}{{\bfseries #5}} \\%
\ifthenelse{\equal{\itshape #3}{}}{}{{\itshape #3\ifthenelse{\equal{#6}{}}{}{, #6}}} & \ifthenelse{\equal{\itshape #2}{}}{}{{\itshape #2}}\\%
\ifthenelse{\equal{#7}{}}{}{{#7}} & \ifthenelse{\equal{#8}{}}{}{\\ {#8} & \\}%
\end{tabular*}%
}
\begin{document}
\makecvtitle
\section{Education}
\cventry{Grade}{Degree}{Institution}{year--year}{M.Sc.}{Majors}{Majors}{}
\cventry{}{Degree}{Institution}{City}{}{}{}{}
\cventry{year--year}{Degree}{Institution}{City}{Grade}{Majors}{Majors}{}
\end{document}
答案1
我不确定你想要什么布局,但也许是这样的:
\documentclass[11pt,a4paper,sans]{moderncv}
\moderncvstyle{banking}
\moderncvcolor{blue}
\usepackage[scale=0.7]{geometry}
\name{John}{Doe}
\title{Resume title}
\address{street and number}{postcode city}{country}
\phone[mobile]{+1~(234)~567~890}
\renewcommand*{\cventry}[9][.4em]{%
\begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r}%
\ifthenelse{\equal{#4}{}}{}{\bfseries #4} &
\ifthenelse{\equal{#5}{}}{}{\bfseries #5\\}
\itshape #3\ifthenelse{\equal{#6}{}}{}{, #6} &
\ifthenelse{\equal{#2}{}}{}{\itshape #2\\}
\ifthenelse{\equal{#7}{}}{}{#7\\}
\ifthenelse{\equal{#8}{}}{}{#8\\}%
\end{tabular*}%
}
\begin{document}
\makecvtitle
\section{Education}
\cventry{Grade}{Degree}{Institution}{year--year}{M.Sc.}{Majors}{Majors}{}
\cventry{}{Degree}{Institution}{City}{}{}{}{}
\cventry{year--year}{Degree}{Institution}{City}{Grade}{Majors}{Majors}{}
\end{document}
测试如
\equal{\itshape #3}{}
永远不会是真的,所以我改成了
\equal{#3}{}
测试如
\ifthenelse{\equal{#7}{}}{}{{#7}}
说如果是空的就什么也不做#7
,但是如果#7
是空的,做这件事也没有坏处,而且表格单元格是一个组,所以{}
不需要额外的内容,所以它简化为
#7
然而,需要进行测试来拉动\\
测试内部,以便如果该行中的两个单元格都是空的,则不会抛出任何线。
答案2
我不知道ModernCV的源代码是什么样的,以及类似的功能和命令\cventry
是如何定义的,但作为用户,你可以定义任何你需要的命令。
您可以通过在 LaTeX 代码中定义执行所需操作的新命令来轻松解决问题。为了删除该空白,我不知道如何\cventry
改进现有代码以便删除您不满意的空白,因此我定义了一个新\cventryother
命令,以便文档的编写者可以调整空白。
\newcommand{\cventryother}[3]{\textbf{#1}\hfill\textbf{#2}\\\textit{#3}\\[5pt]}
如果您需要额外的空白,只需在命令末尾添加值即可[5pt]
。在下面的代码中,您可以轻松比较之前和新定义的代码。我在输出中画了一个绿色矩形,以便您找到应该查看代码的哪一部分来跟踪更改。(注意:我自己画了这个绿色矩形,所以如果您运行下面的 LaTeX 代码,您将看不到这样的形状。)
\documentclass[11pt,a4paper,sans]{moderncv}
\moderncvstyle{banking}
\moderncvcolor{blue}
\usepackage[scale=0.7]{geometry}
\name{John}{Doe}
\title{Resume title}
\address{street and number}{postcode city}{country}
\phone[mobile]{+1~(234)~567~890}
\renewcommand*{\cventry}[9][.4em]{%
\begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r}%
\ifthenelse{\equal{#4}{}}{}{\bfseries #4} & \ifthenelse{\equal{#5}{}}{} {\bfseries #5\\} \itshape #3\ifthenelse{\equal{#6}{}}{}{, #6} & \ifthenelse{\equal{#2#7}{}}{\\}{\itshape #2\\} \ifthenelse{\equal{#7}{}}{}{#7\\} \ifthenelse{\equal{#8}{}}{}{#8\\}%
\end{tabular*}%
\par\addvspace{#1}%
}
\newcommand{\cventryother}[3]{\textbf{#1}\hfill\textbf{#2}\\\textit{#3}\\[5pt]}
\begin{document}
\makecvtitle
\section{Education}
\cventry{Grade}{Degree}{Institution}{year--year}{M.Sc.}{Majors}{Majors}{}
\cventryother{Institution}{City}{Degree}
\cventry{}{Degree}{Institution}{City}{}{}{}{}
\cventry{year--year}{Degree}{Institution}{City}{Grade}{Majors}{Majors}{}
\end{document}