我正在尝试制作一个带有标题的浮动表格,表格和标题都应该被框架包围。框架的宽度应该反映表格和标题的大小,而不是整个行宽,并且我希望所有内容都居中。以下 MWE 显示了文章文档类的预期和期望行为:
\documentclass{article}
%\documentclass{scrbook}
\usepackage{lipsum}
\usepackage[framemethod=TikZ]{mdframed}
\usetikzlibrary{shadows}
\usepackage{environ}
\usepackage{varwidth}
\newlength{\MyMdframedWidthTweak}
\NewEnviron{MyMdframed}[1][]{%
\setlength{\MyMdframedWidthTweak}{\dimexpr%
+\mdflength{innerleftmargin}
+\mdflength{innerrightmargin}
+\mdflength{leftmargin}
+\mdflength{rightmargin}
}%
\savebox0{%
\begin{varwidth}{\dimexpr\linewidth-\MyMdframedWidthTweak\relax}%
\BODY
\end{varwidth}%
}%
\begin{mdframed}[
userdefinedwidth=\dimexpr\wd0+\MyMdframedWidthTweak\relax,
#1]
\usebox0
\end{mdframed}
}
\begin{document}
\lipsum[1]
\begin{table}[h!]
\begin{MyMdframed}[align=center]
\caption{This is my caption text}
\begin{tabular}{l|ccc}\hline
Szenario $s$ & 1 & 2 & 3 \\ \hline
Premium & 3000 & 3500 & 4500 \\
DeLuxe & 1200 & 1500 & 2500 \\ \hline
\end{tabular}
\end{MyMdframed}
\end{table}
\lipsum[1]
\end{document}
使用文章文档类,一切看起来都符合预期:
但是,如果我使用记事本类,表格不再居中并且框的宽度现在等于线宽:
我需要做什么才能看到我的表格的宽度和居中对齐效果相同文章使用时类记事本上课吗?
多谢!
斯蒂芬
答案1
tcolorbox
这里有一个替代的解决方案mdframed
:
\documentclass{scrbook}
\usepackage{lipsum}
\usepackage[most]{tcolorbox}
\newtcolorbox[blend into=tables]{mytable}[2][]{float=htb,
sharp corners,
boxrule=0.5pt,
titlerule = 0pt,
colback=white,
colframe=black,
colbacktitle=white,
coltitle=black,
halign=center,
capture=hbox,
title={#2},
every float=\centering,
#1}
\begin{document}
\lipsum[1]
\begin{mytable}[label=myref]{This is my caption text}
\begin{tabular}{l|ccc}\hline
Szenario $s$ & 1 & 2 & 3 \\ \hline
Premium & 3000 & 3500 & 4500 \\
DeLuxe & 1200 & 1500 & 2500 \\ \hline
\end{tabular}
\end{mytable}
\lipsum[1]
\end{document}