我已经创建了一个(如3.40 版手册第 155 页tcolorbox
所述)tcolorbox
LaTeX 代码:
\tcbset{
enhanced,
colback=red!5!white,
boxrule=0.1pt,
colframe=red!75!black,
fonttitle=\bfseries
}
My own shadow
\begin{tcolorbox}[title=My own shadow,
lifted shadow={1mm}{-2mm}{3mm}{0.1mm}%
{black!50!white}]
This is a tcolorbox.
\end{tcolorbox}
电流输出:
预期输出(通过明确设置产生:width=\linewidth/3):
我的问题是:
此框仅包含少量文本,但占据整个文本宽度
我在这里提到了一个相关问题: 如何根据里面的文字设置 tcbox 的适合高度和宽度?
minimal
但诸如:这样的选项tight
会扭曲盒子。
是否有任何选项可以使此框的宽度根据其中包含的文本的宽度自动增加?
注意:对于普通文本,添加 \hbox 可以解决此问题,但是对于项目符号列表,会导致编译错误。
例子:
\tcbset
{
enhanced,
left=8mm,
right=8mm,
boxrule=0.4pt,
colback=red!5!white,
boxrule=0.1pt,
colframe=red!75!black,fonttitle=\bfseries,
}
\begin{tcolorbox}[
title=\begin{center}Sample Title\end{center},
hbox,
lifted shadow={1mm}{-2mm}{3mm}{0.1mm}{black!50!white}
]
\begin{itemize}
\item First Line
\item Second Line
\end{itemize}
\end{tcolorbox}
编译错误:LaTeX 错误:出现问题 - 可能缺少 \item
仅供参考 - 更新后的答案显示了如何解决此问题(使用 varwidth)
答案1
您可以使用hbox
\documentclass{article}
\usepackage[most]{tcolorbox}
\begin{document}
\tcbset{
enhanced,
colback=red!5!white,
boxrule=0.1pt,
colframe=red!75!black,
fonttitle=\bfseries
}
My own shadow
\begin{tcolorbox}[title=My own shadow,hbox, %%<<---- here
lifted shadow={1mm}{-2mm}{3mm}{0.1mm}%
{black!50!white}]
This is a tcolor box
\end{tcolorbox}
\end{document}
对于修订版问题,您可能需要varwidth
包来插入itemize
。此外,要使标题居中,请使用 选项center title
而不是\begin{center}
。
\documentclass{article}
\usepackage[most]{tcolorbox}
\usepackage{varwidth} %% provides varwidth environment
\begin{document}
\tcbset{
enhanced,
colback=red!5!white,
boxrule=0.1pt,
colframe=red!75!black,
fonttitle=\bfseries
}
My own shadow
\begin{tcolorbox}[title=My own shadow,center title,hbox, %%<<---- here
lifted shadow={1mm}{-2mm}{3mm}{0.1mm}%
{black!50!white}]
\begin{varwidth}{\textwidth}
This is a tcolor box.
\begin{itemize}
\item First Line
\item Second Line
\end{itemize}
\end{varwidth}
\end{tcolorbox}
\end{document}
答案2
也许有natural width
选项,我没有找到。
一个小的解决方法:将文本包装到一个框中并获取它的宽度:
\documentclass{article}
\usepackage[most]{tcolorbox}
\begin{document}
\newsavebox{\mybox}
\savebox{\mybox}{This is a tcolorbox}
\tcbset{
enhanced,
colback=red!5!white,
boxrule=0.1pt,
colframe=red!75!black,
fonttitle=\bfseries
}
My own shadow
\begin{tcolorbox}[title=My own shadow,
lifted shadow={1mm}{-2mm}{3mm}{0.1mm}%
{black!50!white},text width=\wd\mybox]
\usebox{\mybox} % Release it ;-)
\end{tcolorbox}
\end{document}
由于文本的宽度相关,因此应该使用(新)text width
选项,而不是完整width
选项。