可以肯定这是非常明显的事。
尝试\tag{...}
通过以下方式重新定义命令:
\let\tagOld\tag
\renewcommand{\tag}[1]{\tagOld{#1$^*$}}
换句话说,它在参数后面附加了一个星号,但并没有什么区别。
如果我创建一个全新的命令:
\providecommand{\mytag}[1]{\tag{#1$^*$}}
并调用新的命令\mytag{...}
而不是\tag{...}
,然后输出将按预期生成。
答案1
\tag
本身会根据上下文重新定义,但amsmath
使用宏
\def\maketag@@@#1{\hbox{\m@th\normalfont#1}}
设置标签,所以你只需要
\makeatletter
\def\maketag@@@#1{\hbox{\m@th\normalfont#1$^*$}}
\makeatother
答案2
这mathtools
软件包为此提供了方便的工具:
\newtagform{<name>}[<inner format>]{<left>}{<right>}
\renewtagform{<name>}[<inner format>]{<left>}{<right>}
\usetagform{<name>}
因此,您可以轻松定义\newtagform{starred}{(}{$^*$)}
并说\usetagform{starred}
。这可以随时通过说来恢复\usetagform{default}
。
\documentclass{article}
\usepackage{mathtools}% also loads `amsmath'
\newtagform{starred}{(}{$^*$)}
\usetagform{starred}
\begin{document}
\begin{equation}
E \neq m c^3 \label{eq:stupid}
\end{equation}
See equation~\eqref{eq:stupid}
\end{document}