如何在 tcolorbox 对齐环境中重置方程计数器?

如何在 tcolorbox 对齐环境中重置方程计数器?

在仔细阅读了这个网站和tcolorbox文档一个多小时后,我还是搞不清楚如何重置derivation环境中的方程计数器。我用编写了旧版本,mdframed它和环境开始时一样简单\setcounter{equation}{0},但这显然在这里不起作用。我需要从每个实例开始重新编号derivation。我觉得这很简单,我只是没有看到它。

我的 MWE:

% !TEX TS-program = lualatexmk
% !TEX encoding = UTF-8 Unicode

\documentclass{article}
\usepackage{amsmath}
\usepackage{tcolorbox}
\tcbuselibrary{theorems}
\newtcolorbox[auto counter]{derivation}{%
  ams align,%
  title={DERIVATION \thetcbcounter},%
  fonttitle=\bfseries,%
  label={derivation@\thetcbcounter},
  coltitle=black,%
  colback=orange!25,%
  colframe=orange!60%
  %colback=orange!5!white,%
  %colframe=orange!75!black%
}%
\begin{document}
\begin{derivation}
  x + y &= z     && \text{given} \\
      y &= z - x && \text{solve for \(y\)}
\end{derivation}
\begin{derivation}
  \gamma &= \frac{1}{\sqrt{1-v^2}}      && \text{definition} \\
       v &= \sqrt{1-\frac{1}{\gamma^2}} && \text{solve for \(v\)}
\end{derivation}
\end{document}

MWE 输出: MWE 输出

答案1

有各种钩子允许人们在构建框的各个阶段执行一些代码。以下使用codeafter。它还重新定义和恢复方程编号,类似于这个问题。但请注意,我并不想给人留下这是一个超级稳定的解决方案的印象。我没有检查这是否适用于 hyperref,也没有进行其他交叉检查。然而,一个可能更稳定的解决方案(可能会或可能不会使用未来版本的 LaTeX 内核)可能使用与此代码相同的键。

\documentclass{article}
\usepackage{amsmath}
\usepackage{tcolorbox}
\tcbuselibrary{theorems}
\newcounter{savedeq}
\newtcolorbox[auto counter]{derivation}{%
  code=\setcounter{savedeq}{\value{equation}}%
    \setcounter{equation}{0}\renewcommand{\theequation}{\thetcbcounter-\arabic{equation}},%
  after=\setcounter{equation}{\value{savedeq}},%
  ams align,%
  title={DERIVATION \thetcbcounter},%
  fonttitle=\bfseries,%
  label={derivation@\thetcbcounter},
  coltitle=black,%
  colback=orange!25,%
  colframe=orange!60,%
  %colback=orange!5!white,%
  %colframe=orange!75!black%
}%
%\numberwithin{equation}{derivation}
\begin{document}
\begin{equation}
E=mc^2
\end{equation}
\begin{derivation}
  x + y &= z     && \text{given} \\
      y &= z - x && \text{solve for \(y\)}
\end{derivation}
\begin{equation}
E=h\nu
\end{equation}
\begin{derivation}
  \gamma &= \frac{1}{\sqrt{1-v^2}}      && \text{definition} \\
       v &= \sqrt{1-\frac{1}{\gamma^2}} && \text{solve for \(v\)}
\end{derivation}
\begin{equation}
a^2+b^2=c^2
\end{equation}
\end{document}

在此处输入图片描述

相关内容