尝试通过使用 minipage 和 multicols 将两个 skillentries 放在一行中来缩短 moderncv 模板。这两列的高度不相同,并且目前 ChemCAD 后面有一个 \hfill,但它不执行任何操作。\newline 或 \ 等标准命令也不起作用。您知道如何调整高度并将语言放到下一行吗?任何帮助都将不胜感激。下面是工作代码及其可视化。我在 Win10 上使用 TeXstudio 和 MiKTeX。
\documentclass[11pt,a4paper,roman]{moderncv}
\moderncvstyle{classic}
\moderncvcolor{blue}
\usepackage{multicol}
\usepackage[scale=0.75]{geometry}
\firstname{\Huge \color{darkgray}Max}
\familyname {\Huge \color{black}Muster}
\begin{document}
\section{EDV Kenntnisse}
\cvskillentry*{Text:}{4}{Word}{}{}
\cvskillentry{}{1}{\LaTeX}{}{}
\cvskillentry*{CAD:}{4}{ChemCAD}{}{}
\cvskillentry{}{2}{PDMS}{}{}
\cvskillentry{}{3}{Inventor}{}{}
\cvskillentry*{Languages:}{3}{MATLAB}{}{}
\hspace*{\hintscolumnwidth}%
\begin{minipage}{\maincolumnwidth}
\setlength{\hintscolumnwidth}{0pt}
\begin{multicols}{2}
\cvskillentry*{Text:}{4}{Word}{}{}
\cvskillentry*{}{2}{PDMS}{}{}
\cvskillentry{CAD:}{4}{ChemCAD}{}{} \hfill
\cvskillentry{}{1}{\LaTeX}{}{}
\cvskillentry{}{3}{Inventor}{}{}
\cvskillentry*{Languages:}{3}{MATLAB}{}{}
\hspace*{\hintscolumnwidth}%
\end{multicols}
\end{minipage}
\end{document}
答案1
的默认设置\cvskillentry
是将其 5 个参数分散到文本块宽度。因此,无需对宏进行重大(临时)修改以实现多列布局,您就可以从源中提取原始定义并构建自己的表格。
为此,请\cvskillentry
找到moderncvskillmatrix.sty
(有多种定义,取决于您加载的样式)。基于此,为了便于计算列宽,我添加了tabularx
混合在一起以获得下面的输出。
\documentclass[11pt,a4paper,roman]{moderncv}
\moderncvstyle{classic}
\moderncvcolor{blue}
\usepackage[scale=0.75]{geometry}
\usepackage{tabularx}
\firstname{First name}
\familyname{Last name}
\begin{document}
\section{EDV Kenntnisse}
\makeatletter
\begingroup
\renewcommand{\arraystretch}{1.25}%
\arrayrulecolor{color1}%
\begin{tabularx}{\linewidth}{@{}p{\skillmatrix@hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}%
p{\cvskill@width}@{\hspace{\skillmatrix@padding}}%
X X%
p{\cvskill@width}@{\hspace{\skillmatrix@padding}}%
X X@{}}%
\cdashline{2-7}[.6pt/1pt]
\raggedleft\hintstyle{Text:} &\centering \cvskill{4} &\centering Word & &
\centering \cvskill{1} & \centering \LaTeX & \tabularnewline
\cdashline{2-7}[.6pt/1pt]
\raggedleft\hintstyle{CAD:} &\centering \cvskill{4} &\centering ChemCAD & &
\centering \cvskill{2} & \centering PDMS \tabularnewline
&\centering \cvskill{3} &\centering Inventor &
& & \tabularnewline
\cdashline{2-7}[.6pt/1pt]
\raggedleft\hintstyle{Languages:} &\centering \cvskill{3} &\centering MATLAB & &
& &
\end{tabularx}
\makeatother
\endgroup
\end{document}
这\makeatletter
/\makeatother
一对@
是必需的,因为我在其中使用了在moderncv
基本代码,而分组(\begingroup
... \endgroup
)会使对宏的任何更改(例如对和颜色的调整\arraystretch
)变得暂时。