在表格单元格内减去 \marginparsep

在表格单元格内减去 \marginparsep

这是这个帖子。我需要表格内第二个单元格的内容与正文的边缘对齐。\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}

相关内容