如何重写简单的多列命令以用于新的 tabularray 界面?

如何重写简单的多列命令以用于新的 tabularray 界面?

很久以前我定义了一些模板。在其中一个模板中我使用了它

\newcommand{\zwiueb}[1]{%
   \multicolumn{3}{l}{\makebox[0pt]{\textbf{#1}}}%
}

这显然不再适用于 tabularray。

我尚未成功重写这个相当简单的命令,以使其适用于新的 tabularray 界面。

它应该做的就是在longtblr环境中的所有三列中设置一些文本。

编辑:

这是我的最小(不)工作示例:

\documentclass{article}
\usepackage{tabularray}

\newcommand{\zwiueb}[1]{%
  \multicolumn{3}{l}{\makebox[0pt]{\textbf{#1}}}%
}

\begin{document}

\begin{longtblr}{%
    rowsep=1.1pt,%
    width = \linewidth,%
    colspec = {r>{\raggedright\sffamily\footnotesize}XX[3.3]}%
    }
first col & second col & third col \\
\zwiueb{span all three cols}\\
first col & second col & third col \\
\end{longtblr}

\end{document}

产生这个错误:

! Misplaced \omit. \multispan ->\omit 
                   \@multispan  l.20 \end
       {longtblr}

收到第一条评论后,再次尝试:

\newcommand{\zwiueb}[1]{%
  \SetCell[c=3]{l, font=\bfseries}{#1}
}

结果是这样的:

在此处输入图片描述


只是为了澄清:这就是我想看到的:

在此处输入图片描述

工作示例:

\documentclass{article}
\usepackage{tabularray}[=v2021]

\newcommand{\zwiueb}[1]{%
  \multicolumn{3}{l}{\makebox[0pt]{\textbf{#1}}}%
}

\begin{document}

\begin{longtblr}{%
    rowsep=1.1pt,%
    width = \linewidth,%
    colspec = {r>{\raggedright\sffamily\footnotesize}XX[3.3]}%
    }
first col & second col & third col \\
\zwiueb{span all three columns to make sort of a heading} \\
first col & second col & third col \\
\end{longtblr}

\end{document}

但我想得到同样的结果,而不需要[=v2021]

答案1

看看,这是否是你想要的:

\documentclass{article}
\usepackage{tabularray}
% new command instead of \zwiueb, 
% with optional number of spanned columns
% you can use old name, but better is replace it b
\NewTableCommand\SCC[1]{\SetCell[c=#1]{c, font=\bfseries}}

\begin{document}
    \begin{longtblr}[% here shoulb caption, label, note{...}, remark{...}
                    ]{rowsep  = 1.1pt,
                      colspec = {r X[l, font=\sffamily\footnotesize] X[3.3, l]},
                      vlines  % only for test purposesm remove in your document
                }
first col   & second col    & third col \\
\SCC{3} span all three cols             % instead of \zwiueb{span all three cols}
            &     a          &   b      \\
first col   & second col    & third col \\
    \end{longtblr}
\end{document}

在此处输入图片描述

答案2

供参考:最小示例最终如下所示:

\documentclass{article}
\usepackage{tabularray}

\NewTableCommand\zwiueb{\SetCell[c=3]{l, font=\bfseries}}

\begin{document}

\begin{longtblr}{%
    rowsep=1.1pt,%
    width = \linewidth,%
    colspec = {r>{\raggedright\sffamily\footnotesize}XX[3.3]}%
    }
first col & second col & third col \\
\zwiueb{ new test --- span all three columns to make sort of a heading} \\
first col & second col & third col \\
\end{longtblr}

\end{document}

结果如下:

在此处输入图片描述

相关内容