我有一个命令,可以生成一个表行以插入到tblr
环境中,如下所示:
\documentclass{book}
\usepackage{tabularray}
\begin{document}
\newcommand\MyRow[2]{
#1 & #2 \\
}
\begin{tblr}{l l}
A & B \\
C & D \\
%\MyRow{E}{F} % Fails here with "Misplaced alignment tab character &"
\end{tblr}
\end{document}
使用该命令tabu
时tblr
会出现对齐字符放错位置的错误&
:
Misplaced alignment tab character &.
我尝试用 覆盖类别代码&
,\catcode38=12
但没有帮助。如何从自定义命令生成 tblr 行?
答案1
根据部分tabularray 包手册中的“3.2.3 首先展开宏”您需要使用密钥expand=\MyRow
。您只能获得顶级扩展\MyRow
:
\documentclass{book}
\usepackage{tabularray}
\begin{document}
\newcommand\MyRow[2]{#1 & #2 \\}
\begin{tblr}[expand=\MyRow]{l l}
A & B \\
C & D \\
\MyRow{E}{F}% Does not fail with "Misplaced alignment tab character &".
\end{tblr}
\end{document}
问题“tabularray:如何使用存储在宏中的表内的 \if 条件注释掉某些行?”它的答案提供了一些技巧来更好地控制扩张。