使用 newcommand 创建自己的 ref-label 系统而不使用附加参数?

使用 newcommand 创建自己的 ref-label 系统而不使用附加参数?

是否有可能创建一个命令来引用而不使用其他参数?我会使用类似

\newcommand{\something}[#1]{\label{#1}}

没有的话可以做到吗#1

答案1

由于您的问题非常不明确,我将举一个方程式的例子。符合您问题的是,它启动方程式环境并自动分配一个标签,其中\beql名称为方程式编号。eq:xx

请注意,这样会违背标签的整个目的,因为任何自动分配标签的系统都会发生变化,例如,如果您在已经存在的方程式之前插入一个新的带标签的方程式。 因此,虽然它可以满足您的要求,但它很容易损坏。 提供明确的标签是一种更好的方法!

为了完整起见,我还提供了\beq不带标签的方程式开头宏。相应的结束方程式宏包括\eeq直接结束、\eeqc以逗号结束和\eeqp以句号结束。

\documentclass{article}
%       BEGIN EQUATION MODE
\newcommand{\beq}{\begin{equation}}
%       BEGIN EQUATION MODE WITH LABEL
\newcommand{\beql}{\begin{equation}\label{eq:\theequation}}
%       END EQUATION MODE
\newcommand{\eeq}{\end{equation}}
%       END EQUATION MODE WITH A PERIOD
\newcommand{\eeqp}{\;\;\;.\end{equation}}
%       END EQUATION MODE WITH A COMMA
\newcommand{\eeqc}{\;\;\;,\end{equation}}
\begin{document}
Here I want a labeled equation
\beql
 E = mc^2
\eeqc
which ends in a comma.  Equation~\ref{eq:1} is not the same as
\beq
 y = mx + b
\eeqp
\end{document}

在此处输入图片描述

相关内容