Quiero forzar que el contenido de una de las celdas de mi tabla desborde el ancho de la celda en una cantidad específica. Con c
las columnas, el kerning negativo es suficiente. Pero también quiero alineación vertical y el interletraje negativo ya no funciona con m
columnas.
Ejemplo de trabajo mínimo:
\documentclass{article}
\usepackage{array}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
\begin{document}
%\begin{tabular}[h]{|M{1in}|M{1in}|M{1in}|}
\begin{tabular}[h]{|c|c|c|}
\hline
\rule{0.2in}{1in} &
\rule{1in}{0.2in} &
\rule{0.2in}{1in} \\
\hline
\rule{1in}{0.2in} &
\rule{0.2in}{1in} &
\rule{1in}{0.2in} \\
\hline
\rule{0.2in}{1in} &
\kern-0.5in\rule{1.5in}{0.2in} &
\rule{0.2in}{1in} \\
\hline
\end{tabular}
\end{document}
La celda inferior del medio muestra lo que quiero decir. Cambie los comentarios en las \begin{tabular}
líneas para ver que fallan con m
las columnas. ¿Cómo puedo hacer que funcione?
Motivación:Tengo una columna que contiene un montón de imágenes con contenido alineado similar. La mayoría de ellos tienen el mismo ancho, pero uno es más ancho porque el espacio adicional contiene información adicional como etiquetas. Quiero que se ignore el espacio adicional para que las imágenes permanezcan bien alineadas en mi documento. No quiero usar simplemente la alineación a la izquierda o a la derecha, porque eso desperdicia el espacio extra en las otras celdas.
Respuesta1
Utilice \makebox
en lugar de \kern
:
\documentclass{article}
\usepackage{array}
\newcolumntype{M}[1]{>{\centering\arraybackslash}m{#1}}
\begin{document}
\begin{tabular}[h]{|M{1in}|M{1in}|M{1in}|}
%\begin{tabular}[h]{|c|c|c|}
\hline
\rule{0.2in}{1in} &
\rule{1in}{0.2in} &
\rule{0.2in}{1in} \\
\hline
\rule{1in}{0.2in} &
\rule{0.2in}{1in} &
\rule{1in}{0.2in} \\
\hline
\rule{0.2in}{1in} &
\makebox[1in][r]{\rule{1.5in}{0.2in}} &
\rule{0.2in}{1in} \\
\hline
\end{tabular}
\end{document}
Explicación: \makebox[1in][r]{\rule{1.5in}{0.2in}}
coloca la regla en un cuadro de ancho 1in
y r
la alinea a la derecha en el cuadro.