我如何重置标签号码?

我如何重置标签号码?

形式边缘外的编号方程和定理

我找到了解决方案。但我想重置号码。例如 (1) (2) (3) (1) (2) (3) (4) (5) (1) (2) (3) 我该怎么办?


\documentclass[leqno]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\usepackage{amsmath, amsthm}
\usepackage{mdframed}
%% Code by David Carlisle at https://tex.stackexchange.com/a/258575/38080
\makeatletter
\def\formatout#1{\hbox{\hskip1sp\m@th\llap{%
    \normalcolor\normalfont#1\hspace{1.0cm}}}}
\let\oldmaketag@@@\maketag@@@
\def\oldtagform@#1{\oldmaketag@@@{(\ignorespaces#1\unskip\@@italiccorr)}}
\renewcommand{\eqref}[1]{\textup{\oldtagform@{\ref{#1}}}}
\def\maketag@@@#1{\formatout{#1}}
%
% redefine the amsthm theorem start macro to use \formatout
%
\def\@begintheorem#1#2[#3]{%
  \deferred@thm@head{\the\thm@headfont \thm@indent
    \@ifempty{#1}{\let\thmname\@gobble}{\let\thmname\@iden}%
    \@ifempty{#2}{\let\thmnumber\@gobble}{\let\thmnumber\thmnumber}%
    \@ifempty{#3}{\let\thmnote\@gobble}{\let\thmnote\@iden}%
    \thm@swap\swappedhead\thmhead{#1}{#2}{#3}%
    \the\thm@headpunct
    \thmheadnl % possibly a newline.
    \hskip\thm@headsep
  }%
  \ignorespaces}%
\makeatother
\swapnumbers
\def\thmnumber#1{\formatout{(#1)}}
% https://tex.stackexchange.com/a/303245/38080
\newtheorem{thm}[equation]{Theorem}
\newtheorem{exa}[equation]{Example}
\begin{document}

Let's start with
\begin{equation}
    E=mc^2
    \label{eq:mc2}
\end{equation}
so we go to:

\begin{thm}{Einsteins:}
    $E$ is equal to $m$ $c$ squared
    \label{thE}
\end{thm}

This leads to this

\begin{exa}{Example:}
    $E$ is equal to $m$ multiplied a BIG number
    \label{exE}
\end{exa}

% innerleftmargin+leftmargin must be 0pt...
\begin{mdframed}[backgroundcolor=gray!20, innerleftmargin=0pt, linewidth=0pt]
Also
\begin{equation}
    m=E/c^2
    \label{eq:mc2i}
\end{equation}
\end{mdframed}

And the references are Eq.~\ref{eq:mc2}, Th.~\ref{thE}, Ex.~\ref{exE}.

\end{document}

答案1

我想到的是这个:它是有点自动的,所以你不必看着你的计数器重置......

\documentclass[leqno]{report}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{xcolor}
\usepackage{amsmath, amsthm}
\usepackage{mdframed}
%% Code by David Carlisle at https://tex.stackexchange.com/a/258575/38080
\makeatletter
\def\formatout#1{\hbox{\hskip1sp\m@th\llap{%
            \normalcolor\normalfont#1\hspace{1.0cm}}}}
\let\oldmaketag@@@\maketag@@@
\def\oldtagform@#1{\oldmaketag@@@{(\ignorespaces#1\unskip\@@italiccorr)}}
\renewcommand{\eqref}[1]{\textup{\oldtagform@{\ref{#1}}}}
\def\maketag@@@#1{\formatout{#1}}
%
% redefine the amsthm theorem start macro to use \formatout
%
\def\@begintheorem#1#2[#3]{%
    \deferred@thm@head{\the\thm@headfont \thm@indent
        \@ifempty{#1}{\let\thmname\@gobble}{\let\thmname\@iden}%
        \@ifempty{#2}{\let\thmnumber\@gobble}{\let\thmnumber\thmnumber}%
        \@ifempty{#3}{\let\thmnote\@gobble}{\let\thmnote\@iden}%
        \thm@swap\swappedhead\thmhead{#1}{#2}{#3}%
        \the\thm@headpunct
        \thmheadnl % possibly a newline.
        \hskip\thm@headsep
    }%
    \ignorespaces}%
\makeatother
\swapnumbers

\def\thmnumber#1{\formatout{(#1)}}
% https://tex.stackexchange.com/a/303245/38080
\newtheorem{thm}[equation]{Theorem}
\newtheorem{exa}[equation]{Example}

%%%%% New stuff here
\newcounter{threelabelcounter}
\usepackage{ifthen}
\newcommand{\countercheck}{
    \stepcounter{threelabelcounter}
    \ifthenelse{\thethreelabelcounter>2}{\setcounter{threelabelcounter}{0}}{}
    \setcounter{equation}{\thethreelabelcounter}
%\thethreelabelcounter
}
%%% until here...

\begin{document}
    
    Let's start with
    \begin{equation}
    E=mc^2
    \label{eq:mc2}
    \end{equation}
    \countercheck
    so we go to:
    
    \begin{equation}
    e
        \label{thE}
    \end{equation}
    \countercheck
    This leads to this
    
    \begin{equation}
 E
                \label{exE}
    \end{equation}
    \countercheck
    % innerleftmargin+leftmargin must be 0pt...
    \begin{mdframed}[backgroundcolor=gray!20, innerleftmargin=0pt, linewidth=0pt]
        Also
        \begin{equation}
        m=E/c^2
        \label{eq:mc2i}
        \end{equation}
    \end{mdframed}
    
    And the references are Eq.~\ref{eq:mc2}, Th.~\ref{thE}, Ex.~\ref{exE}.
    
\end{document}

现在你必须以某种方式checkcounter在标签被调用时执行。我还没有成功。

在这种情况下,类似这样的方法可能会有所帮助。重新定义方程命令或定理命令。自定义定理编号

相关内容