如何实现盒中盒方程计数器

如何实现盒中盒方程计数器

我正在尝试制作一个盒子中的盒子,盒子外面有方程式计数器。第一幅图像可以通过我的代码获取,如下所示,

\documentclass[a4paper]{article}
\usepackage{amsmath,amssymb,array,cases}
\usepackage{empheq}
\newcommand*\widefbox[1]{\fbox{\hspace{2em}#1\hspace{2em}}}
\usepackage{tikz}
\usetikzlibrary{math}
\usetikzlibrary{tikzmark}


\begin{document}
    
This is what I get as follows:
\begin{empheq}[left=(M)\qquad, innerbox=\widefbox]{align}
    &\text{The equations are given as follows:} \notag\\
    &\qquad M=A+B \\
    &\qquad c=a+b \\
    &\qquad d=b+c \\
    &\text{where}  \notag\\
    &\qquad A=C+D \\
    & \qquad a=f+g \\
    & \qquad b=e+f
\end{empheq}

By tikzmark, the result what I obtain is not my desired one in the following.
\begin{tikzpicture}[remember picture,overlay]
    \draw ([yshift=-3mm,xshift=3cm]{pic cs:start}) rectangle ([yshift=1mm,xshift=-2cm]{pic cs:end});
\end{tikzpicture}
\tikzmark{start}
\begin{align}
    &\text{Equations are as follows:} \notag\\
    &\qquad M=A+B
\end{align}
\begin{empheq}[box=\fbox]{align}
        c=a+b \\
        d=b+c
    \end{empheq}
\begin{align}
    &\text{where}  \notag\\
     &A=C+D
\end{align}
\begin{empheq}[box=\fbox]{align}
     a=f+g \\
     b=e+f
\end{empheq}
\hfill
\tikzmark{end}
    
\end{document}

我想要的结果如下 我想要的结果

你能帮帮我吗?非常感谢。

答案1

在此处输入图片描述

在您的尝试中,您并没有真正使用该tikzmark库。

现在,在一个真实的例子中,您应该注意并SEn在最长的方程上设置第二个标记(在我的例子中),然后相应地调整校正坐标。

代码

\documentclass[a4paper]{article}
\usepackage{amsmath,amssymb,array,cases}
\usepackage{empheq}
\newcommand*\widefbox[1]{\fbox{\hspace{2em}#1\hspace{2em}}}
\usepackage{tikz}
\usetikzlibrary{math, calc}
\usetikzlibrary{tikzmark}

\usepackage{lipsum}

\begin{document}

\lipsum[1]

\begin{empheq}[left=(M)\qquad, innerbox=\widefbox]{align}
  &\text{The equations are given as follows:} \notag\\
  &\qquad M=A+B \\
  &\qquad \tikzmark{NW1} c=a+b \\
  &\qquad d=b+c \tikzmark{SE1}\\
  &\text{where}  \notag\\
  &\qquad A=C+D \\
  & \qquad \tikzmark{NW2} a=f+g \\
  & \qquad b=e+f \tikzmark{SE2}
\end{empheq}
\begin{tikzpicture}[remember picture]
  \draw[overlay] ($(pic cs:NW1)+(-1ex, 2.5ex)$)
  rectangle ($(pic cs:SE1)+(1ex, -1ex)$);
  \draw[overlay] ($(pic cs:NW2)+(-1ex, 2.5ex)$)
    rectangle ($(pic cs:SE2)+(1ex, -1ex)$);
\end{tikzpicture}
\lipsum[2]
\end{document}

相关内容