如何仅使第一列的内容居中,而不使其他任何内容(包括第一列的标题)居中?
\documentclass{article}
\usepackage{booktabs}
\usepackage{array}
\begin{document}
\begin{tabular}{ @{} l l l >{$\mathstrut\displaystyle}l<{$} @{} }
\toprule
\emph{first} & \emph{second} & \emph{third} & \multicolumn{1}{l}{\emph{fourth}} \\\midrule
foo & bar & y=f(x) & data\\
foo & bar & y=f(x) & data \\
foo & bar & Time \\
foo & bar & y=f(x) & 10.56 \\
foo & bar & Angle & 18.256 \\
foo & bar & Force & 1.6 \\
foo & bar & y=f(x) & 8.56 \\\bottomrule
\end{tabular}
\end{document}
答案1
由于您不想将标题居中,而只想将下面的单元格居中,因此您必须使用 单独指定标题对齐方式。也\multicolumn
不要忘记@{}
中的。 一些注意事项:\multicolumn
- 我认为将标题与列的其余部分以不同的方式对齐并不是一个好主意。
\tabcolsep
我认为使用 删除表格边缘的不是一个好主意@{}
。- 不要
data
在数学模式下写文本(在您的示例中)!\textit
如果您想要斜体文本(或者\itshape
如果您不需要数学模式),或者只是\text
为了退出数学模式,请使用。 y=f(x)
另一方面,应该处于数学模式。S
表格列的类型更siunitx
适合您的最后一列。
\documentclass{article}
\usepackage{booktabs}
\usepackage{array}
\usepackage{siunitx}
\begin{document}
\begin{tabular}{ @{} c l l S[table-format=2.3] @{} }\toprule
\multicolumn{1}{@{}l}{\emph{first}} & \emph{second} & \emph{third} & \multicolumn{1}{l@{}}{\emph{fourth}} \\\midrule
foo long entry & bar & \(y=f(x)\) & {\itshape data long entry}\\
foo & bar & \(y=f(x)\) & {\itshape data} \\
foo & bar & Time \\
foo & bar & \(y=f(x)\) & 10.56 \\
foo & bar & Angle & 18.256 \\
foo & bar & Force & 1.6 \\
foo & bar & \(y=f(x)\) & 8.56 \\\bottomrule
\end{tabular}
\end{document}
答案2
只需将 l 改为 c
\documentclass{article}
\usepackage{booktabs}
\usepackage{array}
\begin{document}
\begin{tabular}{ @{} c l l >{$\mathstrut\displaystyle$}l<{} @{} }
\toprule
\emph{first} & \emph{second} & \emph{third} & \multicolumn{1}{l}{\emph{fourth}} \\\midrule
foo & bar & y=f(x) & data\\
foo & bar & y=f(x) & data \\
foo & bar & Time \\
foo & bar & y=f(x) & 10.56 \\
foo & bar & Angle & 18.256 \\
foo & bar & Force & 1.6 \\
foo & bar & y=f(x) & 8.56 \\\bottomrule
\end{tabular}
\end{document}