修改标签命令

修改标签命令

可以肯定这是非常明显的事。

尝试\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}

在此处输入图片描述

相关内容