Zugriff auf den letzten Wert von `\label`

Zugriff auf den letzten Wert von `\label`

Ich möchte einige Editor-Tools erstellen: Wenn ich nur am Entwurf meines Dokuments arbeite, möchte ich nach jeder Gleichung den „Namen“ des equation(von \label) festgelegten Elements anzeigen. Zum Beispiel im Fall von

\begin{equation}
\label{eq::einstein}
E=mc^2
\end{equation}

Ich möchte so etwas sehen wie

E = mc ^ 2 (1)

(Gleichung::Einstein)

Ich muss versuchen, \labelden Parameter neu zu definieren, um ihn zu speichern, und ihn \@currentlabelnamedann neu zu definieren, um ihn anschließend (in ein Randnotizfeld) environment equationzu drucken .\@currentlabelnameequation

Mein MnWE:

\documentclass[a4paper]{article}

\usepackage[T1]{fontenc} 
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\usepackage{amsmath}

\usepackage{marginnote}
\usepackage{tikz}
\setlength{\marginparwidth}{1.5cm}
\usepackage{todonotes}

\usepackage{regexpatch}
\makeatletter
\xpatchcmd{\@todo}{\setkeys{todonotes}{#1}}{\setkeys{todonotes}{size=\tiny,#1}}{}{}
\makeatother

\newcommand{\note}[2][yellow]{\todo[color=#1]{\tiny #2}}

\makeatletter
\let\oldlabel\label
%%
%% Problem occurs here
%%
\def\label#1{\oldlabel \gdef\@currentlabelname{#1}}

\let\Oldequation\equation
\let\Oldendequation\endequation
\renewenvironment{equation}{\Oldequation}{\Oldendequation \note[blue!90!black]{\textcolor{white}{\@currentlabelname}}}
\makeatother

\usepackage{lipsum}

\begin{document}

\lipsum[1]

\begin{equation}
\label{equ::lenvente}
d_{twin}=\frac{1}{\beta}
\end{equation}

\lipsum[1]

\end{document}

Vielen Dank für Ihre Zeit!

Antwort1

Ein offensichtlicher Fehler in Ihrem Beispiel ist

\def\label#1{\oldlabel \gdef\@currentlabelname{#1}}

as \oldlabelerwartet ein Argument ( \let\oldlabel\label!) und verschlingt \gdef. Sie könnten versuchen,

\def\label#1{\oldlabel{#1} \gdef\@currentlabelname{#1}}

aber wie auch immer, was Sie wollen, ist leicht zu erreichen durch

\documentclass{article}
\usepackage{xcolor}
\usepackage{showkeys}

\makeatletter
\renewcommand*\showkeyslabelformat[1]{\colorbox{blue!90!black}{\textcolor{white}{#1}}}

\makeatother

\begin{document}
\begin{equation}
  \label{equ::lenvente}
  d_{\mathrm{twin}}=\frac{1}{\beta}
\end{equation}
\end{document}

Ausgabe

verwandte Informationen