É fácil inventar uma tabela que necessite de uma célula que abranja várias linhas. Um exemplo é quando a coluna mais à esquerda rotula o restante da tabela; isso pode ser feito (em casos simples) usando uma separação diagonal na célula do canto, mas essa técnica limita rigorosamente o que pode ser usado como conteúdo da célula.
O pacote multirow permite que você construa essas células de múltiplas linhas de uma maneira muito simples. Para o uso mais simples possível, pode-se escrever:
\begin{tabular}{|c|c|}
\hline
\multirow{4}{*}{Common g text}
& Column g2a\\
& Column g2b \\
& Column g2c \\
& Column g2d \\
\hline
\end{tabular}
e o multirow vai colocar “Common g text” no centro vertical do espaço definido pelas outras linhas. Observe que as linhas que não contêm a especificação de “várias linhas” devem ter células vazias onde a múltipla linha será exibida.
O “*” pode ser substituído por uma especificação de largura de coluna. Nesse caso, o argumento pode conter quebras de linha forçadas:
\begin{tabular}{|c|c|}
\hline
\multirow{4}{25mm}{Common\\g text}
& Column g2a\\
& Column g2b \\
& Column g2c \\
& Column g2d \\
\hline
\end{tabular}
Um efeito similar (com a possibilidade de um pouco mais de sofisticação) pode ser alcançado colocando-se uma tabela menor que alinha o texto dentro de uma \multirow com um *.
O comando \multirow também pode ser usado para escrever rótulos verticalmente em um ou outro lado de uma tabela (com a ajuda do pacote
graphics ou graphicx, que fornecem o comando
\rotatebox):
\begin{tabular}{|l|l|}
\hline
\multirow{4}{*}{\rotatebox{90}{hi there}}
& Column g2a\\
& Column g2b \\
& Column g2c \\
& Column g2d \\
\hline
\end{tabular}
(que resulta em texto de baixo para cima; use o ângulo de -90 para texto de cima para baixo, é claro).
Para fazer uma célula multilinha \multicolumn em uma tabela, você tem que incluir um \multirow dentro de um \multicolumn — o contrário não funciona; então:
\begin{tabular}{|c|c|c|}\hline
\multicolumn{2}{|c|}{\multirow{2}{*}{combined cells}}
&top right\\ \cline{3-3}
\multicolumn{2}{|c|}{}
&middle right\\ \hline
bottom left
&bottom center
&bottom right\\ \hline
\end{tabular}
O Multirow está configurado para interagir com o pacote bigstrut
(que também é discutido na resposta sobre
Espaçamento entre linhas em tabelas). Você usa um argumento opcional do comando \multirow para dizer quantas das linhas na multilinha foram abertas com o \bigstrut.
A documentação, tanto do multirow quanto do bigstrut pode ser encontrada, como comentários, nos próprios arquivos dos pacotes.
This question on the Web: http://latex.net.br/faq/FAQ-multirow.html
Do you have any question? Ask on: latex.net.br - we love qood questions!