%20coluna.png)
Isso é uma coisa tão simples e deveria funcionar, mas não entendo por que não funciona. Tenho uma tabela simples com três colunas e duas linhas. Eu queria que o texto em cada célula da primeira linha fosse centralizado verticalmente. Ele centralizaverticalmente na primeira e segunda colunas, mas na terceira coluna o texto permanece no topo. Minha fonte é a seguinte:
\documentclass[12pt]{article}
\usepackage[margin=2cm]{geometry}
\usepackage{array}
\title{}
\author{}
\pagestyle{empty}
\date{}
\begin{document}
\setlength\extrarowheight{2pt}
\begin{tabular}{|m{1cm}|m{4in}|m{3cm}|}
\hline
\textbf{No.} & \textbf{Particulars} & \textbf{Amount}\\[8pt]
\hline
1. & Blah blah blah & 2,000.00\\[8pt]
\hline
\end{tabular}
\end{document}
Quase sinto pena de ter que perguntar isso aqui, pois é uma coisa tão simples. Mas isso me dá um resultado nada satisfatório e não consigo entender o que está errado.
Responder1
Em vez de adicionar manualmente espaço vertical às linhas, sugiro usarcellspace
. Você pode ajustar o espaçamento para atender às suas necessidades, enquanto o conteúdo será centralizado verticalmente.
Pessoalmente, prefiro mesas com um visual mais aberto (sem linhas verticais e menos linhas horizontais), então adicionei um exemplo booktabs
também. Por último, você também pode usar o siunitx
pacote para ajudar no alinhamento de números nas células da tabela. Se a sua segunda coluna contiver bastante texto, eu optaria portabularx
por tornar a tabela tão larga quanto a largura do texto, permitindo quebras de linha automáticas na segunda coluna. Eu incluí um exemplo sobre isso também.
Por último, e se você está cansado de numerar linhas manualmente, você pode dar uma olhada emNúmeros automáticos de linhas da tabela
\documentclass[12pt]{article}
\usepackage[margin=2cm]{geometry}
\usepackage{array}
\usepackage[column=0]{cellspace}
\setlength\cellspacetoplimit{6pt}
\setlength\cellspacebottomlimit{\cellspacetoplimit}
\usepackage{booktabs}
\usepackage{siunitx}
\sisetup{input-ignore={,},input-decimal-markers={.}}
\usepackage{tabularx}
\begin{document}
With cellspace:
\begin{tabular}{|0{m{1cm}}|0{m{4in}}|0{m{3cm}}|}
\hline
\textbf{No.} & \textbf{Particulars} & \textbf{Amount}\\
\hline
1. & Blah blah blah & 2,000.00\\
\hline
2. & Blah blah blah & 2,000.00\\
\hline
\end{tabular}
\bigskip
With booktabs:
\begin{tabular}{m{1cm}m{4in}m{3cm}}
\toprule
\textbf{No.} & \textbf{Particulars} & \textbf{Amount}\\
\midrule
1. & Blah blah blah & 2,000.00\\
2. & Blah blah blah & 2,000.00\\
\bottomrule
\end{tabular}
\bigskip
With booktabs, siunitx and tabularx:
\begin{tabularx}{\textwidth}{lXS[table-format=4.2]}
\toprule
{No.} & {Particulars} & {Amount}\\
\midrule
1. & Blah blah blah & 2,000.00\\
2. & Blah blah blah & 2,000.00\\
\bottomrule
\end{tabularx}
\end{document}
Responder2
Altere em \arraystretch
vez de adicionar um sinal de \extrarowheight
mais [8pt]
a cada linha:
\documentclass[12pt]{article}
\usepackage[margin=2cm]{geometry}
\usepackage{array}
\begin{document}
\renewcommand\arraystretch{1.6}
\begin{tabular}{|m{1cm}|m{4in}|m{3cm}|}\hline
\textbf{No.} & \textbf{Particulars} & \textbf{Amount}\\\hline
1. & Blah blah blah & 2,000.00\\\hline
\end{tabular}
\end{document}
(... e claro, em vez de tabelas presas, use booktabs
!).