Quero forçar o conteúdo de uma das células da minha tabela a ultrapassar a largura da célula em um valor especificado. Com c
colunas, o kerning negativo resolve. Mas também quero alinhamento vertical, e o kerning negativo não funciona mais com m
colunas.
Exemplo mínimo de trabalho:
\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}
A célula inferior central mostra o que quero dizer. Alterne os comentários nas \begin{tabular}
linhas para ver se falha nas m
colunas. Como posso fazê-lo funcionar?
Motivação:Eu tenho uma coluna contendo várias imagens com conteúdo semelhante e alinhado. A maioria deles tem a mesma largura, mas um é mais largo porque o espaço extra contém algumas informações adicionais, como rótulos. Quero que o espaço extra seja ignorado para que as imagens permaneçam bem alinhadas no meu documento. Não quero simplesmente usar o alinhamento à esquerda ou à direita, porque isso desperdiça espaço extra nas outras células.
Responder1
Use \makebox
em vez 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}
Explicação: \makebox[1in][r]{\rule{1.5in}{0.2in}}
coloca a regra em uma caixa de largura 1in
e r
alinha-a à direita na caixa.