Posicionando uma única célula de uma tabela

Posicionando uma única célula de uma tabela

Quero colocar o "iii" no meio da célula. Então recorro ao \multicolumn para modificar uma única célula.

Meu código inicial é

\documentclass{article}
\begin{document}

\begin{tabular}{|r | l | p{5cm}  }
\hline
aaa & \multicolumn{2}{c|}{bbb ccc} \\
\cline{1-1}
ddd & \multicolumn{2}{c|}{eee f\mbox{}f\mbox{}f\mbox{} }\\
\hline
ggg & hhh                    & \multicolumn{1}{c|}{iii} \\
\hline
\end{tabular}

\end{document}

Mas as colunas 2 e 3 tornam-se estreitas. Então mudei as linhas 4 e 6 e todo o código foi para:

\documentclass{article}
\begin{document}

\begin{tabular}{|r | l | p{5cm}  }
\hline
aaa & \multicolumn{2}{c|}{bbb ccc} \\
\cline{1-1}
ddd & \multicolumn{2}{c|}{eee f\mbox{}f\mbox{}f\mbox{} }\\
\hline
ggg & hhh                    & \multicolumn{1}{p(5cm)}{iii} \\
\hline
\end{tabular}

\end{document}

Mas toda a mesa fica estreita. O que devo fazer para mudar tal situação?

Responder1

Com a ajuda de makecell(e microtipo para desativar as ligaduras, veja aqui:https://tex.stackexchange.com/a/439652/134144) você pode obter o seguinte MWE:

insira a descrição da imagem aqui

\documentclass{article}
\usepackage{makecell}

\usepackage{microtype}
\DisableLigatures[f]{encoding = *, family = *}
\begin{document}

\begin{tabular}{|r | l | p{5cm}  |}
\hline
aaa & \multicolumn{2}{l|}{bbb ccc} \\
\cline{1-1}
ddd & \multicolumn{2}{l|}{eee fff }\\
\hline
ggg & hhh                    & \makecell[cc]{iii} \\
\hline
\end{tabular}
\end{document}

Como o alinhamento centralizado horizontal e verticalmente ( [cc]) é o padrão, makecellesta opção também pode ser omitida ( \makecell{iii}) sem alterar a saída acima.

informação relacionada