在 tcolorbox 中自动附加 capture=hbox

在 tcolorbox 中自动附加 capture=hbox

我想将密钥附加hbox到我的所有tcolorboxes 中。

我没有成功将它包含在我的里面tcbset,那么我还有什么其他的选择来完成它呢?

http://i.imgur.com/RCqybV8.png?1

\documentclass[twoside]{article}
\usepackage{tcolorbox}
\tcbset{capture=hbox}
\begin{document}
\begin{tcolorbox}
Why does this stretch across \verb|\linewidth|. :-(
\end{tcolorbox}
\begin{tcolorbox}[hbox]
Correct result
\end{tcolorbox}
\end{document}

答案1

capture模式受到 特别保护,以防止发生全局更改\tcbset

@Andrew 建议我做同样的事情:应该使用自定义tcolorbox

\documentclass[twoside]{article}
\usepackage{tcolorbox}
\newtcolorbox{mybox}[1][]{capture=hbox,#1}
\begin{document}
\begin{mybox}
This is some text in a box
\end{mybox}
\begin{mybox}
Correct result
\end{mybox}
\end{document}

如果你真的真的真的想要改变捕获模式,您可以通过以下代码进行。

以下代码仅用于演示。它使用内部未记录的宏,这些宏可能会在未来版本中更改,恕不另行通知。此外,capture=hbox原则上不鼓励全局设置。

\documentclass[twoside]{article}
\usepackage{tcolorbox}
\makeatletter
\tcbset@late@options{capture=hbox}% you are discouraged to use this code
\makeatother
\begin{document}
\begin{tcolorbox}
This is some text in a box
\end{tcolorbox}
\begin{tcolorbox}
Correct result
\end{tcolorbox}
\end{document}

答案2

为什么不使用定义已默认设置的\newtcolorbox自定义 tcolorbox :hbox

\documentclass[twoside]{article}
\usepackage{tcolorbox}
\newtcolorbox{mybox}[1][]{hbox,#1}% allow user to add custom options, with hbox as default
\begin{document}
  \begin{mybox}
    Why does this stretch across \verb|\linewidth|. :-(
  \end{mybox}
  \begin{mybox}[hbox]
  Correct result
  \end{mybox}
\end{document}

使用新的 tcolorbox 可以得到您想要的:

在此处输入图片描述

相关内容