我正在使用 moderncv 类制作简历。对于大多数命令,文本的对齐方式使其看起来分为两列;一列采用命令的标题、年份等参数,并左对齐(文本在其中右对齐),另一列占据页面的剩余宽度,并在 cvitem、cventry 等中包含主要信息,如下所示:
我想从右侧压缩右列,并在其右侧添加一个额外的列(右对齐,文本将在列中左对齐),如下所示:(显然不会像图像中那样切断文本)。
我自己想不出办法来做这件事,所以我尝试查看 moderncv 类文件,看看它是如何创建左列的(可以这么说),并使用相同的想法来创建右列,但看不到它在哪里创建左列。所以我不知道怎么做!
所以我想知道是否有一种简单的方法来编辑 cventry、cvitem 等命令,使它们采用一个额外的参数,该参数在某种与右对齐的列中左对齐,并压缩中间列。我意识到我可能把这说得非常复杂,但希望这些图像能传达出我想要做的事情。
答案1
提供的宏moderncv
是为两列布局设计的,因为\cvitem
可以区分两个参数(一个用于侧列,一个用于主内容区域)。因此,您需要设计自己的宏,为三列的内容采用三个参数。
很容易采用\cvitem
in的定义moderncvstyleclassic.sty
并对其进行调整,使其采用 3 个参数并排版三列(而不是两列):使用tabular
可用于添加第三列的 a 创建列。在此解决方案中,我还创建了一些长度以允许自定义,而无需更改新宏的定义\cvitemthree
:
\newlength{\rightcolumnwidth}
\newlength{\leftcolumnwidth}
\setlength{\rightcolumnwidth}{10em}
\setlength{\leftcolumnwidth}{\maincolumnwidth}
\addtolength{\leftcolumnwidth}{-\rightcolumnwidth-\separatorcolumnwidth}
\newcommand*{\cvitemthree}[4][.25em]{%
\begin{tabular}{@{}p{\hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}p{\leftcolumnwidth}@{\hspace{\separatorcolumnwidth}}p{\rightcolumnwidth}@{}}%
\raggedleft\hintstyle{#2} &{#3} &{#4}%
\end{tabular}%
\par\addvspace{#1}
}
然后\cvitemthree{item}{This is the main text, ...}{date perhaps}
将复制您的示例图像。