coluna m{} em tabular não centraliza o texto na terceira (última) coluna

coluna m{} em tabular não centraliza o texto na terceira (última) coluna

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 centralizainsira a descrição da imagem aquiverticalmente 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 booktabstambém. Por último, você também pode usar o siunitxpacote 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

insira a descrição da imagem aqui

\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 \arraystretchvez de adicionar um sinal de \extrarowheightmais [8pt]a cada linha:

eu

\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!).

informação relacionada