我曾在https://ask.latexstudio.net/ask/question/7447.html 提问,一直没有解决。
现在找到一个方案,代码如下:
\documentclass{ctexart}
\usepackage{tikz,tabularray}
\usetikzlibrary{calc}
\usepackage{zref-savepos}
\newcounter{NoTableEntry}
\renewcommand*{\theNoTableEntry}{NTE-\the\value{NoTableEntry}}
\newcommand*{\notableentry}{%
\multicolumn{1}{@{}c@{}|}{%
\stepcounter{NoTableEntry}%
\vadjust pre{\zsavepos{\theNoTableEntry t}}% top
\vadjust{\zsavepos{\theNoTableEntry b}}% bottom
\zsavepos{\theNoTableEntry l}% left
\hspace{0pt plus 1filll}%
\zsavepos{\theNoTableEntry r}% right
\tikz[overlay]{%
\draw[red]
let
\n{llx}={\zposx{\theNoTableEntry l}sp-\zposx{\theNoTableEntry r}sp},
\n{urx}={0},
\n{lly}={\zposy{\theNoTableEntry b}sp-\zposy{\theNoTableEntry r}sp},
\n{ury}={\zposy{\theNoTableEntry t}sp-\zposy{\theNoTableEntry r}sp}
in
(\n{llx}, \n{lly}) -- (\n{urx}, \n{ury})
(\n{llx}, \n{ury}) -- (\n{urx}, \n{lly})
;
}%
}%
}
\begin{document}
\begin{tabular}{|p{4cm}|p{3cm}|}
\hline
alghreaiog & bghsah \\
\hline
cagja\par bla & \notableentry \\
\hline
blue & edkhaklgjaj \par xyz \\
\hline
\end{tabular}
\vspace{1cm}
\begin{tblr}{|Q[m,c,4cm]|Q[m,c,3cm]|}
\hline
alghreaiog & bghsah \\
\hline
cagja\par bla & \notableentry \\
\hline
blue & edkhaklgjaj \par xyz \\
\hline
\end{tblr}
\end{document}
使用tabular环境效果显示很好,但使用新宏包的tblr环境,效果显示较差,导致这样的原因是什么?如果修正呢?
tabularray 并不自动展开表格内容,因此,\multicolumn
并未生效。理论上,只要展开 \notableentry
即可,但 \vadjust
不可用。
解决方法建议问宏包作者:issue、discussion。