将长句子放入较窄的表格单元格中

将长句子放入较窄的表格单元格中

这是我的表格(a 和 b 代替实际字母)。如何让全为 b 的句子适合其单元格,而不改变单元格的宽度?

\begin{center}
\begin{tabular}{ K{1.7cm}|K{1.4cm}|K{2.3cm}|K{1.4cm}|K{1cm}|K{1cm}|K{1.4cm}|K{1cm} } \hline

\multirow{6}{*}{bbbbbb bbbbbbbbbb} & \multirow{3}{*}{bbbbb bbbbbb} & aaa & \% & \% & \% & \% & \% \\ \cline{3-8}
 &  & aaaaaaaaaaa & \% & \% & \% & \% & \% \\ \cline{3-8}
 &  & aaaaa & \% & \% & \% & \% & \% \\ \cline{2-8}
 & \multirow{3}{*}{bbbbbb bbbbbbbb}  & aaa & \% & \% & \% & \% & \% \\ \cline{3-8}
 &  & aaaaaaaaaaa & \% & \% & \% & \% & \% \\ \cline{3-8}
 &  & aaaaa & \% & \% & \% & \% & \% \\ \hline      
\end{tabular}
\end{center}

在此处输入图片描述

我的标题包括:

\usepackage{array}
\usepackage{tabulary}
\newcolumntype{K}[1]{>{\centering\arraybackslash}m{#1}}

\usepackage{multirow}
\usepackage{multicol}

谢谢!

答案1

你可以像这样使用 parbox:

\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{array}
\usepackage{tabulary}
\newcolumntype{K}[1]{>{\centering\arraybackslash}m{#1}}
\usepackage{multirow}
\usepackage{multicol}

\begin{document}

\begin{center}
\begin{tabular}{ c|c|c|K{1.4cm}|K{1cm}|K{1cm}|K{1.4cm}|K{1cm} } \hline

\multirow{6}{*}{\parbox{1.9cm}{\centering bbbbbb bbbbbbbbbb}} & \multirow{3}{*}{\parbox{1.7cm}{\centering bbbbb bbbbbb}} & aaa & \% & \% & \% & \% & \% \\ \cline{3-8}
 &  & aaaaaaaaaaa & \% & \% & \% & \% & \% \\ \cline{3-8}
 &  & aaaaa & \% & \% & \% & \% & \% \\ \cline{2-8}
 & \multirow{3}{*}{\parbox{1.7cm}{\centering bbbbbb bbbbbbbb}}  & aaa & \% & \% & \% & \% & \% \\ \cline{3-8}
 &  & aaaaaaaaaaa & \% & \% & \% & \% & \% \\ \cline{3-8}
 &  & aaaaa & \% & \% & \% & \% & \% \\ \hline      
\end{tabular}
\end{center}

\end{document}

输出:

在此处输入图片描述

答案2

您使用的方法multirow是错误的。要将单元格中的文本分成多行,您需要执行以下操作之一:

  • 定义multirow单元格的宽度,例如\multirow{4}{2cm}{ ... text in cell ...}
  • 如果您已经安装了最新版本的multirow软件包(推荐),那么您可以使用\multirow{4}{=}{ ... text in cell ...},其中{=}考虑定义的列类型。为了将文本分成比列更多的行,如果您使用,则必须使用p{...}(或mb)类型或X磁带tabularx

编辑:完全的姆韦. 利用最新multirow包的功能,您可以获得清晰简洁的代码:

\documentclass[a4paper,10pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{array}
\usepackage{tabulary}
\newcolumntype{K}[1]{>{\centering\arraybackslash}m{#1}}
\usepackage{multirow}
\usepackage{multicol}

\begin{document}
\begin{center}
\renewcommand\arraystretch{1.2}
\renewcommand\multirowsetup{\centering} % for horizontal centering of multirow cell content 
    \begin{tabular}{ K{2cm}|K{1.5cm}|K{2.3cm}|c|c|c|c|c} \hline
\multirow{6}{=}{bbbbbb bbbbbbbbbb} 
    &   \multirow{3}{=}{bbbbb bbbbbb} 
        & aaa   & \% & \% & \% & \% & \% \\ \cline{3-8}
    &   & aaaaaaaaaaa 
                & \% & \% & \% & \% & \% \\ \cline{3-8}
    &   & aaaaa & \% & \% & \% & \% & \% \\ \cline{2-8}
    &   \multirow{3}{=}{bbbbbb bbbbbbbb}  
        & aaa   & \% & \% & \% & \% & \% \\ \cline{3-8}
    &   & aaaaaaaaaaa 
                & \% & \% & \% & \% & \% \\ \cline{3-8}
    &   & aaaaa & \% & \% & \% & \% & \% \\ \hline
    \end{tabular}
\end{center}
\end{document}

在此处输入图片描述

相关内容