表格整页 lr

表格整页 lr

我在创建表格时遇到了一些问题。我想要一个没有边框的表格,填满整个文本宽度,两列分别左右对齐。但是,我只能创建一个与整个文本宽度相同的表格,或者左右对齐,但不能同时对齐。我尝试通过>{\raggedright \arraybackslash}m{0.05\linewidth}添加第三个空列来实现这一点,但我无法使其左对齐或右对齐。

有人可以帮忙吗?

基本代码:

\begin{tabular}{lr}
a & b \\
  & d
\end{tabular}

答案1

首先tabularx,你可以制作一个r

>{\raggedleft\arraybackslash}X

X列类型会自动处理列宽。

\documentclass{article}
\usepackage{tabularx}
\usepackage{showframe}  %% jusr for demo
\begin{document}
  \noindent
  \begin{tabularx}{\textwidth}{X>{\raggedleft\arraybackslash}X}
    Left & Right\\
    Left & Right
  \end{tabularx}
\end{document}

接下来是tabular*。这里我们使用lr列,但列之间的空间填充了总宽度等于\textwidth

\documentclass{article}
\usepackage{array}
\usepackage{showframe}  %% jusr for demo
\begin{document}
  \noindent
  \begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r}
    Left & Right\\
    Left & Right
  \end{tabular*}
\end{document}

对于p列类型和tabular,我们必须计算列的宽度,然后计算\raggedleft第二列的宽度。

\documentclass{article}
\usepackage{array}
\usepackage{showframe}  %% jusr for demo
\begin{document}
  \noindent
  \begin{tabular}{p{\dimexpr0.5\textwidth-2\tabcolsep\relax}
                  >{\raggedleft\arraybackslash}p{\dimexpr0.5\textwidth-2\tabcolsep\relax}}
    Left & Right\\
    Left & Right
  \end{tabular}
\end{document}

在此处输入图片描述

答案2

无需复杂的计算或额外的包:

\documentclass{article}

\usepackage{showframe} % for the test

\begin{document}

\noindent
\begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}lr@{}}
left & right\\
again & again and again
\end{tabular*}

\end{document}

在此处输入图片描述

相关内容