我在使用 tabularx 时遇到了问题。我需要在一个非常紧凑的表格中放入较大的文本。结果如下所示:
如您所见,文本有点溢出到下一行。此外,我找不到原因,为什么包含“Kaltstart”的行比其他行大两倍。我的最小示例:
\documentclass[a4paper,12pt]{scrreprt}
\usepackage{multirow}
\usepackage{tabularx}
\newcolumntype{s}{>{\hsize=.17\hsize}X}
\newcolumntype{g}{>{\hsize=.5\hsize}X}
\renewcommand\arraystretch{1.2}
\begin{document}
\begin{table}
\caption{caption}
\begin{tabularx}{\textwidth}{|g|X|g|g|s|s|s|s|}
\hline
A & & B & C & D & E & F & G \\ \hline
A & B & & C & 373 & 361 & 679 & 676 \\ \cline{2-8}
&A& & B & 321 & 321 & 660 & 660 \\ \cline{2-8}
&A& & B & 210 & 210 & 245 & 245 \\\hline
Start-Parameter &\multirow{3}{\linewidth}{Zeit zw. Anforderung und techn. Mindestlast bei Anfahrt}
& Kaltstart &min &500 &500 &515 &515 \\ \cline{3-8}
& &A&min &470 &470 &433 &433 \\ \cline{3-8}
& &B &min &470 &470 &380 &380 \\ \cline{2-8}
&\multirow{4}{\linewidth}{Zeit zw. Synchronisation und techn. Mindestlast}
& Kaltstart &min &500 &500 &515 &515 \\ \cline{3-8}
& & A &min &470 &470 &433 &433 \\ \cline{3-8}
& & B &min &470 &470 &380 &380 \\ \cline{2-8}
&\multirow{3}{\linewidth}{Duchschnittsgradient zw. Synchronisation und technischer Mindestlast}
& Kaltstart &MW/min &2,6 &2,6 &4,5 &4,5 \\ \cline{3-8}
& & A &MW/min &3,5 &3,5 &10,7 &10,7 \\ \cline{3-8}
& & B &MW/min &3,5 &3,5 &12,3 &12,3 \\ \hline
\end{tabularx}
\label{tab:meinetabelle}
\end{table}
\end{document}
遗憾的是,这个例子没有我希望的那么好看。非常欢迎提出建议,让它更容易阅读!
注意:ABCDEFG 是黑色数据的占位符。
答案1
一些评论和意见:
X
仅当需要换行时才应使用包的列类型。tabularx
由于最后 6 列似乎不需要换行,我建议您X
仅对前 2 列使用(或修改版本,参见下面的代码)。请注意,列的(相对)宽度之和X
必须等于类型的列数X
。在下面的代码中,0.6+1.4=2=类型的列数X
。我还会取消
\multirow
包装器,而是集中精力将第二列的宽度设置得足够大,以便单元格内容占用的行数不超过 3 行。为什么是 3 行?因为单元格右侧有 3 行。删除所有垂直线,使用较少但间距适当的水平线,让表格看起来更开放。在行间添加空白与画线一样有效,但视觉干扰更少。
\documentclass[a4paper,12pt]{scrreprt}
\usepackage[ngerman]{babel}
\usepackage{tabularx,ragged2e,booktabs,amsmath}
\newcolumntype{L}[1]{>{\RaggedRight\arraybackslash\hspace{0pt}%
\hsize=#1\hsize}X}
\newcolumntype{P}{>{\RaggedRight\hspace{0pt}}p{\hsize}}
\newcommand{\mycell}[1]{\smash[b]{%
\begin{tabular}[t]{@{}P@{}} #1 \end{tabular}}}
\begin{document}
\begin{table}
\caption{caption} \label{tab:meinetabelle}
\begin{tabularx}{\textwidth}{@{} L{0.6} L{1.4} *{6}{c} @{}}
\toprule
A & & B & C & D & E & F & G \\
\midrule
A & B & & C & 373 & 361 & 679 & 676 \\
& A & & B & 321 & 321 & 660 & 660 \\
& A & & B & 210 & 210 & 245 & 245 \\
\addlinespace
\mycell{Startparameter}
& \mycell{Zeit zw. Anforderung und techn. Mindestlast bei Anfahrt}
& Kaltstart &min &500 &500 &515 &515 \\
& &A &min &470 &470 &433 &433 \\
& &B &min &470 &470 &380 &380 \\
\addlinespace
& \mycell{Zeit zw. Synchronisation und techn.\ Mindestlast}
& Kaltstart &min &500 &500 &515 &515 \\
& & A &min &470 &470 &433 &433 \\
& & B &min &470 &470 &380 &380 \\
\addlinespace
& \mycell{Duchschnittsgradient zw. Synchronisation und technischer Mindestlast}
& Kaltstart &MW/min &2,6 &2,6 &4,5 &4,5 \\
& & A &MW/min &3,5 &3,5 &10,7 &10,7 \\
& & B &MW/min &3,5 &3,5 &12,3 &12,3 \\
\bottomrule
\end{tabularx}
\end{table}
\end{document}