如何在 tblr 中创建带标题的 TikZ 图片?

如何在 tblr 中创建带标题的 TikZ 图片?

我想将两张 TikZ 图片并排放置,分别带有标题“之前”和“之后”。我该怎么做?

我尝试将 TikZ 图片放在figure环境中作为标题,并将figure环境放在里面tblr作为定位,如下所示。

\documentclass{article}
\usepackage{tabularray}
\usepackage{float}%For the 'H' option
\usepackage{tikz}
\begin{document}
\begin{tblr}{}
\begin{figure}[H]
\centering
\tikz \draw (0,0) circle (1);
\caption{Before}
\end{figure}
&
\begin{figure}[H]
\centering
\tikz \draw (0,0) rectangle (1,1);
\caption{After}
\end{figure}
\end{tblr}
\end{document}

不幸的是,该代码无法使用 2022 LuaLaTeX 编译器在 Overleaf 中进行编译。

我该如何修复代码以实现本文开头所述的目标?

答案1

假设图像可以是任意的,所以除此之外tikzpicture我还使用˙example-image-duck`,它可供任何人使用:

在此处输入图片描述

\documentclass{article}
\usepackage[export]{adjustbox}  % for "valign",  also load graphicx
\usepackage{tabularray}
\UseTblrLibrary{counter, varwidth}       % <===

\usepackage[font=small, labelfont=bf]{caption}

\begin{document}
    \begin{figure}[htp]
\begin{tblr}{colspec={X[c] X[c]},
             measure = vbox     % <----
             }
\includegraphics[width=\linewidth,valign=t]{example-image-duck}
    \caption{Before.}   
    &
\includegraphics[width=\linewidth,valign=t]{example-image-duck}
    \caption{After.}
\end{tblr}
    \end{figure}


    \begin{figure}[htp]
\begin{tblr}{colspec={X[c] X[c]},
             measure = vbox
             }
\tikz \draw (0,0) circle (1);
    \caption{Before.}
    &
\tikz \draw (0,0) rectangle (1,1);
    \caption{After.}
\end{tblr}
    \end{figure}

\end{document}

笔记:

  • 浮动元素不应插入任何框/表格单元格内
  • 为了插入\caption单元格,您需要加载库varwidth并添加到表序言选项measure = vbox
  • 图形编号正确,counter需要图书馆

答案2

如果标题的唯一目的是为图片附加简短的描述,并且您不需要标签和图表等,则可以在另一行添加标题。

\documentclass{article}
\usepackage{tabularray}
\usepackage{tikz}
\begin{document}
\begin{tblr}{cells={halign=c}}
\tikz \draw (0,0) circle (1);
&
\tikz \draw (0,0) rectangle (1,1);
\\
Before
&
After
\end{tblr}
\end{document}

tblr 中 TikZ 图片的标题

相关内容