Esto es algo muy simple y debería funcionar, pero no entiendo por qué no lo es. Tengo una tabla sencilla con tres columnas y dos filas. Quería que el texto de cada celda de la primera fila estuviera centrado verticalmente. se centraverticalmente en la primera y segunda columna, pero en la tercera columna, el texto permanece en la parte superior. Mi fuente es la siguiente:
\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}
Casi me da pena tener que preguntar esto aquí, ya que es algo muy sencillo. Pero me da un resultado poco satisfactorio y parece que no puedo distinguir qué está mal.
Respuesta1
En lugar de agregar manualmente espacio vertical a las filas, sugeriría usar cellspace
. Puede ajustar el espacio para adaptarlo a sus necesidades, mientras que el contenido quedará centrado verticalmente.
Personalmente, prefiero tablas con un aspecto más abierto (sin líneas verticales y menos líneas horizontales), así que booktabs
también agregué un ejemplo. Por último, también puede utilizar el siunitx
paquete para ayudar con la alineación de números en las celdas de la tabla. Si su segunda columna contiene bastante texto, optaría tabularx
por hacer que la tabla sea tan ancha como el ancho del texto y al mismo tiempo permitir saltos de línea automáticos en la segunda columna. También he incluido un ejemplo sobre esto.
Por último, y si estás cansado de numerar filas manualmente, puedes echar un vistazo aNúmeros de fila de tabla automáticos
\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}
Respuesta2
Cambie el \arraystretch
en lugar de agregar algo \extrarowheight
más [8pt]
a cada fila:
\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}
(... y por supuesto, en lugar de tablas encarceladas, ¡usa booktabs
!).