Elpregunta originalSe trata de colocar figuras dentro de un tabular e intentar ajustarlas así:
con un código similar a este:
\documentclass{article}
\usepackage{graphicx}
\usepackage{array}
\begin{document}
\begin{tabular}{|c|>{\centering\arraybackslash}p{17.5mm}|>{\centering\arraybackslash}p{17.5mm}|c|}
\includegraphics[width=35mm]{example-image-a} & \multicolumn{2}{c|}{\includegraphics[width=35mm]{example-image-b}} & \includegraphics[width=35mm]{example-image-c} \\
\multicolumn{2}{|c}{\includegraphics[width=35mm]{example-image-a}} & \multicolumn{2}{|c|}{\includegraphics[width=35mm]{example-image-b}}
\end{tabular}
\end{document}
Eso por alguna razón da este resultado:
¿Por qué sucede esto?
Por supuesto, hay mejores opciones para colocar figuras así y la respuesta en la pregunta vinculada es una de ellas. Pero intentar desarrollar el código con la tabla ayudará a comprender algunas cosas sobre la celda adicional que, si se usa en combinación con
\multicolumn
el comando, reducirá nuestras columnas y esto puede ser inesperado.
Respuesta1
Debe tener en cuenta la reciente adición del w
tipo de columna en el paquete array
: para columnas de ancho fijo con alineación central (y sin texto fluido), puede usar
w{c}{17.5mm}
en lugar de los torpes >{\centering\arraybackslash}{p{17.5mm}
.
Ahora volvamos a tu problema.
La segunda columna se fusiona en ambas filas: primero con la tercera columna, luego con la principal. Entonces, por regla general, la tabla se construye como si esa columna nunca se hubiera especificado para empezar. Esto explica su resultado.
Quieres seis columnas iguales:
\documentclass{article}
\usepackage{graphicx}
\usepackage{array}
\begin{document}
\begin{tabular}{@{} *{6}{w{c}{17.5mm}} @{}}
\multicolumn{2}{c}{\includegraphics[width=35mm]{example-image}} &
\multicolumn{2}{c}{\includegraphics[width=35mm]{example-image}} &
\multicolumn{2}{c}{\includegraphics[width=35mm]{example-image}} \\
&
\multicolumn{2}{c}{\includegraphics[width=35mm]{example-image}} &
\multicolumn{2}{c}{\includegraphics[width=35mm]{example-image}} &
\end{tabular}
\end{document}
Respuesta2
Primer paso...
Ok, tengo 5 figuras y necesito 3 arriba y dos abajo, quiero controlar su ubicación... Un tabular me parece una buena solución...
Pensemos:
Tres en la parte superior: {ccc}
Primera fila normal centrada y dividiré las celdas \multicolumn
en la segunda para compartir el espacio... Pero...
\begin{tabular}{ccc}
\include..&\include..&\include..\\
\multicolumn{2}{c}&\multicolumn{2}{c}
\end{tabular}
¡Oh! escribiendo el segundo \multicolumn
me di cuenta que se convirtieron en 4 columnas... Ni siquiera compilar...
Parece que necesito una cuarta columna:
Intentemos:
- Segundo paso...cuatro columnas:
Dividiré las columnas centrales superiores con \multicolumn
:
\begin{tabular}{cccc}
\include...&\multicolumn{2}{c}{\include...}&\include...\\ %Nice... Let's finish with the next row
\multicolumn{2}{c}{\include...}&\multicolumn{2}{c}{\include}
\end{tabular}
4 en la fila de arriba 4 en la siguiente... ¡perfecto! vamos a compilar
Parece que no conté correctamente... Vamos a contar...
- Arriba de la fila 4 celdas del medio 2 fusionadas
- Debajo de las filas 2 y 2 celdas...
¿Por qué la primera celda de la segunda fila no se fusiona con la segunda? Esto debería dar la cuarta figura centrada en dos primeras columnas como la quinta... ¿Por qué?
¿Necesito agregar una quinta columna?
Vamos a ver:
\begin{tabular}{cccc}
1&2&3&4\\
\include...&\multicolumn{2}{c}{\include...}&\include...\\ %Nice... Let's finish with the next row
\multicolumn{2}{c}{\include...}&\multicolumn{2}{c}{\include}
\end{tabular}
La cuarta imagen se detiene antes de la segunda columna... Pensemos... ¿Necesito 5 columnas?
- Tercer paso...¿Veamos las líneas verticales allí? antes de informar un error... ¡Pero debería hacerlo!
Código completo:
\documentclass{article}
\usepackage{graphicx}
\usepackage{xcolor}
\begin{document}
\begin{tabular}{|c|c|c|c|}
1&2&3&4\\
\includegraphics[width=35mm]{example-image-a} & \multicolumn{2}{c}{\includegraphics[width=35mm]{example-image-b}} & \includegraphics[width=35mm]{example-image-c} \\
\multicolumn{2}{|c}{\includegraphics[width=35mm]{example-image-a}} & \multicolumn{2}{|c|}{\includegraphics[width=35mm]{example-image-b}}
\end{tabular}
\end{document}
Necesitan el informe de error... Pero...
Ok... creo que lo entendí:
La segunda columna no tiene el ancho de la tercera... Por supuesto... No se necesita ancho allí... Agreguemos un ancho:
... Ok, agregaré 17,5 mm centrados en ambas columnas del medio:
\documentclass{article}
\usepackage{graphicx}
\usepackage{array}
\begin{document}
\begin{tabular}{|c|>{\centering\arraybackslash}p{17.5mm}|>{\centering\arraybackslash}p{17.5mm}|c|}
\includegraphics[width=35mm]{example-image-a} & \multicolumn{2}{c|}{\includegraphics[width=35mm]{example-image-b}} & \includegraphics[width=35mm]{example-image-c} \\
\multicolumn{2}{|c}{\includegraphics[width=35mm]{example-image-a}} & \multicolumn{2}{|c|}{\includegraphics[width=35mm]{example-image-b}}
\end{tabular}
\end{document}
¿¿¿Por qué yo???Preguntemos en stackexchange... ¡Me voy de aquí!
- No más pasos: Alguna explicación:
Agreguemos la fila 1, 2, 3 y 4 allí atrás:
\documentclass{article}
\usepackage{graphicx}
\usepackage{array}
\begin{document}
\begin{tabular}{|c|>{\centering\arraybackslash}p{17.5mm}|>{\centering\arraybackslash}p{17.5mm}|c|}
1&2&3&4\\
\includegraphics[width=35mm]{example-image-a} & \multicolumn{2}{c|}{\includegraphics[width=35mm]{example-image-b}} & \includegraphics[width=35mm]{example-image-c} \\
\multicolumn{2}{|c}{\includegraphics[width=35mm]{example-image-a}} & \multicolumn{2}{|c|}{\includegraphics[width=35mm]{example-image-b}}
\end{tabular}
\end{document}
Perfecto... ¿Pero qué pasó?
LaTeX usó solo 3 columnas ya que el máximo de celdas necesarias era 3 por fila... Entonces, la primera columna era una sola columna y no realmente una columna múltiple... Al sumar estos números de ayuda... en realidad tenemos suerte y se enteró de lo que pasó...
Veámoslo en un ejemplo más sencillo:
\documentclass{article}
\usepackage{graphicx}
\usepackage{parskip}
\usepackage{array}
\setlength{\parskip}{0.5cm}
\begin{document}
Just four columns:
\begin{tabular}{|c|c|c|c|}\hline
test&\multicolumn{2}{c|}{test}&test\\\hline
test&test&test&test\\\hline
\end{tabular}
\vspace{1cm}
If we decide to replace with a \verb|\multicolumn| the first two columns of the second row\ldots we can (inocently) imagine the above table to be like:
\begin{verbatim}
| test | test | test |
----------------------------
| test | test | test |
\end{verbatim}
BUT we get:
\begin{tabular}{|c|c|c|c|}\hline
test&\multicolumn{2}{c|}{test}&test\\\hline
\multicolumn{2}{|c|}{test}&test&test\\\hline
\end{tabular}
Because now the first \verb|multicolumn| makes the first row three columns size and the second places the ``\verb|multicolumned|'' cells as one cell under the first cell of the first row!
\end{document}
Entonces, en nuestro caso "fallido" anterior podemos:
agregue una fila completa con celdas vacías (pero todas las celdas)...
Luego elimine el espacio vertical extra de la línea con [-1em]
...
Además, con algunas ideas simples, las celdas de la segunda fila no deberían estar centradas debido al ancho adicional de la primera y la última columna... Puede ser r
y l
es una mejor opción... y un \tabcolsep
ancho fijo ayudaría... la misma distancia también (como \tabcolsep
entre filas):
\documentclass{article}
\usepackage{graphicx}
\usepackage{array}
\begin{document}
\setlength{\tabcolsep}{1mm}
\begin{tabular}{c>{\centering\arraybackslash}p{17.5mm}>{\centering\arraybackslash}p{17.5mm}c}
&&&\\[-1em]
\includegraphics[width=35mm]{example-image-a} & \multicolumn{2}{c}{\includegraphics[width=35mm]{example-image-b}} & \includegraphics[width=35mm]{example-image-c} \\[1mm]
\multicolumn{2}{r}{\includegraphics[width=35mm]{example-image-a}} & \multicolumn{2}{l}{\includegraphics[width=35mm]{example-image-b}}
\end{tabular}
\end{document}
Pero, ¿por qué no lo hizo en una tabla más simple (de 3 columnas)?
\documentclass{article}
\usepackage{graphicx}
\begin{document}
\setlength{\tabcolsep}{1mm}
\begin{tabular}{ccc}
\includegraphics[width=35mm]{example-image-a}& \includegraphics[width=35mm]{example-image-b}&\includegraphics[width=35mm]{example-image-c}\\[1mm]
\multicolumn{3}{c}{\includegraphics[width=35mm]{example-image-a}\hspace{2mm}\includegraphics[width=35mm]{example-image-b}}
\end{tabular}
\end{document}
Genial... ¡Inteligente!
PeroLa respuesta de @egreg¡¡¡Es más inteligente!!! ¡Al menos encontré el problema!
PD: Mi "doble publicación" necesita la atención del moderador... pero creo que es una excepción y tengo que ofrecerla a este sitio ya que la primera pregunta fue sobre la colocación de figuras y acabo de descubrir que tengo algo que decir aquí que no era así. encontrado en otro lugar y es útil y sobre
tabulars
con\multicolumn
... Si se debe eliminar una de las dos publicaciones, supongo que eliminar la primera (mi respuesta a la pregunta original) sería una mejor opción porque aquí me parece más útil. Entonces, por favor (los revisores) agreguen un comentario antes de marcar para eliminación.