当我编译 moderncv 示例的以下部分时,名字和中间名之间的距离比姓氏之间的距离更近。
\documentclass[11pt,a4paper,sans]{moderncv}
\moderncvstyle{classic}
\moderncvcolor{blue}
\usepackage[scale=0.75]{geometry}
\name{Johnathan Ulysses}{Bierbaum}
\title{Curriculum vitae}
\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}
\photo[50mm][0.4pt]{picture}
\begin{document}
\makecvtitle
\end{document}
如图所示,我使用了moderncv 包但其他任何图片都可以。图片是换行所必需的。
出现不正确的间距似乎是因为中间名包含降部而名字却不包含。
一个解决方案是将带有降序的白色字符附加到名字后面。这不是很好,因为它会破坏复制和粘贴。
另一个解决方案是使用 raisebox 之类的\name{\raisebox{.4ex}{Johnathan} Ulysses}{Bierbaum}
。这似乎效果很好,尽管如果交换名字和中间名可能会更复杂。另外,我不知道那个高度是否正确。
\strut
本文提到的选项问题产生的间隙似乎太大。(使用时\name{Johnathan\strut{} Ulysses}{Bierbaum}
)
使具有降部和不具有降部行之间的行距保持一致的最佳解决方案是什么?
答案1
该类用于\namefont
设置名称的样式,在(错误的)假设下,名称适合一行,在不合适的位置添加换行命令,而行间距已经恢复为小于合适的值\namefont
。这里有一个补丁来解决这个问题。
\documentclass[11pt,a4paper,sans]{moderncv}
\moderncvstyle{classic}
\moderncvcolor{blue}
\usepackage[scale=0.75]{geometry}
\usepackage{xpatch}
\makeatletter
% remove \\ from the wrong place
\xpatchcmd\makecvhead{\\[1.25em]}{}{}{}
% put it where it should (reducing the space, because the em changes
\xpatchcmd\makecvhead{\@lastname}{\@lastname\\[.5em]}{}{}
\makeatother
\name{Jopnathan Ulysses}{Bierbaum}
\title{Curriculum vitae}
\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}
\photo[50mm][0.4pt]{duck}
\begin{document}
\makecvtitle
\end{document}