如何计算(tabularray)表的总宽度并将该长度传递给其他包,例如 tikz 或 tcolorbox?

如何计算(tabularray)表的总宽度并将该长度传递给其他包,例如 tikz 或 tcolorbox?

请考虑以下代码。它使用 生成一个表格,该表格tabularray具有固定宽度的列,因此其总宽度小于。如何找出表格的总宽度,以便我可以将此长度传递给其他包(例如或)并创建与表格宽度完全相同的图片或框?请注意,在下面的例子中,由 创建的框略微偏左,为什么?可以固定吗?并且也比由 创建的矩形略小,尽管它们的宽度几乎相同,为 15 厘米。\textwidthtikztcolorboxtcolorboxtikz

\documentclass[12pt]{article}
\usepackage[a4paper, total={180mm,257mm},left=15mm,top=20mm]{geometry}
\usepackage{tabularray}
\usepackage{tikz,tcolorbox,blindtext}


\begin{document}
    \begin{tblr}{colspec={Q[3.2cm,c]Q[5.2cm,c]Q[5.2cm,c]},rows={0.8cm,m},vlines,hlines}
        Column 1    & Column 2 & Column 3 \\                                                          
        A11         &   A12    &     A13  \\             
        A221        &   A22    &     A23  \\
    \end{tblr}

\vspace{10pt}

    \begin{tikzpicture}
        \draw (0,0) rectangle (15,4);
    \end{tikzpicture}

    \begin{tcolorbox}[width=15cm]
        \blindtext[1]
    \end{tcolorbox}
\end{document}

在此处输入图片描述

答案1

  • 您可以使用\settowidth宏来测量表格的宽度。为了避免对表格进行两次编码,您可以使用保存框,一次使用它来排版表格,另一次使用它来测量宽度。

  • tcolorbox 不会向左移动,而是其他所有内容都会从您使用的类的正常段落缩进向右移动。您可以通过使用\noindent或全局更改 parindent 长度来避免这种情况


\documentclass[12pt]{article}
\usepackage[a4paper, total={180mm,257mm},left=15mm,top=20mm]{geometry}
\usepackage{tabularray}
\usepackage{tikz,tcolorbox,blindtext}

\newlength{\foo}
\newsavebox{\mybox}



\begin{document}

\savebox{\mybox}{\begin{tblr}{colspec={Q[3.2cm,c]Q[5.2cm,c]Q[5.2cm,c]},rows={0.8cm,m},vlines,hlines}
        Column 1    & Column 2 & Column 3 \\                                                          
        A11         &   A12    &     A13  \\             
        A221        &   A22    &     A23  \\
    \end{tblr}}
    
\noindent\usebox{\mybox}

\settowidth{\foo}{\usebox{\mybox}}
    
    \noindent\rule{\foo}{1pt}

\vspace{10pt}

    \noindent\begin{tikzpicture}
        \draw (0,0) rectangle (\foo,4);
    \end{tikzpicture}

    \begin{tcolorbox}[width=\foo]
        \blindtext[1]
    \end{tcolorbox}
\end{document}

在此处输入图片描述

相关内容