这是我的表格(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{...}
(或m
或b
)类型或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}