我想要:一个table
带有标题的浮动(带有悬挂缩进),这样table
和标题都被一个用背景色填充的框架包围。
我的环境层次结构是table
» adjust box
» \caption
» tabular
。
我正在使用该caption
包来格式化字幕,这里最重要的是使用format=hang
选项。
在以下 MWE 中,该\caption
命令触发
You can't use '\vadjust' in internal vertical mode
错误,但如果出现以下任一情况,该错误就会消失:
- 我缩短了标题文本,以便它不会流到第二行。
- 我删除
format=hang
了\captionsetup
为什么会发生这种情况?(我不知道\vadjust
发生在哪里或为什么会引发错误。)
或者,更一般地说,一种替代解决方案既允许(a)表格和标题周围的彩色框架,又允许(b)标题的悬挂缩进?
我意识到我可以放弃显式的table
环境,让adjustbox
环境 (a) 浮动表格和 (b) 格式化标题。问题是我的彩色框架将不包含标题(因为,根据这adjust box
,§4.13,用于将调整后的框变为浮点数的键“也允许使用标题……必须最后使用,并且之后不能再使用其他普通键,否则将由于添加的浮动环境再次被装箱而发生错误”)。
\documentclass[12pt]{article}
\usepackage{adjustbox}
\usepackage{xcolor}
\usepackage{caption}
\captionsetup{margin=2em, labelfont={bf},format=hang,justification=raggedright}
\begin{document}
\begin{table}
\begin{adjustbox}{varwidth=\textwidth,padding=1em,bgcolor=pink,frame=1pt,center}
\caption{A caption designed to be long enough that it flows to the next line}
\begin{tabular}[t]{cc}
Column1 & Column2 \\
\hline
$x$ & $y$ \\
\end{tabular}
\end{adjustbox}
\end{table}
\end{document}
答案1
为什么不是一个小型页面?
\documentclass[12pt]{article}
\usepackage{adjustbox}
\usepackage{xcolor}
\usepackage{caption}
\captionsetup{margin=2em, labelfont={bf},format=hang,justification=raggedright}
\begin{document}
\begin{table}
\begin{adjustbox}{padding=1em,bgcolor=pink,frame=1pt,center}
\begin{minipage}{\dimexpr\textwidth-1pt-1em}
\caption{A caption designed to be long enough that it flows to the next line}
\begin{tabular}[t]{cc}
Column1 & Column2 \\
\hline
$x$ & $y$ \\
\end{tabular}
\end{minipage}
\end{adjustbox}
\end{table}
\end{document}