将两列表格在列之间居中对齐

将两列表格在列之间居中对齐

我目前有一个包含 2 列的表格:左侧为右对齐,右侧为左对齐。我想让表格相对于两列居中:也就是说,让两列之间的分隔线位于页面的中心。我该怎么做?

答案1

如果您知道列的宽度(通过paragraph 样式),可以采用以下方法:

在此处输入图片描述

\documentclass{article}
\usepackage{showframe}% http://ctan.org/pkg/shoframe
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\begin{document}
\noindent
\makebox[\linewidth][c]{%
\hspace*{5cm}%
\begin{tabular}{p{4cm}|p{5cm}}
  \raggedleft\lipsum[2] & \raggedright\lipsum[3]
\end{tabular}%
\hspace*{4cm}%
}
\end{document}

这个想法是,你把所有东西都放在一个居中的框里,周围留出与列等量的空间。在上面的例子中,showframe用于识别文本块边界并突出显示表格对齐。

如果您当前有一个列规范,上述内容也将毫无问题地适用r|l。在这种情况下,最好使用

\usepackage{array}% http://ctan.org/pkg/array
%...
\noindent
\begin{tabular}
  {>{\raggedleft\arraybackslash}p{\dimexpr.5\linewidth-2\tabcolsep-.5\arrayrulewidth}|
   >{\raggedright\arraybackslash}p{\dimexpr.5\linewidth-2\tabcolsep-.5\arrayrulewidth}}
  % <tabular content>
\end{tabular}

附加功能\arraybackslash纠正了 的使用,并通过诸如和(等等)之\\类的格式化命令重新定义。\raggedleft\raggedright

相关内容