![tcolorbox 内带有 empheq 的新环境](https://linux22.com/image/371839/tcolorbox%20%E5%86%85%E5%B8%A6%E6%9C%89%20empheq%20%E7%9A%84%E6%96%B0%E7%8E%AF%E5%A2%83.png)
我必须定义一个新的环境来做这样的事情。
\documentclass[12pt]{article}
\usepackage{tcolorbox,empheq}
\begin{document}
\begin{tcolorbox}
\begin{empheq}{align}
a=b
\end{empheq}
\end{tcolorbox}
\end{document}
该代码运行良好,但如果我尝试使用 testa 或 testb 之类的代码,就会出现错误。
\documentclass[12pt]{article}
\usepackage{tcolorbox,empheq}
\newenvironment{testa}{\tcolorbox\empheq{align}}{\endempheq\endtcolorbox}
\newenvironment{testb}{\tcolorbox\setkeys{EmphEqEnv}{align}\EmphEqMainEnv}{\endEmphEqMainEnv\endtcolorbox}
\begin{document}
\begin{testa}
a=b
\end{testa}
\end{document}
有解决办法吗?
答案1
我建议使用临时包装环境empheq
然后“包装”\tcolorboxenvironment
它:
\documentclass[12pt]{article}
\usepackage[most]{tcolorbox}
\usepackage{empheq}
\newenvironment{testa}{%
\empheq{align}
}{\endempheq}
\tcolorboxenvironment{testa}{colback=yellow!40!white}
\begin{document}
\begin{testa}
a=b
\end{testa}
\end{document}
答案2
我明白您想tcolorbox
与结合empheq
。您应该声明tcolorbox
一个环境,其中包含一个可选参数,该参数定义颜色框方面,而不是包含环境的 。此组合可以声明为empheq
empheq
newenvironment
\documentclass{article}
\usepackage{amsmath}
\usepackage{empheq}
\usepackage[most]{tcolorbox}
\newtcbox{\mymath}[1][]{%
nobeforeafter, math upper, tcbox raise base,
enhanced, colframe=blue!30!black,
colback=blue!30, boxrule=1pt,
#1}
\newenvironment{testa}[1]{%
\empheq[box={#1}]{align}}{\endempheq}
\begin{document}
\begin{empheq}[box=\mymath]{align}
c_i &= \langle\psi|\phi\rangle \\
d_i &= \sqrt{x^2-1}
\end{empheq}
\begin{testa}{\mymath[colback=red!30]}
c_i &= \langle\psi|\phi\rangle \\
d_i &= \sqrt{x^2-1}
\end{testa}
\end{document}
其他一些例子有吸引力的方框方程