如何在LaTeX中实现表格内容的垂直与水平居中?
解决LaTeX表格内容垂直+水平居中的几种实用方法
方法1:用array包定义自定义居中列格式
默认tabular的l/c/r列格式仅实现水平居中,垂直方向是基线对齐。通过array包可直接定义兼顾垂直+水平居中的列格式:
\usepackage{array} % 固定宽度的居中列:m代表垂直居中,配合\centering实现水平居中 \newcolumntype{C}{>{\centering\arraybackslash}m{3cm}} % 自适应页面宽度的居中列(3列均分宽度) \newcolumntype{M}{>{\centering\arraybackslash}m{\dimexpr(\linewidth-6\tabcolsep)/3\relax}}
使用示例:
\begin{table}[htbp] \centering \caption{垂直水平居中的基础表格} \begin{tabular}{CCC} \hline 第一列标题 & 第二列标题 & 第三列标题 \\ \hline 短内容 & 中等长度内容 & 包含换行的\\多行内容 \\ \hline 测试单元格 & 更长的文本用来验证垂直居中 & 末尾单元格 \\ \hline \end{tabular} \end{table}
方法2:结合tabularx+makecell处理自适应宽度与复杂内容
如果需要表格自适应页面宽度,同时处理多行标题或单元格内容,可搭配tabularx和makecell包:
\usepackage{tabularx} \usepackage{makecell} % 设置makecell默认内容垂直+水平居中 \renewcommand\cellalign{cc}
使用示例:
\begin{table}[htbp] \centering \caption{自适应宽度的居中表格} \begin{tabularx}{\linewidth}{XXX} \hline \makecell{第一列\\多行标题} & 第二列标题 & \makecell{第三列\\标题} \\ \hline 普通内容 & \makecell{这里是\\多行内容} & 测试垂直居中效果 \\ \hline \end{tabularx} \end{table}
方法3:搭配booktabs实现专业美观的居中表格
如果追求更简洁专业的表格样式,booktabs的横线搭配居中列格式,视觉效果更清爽:
\usepackage{array} \usepackage{booktabs} \newcolumntype{C}{>{\centering\arraybackslash}m{3cm}}
使用示例:
\begin{table}[htbp] \centering \caption{专业风格的居中表格} \begin{tabular}{CCC} \toprule 列1 & 列2 & 列3 \\ \midrule 短文本 & 多行\\文本 & 较长内容验证垂直居中 \\ \midrule 测试行 & 另一个多行\\单元格 & 末尾内容 \\ \bottomrule \end{tabular} \end{table}
关键注意点
- 若你原本用的是
p{宽度}列格式,直接替换成m{宽度}即可实现垂直居中,再加上\centering就完成水平居中 - 无固定宽度需求时,用
>{ \centering\arraybackslash }m{...}组合即可实现双居中 - 表格内有图片时,可通过
\vcenter{\hbox{图片代码}}或adjustbox包调整图片的垂直对齐
内容的提问来源于stack exchange,提问作者Ali Alzahrani
相关产品推荐
相关产品推荐

