这是这个帖子。我需要表格内第二个单元格的内容与正文的边缘对齐。\raggedleft
接近,但它延伸了\marginparsep
。我找到了一种手动方式来完成此操作。我正在寻找一种自动化方式。
\documentclass{article}
\usepackage{array}
\usepackage{lipsum}
\usepackage[showframe]{geometry}
\ExplSyntaxOn
\dim_new:N \secondlen
\dim_set:Nn\secondlen{0.5\textwidth}
\dim_sub:Nn\secondlen{\marginparsep}
\ExplSyntaxOff
\begin{document}
\ExplSyntaxOn
\dim_use:N\secondlen
\ExplSyntaxOff
\noindent\begin{tabular}
{@{}>{\raggedright}p{0.5\textwidth}>{\raggedleft\arraybackslash}p{204.0023pt}@{}}
\lipsum[1][1] & \lipsum[1][2]
\end{tabular}
\end{document}
答案1
根据您的描述,我明白您想要一个具有两个等宽列的表格,第一列的内容左对齐,第二列的内容右对齐,并且整体表格宽度等于行宽。
为了实现这一点,你可以使用手动计算所需的列宽p{\dimexpr 0.5\linewidth-\tabcolsep}
,也可以让系统tabularx
为你完成这项工作。两个版本都会产生以下输出:
\documentclass{article}
\usepackage{array}
\usepackage{lipsum}
\usepackage[showframe]{geometry}
\usepackage{tabularx}
\begin{document}
\noindent
\begin{tabular}{@{}>{\raggedright\arraybackslash}p{\dimexpr 0.5\linewidth-\tabcolsep}>{\raggedleft\arraybackslash}p{\dimexpr 0.5\linewidth-\tabcolsep}@{}}
\lipsum[1][1] & \lipsum[1][2]
\end{tabular}
\noindent
\begin{tabularx}{\linewidth}{@{}>{\raggedright\arraybackslash}X>{\raggedleft\arraybackslash}X@{}}
\lipsum[1][1] & \lipsum[1][2]
\end{tabularx}
\end{document}