我正在尝试编写一个宏,以便将工作/教育经历整齐地放在简历的一页上。为此,我设计了一个表格,有三列,总宽度 = \textwidth。
第一列和第二列的文本应左对齐,最后一列的文本应右对齐。重要的是,中间列的文本应与文档中的所有表格对齐。目前,中间列的文本似乎浮动,并且未与文档中的表格对齐。
假设这是由于动态列宽造成的,我该如何强制左列具有特定的宽度(例如 \textwidth 的 30%),以便中间列在所有表格中对齐?
该宏应该能够单独保存在 .sty 文件中,并加载到 .tex 文档中\documentclass{article}
。
下面是我的 LaTeX 宏:
% Define a macro to build a table (4 args: dates, institution, position, description)
\newcommand{\education}[4]{
% Put the first three args in a table
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}llr@{}}
\textbf{#1} & \textbf{#2} & \textbf{#3}
\end{tabular*}
% Description with no hanging and in smaller text
\vspace*{5pt}
\noindent \small #4
% Back to normal size
\normalsize \par
% Some space
\vspace*{1em}
}
答案1
以下内容可能更符合您的要求:
\documentclass{article}
\usepackage{tabularx}
% Define a macro to build a table (4 args: dates, institution, position, description)
\NewDocumentCommand{\education}{ m m m m }{
\par
\addvspace{.7\baselineskip}
% Put the first three args in a table
\noindent\begin{tabularx}{\linewidth}{@{} p{.15\linewidth} X wr{.2\linewidth} @{} }
\bfseries #1% Date
& \bfseries #2% Institution
& \bfseries #3% Position
\end{tabularx}
% Description with no hanging and in smaller text
\par\nobreak\vspace{.5\baselineskip}
\noindent{\small #4\par}%
% Some space
\addvspace{1em}
}
\begin{document}
\education
{Date 1}{Institution 1}{Position 1}{Lorem ipsum}
\education
{Date 2}{Instituion 2 Institution}{Position 2}{Lorem ipsum}
\end{document}
主要建议是考虑使用tabularx
p
用于通过 -column 将具有动态宽度的 aragraph 样式列扩展到表格宽度的其余部分。因此,使用或(fixed - idth、 ight-aligned)X
指定已知/固定宽度的内容,并为您希望自动宽度计算填充表格的列插入。p{<len>}
wr{<len>}
w
r
X