tcolorbox 参数条件

tcolorbox 参数条件

我想制作一个 tcolorbox,它基于变量 ( ) 的值居中。我想仅当不等于 时才\standardboxwidth调用 tcbset 的参数 center 。我查看了文档,但找不到解决方案。有人能帮帮我吗?\standardboxwidth\linewidth

以下是我的问题的一小部分代码片段:

\documentclass[a4paper, 11pt]{book}
\usepackage{tcolorbox}
\def\standardboxwidth{0.5\linewidth}
\newtcolorbox{mybox}{
    width = \standardboxwidth,
    center, %  Only call, if \standardboxwidth != \linewidth
}
\begin{document}
\begin{mybox}
    Text
\end{mybox}
\end{document}

答案1

\tcbset您可以根据条件定义自己的风格。

My Center Style下面我根据定义的条件来定义样式\UseCenter。如果是,则center应用,center否则不是已应用。

代码

\def\UseCenter{}%
\documentclass[a4paper, 11pt]{book}
\usepackage{tcolorbox}
\def\standardboxwidth{0.5\linewidth}

\ifdefined\UseCenter
    \tcbset{My Center Style/.style={center}}
\else
    \tcbset{My Center Style/.style={}}
\fi

\newtcolorbox{mybox}{
    width = \standardboxwidth,
    My Center Style, 
}


\begin{document}
\begin{mybox}
    Text
\end{mybox}
\end{document}

相关内容