表格列宽和列间距

表格列宽和列间距

情况

我定义了自定义列类型,以便管理列宽和文本对齐。我定义这些列类型如下:

\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1\linewidth}}

问题

当使用这些自定义列类型时,宽度参数的总和不能等于 1。实际上,它没有考虑列间距。

问题

有没有办法从声明tabcolsep中分配的长度中减去长度newcolumntype

演示

演示

平均能量损失

\documentclass[draft]{article}

\usepackage{mwe}
\usepackage[showframe]{geometry}
\usepackage{booktabs}
\usepackage{array}

\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1\linewidth}}

\begin{document}

% Overfull \hbox (12.0pt too wide)
\noindent
\begin{tabular}{L{1}}
  \toprule
  \lipsum[1] \\
  \bottomrule
\end{tabular}

% Manual unreliable fix
\noindent
\begin{tabular}{L{.97}}
  \toprule
  \lipsum[1] \\
  \bottomrule
\end{tabular}

\end{document}

答案1

您可以使用

p{\dimexpr#1\linewidth-2\tabcolsep\relax}

相关内容