我正在用这个软件包写简历moderncv
。由于空间不足,我想让一个部分使用两列,用垂直线隔开。
我在这里看到了这些解决方案,使用\cvlistdoubleitem和多色。但我想保留提供的进一步信息\cventry
(=> 我的意思是,在我的情况下是“基本”和“非常基本”)
第一种方法,使用表格
<!-- language: lang-latex -->
\documentclass[11pt,a4paper]{moderncv}
\moderncvstyle{casual}
\moderncvcolor{blue}
\usepackage{layout}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage[utf8]{inputenc}
\usepackage[top=1in, bottom=1.25in, left=1.25in, right=1.25in]{geometry}
\begin{document}
\section{headline}
\begin{tabular}{l@{}|@{\hspace{5mm}}l}
\cventry{}{C\#}{basic}{}{}{} & \cventry{}{UNIX}{basic}{}{}{} \\
\cventry{}{vim}{basic}{}{}{} & \cventry{}{\LaTeX}{basic}{}{}{} \\
\cventry{}{HTML, CSS, PHP}{very basic}{}{}{} \\
\end{tabular}
\end{document}
结果是:
headline site border
======== :
:
C#, basic | U:NIX, basic
vim, basic | L:aTeX, basic
HTML, CSS, PHP, very basic |
@{}
应该 - 正如我所理解的 - 占用第一列和分隔符之间的所有空白,但在这里它只是被忽略了,我不知道为什么。=> 在这个例子中,我想将第二列和分隔线向左移动并将其稍微推在一起,以便两列都可见并且不会被切断。
第二种方法,使用tabulary
<!-- language: lang-latex -->
\documentclass[11pt,a4paper]{moderncv}
\moderncvstyle{casual}
\moderncvcolor{blue}
\usepackage{layout}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage[utf8]{inputenc}
\usepackage[top=1in, bottom=1.25in, left=1.25in, right=1.25in]{geometry}
\usepackage{tabulary}
\begin{document}
\section{headline}
\begin{tabulary}{1.5\textwidth }{L|L}
\cventry{}{c\#}{basic}{}{}{} & \cventry{}{UNIX}{basic}{}{}{} \\
\vspace{-2cm} & \vspace{-2cm} \\
\cventry{}{vim}{basic}{}{}{} & \cventry{}{\LaTeX}{basic}{}{}{} \\
\vspace{-2cm} & \vspace{-2cm} \\
\cventry{}{HTML, CSS, PHP}{very basic}{}{}{} \\
\end{tabulary}
\end{document}
结果是:
headline site border
======== :
:
C#, basic | UNIX, basic :
| :
vim, basic | LaTeX, basic :
| :
HTML, CSS, PHP, very basic | :
使用它的目的\vspace
是为了消除行之间可见的空白,这样它在垂直方向上就会有点挤压——不幸的是,\vspace
它无法被识别,我也不知道为什么。
第三种方法,使用tabu
<!-- language: lang-latex -->
\documentclass[11pt,a4paper]{moderncv}
\moderncvstyle{casual}
\moderncvcolor{blue}
\usepackage{layout}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage[utf8]{inputenc}
\usepackage[top=1in, bottom=1.25in, left=1.25in, right=1.25in]{geometry}
\usepackage{tabu}
\begin{document}
\section{headline}
\tracingtabu=3
\tabulinesep=-10mm
\begin{tabu} to 170mm {X[1.5,l] | X[1,l]}
\cventry{}{C\#}{basic}{}{}{} & \cventry{}{UNIX}{basic}{}{}{} \\
\cventry{}{vim}{basic}{}{}{} & \cventry{}{\LaTeX}{basic}{}{}{} \\
\cventry{}{HTML, CSS, PHP}{very basic}{}{}{}
\end{tabu}
\end{document}
结果是:
headline site border
======== :
:
C#, basic | UNIX, basic :
| :
vim, basic | LaTeX, basic :
| :
HTML, CSS, PHP, very basic | :
\tabulinesep=-10mm
应该根据禁忌文档指定行之间的最小空白量,这确实有效 - 但只能“增加”空白,而不是“减少”。
\tracingtabu=3
应该有助于调试禁忌,但日志中的附加值对我没有帮助,我没有发现任何有用的东西。
=>有什么想法吗?我希望我没有忘记什么。
从日志文件中:
! Undefined control sequence.
<argument> \@firstname
{}~\@lastname {}
l.13 \begin{document}
尽管它是他的代码的精确副本。
答案1
您尝试过minipage
吗multicols
?
\documentclass[11pt,a4paper]{moderncv}
\moderncvstyle{casual}
\moderncvcolor{blue}
\usepackage{layout}
\usepackage{multicol}
\usepackage{lmodern}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage[utf8]{inputenc}
\usepackage[top=1in, bottom=1.25in, left=1.25in, right=1.25in]{geometry}
\firstname{}
\lastname{}
\setlength{\columnseprule}{0.4pt}
\begin{document}
\section{headline}
\hspace*{\hintscolumnwidth}%
\begin{minipage}{\maincolumnwidth}
\setlength{\hintscolumnwidth}{0pt}
\begin{multicols}{2}
\cventry{}{C\#}{basic}{}{}{} \par \cventry{}{UNIX}{basic}{}{}{} \par
\cventry{}{vim}{basic}{}{}{} \par \cventry{}{\LaTeX}{basic}{}{}{} \par
\cventry{}{HTML, CSS, PHP}{very basic}{}{}{} \par
\end{multicols}
\end{minipage}
\end{document}