创建仅使用粗体和居中的标题的表格

创建仅使用粗体和居中的标题的表格

如何使用乳胶创建表格 - 仅其第一行粗体且居中,其他行位于左侧且正常。

\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}

当然,这有点冗长和繁琐。有两种可能的简化方法:

  1. 第一种可能性:为此定义一个宏

    \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}
    
  2. 第二种可能性:或者,使用 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(在tabulartabulary和)。longtable

  1. \Centering从包中使用ragged2e,问题是它会引起Underfull警告。
\newcommand*{\thead}[1]{\Centering\bfseries #1}
  1. \hspace*{\fill}两侧使用
\newcommand*{\thead}[1]{\bfseries\hspace*{\fill}{#1}\hspace*{\fill}}

我目前正在使用第二个选项,没有任何问题。我不需要设置垂直线,我可以使用\bfseries

相关内容