몇 가지 편집 도구를 만들고 싶습니다. 문서의 초안만 작업할 때 각 방정식 뒤에 equation
(설정 )의 '이름'을 표시하고 싶습니다. \label
예를 들어 다음과 같은 경우
\begin{equation}
\label{eq::einstein}
E=mc^2
\end{equation}
나는 같은 것을보고 싶다
E=mc^2 (1)
(eq::아인슈타인)
\label
매개변수를 저장하기 위해 재정의한 다음 (여백 메모 상자에) 이후에 인쇄하기 위해 \@currentlabelname
재정의 해야 했습니다 .environment
equation
\@currentlabelname
equation
내 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}
시간 내 주셔서 감사합니다!
답변1
귀하의 예에서 한 가지 명백한 실수는
\def\label#1{\oldlabel \gdef\@currentlabelname{#1}}
\oldlabel
인수(!)를 예상하고 게걸 \let\oldlabel\label
스럽게 먹어치우고 있습니다 \gdef
. 당신은 시도 할 수 있습니다
\def\label#1{\oldlabel{#1} \gdef\@currentlabelname{#1}}
하지만 어쨌든 당신이 원하는 것은 쉽게 달성됩니다
\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}