我正在使用该tcolorbox
套餐,并希望定制设置\tcbhighmath
。但是,使用\tcbset{highlight math style={...}}
重置所有我不触碰的设置。
我想要类似的东西\tcbset{highlight math style+={...}}
我没找到任何一个
- 一种方法来做到这一点,或者
- 作为一种 hack,关于默认值的文档
highlight math style
(据称没有默认值,但显然\tcbhighmath
不同于\tcboxmath
),或者 - 作为一种黑客手段,提供有关如何打印这些默认值的文档。
我唯一可行的办法就是裹 \tcbhighmath
传递我的自定义设置。这样可以防止使用其他tcbhighmath
选项。
我确信这些文档存在于 tikz/tcolorbox 手册的某个地方,但它们总共约 1800 页,而且我不是 tikz 专家,所以大约 1 小时后我就宣布失败了。即使
\pgfkeys{/tcb/highlight math style/.show code}
仅显示以下内容,不显示默认颜色:
> \pgfkeysshower=\long macro:
#1\pgfeov ->\pgfkeysalso {highlight math/.style={notitle,nophantom,#1}}.
\pgfkeys@code ...keysshower }\show \pgfkeysshower
\renewcommand
请参阅下面的 MWE。移动/\tcbset
超出框架时问题不会消失;这只是为了说明。
\documentclass[14pt]{beamer}
\usepackage[theorems]{tcolorbox}
\begin{document}
\newcommand\hl[1]{\tcbhighmath{#1}}
\begin{frame}[fragile]{Test}
\begin{align*}
\hl{1}+1={}&2
\end{align*}
% I want to tweak the settings for tcbhighmath.
% Works:
\renewcommand\hl[1]{\tcbhighmath[left=0mm,right=0mm,top=0mm,bottom=0mm]{#1}}
\begin{align*}
\hl{1}+1={}&2
\end{align*}
% Doesn't work — it also resets the color for tcbhighmath:
\renewcommand\hl[1]{\tcbhighmath{#1}}
\tcbset{highlight math style={left=0mm,right=0mm,top=0mm,bottom=0mm}}
\begin{align*}
\hl{1}+1={}&2
\end{align*}
\end{frame}
\end{document}
答案1
从源代码来看,highlight math style
定义为
\tcbset{
highlight math style/.style={highlight math/.style={notitle,nophantom,#1}}
}
并初始化为
\tcbset{
highlight math style={colframe=red,colback=yellow!25!white}
}
这相当于
\tcbset{
highlight math/.style={notitle,nophantom,colframe=red,colback=yellow!25!white}
}
当您使用 时\tcbset{highlight math style={left=0mm,right=0mm,top=0mm,bottom=0mm}}
,样式highlight math
会被重新定义,初始colframe=red,colback=yellow!25!white
部分会丢失,因此结果会有所不同。
您可以复制并粘贴colframe=red,colback=yellow!25!white
到highlight math style={...}
。
\documentclass[14pt]{beamer}
\usepackage[theorems]{tcolorbox}
\begin{document}
\newcommand\hl[1]{\tcbhighmath{#1}}
\begin{frame}[fragile]{Test}
\begin{align*}
\hl{1}+1={}&2
\end{align*}
% I want to tweak the settings for tcbhighmath.
% Works:
\renewcommand\hl[1]{\tcbhighmath[left=0mm,right=0mm,top=0mm,bottom=0mm]{#1}}
\begin{align*}
\hl{1}+1={}&2
\end{align*}
% Works as well:
\renewcommand\hl[1]{\tcbhighmath{#1}}
\tcbset{highlight math style={
colframe=red, colback=yellow!25!white,
left=0mm, right=0mm, top=0mm, bottom=0mm
}}
\begin{align*}
\hl{1}+1={}&2
\end{align*}
\end{frame}
\end{document}
更新:
您还可以定义一个新的选项
\tcbset{
highlight math style app/.style={highlight math/.append style={#1}}
}
然后使用
\tcbset{highlight math style app={
left=0mm, right=0mm, top=0mm, bottom=0mm
}}