如何让表格中的文字左对齐、居中、并且美观地换行?

如何让表格中的文字左对齐、居中、并且美观地换行?

各位有经验的朋友,我尝试在我的表格中插入一个较长的段落。但是我发现无论我使用pas 段落还是使用c,文本都无法漂亮地换行。我希望上下文可以:

  • 单词左对齐。
  • 整个段落位于单元格的中央和左侧。
  • 单元格的长度是固定的。(我用过,w{c}{30mm}但是不起作用。)

您能给我一些提示吗?非常感谢!


这是我的代码:

\begin{table}[htbp!]
\caption{Set the content in the middle center of the table}
\centering
\def\arraystretch{1.1}

\begin{tabular}{*{1}{p{30mm}}*{5}{w{c}{10mm}}}

\toprule
\multicolumn{2}{c}{Content} & A & B & C & D \\ [1ex]
 
\midrule
\multicolumn{2}{c}{The content} & & & & \\ [0.5ex]

\cmidrule(lr){1-2}
\multirow{9}{2em}{Here is the text contect that I want to beautifully aligned in the middle center} & A & 0 & 0 & 0 & 0 \\ [0.5ex]
 & A & 0 & 0 & 0 & 0 \\ [0.5ex]
 & A & 0 & 0 & 0 & 0 \\ [0.5ex]
 & A & 0 & 0 & 0 & 0 \\ [0.5ex]
 & A & 0 & 0 & 0 & 0 \\ [0.5ex]
 & A & 0 & 0 & 0 & 0 \\ [0.5ex]
 & A & 0 & 0 & 0 & 0 \\ [0.5ex]
 & A & 0 & 0 & 0 & 0 \\ [0.5ex]
 & A & 0 & 0 & 0 & 0 \\ [0.5ex]

\bottomrule
\end{tabular}

\label{table_main}
\end{table}

以下是我想要实现的目标:

在此处输入图片描述

遗憾的是,我的代码可以实现以下效果:

在此处输入图片描述

答案1

如果您要求使用 2em 的文本宽度,TeX 会这样做。当\multirow材料位于“固定宽度”列中时,请改用=

不要 污染 你的 餐桌\\[0.5ex]

\documentclass{article}
\usepackage{array,booktabs}
\usepackage{multirow}

\begin{document}

\begin{table}[htbp!]
\centering
\renewcommand{\arraystretch}{1.1}

\caption{Set the content in the middle center of the table}
\label{table_main}

\medskip % or set the caption below, or load caption

\begin{tabular}{*{1}{p{30mm}}*{5}{w{c}{10mm}}}

\toprule
\multicolumn{2}{c}{Content} & A & B & C & D \\
 
\midrule
\multicolumn{2}{c}{The content} & & & & \\ 

\cmidrule(r){1-2}
\multirow{9}{=}{Here is the text contect that I want to beautifully aligned in the middle center} & A & 0 & 0 & 0 & 0 \\ 
 & A & 0 & 0 & 0 & 0 \\ 
 & A & 0 & 0 & 0 & 0 \\ 
 & A & 0 & 0 & 0 & 0 \\ 
 & A & 0 & 0 & 0 & 0 \\ 
 & A & 0 & 0 & 0 & 0 \\ 
 & A & 0 & 0 & 0 & 0 \\ 
 & A & 0 & 0 & 0 & 0 \\ 
 & A & 0 & 0 & 0 & 0 \\ 

\bottomrule
\end{tabular}

\end{table}

\end{document}

在此处输入图片描述

需要注意的一些事项。

  1. 标准类是为表格下方的标题设置的。因此,要么添加一些垂直空间,要么加载caption更改表格上方标题参数的加载项。

  2. 标签应放在 之后(或 之内)\caption。将其放在 之后tabular会使文档维护更加困难。

  3. 污染tabular\\[0.5ex]使得 无法\multirow猜测正确的位置;使用\arraystretch绝不\def

  4. (最重要的。)我不喜欢它\multirow,而且我总是想办法不用它。在这个特定情况下,文本似乎是所有行都通用的解释。因此它应该外部表格。例如在表格下方,这样文本宽度可以更宽,读者在解析文本时也不会遇到太多困难。

\documentclass{article}
\usepackage{array,booktabs}
\usepackage{multirow}

\begin{document}

\begin{table}[htbp!]
\centering
\renewcommand{\arraystretch}{1.1}

\caption{Set the content in the middle center of the table}
\label{table_main}

\medskip % or set the caption below, or load caption

\begin{tabular}{*{5}{w{c}{10mm}}}

\toprule
Content & A & B & C & D \\
 
\midrule
 A & 0 & 0 & 0 & 0 \\ 
 A & 0 & 0 & 0 & 0 \\ 
 A & 0 & 0 & 0 & 0 \\ 
 A & 0 & 0 & 0 & 0 \\ 
 A & 0 & 0 & 0 & 0 \\ 
 A & 0 & 0 & 0 & 0 \\ 
 A & 0 & 0 & 0 & 0 \\ 
 A & 0 & 0 & 0 & 0 \\ 
 A & 0 & 0 & 0 & 0 \\ 

\midrule[\heavyrulewidth]

\multicolumn{5}{@{}p{\dimexpr50mm+10\tabcolsep}@{}}{
  Here is the text contect that I want to beautifully aligned in the middle center}

\end{tabular}

\end{table}

\end{document}

在此处输入图片描述

答案2

抱歉,但不太清楚你的桌子应该是什么样子

相关内容