Estoy intentando alinear horizontalmente el texto que se ha rotado en una tabla. Quiero que el texto rotado "Lorem Ipsum" y el texto rotado "Lorem Ipsum & Lorem Ipsum" estén centrados horizontalmente en la celda. Cuando ajusto el ancho de cada columna manualmente, la alineación ya no está centrada. Necesito modificar el ancho de cada columna para que mi tabla quepa en el ancho de una sola columna.
Intenté usar el \multirow
comando de¿Cómo puedo alinear el texto rotado en una tabla en la parte inferior?pero solo pude modificar la alineación vertical.
Así es como se ve mi mesa:
Aquí está el código (disculpas si incluí algunos paquetes innecesarios):
\documentclass{article}
\usepackage{array}
\usepackage{tabularx}
\usepackage{rotating}
\usepackage{lipsum}
\usepackage{multirow}
\begin{document}
\newcommand\RotText[1]{\fontsize{9}{9}\selectfont \rotatebox[origin=c]{90}{\parbox{2.6cm}{\centering#1}}}
\newcolumntype{G}{>{\centering\arraybackslash}m{.0625cm}}
\newcolumntype{U}{>{\centering\arraybackslash}m{.375cm}}
{\centering
\begin{center}\begin{table}[ht]\caption{Lorem Ipsum Table}
\footnotesize
\centering
\begin{tabular}{|c|G|U|U|U|U|G|G|G|U|}
\hline
& \multicolumn{9}{c|}{Lorem Ipsum} \\
\cline{2-10}
Instruction & \RotText{Lorem Ipsum} & \RotText{Lorem Ipsum \& Lorem Ipsum} & \RotText{Lorem Ipsum \& Lorem Ipsum} & \RotText{Lorem Ipsum \& Lorem Ipsum} &
\RotText{Lorem Ipsum \& Lorem Ipsum} & \RotText{Lorem Ipsum} & \RotText{Lorem Ipsum} & \RotText{Lorem Ipsum} & \RotText{Lorem Ipsum \& Lorem Ipsum} \\
\hline
Lorem Ipsum &
& & X & & & & & & \\
\hline
\end{tabular}
\end{table}
\end{center}
}
\lipsum
\end{document}
Respuesta1
SOLUCIÓN REVISADA
Uno de los problemas con su MWE y mi modificación anterior fue que no tenía en cuenta el espacio natural asignado, de forma predeterminada, entre columnas, definido por la longitud \tabcolsep
. Si se desea estrecho, lo primero que debe hacer es desactivarlo con \setlength\tabcolsep{0pt}
. Entonces, no se \vspace
requieren ajustes y el problema es determinar el ancho de columna que satisfaga sus requisitos.
Aquí, me esforcé por hacer las columnas lo más estrechas posible, nuevamente, sin ajustes. Tenga en cuenta que guardé una copia \tabcolsep
en \svtabcolsep
, por si necesito restablecerla más tarde.
\documentclass{article}
\usepackage{array}
\usepackage{tabularx}
\usepackage{rotating}
\usepackage{lipsum}
\usepackage{multirow}
\begin{document}
\let\svtabcolsep\tabcolsep
\setlength\tabcolsep{0pt}
\newcommand\RotText[1]{\fontsize{9}{9}\selectfont
\rotatebox[origin=c]{90}{\parbox{2.6cm}{%
\centering#1}}}
\newcolumntype{G}{>{\centering\arraybackslash}m{.35cm}}
\newcolumntype{U}{>{\centering\arraybackslash}m{.62cm}}
\begin{table}[ht]\caption{Lorem Ipsum Table}
\footnotesize
\centering
\begin{tabular}{|c|G|U|U|U|U|G|G|G|U|}
\hline
& \multicolumn{9}{c|}{Lorem Ipsum} \\
\cline{2-10}
Instruction & \RotText{Lorem Ipsum} & \RotText{Lorem Ipsum \& Lorem Ipsum} & \RotText{Lorem Ipsum \& Lorem Ipsum} & \RotText{Lorem Ipsum \& Lorem Ipsum} &
\RotText{Lorem Ipsum \& Lorem Ipsum} & \RotText{Lorem Ipsum} & \RotText{Lorem Ipsum} & \RotText{Lorem Ipsum} & \RotText{Lorem Ipsum \& Lorem Ipsum} \\
\hline
Lorem Ipsum &
& & X & & & & & & \\
\hline
\end{tabular}
\end{table}
\lipsum
\end{document}
Tenga en cuenta que incluso podría prescindir de los tipos de columnas G
y U
, convirtiéndolos en su lugar c
y utilizando un valor pequeño y finito de \tabcolsep
para lograr su objetivo.
\let\svtabcolsep\tabcolsep
\setlength\tabcolsep{.3pt}
\newcolumntype{G}{c}
\newcolumntype{U}{c}
Respuesta2
Tu caja estabalejosmás ancho que el ancho especificado de la columna, por lo que el centrado no podría funcionar. Además, no coloque la mesa dentro de un entorno central, ya que flotará y dejará un espacio vertical falso desde la pantalla central sin nada dentro.
\documentclass{article}
\usepackage{array}
\usepackage{tabularx}
\usepackage{rotating}
\usepackage{lipsum}
\usepackage{multirow}
\begin{document}
\newcommand\RotText[1]{\rotatebox[origin=c]{90}{\parbox{2.6cm}{\centering#1}}}
\newcolumntype{G}{>{\centering\arraybackslash}m{.6cm}}
\newcolumntype{U}{>{\centering\arraybackslash}m{.6cm}}
\setlength\extrarowheight{3pt}
\begin{table}[ht]\caption{Lorem Ipsum Table}
\footnotesize
\centering
\begin{tabular}{|c|G|U|U|U|U|G|G|G|U|}
\hline
& \multicolumn{9}{c|}{Lorem Ipsum} \\
\cline{2-10}
Instruction & \RotText{Lorem Ipsum} & \RotText{Lorem Ipsum \& Lorem Ipsum} & \RotText{Lorem Ipsum \& Lorem Ipsum} & \RotText{Lorem Ipsum \& Lorem Ipsum} &
\RotText{Lorem Ipsum \& Lorem Ipsum} & \RotText{Lorem Ipsum} & \RotText{Lorem Ipsum} & \RotText{Lorem Ipsum} & \RotText{Lorem Ipsum \& Lorem Ipsum} \\
\hline
Lorem Ipsum &
& & X & & & & & & \\
\hline
\end{tabular}
\end{table}
\lipsum
\end{document}
Respuesta3
Si realmente quieres empacarlos bien...
\documentclass{article}
\usepackage{array}
\usepackage{tabularx}
\usepackage{rotating}
\usepackage{lipsum}
\usepackage{multirow}
\begin{document}
\newcommand\RotText[1]{\fontsize{9}{9}\selectfont \rotatebox[origin=c]{90}{\parbox{2.6cm}{\centering#1}}}
\newcolumntype{C}{@{\hspace{2pt}}c@{\hspace{1pt}}}
\begin{table}[ht]\caption{Lorem Ipsum Table}
\footnotesize
\centering
\begin{tabular}{|c|C|C|C|C|C|C|C|C|C|}
\hline
& \multicolumn{9}{c|}{Lorem Ipsum} \\
\cline{2-10}
Instruction & \RotText{Lorem Ipsum} & \RotText{Lorem Ipsum \& Lorem Ipsum} & \RotText{Lorem Ipsum \& Lorem Ipsum} & \RotText{Lorem Ipsum \& Lorem Ipsum} &
\RotText{Lorem Ipsum \& Lorem Ipsum} & \RotText{Lorem Ipsum} & \RotText{Lorem Ipsum} & \RotText{Lorem Ipsum} & \RotText{Lorem Ipsum \& Lorem Ipsum} \\
\hline
Lorem Ipsum &
& & X & & & & & & \\
\hline
\end{tabular}
\end{table}
\lipsum
\end{document}