Ok, this is not trivial... I have found a solution thanks to @GuM, @David Carlisle, and looking at the code of amsthm.sty
.
Caveats:
- It is touching several internal macros. Can explode with upgrades;
- It needs
leqno
, no idea on how to adapt it for two-sided documents (solutions welcome);
- If you move the
mdframed
thing with a different innerleftmargin
or leftmargin
the number lose it's alignement.
\documentclass[leqno]{article}
\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}
Which results in: