自動在 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 可以滿足您的需求:

在此輸入影像描述

相關內容