我在创建表格时遇到了一些问题。我想要一个没有边框的表格,填满整个文本宽度,两列分别左右对齐。但是,我只能创建一个与整个文本宽度相同的表格,或者左右对齐,但不能同时对齐。我尝试通过>{\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}