Это такая простая вещь, и она должна работать, но я не понимаю, почему это не так. У меня есть простая таблица с тремя столбцами и двумя строками. Я хотел, чтобы текст в каждой ячейке в первой строке был вертикально отцентрирован. Он центрируетвертикально в первом и втором столбцах, но в третьем столбце текст остается наверху. Мой источник следующий:
\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}
Мне почти жаль спрашивать об этом здесь, ведь это такая простая вещь. Но это дает мне неудовлетворительный результат, и я, похоже, не могу понять, что не так.
решение1
Вместо того, чтобы вручную добавлять вертикальное пространство к строкам, я бы предложил использовать cellspace
. Вы можете настроить интервал в соответствии со своими потребностями, при этом содержимое будет вертикально центрировано.
Лично я предпочитаю таблицы с более открытым видом (без вертикальных линий и с меньшим количеством горизонтальных линий), поэтому я booktabs
также добавил пример. Наконец, вы также можете использовать пакет siunitx
для выравнивания чисел в ячейках таблицы. Если ваш второй столбец содержит довольно много текста, я бы выбрал, tabularx
чтобы сделать таблицу такой же ширины, как ширина текста, и при этом разрешить автоматические переносы строк во втором столбце. Я также включил пример по этому вопросу.
И наконец, если вам надоело вручную нумеровать строки, вы можете взглянуть наАвтоматическая нумерация строк таблицы
\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}
решение2
Измените \arraystretch
вместо этого добавьте \extrarowheight
плюс [8pt]
к каждой строке:
\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}
(... и, конечно же, вместо таблиц, заключенных в тюрьму, используйте booktabs
!).