tabularx 中的对齐文本和多列大小

tabularx 中的对齐文本和多列大小

我想创建包含(大量)对齐文本和一些多列的表格。我的示例如下。它或多或少可行……但是

  1. 我收到很多未满的 \hbox 通知,我认为这是因为文本没有向左刷新...我该如何摆脱它们?(我不希望我的文本向左刷新}

  2. 我不太清楚如何实现多列,我只想让它跨越两列。有没有更好的方法?

我看到了这个使用 tabularx 时计算 \multicolumn 大小的正确方法是什么?但对我来说,多列看起来不太正确。

谢谢!

\documentclass[a4paper,11pt,fleqn]{book}

\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{tabularx,calc} 
\usepackage{adjustbox} 
\usepackage{array}
\usepackage{multicol}%,tocbibind, ,fullpage,lastpage,framed}
\usepackage{multirow,booktabs}


\def\tabularxcolumn#1{m{#1}} %defines the X column to use m (\parbox[c]) instead of p (`parbox[t]`).

\begin{document}



\begin{table}
\setlength{\extrarowheight}{5 pt}
\begin{center}
  \begin{tabularx}{\linewidth}{  X  X  X }
\toprule
\multicolumn{1}{c}{A} & \multicolumn{1}{c}{B}  & \multicolumn{1}{c}{C} \\
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus
&
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus
& 
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus\\ 

\multicolumn{2}{m{0.66\linewidth-2\tabcolsep}}{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus} &
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus\\    

\bottomrule
\end{tabularx}
\end{center}
\end{table}
\end{document}

在此处输入图片描述

答案1

您可以使用

 \begin{tabularx}{\linewidth}{*3{>{\sloppy\arraybackslash} X }}

\multicolumn{2}{m{0.66\linewidth-2\tabcolsep}}{\sloppy Lorem...

在窄列中使用不规则设置来避免出现警告,例如 而\raggedright不是。或者修改表格中\sloppy的 的值( ...)\hbadness\hbadness=

多列宽度设置还算可以,因为您事先知道宽度,但这XXX意味着您可以(也许应该)在顶层执行相同的操作而tabularx根本不使用,只使用m固定宽度的列。

如果需要跨越两列X宽度未知的列,可以使用

   \multicolumn{2}{>{\sloppy\setlength\hsize{\dimexpr 2\hsize+2\tabcolsep\relax}}X}{Lorem..} 

相关内容