我正在使用以下代码回购
% Define an environment for cvskill
\newenvironment{cvskills}{%
\vspace{\acvSectionContentTopSkip}
\vspace{-2.0mm}
\begin{center}
\setlength\tabcolsep{1ex}
\setlength{\extrarowheight}{0pt}
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} R{3cm} L{\textwidth - 3cm}}
}{%
\end{tabular*}
\end{center}
}
% Define a line of cv information(skill)
% Usage: \cvskill{<type>}{<skillset>}
\newcommand*{\cvskill}[2]{%
\skilltypestyle{#1} & \skillsetstyle{#2} \\
}
问题是,当表格的参数#2超过一行时,参数#1会在两行之间垂直居中
如何使 arg#1 与 arg#2 的第 1 行垂直对齐
答案1
从第 424 行开始awesome-cv.cls
,可以找到以下定义:
% Use to align an element of tabular table
\newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
\newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
基本上,环境中使用的列类型L
和基于执行垂直居中的列类型构建。相反,您需要垂直顶部对齐。R
cvskills
m
我建议您按如下方式进行。
首先,在序言中定义 3 种新的列类型,类似于
L
、C
和R
,但采用顶部对齐而不是居中对齐:\newcolumntype{M}[1]{>{\raggedright\arraybackslash}p{#1}} \newcolumntype{N}[1]{>{\centering\arraybackslash}p{#1}} \newcolumntype{O}[1]{>{\raggedleft\arraybackslash}p{#1}}
其次,我认为环境的定义有点错误
cvskills
,导致环境的宽度\tabular*
超过了\textwidth
。我认为更正确的定义方式是\newenvironment{cvskills}{% \vspace{\acvSectionContentTopSkip} \vspace{-2.0mm} \begin{center} \setlength\tabcolsep{0pt} % not '1ex' % \setlength{\extrarowheight}{0pt} % 0pt is the default \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} O{3cm} M{\textwidth-3.3cm}} }{% \end{tabular*} \end{center} }
这将使列之间留下 3 毫米的空白。