moderncv,在一行中使用 \cvskillentry 两次

moderncv,在一行中使用 \cvskillentry 两次

尝试通过使用 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)变得暂时。

相关内容