关于表格画十字线的一个问题

发布于 2022-05-18 08:32:57

我曾在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}

aaa7f579b0dd9ed306e88c12fd89f93.jpg
使用tabular环境效果显示很好,但使用新宏包的tblr环境,效果显示较差,导致这样的原因是什么?如果修正呢?

查看更多

关注者
0
被浏览
895
雾月
雾月 2022-05-18
这家伙很懒,什么也没写!

tabularray 并不自动展开表格内容,因此,\multicolumn 并未生效。理论上,只要展开 \notableentry 即可,但 \vadjust 不可用。

解决方法建议问宏包作者:issuediscussion

1 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览