如何设置 LaTeX 中所有表格的标题行的文本颜色和字体类型?

如何设置 LaTeX 中所有表格的标题行的文本颜色和字体类型?

我有一个包含大量表格的文档,我想对所有表格应用相同的标题行格式,而不必对每个表格进行手动修改。

我现在使用\AtBeginEnvironment\rowcolors来自etoolbox基于的包Bernard 的解决方案用于设置序言中的背景颜色,但没有找到任何类似的字体类型和文本颜色。

我当前的代码如下:

\documentclass{article}
\usepackage[table, svgnames]{xcolor} %\usepackage{array}
\usepackage{cellspace}
\usepackage{etoolbox}
\colorlet{headercolour}{DarkSeaGreen}
\colorlet{textcolour}{white}

\AtBeginEnvironment{tabular}{\rowcolors{1}{\ifnumless{\rownum}{2}{headercolour}{white}}{}}

\begin{document}

\begin{table}
  \centering
  \begin{tabular}{|*{4}{Sc}|}
    \hline
    \textbf{\color{white}Column1} & \textbf{\color{white}Column2} & \textbf{\color{white}Column3} & \textbf{\color{white}Column4} \\%%set formatting manually for each table
    \hline
    A & B & D & E \\
    \hline
        & & & F \\
    \hline
        & & & \\
    \hline
  \end{tabular}
\caption{Table 1}
\end{table}

\begin{table}
    \centering
    \begin{tabular}{|c|c|c|}
        \hline
        Header1 & Header2 & Header3\\
        cell1 & cell2 & cell3\\
        \hline

    \end{tabular}
\caption{Table2}
\end{table}
\end{document} 

第一个表格按需要格式化。这就是我想为每个表格自动设置的样式。

有什么想法可以做到这一点吗?谢谢!

答案1

这是 ConTeXt 真正出彩的地方。观察实际的表格内容如何不包含任何视觉标记

\setupTABLE
  [row][first]
  [background=color,
   backgroundcolor=darkgreen,
   color=white,
   style=bold,
   framecolor=black]

\starttext

\startplacetable[title={Table 1}]
  \startTABLE
    \NC Column1 \NC Column2 \NC Column3 \NC Column4 \NC\NR
    \NC A       \NC B       \NC D       \NC E       \NC\NR
    \NC         \NC         \NC         \NC F       \NC\NR
  \stopTABLE
\stopplacetable

\startplacetable[title={Table 2}]
  \startTABLE
    \NC Header1 \NC Header2 \NC Header3 \NC\NR
    \NC cell1   \NC cell2   \NC cell3   \NC\NR
  \stopTABLE
\stopplacetable

\stoptext

在此处输入图片描述

答案2

我建议定义新的列类型,,,,L仅当我们在第一行C时才R包含字体和文本颜色变化,因为选项[table]定义xcolor了一个\rownum计数器:

\documentclass{article}
\usepackage[table, svgnames]{xcolor}
\usepackage{cellspace}
\usepackage{etoolbox}
\colorlet{headercolour}{DarkSeaGreen}
\colorlet{textcolour}{yellow}

\AtBeginEnvironment{tabular}{\rowcolors{1}{\ifnumequal{\rownum}{1}{headercolour}{white}}{}}%
\newcolumntype{L}{>{\ifnumequal{\rownum}{1}{\sffamily\bfseries\color{textcolour}}}Sl}
\newcolumntype{C}{>{\ifnumequal{\rownum}{1}{\sffamily\bfseries\color{textcolour}}}Sc}
\newcolumntype{R}{>{\ifnumequal{\rownum}{1}{\sffamily\bfseries\color{textcolour}}}Sr}
\setlength{\cellspacetoplimit}{5pt}
\setlength{\cellspacebottomlimit}{5pt}

\begin{document}

\begin{table}[!htb]
  \centering
  \begin{tabular}{|*{4}{C}|}%
    \hline
Column1 & Column2 & Column3 & Column4 \\%%set formatting manually for each table
    \hline
    A & B & D & E \\
    \hline
        & & & F \\
    \hline
        & & & \\
    \hline
  \end{tabular}
\caption{Table 1}
\end{table}

\begin{table}[!htb]
    \centering
    \begin{tabular}{| CCC|}%
        \hline
 Header1 & Header2 & Header3 \\
  cell1 & cell2 & cell3\\
        \hline
    \end{tabular}
\caption{Table2}
\end{table}

\end{document} 

在此处输入图片描述

相关内容