tcolorbox に capture=hbox を自動的に追加する

tcolorbox に capture=hbox を自動的に追加する

hboxすべての ES にキーを追加したいと思いますtcolorbox

にそれを含めることで失敗したので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 を使用すると、必要なものが得られます。

ここに画像の説明を入力してください

関連情報