我正在尝试为我的简历创建此部分,但我不知道如何很好地对齐这些表格内容。我希望它们全部在“|”或长划线处对齐。
这是我现在拥有的代码。它创建一个包含 3 列的表。
\usepackage{tabularx}
\begin{document}
\section*{LANGUAGES}
\begin{tabularx}{1\textwidth}{
>{\raggedright\arraybackslash}X
>{\raggedright\arraybackslash}X
>{\raggedright\arraybackslash}X
}
\textbf{English} (Native) & \textbf{French} & \textbf{Polish} \\ \\
Speaking | \textit{Fluent} & Speaking | \textit{Limited} & Speaking | \textit{Proficient} \\
Listening | \textit{Fluent} & Listening | \textit{Limited} & Listening | \textit{Proficient} \\
Reading | \textit{Fluent} & Reading | \textit{Proficient} & Reading | \textit{Limited} \\
Writing | \textit{Fluent} & Writing | \textit{Intermediate} & Writing | \textit{Basic} \\
\end{tabularx}
\end{document}
这就是它的输出。
我希望它输出类似这样的内容
所有内容均在破折号处对齐(但在所有 3 列中完成)。
有没有办法在表格内做到这一点?我可以在表格内创建子表格来执行此操作吗?或者有某种包可以做到这一点?
答案1
您可以使用 来完成tabular*
。
\documentclass{article}
\usepackage{geometry}% for less generous margins
\begin{document}
\section*{LANGUAGES}
\noindent
\begin{tabular*}{\textwidth}{
@{\extracolsep{\fill}}
l @{\ ---\ \extracolsep{0pt}} l @{\extracolsep{\fill}}
l @{\ ---\ \extracolsep{0pt}} l @{\extracolsep{\fill}}
l @{\ ---\ \extracolsep{0pt}} l
@{}
}
\multicolumn{2}{@{}l}{\textbf{English} (Native)} &
\multicolumn{2}{@{}l}{\textbf{French}} &
\multicolumn{2}{@{}l@{}}{\textbf{Polish}} \\[2ex]
Speaking & \textit{Fluent} & Speaking & \textit{Limited} & Speaking & \textit{Proficient} \\
Listening & \textit{Fluent} & Listening & \textit{Limited} & Listening & \textit{Proficient} \\
Reading & \textit{Fluent} & Reading & \textit{Proficient} & Reading & \textit{Limited} \\
Writing & \textit{Fluent} & Writing & \textit{Intermediate} & Writing & \textit{Basic} \\
\end{tabular*}
\end{document}
请注意,破折号不是输入为|
。|
可能会产生长破折号,这只是偶然的,例如,如果您使用 T1 编码,它就会失败。长破折号输入为---
。
答案2
使用tabularx
,右-左对齐:
\documentclass{article}
\usepackage{geometry}
\usepackage{tabularx}
\begin{document}
\begin{tabularx}{\textwidth}{@{}
*{3}{r @{\ ---\ }
>{\raggedright\arraybackslash\itshape}X}
@{}}
%
\multicolumn{2}{l}{\textbf{English} (Native)}
& \multicolumn{2}{l}{\textbf{French}}
& \multicolumn{2}{l}{\textbf{Polish}} \\[1ex]
Speaking & Fluent & Speaking & Limited & Speaking & Proficient \\
Listening & Fluent & Listening & Limited & Listening & Proficient \\
Reading & Fluent & Reading & Proficient & Reading & Limited \\
Writing & Fluent & Writing & Intermediate & Writing & Basic \\
\end{tabularx}
\end{document}