如何编写表格宏来确保页面上的多个表格对齐

如何编写表格宏来确保页面上的多个表格对齐

我正在尝试编写一个宏,以便将工作/教育经历整齐地放在简历的一页上。为此,我设计了一个表格,有三列,总宽度 = \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}

主要建议是考虑使用tabularxp用于通过 -column 将具有动态宽度的 aragraph 样式列扩展到表格宽度的其余部分。因此,使用或(fixed - idth、 ight-aligned)X指定已知/固定宽度的内容,并为您希望自动宽度计算填充表格的列插入。p{<len>}wr{<len>}wrX

相关内容