
\documentclass[a4paper,headsepline,12pt,toc=index,
toc=bibliography,ngerman]{scrreprt}
\usepackage{multirow}
\usepackage{graphicx}
\begin{document}
{
\renewcommand{\arraystretch}{2}
\begin{table}[htbp]
\centering
\caption{My caption}
\label{my-label}
\resizebox{\textwidth}{!}{%
\begin{tabular}{|c|c|c|c|c|c|c|}
\hline
\multirow{2}{*}{\textbf{Method}} & \multicolumn{2}{c|}{\textbf{\begin{tabular}[c]{@{}c@{}}Non-frictional Parallelepiped\end{tabular}}} & \multicolumn{2}{c|}{\textbf{\begin{tabular}[c]{@{}c@{}}Non-frictional Knight\end{tabular}}} & \multicolumn{2}{c|}{\textbf{\begin{tabular}[c]{@{}c@{}}Frictional Knight\end{tabular}}} \\ \cline{2-7}
& \multicolumn{2}{c|}{1880 Experimental Cases} & \multicolumn{2}{c|}{21357 Experimental Cases} & \multicolumn{2}{c|}{21357 Experimental Cases} \\ \hline
\multirow{2}{*}{\begin{tabular}[c]{@{}c@{}}Modified NEW Method \end{tabular}} & Final Quality & Time (s) & Final Quality & Time (s) & Final Quality & Time (s) \\ \cline{2-7}
& \begin{tabular}[c]{@{}c@{}}0.200 in 30 samples with pop size 400\end{tabular} & 35.0 & \begin{tabular}[c]{@{}c@{}}0.126 in 20 samples with pop. size 200\end{tabular} & 63.8 & \begin{tabular}[c]{@{}c@{}}0.146 in 20 samples with pop. size 200\end{tabular} & 368.8 \\ \hline
\end{tabular}%
}
\end{table}
}
\end{document}
答え1
tabularx
7 つの等幅列を持つ環境を使用することをお勧めします。これにより、すべての内部tabular
環境を省くことができます。また、このアプローチでは、表形式の資料をテキスト ブロックの幅内に収めるための指示も不要になります\resizebox
。このアプローチを採用した結果は、以下の最初の表に示されています。
このテーマのバリエーションとして、すべての列の幅を同じにする必要はない(あるいは望ましくない)と決めることもできます。代わりに、たとえば「最終品質」列の幅を「時間」列の 3 倍にすると決めることもできます。これも、tabularx
下の 2 番目の表に示すように、環境で処理できます。2 番目のtabularx
環境は、最初の環境とセットアップ行のみが異なります。最初の環境は次のように定義されます。
\begin{tabularx}{\textwidth}{|*{7}{C|}}
2 番目には、次のようなより複雑な定義があります。
\begin{tabularx}{\textwidth}{|C|*{3}{>{\hsize=1.5\hsize}C|>{\hsize=0.5\hsize}C|}}
へのスイッチと組み合わせることで\footnotesize
、このアプローチは目的の形式を実現できるようです。
どちらのアプローチも\resizebox
、極小の文字を使用して最終的に生成されるよりもはるかに優れているようです。元のコードの結果を示す 3 番目の表を参照してください。
\documentclass[a4paper,headsepline,12pt,toc=index,
toc=bibliography,ngerman]{scrreprt}
\usepackage{tabularx,graphicx,multirow}
\newcolumntype{C}{>{\centering\arraybackslash}X}
\begin{document}
\begin{table}[htbp]
\renewcommand{\arraystretch}{1.5}
\setlength\tabcolsep{3pt}
\caption{Equal-width columns, \texttt{\string\normalsize}} \label{label-one}
\begin{tabularx}{\textwidth}{|*{7}{C|}}
\hline
\textbf{Method}
& \multicolumn{2}{>{\hsize=2\hsize}C|}{\bfseries Non-frictional Parallelepiped}
& \multicolumn{2}{>{\hsize=2\hsize}C|}{\bfseries Non-frictional Knight}
& \multicolumn{2}{>{\hsize=2\hsize}C|}{\bfseries Frictional Knight} \\
\cline{2-7}
& \multicolumn{2}{>{\hsize=2\hsize}C|}{1880 Experimental Cases}
& \multicolumn{2}{>{\hsize=2\hsize}C|}{21357 Experimental Cases}
& \multicolumn{2}{>{\hsize=2\hsize}C|}{21357 Experimental Cases} \\
\hline
Mod.\ new Method
& Final Quality & Time (s)
& Final Quality & Time (s)
& Final Quality & Time (s) \\
\cline{2-7}
& 0.200 in 30~samples with pop.\ size 400 & 35.0
& 0.126 in 20~samples with pop.\ size 200 & 63.8
& 0.146 in 20~samples with pop.\ size 200 & 368.8 \\
\hline
\end{tabularx}
\bigskip
\footnotesize
\caption{Unequal-width columns, \texttt{\string\footnotesize}} \label{label-two}
\begin{tabularx}{\textwidth}{|C|
*{3}{>{\hsize=1.5\hsize}C|>{\hsize=0.5\hsize}C|}}
\hline
\textbf{Method}
& \multicolumn{2}{>{\hsize=2\hsize}C|}{\bfseries Non-frictional Parallelepiped}
& \multicolumn{2}{>{\hsize=2\hsize}C|}{\bfseries Non-frictional Knight}
& \multicolumn{2}{>{\hsize=2\hsize}C|}{\bfseries Frictional Knight} \\
\cline{2-7}
& \multicolumn{2}{>{\hsize=2\hsize}C|}{1880 Experimental Cases}
& \multicolumn{2}{>{\hsize=2\hsize}C|}{21357 Experimental Cases}
& \multicolumn{2}{>{\hsize=2\hsize}C|}{21357 Experimental Cases} \\
\hline
Mod.\ new Method
& Final Quality & Time (s)
& Final Quality & Time (s)
& Final Quality & Time (s) \\
\cline{2-7}
& 0.200 in 30~samples with pop.\ size 400 & 35.0
& 0.126 in 20~samples with pop.\ size 200 & 63.8
& 0.146 in 20~samples with pop.\ size 200 & 368.8 \\
\hline
\end{tabularx}
\bigskip
\normalsize
\renewcommand{\arraystretch}{2}
\caption{Original solution, with \texttt{\string\resizebox}}\label{label-three}
\resizebox{\textwidth}{!}{%
\begin{tabular}{|c|c|c|c|c|c|c|}
\hline
\multirow{2}{*}{\textbf{Method}}
& \multicolumn{2}{c|}{\textbf{\begin{tabular}[c]{@{}c@{}}Non-frictional Parallelepiped\end{tabular}}}
& \multicolumn{2}{c|}{\textbf{\begin{tabular}[c]{@{}c@{}}Non-frictional Knight\end{tabular}}}
& \multicolumn{2}{c|}{\textbf{\begin{tabular}[c]{@{}c@{}}Frictional Knight\end{tabular}}} \\
\cline{2-7}
& \multicolumn{2}{c|}{1880 Experimental Cases}
& \multicolumn{2}{c|}{21357 Experimental Cases}
& \multicolumn{2}{c|}{21357 Experimental Cases}
\\ \hline
\multirow{2}{*}{\begin{tabular}[c]{@{}c@{}}Modified NEW Method \end{tabular}}
& Final Quality & Time (s)
& Final Quality & Time (s)
& Final Quality & Time (s) \\
\cline{2-7}
& \begin{tabular}[c]{@{}c@{}}0.200 in 30 samples with pop size 400\end{tabular} & 35.0
& \begin{tabular}[c]{@{}c@{}}0.126 in 20 samples with pop. size 200\end{tabular} & 63.8
& \begin{tabular}[c]{@{}c@{}}0.146 in 20 samples with pop. size 200\end{tabular} & 368.8 \\
\hline
\end{tabular}%
}
\end{table}
\end{document}