我想將密鑰附加hbox
到我的所有tcolorbox
es 中。
我沒有成功地將其包含在我的 中tcbset
,那麼我還有哪些其他選項可以完成它?
\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 可以滿足您的需求: