我正在尝试为表格内的图片添加标题,但无法做到。我研究过这个解决方案但灵活的X
列并不像描述的那样工作。
有问题的代码。
\documentclass[margin=2in]{article}
\usepackage{tabularray}
\usepackage{graphicx}
\usepackage{caption}
\begin{document}
\begin{figure}[h]
\begin{tblr}{X[2,r] X[-1,r]}
\includegraphics[width=2in]{example-image-a}
\captionof{figure}{Figure A}
&
\includegraphics[width=2in]{example-image-b}
\end{tblr}
\end{figure}
\end{document}
错误输出:
You can't use `\hrule' here except with leaders. \end
Missing number, treated as zero. \end
Illegal unit of measure (pt inserted). \end
Missing \endgroup inserted. \end
Missing } inserted. \end
Use of \??? doesn't match its definition. \end
Extra \endgroup. \end
Too many }'s. \end
我也尝试过用caption
和caption*
代替captionof
。如能得到帮助,我将不胜感激。
答案1
您可以将它们放在 \parbox 中:
\documentclass[margin=2in]{article}
\usepackage{tabularray}
\usepackage{graphicx}
\usepackage{caption}
\begin{document}
\begin{figure}[h]
\begin{tblr}{X[2,r] X[-1,r]}
\parbox[t]{\linewidth}{%
\includegraphics[width=2in]{example-image-a}
\captionof{figure}{Figure A}}
&
\includegraphics[width=2in]{example-image-b}
\end{tblr}
\end{figure}
\end{document}
答案2
您需要添加两个库:(counter
用于正确的标题编号),varwidth
(用于消除错误)和 tblr
选项 measure = vbox
:
\documentclass{article}
\usepackage{graphicx}
\usepackage[skip=1ex]{caption}
\usepackage{tabularray} % version 2021P
\UseTblrLibrary{counter,varwidth} % <===
\begin{document}
\begin{figure}[ht]
\begin{tblr}{colspec={Q[c, wd=2in] Q[c, wd=2in]},
measure = vbox} % <===
\includegraphics[width=\linewidth]{example-image-a}
\caption{Figure A}
& \includegraphics[width=\linewidth]{example-image-b}
\end{tblr}
\end{figure}
\end{document}
编辑:
注意,对于上述解决方案,您需要使用tabularray
软件包版本 2021P,该版本支持/包含库counter
和varwidth
应包含tblr
选项measure = vbox
。旧版本(2021N 之前)不支持/启用上述所有内容。
如果您有旧版本的软件包(它仍在快速开发中),我建议您升级它。此外,最新版本还修复了一些错误并改进了文档。
您可以使用或来代替Q[c, wd=1in]
(宽度取自图像宽度) 。在这种情况下,编译将引发警告。X[c]
X[h]