在长表环境中将整行加粗

在长表环境中将整行加粗

我有一个真的\longtable- 大约 150 行。我需要将某些行(其中约 80 行)设为粗体,其他行保持正常。但直接输入{\bf a & b & ... & z} \\会导致错误。有没有一种优雅、简单的方法可以做到这一点?我搜索过了,但什么也没找到。

以下操作似乎不起作用,至少在我的计算机上不起作用:

\documentclass[12pt]{article}

\usepackage{array,longtable}

\newcolumntype{C}{>{\rowfont}c}
\newcommand\setrowfont[1]{\noalign{\gdef\rowfont{#1}}}
\gdef\rowfont{}

\begin{document}

\begin{longtable}{l||c|c}
\setrowfont{\bfseries}
let's & try & this\\ \hline
\setrowfont{\bfseries\itshape}
and & see & if\\
it & might & work
\end{longtable}

\end{document}

答案1

在此处输入图片描述

\documentclass{article}
\usepackage{array,longtable}
\newcolumntype{C}{>{\rowfont}c}
\newcommand\setrowfont[1]{\noalign{\gdef\rowfont{#1}}}
\gdef\rowfont{}

\begin{document}

\begin{longtable}{CCC}
\setrowfont{\bfseries}
a&bb&ccc\\
aa&bbbb&cccccc\\
\setrowfont{\bfseries\itshape}
a&bb&ccc\\
\setrowfont{}
a&bb&ccc\\
a&bbbb&cccccc\\
a&bbbb&cccccc\\
\setrowfont{\bfseries}
a&bb&ccc\\
\setrowfont{}
a&bb&ccc
\end{longtable}

\end{document}

答案2

array允许在单元格中插入宏。此宏可以是字体设置命令。在粗体行的开头,它被全局定义为\bfseries,在行的末尾被重置:

\documentclass{article}
\usepackage{longtable}
\usepackage{array}

\newcommand*{\boldrow}{%
  \global\let\rowfont\bfseries
  \bfseries
}
\newcommand*{\unboldrow}{%
  \global\let\rowfont\relax
  \mdseries
}
\newcommand*{\rowfont}{}

\begin{document}

\begin{longtable}{>{\rowfont}l>{\rowfont}l<{\unboldrow}}
1 & a\\
\boldrow 2 & b\\
3 & c\\
\boldrow 4 & d\\
\boldrow 5 & e\\
6 & f\\
7 & g\\
\boldrow 8\\
\unboldrow 9 & h\\
\end{longtable}

\end{document}

结果

评论:

  • 在本例中,如果到达最后一个单元格,则会自动重置粗体字体。否则(第 8 行),\unboldfont可以在下一行使用。

相关内容