Eu gostaria de anexar a chave hbox
a todos os meus tcolorbox
es.
Não tive sucesso ao incluí-lo em meu arquivo tcbset
. Então, que outras opções tenho à minha disposição para fazer isso?
\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}
Responder1
O capture
modo é especificamente protegido contra mudanças globais pelo \tcbset
.
@Andrew sugere a mesma coisa que eu também faria: deve-se usar um custom 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}
Se você realmente,realmente,realmentequiser alterar o modo de captura, você pode fazer isso com o código a seguir.
O código a seguir é apenas para demonstração. Ele usa macros internas não documentadas que podem mudar sem aviso prévio em versões futuras. Além disso, a configuração global
capture=hbox
é desencorajada por princípio.
\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}
Responder2
Por que não usar \newtcolorbox
para definir um tcolorbox personalizado que foi hbox
definido por padrão:
\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}
Usar o novo tcolorbox dá o que você deseja: