Opergunta originaltrata-se de colocar figuras dentro de uma tabela e tentar ajustá-las assim:
com um código semelhante 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}
Isso, por algum motivo, fornece esta saída:
Por que isso acontece?
Claro que existem opções melhores para colocar as figuras dessa forma e a resposta na pergunta vinculada é uma delas. Mas tentar desenvolver o código com o tabular vai ajudar a entender algumas coisas sobre a célula adicional que se for usada em combinação com
\multicolumn
o comando vai reduzir nossas colunas e isso pode ser inesperado!
Responder1
Você deve estar ciente da recente adição do w
tipo de coluna no pacote array
: para colunas de largura fixa com alinhamento central (e sem texto corrido), você pode usar
w{c}{17.5mm}
em vez do desajeitado >{\centering\arraybackslash}{p{17.5mm}
.
Agora, de volta ao seu problema.
A segunda coluna é mesclada em ambas as linhas: primeiro com a terceira coluna, depois com a coluna principal. Portanto, por regra, a tabela é construída como se aquela coluna nunca tivesse sido especificada. Isso explica sua saída.
Você quer seis colunas iguais:
\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}
Responder2
Primeiro passo...
Ok, tenho 5 figuras e preciso de 3 em cima e duas em baixo, quero controlar a colocação delas... Uma tabela me parece uma boa solução...
Vamos pensar:
Três em cima: {ccc}
Primeira linha normal centralizada e dividirei as células \multicolumn
na segunda para compartilhar o espaço... Mas...
\begin{tabular}{ccc}
\include..&\include..&\include..\\
\multicolumn{2}{c}&\multicolumn{2}{c}
\end{tabular}
Oh! escrevendo o segundo \multicolumn
percebi que viraram 4 colunas... Nem compilando...
Parece que preciso de uma quarta coluna:
Vamos tentar:
- Segundo passo...quatro colunas:
Vou dividir as colunas intermediárias superiores com \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 na linha de cima 4 na próxima... perfeito! Vamos compilar
Parece que não contei corretamente... Vamos contar...
- Acima da linha 4, células do meio 2 mescladas
- Abaixo das linhas 2 e 2 células...
Por que a primeira célula da segunda linha não se funde com a segunda? Isso deve resultar na quarta figura centralizada nas duas primeiras colunas como a quinta... Por quê?
Preciso adicionar uma quinta coluna?
Vamos 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}
A quarta imagem para antes da 2ª coluna... Vamos pensar... Preciso de 5 colunas?
- Terceiro passo...Vamos ver as linhas verticais aí? antes de relatar um bug... Mas eu deveria!
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}
Eles precisam do relatório do bug... Mas...
Ok... acho que entendi:
A segunda coluna não tem a largura da terceira... Claro... Não é necessária largura aí... Vamos adicionar uma largura:
... Ok, adicionarei 17,5 mm centralizados em ambas as colunas do meio:
\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 que eu???Vamos perguntar no stackexchange... estou fora daqui!
- Não há mais etapas: alguma explicação:
Vamos adicionar a linha 1&2&3&4 lá 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}
Perfeito... Mas o que aconteceu?
O LaTeX usou apenas 3 colunas já que o máximo de células necessárias eram 3 por linha... Então, a primeira coluna era uma única coluna e não realmente uma multicoluna... Ao adicionar esses números de ajuda... na verdade temos sorte e descobri o que aconteceu...
Vejamos em um exemplo mais simples:
\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}
Portanto, no nosso caso anterior de "falha", podemos:
adicione uma linha completa com células vazias (mas todas as células)...
Em seguida, remova o espaço vertical extra da linha com [-1em]
...
Além disso, com algumas reflexões simples, as células da segunda linha não devem ser centralizadas devido à largura extra da primeira e da última coluna... Pode ser r
e l
é uma escolha melhor... e uma \tabcolsep
largura fixa ajudaria... a mesma distância também (como \tabcolsep
entre linhas):
\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}
Mas por que não fiz isso em uma tabela mais simples (de 3 colunas)?
\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}
Legal... Inteligente!
MasResposta de @egregé mais inteligente!!! Pelo menos encontrei o problema!
PS: Meu "post duplo" precisa da atenção do moderador... mas acho que é uma exceção e tenho a oferecer para esse site já que a primeira pergunta foi sobre colocação de figuras e acabei de descobrir que tenho algo a dizer aqui que não tinha encontrado em outro lugar e é útil
tabulars
com\multicolumn
... Se uma das duas postagens for excluída, suponho que excluir a primeira (minha resposta à pergunta original) seria uma escolha melhor porque aqui parece mais útil para mim. Portanto, por favor (revisores) adicionem um comentário antes de sinalizar para exclusão.