newcommand 中的 newcommand 不起作用

newcommand 中的 newcommand 不起作用

我经常\newcommand在另一个里面使用\newcommand,而且它通常效果很好。

但这种情况并非如此:

\documentclass[10pt]{article}
\usepackage{amsmath}

\begin{document}
\bgroup
\makeatletter
\renewcommand*{\maketag@@@}[1]{\hbox{\m@th\normalfont{\makebox[1sp][r]{#1}}}}
\makeatother
\[1+1=2\tag{abcdefghijklmnopqrstuvwxyz}\]
\egroup
\[1+1=2\]

\end{document}

此代码删除了标签的水平空间,以便两个方程式正确对齐。我想将其定义为命令,因此请尝试以下命令:

\documentclass[10pt]{article}
\usepackage{amsmath}

\newcommand{\nospacetag}[1]{%
    \makeatletter
    \renewcommand*\maketag@@@[1]{\hbox{\m@th\normalfont{\makebox[1sp][r]{##1}}}}
    \makeatother
    #1
    }
    
\begin{document}
\nospacetag{\[1+1=2\tag{abcdefghijklmnopqrstuvwxyz}\]}
\[1+1=2\]

\end{document}

但是出现了乳胶错误。

相关内容