如何使用 \rowstyle 将整行文本和数学条目加粗?

如何使用 \rowstyle 将整行文本和数学条目加粗?

尝试跟随这个答案\rowstyle{\boldmath\bfseries}无法按预期使以下代码中的整个第一行变为粗体:

\documentclass[a4paper]{article}
\usepackage{booktabs,tabularx,mathtools,siunitx,ragged2e}
\begin{document}

    \newcolumntype{b}{>{\RaggedRight\hsize=1.5\hsize$}X<{$}}
    \newcommand{\heading}[1]{\multicolumn{1}{c}{#1}}
    \newcolumntype{m}{>{\RaggedLeft\hsize=0.5\hsize}X}
    \newcommand{\rowstyle}[1]{\gdef\currentrowstyle{#1}#1\ignorespaces}

    \noindent
    \begin{tabular*}{\linewidth}{
            @{\extracolsep{0pt plus 5pt minus 3pt}}
            >{$}l<{$}
            l
            S[table-format=2.2,round-precision=2,round-mode=places, round-integer-to-decimal=true]%
            @{}}
        \toprule
        \rowstyle{\boldmath\bfseries}
        & $\delta$ [deg] & \heading{5} \\
        \midrule
        \Gamma = x^2 & $\beta$ [deg] & 1 \\
        \bottomrule
    \end{tabular*}

\end{document}

那么,有时我使用 pdflatex 进行编译,有时我使用 lualatex 进行编译,正确的方法是什么?

答案1

tblr环境可能的解决方案tabularray包裹:

\documentclass[a4paper]{article}

\usepackage{mathtools}

\usepackage{tabularray}
\UseTblrLibrary{booktabs,siunitx}
\sisetup{table-format=2.2,round-precision=2,round-mode=places,round-integer-to-decimal=true}

\begin{document}

\noindent
\begin{tblr}{
  colspec = {@{}>{$\relax}X<{$}XS@{}},
  row{1} = {font=\boldmath\bfseries},
}
\toprule
               & $\delta$ [deg] & {{{5}}} \\
\midrule
  \Gamma = x^2 & $\beta$ [deg]  & 1 \\
\bottomrule
\end{tblr}

\end{document}

在此处输入图片描述

答案2

与。{NiceTabular}nicematrix

\documentclass[a4paper]{article}
\usepackage{nicematrix,siunitx,booktabs}

\sisetup{table-format=2.2,round-precision=2,round-mode=places}

\begin{document}

\noindent
\begin{NiceTabular}{@{}>{$}X<{$}XS@{}}
\toprule
\RowStyle[bold]{}
               & $\delta$ [deg] & {5} \\
\midrule
  \Gamma = x^2 & $\beta$ [deg]  & 1 \\
\bottomrule
\end{NiceTabular}

\end{document}

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

上述代码的输出

相关内容