\多列表格单元格不适合页面宽度

\多列表格单元格不适合页面宽度

我有这个代码:

\documentclass{article}
\usepackage{lipsum}
\begin{document}
\begin{tabular}{ |c|c| }
  \hline
  \multicolumn{2}{|c}{\lipsum[1]}\\
  \hline
   text text text text text text & text text text text\\
  \hline
\end{tabular}
\end{document}

它生成了以下内容:

在此处输入图片描述

如何使顶部单元格适合页面大小,就像 X 列格式一样?


以下是基于 Mico 示例的代码。它创建了一个页面宽度的表格,其中多列左侧有一列。(调整是1.2pt为了考虑三条垂直线,每条线都0.4pt宽,它们构成了环境的总宽度tabularx。)

\documentclass{article}
\usepackage{lipsum,tabularx,calc,fullpage}
\newcolumntype{Y}{>{\centering\arraybackslash}X} % centered version of "X" column type
\begin{document}
\noindent
\begin{tabularx}{\textwidth}{|p{3cm}|Y|Y|}
  \hline
  text text text text text & 
  \multicolumn{2}{p{\dimexpr\textwidth -1.2pt - 4\tabcolsep-3cm}|}{\lipsum[1]}\\
  \hline
  &text text text text text text & text text text text\\
  \hline
\end{tabularx}
\end{document}

答案1

您可以使用tabularx包及其同名tabularx环境。唯一棘手的部分是如何获取 2 列项的宽度:要计算允许的宽度,您必须从\textwidth以下项目中减去:2\tabcolsep,以考虑左右边缘的空白,以及0.8pt(=2*0.4pt),以考虑两条垂直线的宽度。

\documentclass{article}
\usepackage{lipsum,tabularx}
\newcolumntype{Y}{>{\centering\arraybackslash}X} % centered version of "X" column type
\begin{document}
\noindent
\begin{tabularx}{\textwidth}{|c|Y|}
  \hline
  \multicolumn{2}{|p{\dimexpr\textwidth-2\tabcolsep-0.8pt}|}{\lipsum[2]}\\
  \hline
   text text text text text text & text text text text\\
  \hline
\end{tabularx}
\end{document}

在此处输入图片描述

附录:如果希望两列具有相同的宽度(并且仍然使其内容居中),只需将规范的第二个参数中的替换c为:Ytabularx

在此处输入图片描述

相关内容