Quiero crear una tabla como esta.
No sé cómo crear un encabezado de tabla como ese. Esta es la escritura de látex.
\begin{table*}
\centering
\caption{Some Typical Commands}
\begin{tabular}{|c|c|c|c|c|c|c|c|c|l|} \hline
Product ID&A&Specify Size&Error(\%)&A&Specify Size&Error(\%)&A&Specify Size&Error(\%)\\ \hline
1&Method new&6&11.70&Method+Data&No&3.24&Method+Data&6&10.55\\ \hline
2&A& 1\\ \hline
3&B& 1\\ \hline
4&A& 1\\ \hline
5&B& 1\\ \hline
6&A& 1\\ \hline
7&B& 1\\ \hline
8&A& 1\\ \hline
9&B& 1\\ \hline
10&A& 1\\ \hline\end{tabular}
\end{table*}
Cuando ejecuto el script, el ancho de la tabla queda fuera de la página de esta manera. Cómo establecer una palabra larga en la siguiente línea y fusionar alguna columna.
Respuesta1
Aquí hay una sugerencia ligeramente diferente que se usa makecell
en combinación con un tamaño de fuente más pequeño. También agregué la primera fila de la tabla usando \multicolumn
y centré verticalmente la primera celda usando \multirow
. El siguiente ejemplo contiene una segunda tabla sin líneas verticales. Allí utilicé las reglas horizontales del booktabs
paquete y disminuí ligeramente el tamaño \tabcolsep
.
\documentclass{article}
\usepackage{geometry}
\usepackage{makecell}
\usepackage{multirow}
\usepackage{booktabs}
\begin{document}
\begin{table*}
\small
\centering
\caption{Some Typical Commands}
\begin{tabular}{|c|c|c|c|c|c|c|c|c|l|} \hline
\multirow{3}{*}{\makecell[cc]{Product \\ ID}} & \multicolumn{3}{c|}{1} & \multicolumn{3}{c|}{2} & \multicolumn{3}{c|}{3}\\ \cline{2-10}
& A & \makecell[cc]{Specify\\ Size} & \makecell[cc]{Error\\(\%)} & A & \makecell[cc]{Specify\\ Size} & \makecell[cc]{Error\\(\%)}& A & \makecell[cc]{Specify\\ Size} & \makecell[cc]{Error\\(\%)}\\ \hline
1 & \makecell[cc]{Method \\new} & 6&11.70 & \makecell{Method+\\Data} & No & 3.24 & \makecell{Method+\\Data} & 6 & 10.55\\ \hline
2&A& 1 & & & & & & & \\ \hline
3&B& 1 & & & & & & & \\ \hline
4&A& 1 & & & & & & & \\ \hline
5&B& 1 & & & & & & & \\ \hline
6&A& 1 & & & & & & & \\ \hline
7&B& 1 & & & & & & & \\ \hline
8&A& 1 & & & & & & & \\ \hline
9&B& 1 & & & & & & & \\ \hline
10&A& 1 & & & & & & & \\ \hline\end{tabular}
\end{table*}
\begin{table*}
\setlength{\tabcolsep}{5pt}
\centering
\caption{Some Typical Commands}
\begin{tabular}{cccccccccl} \toprule
\multirow{3.25}{*}{\makecell[cc]{Product \\ ID}} & \multicolumn{3}{c}{1} & \multicolumn{3}{c}{2} & \multicolumn{3}{c}{3}\\
\cmidrule(lr){2-4} \cmidrule(lr){5-7} \cmidrule(lr){8-10}
& A & \makecell[cc]{Specify\\ Size} & \makecell[cc]{Error\\(\%)} & A & \makecell[cc]{Specify\\ Size} & \makecell[cc]{Error\\(\%)}& A & \makecell[cc]{Specify\\ Size} & \makecell[cc]{Error\\(\%)}\\ \midrule
1 & \makecell[cc]{Method \\new} & 6&11.70 & \makecell{Method+\\Data} & No & 3.24 & \makecell{Method+\\Data} & 6 & 10.55\\
2&A& 1\\
3&B& 1\\
4&A& 1\\
5&B& 1\\
6&A& 1\\
7&B& 1\\
8&A& 1\\
9&B& 1\\
10&A& 1\\ \bottomrule
\end{tabular}
\end{table*}
\end{document}
Respuesta2
Podemos hacer que dicha tabla se ajuste a la página, no solo usando saltos de línea con makecell
, sino también reduciendo el valor de \tabcolsep
(6 puntos por defecto) y cargándola geometry
para tener márgenes más decentes (si no usa notas marginales). Agregué una demostración del uso de \multicolumn
:
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[showframe]{geometry}
\usepackage{caption, makecell}
\begin{document}
\begin{table*}
\centering
\setlength{\tabcolsep}{3pt}
\setlength{\extrarowheight}{2pt}
\renewcommand{\theadfont}{\footnotesize\bfseries}
\caption{Some Typical Commands}
\begin{tabular}{|*9{c|}l|} \hline
\thead{Product\\ ID} & \thead{A} & \thead{Specify\\ Size} & \thead{Error \\ (\%)} & \thead{A } & \thead{Specify \\ Size} & \thead{Error\\(\%)}& \thead{A} & \thead{Specify\\ Size} & \thead{Error\\ (\%)} \\ \hline
1 & \makecell{Method\\\ new} & 6 &11.70 & \makecell{Method\\+Data} & No & 3.24 & \makecell{Method\\ +Data}& 6 & 10.55 \\ \hline
2&A& 1 & & \multicolumn{3}{c|}{} &\multicolumn{3}{c|}{} \\ \hline
3&B& 1 & & & & & & &\\ \hline
4&A& 1 & & & & & & &\\ \hline
5&B& 1 & & & & & & & \\ \hline
6&A& 1 & & & & & & &\\ \hline
7&B& 1 & & & & & & &\\ \hline
8&A& 1 & & & & & & &\\ \hline
9&B& 1 & & & & & & &\\ \hline
10&A& 1 & & & & & & &\\ \hline
\end{tabular}
\end{table*}
\end{document}