如何使用乳胶创建表格 - 仅其第一行粗体且居中,其他行位于左侧且正常。
\begin{table}
\renewcommand{\arraystretch}{1.5}
\caption[m1]{ m2}
\label{Hardware}\centering
\begin{tabular}{|c|c|c|c|}
\hline
a & b & c & d \\ \hline
a & b & c & d\\ \hline
a & b & c & d \\ \hline
\end{tabular}
\end{table}
答案1
Tabular 没有标题的概念。如果你想要一个标题,你必须自己修改第一行。正如 Mico 指出的那样
\begin{tabular}{|l|l|l|l|}
\hline
\multicolumn{1}{c}{\bfseries <Header 1>} & \multicolumn{1}{c}{\bfseries <Header 2>} & \multicolumn{1}{c}{\bfseries <Header 3>} & \multicolumn{1}{c}{\bfseries <Header 4>} \\ \hline
a & b & c & d \\ \hline
a & b & c & d \\ \hline
\end{tabular}
当然,这有点冗长和繁琐。有两种可能的简化方法:
第一种可能性:为此定义一个宏
\newcommand*{\thead}[1]{\multicolumn{1}{c}{\bfseries #1}}
然后使用它:
\begin{tabular}{|l|l|l|l|} \hline \thead{<Header 1>} & \thead{<Header 2>} & \thead{<Header 3>} & \thead{<Header 4>} \\ \hline a & b & c & d \\ \hline a & b & c & d \\ \hline \end{tabular}
第二种可能性:或者,使用 tabu 包,它允许通过
\rowfont
命令指定单独的行格式\begin{tabu}{|l|l|l|l|} \hline \rowfont[c]{\bfseries} <Header 1> & <Header 2> & <Header 3> & <Header 4> \\ \hline a & b & c & d \\ \hline a & b & c & d \\ \hline \end{tabu}
答案2
通过使用包makecell
及其宏,\thead
可以轻松实现所请求的表格格式:
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{makecell}
\renewcommand\theadfont{\bfseries\sffamily}
\begin{document}
\begin{tabular}{|l|l|l|l|}
\hline
\thead{<Header 1>} & \thead{<Header 2>} & \thead{<Header 3>} & \thead{<Header 4>} \\
\hline
a & b & c & d \\ \hline
a & b & c & d \\ \hline
\end{tabular}
\end{document}
答案3
为了使表格标题中的垂直线与正文列正确对齐,请使用以下命令:
\multicolumn{1}{|c|}{Header 1} & \multicolumn{1}{c|}{Header 2} & \multicolumn{1}{c|}{Header 3}
答案4
定义一个新的命令\thead
(如 Tim Hoffmann 建议的)非常有用。
\newcommand*{\thead}[1]{\multicolumn{1}{c}{\bfseries #1}}
但是,如果您需要垂直线,则\multicolumn
该命令将变得毫无用处,因为您无法|
手动设置。我尝试使用可选参数来设置文本位置,但出于某种原因,它无法与一起使用tabulary
。
我使用以下两个选项已实现文本居中,无需\multicolumn
(在tabular
、tabulary
和)。longtable
\Centering
从包中使用ragged2e
,问题是它会引起Underfull
警告。
\newcommand*{\thead}[1]{\Centering\bfseries #1}
\hspace*{\fill}
两侧使用
\newcommand*{\thead}[1]{\bfseries\hspace*{\fill}{#1}\hspace*{\fill}}
我目前正在使用第二个选项,没有任何问题。我不需要设置垂直线,我可以使用\bfseries
。