因此,不要使用整个
\begin{equation}
{body}
\label{}
\end{equation}
我可以简单地输入类似
\inserteq{{x+y=1}{eq1}}
那会很有帮助。提前谢谢!
答案1
我已经使用这些多年,没有任何不良影响(除了 tohecz [又名 yo'] 抱怨我的排版:^)
)这不会将环境转换为宏,而只是创建一种进入和退出环境的简写语法equation
,带或不带标签和/或标点符号。
% BEGIN EQUATION MODE
\newcommand{\beq}{\begin{equation}}
% BEGIN EQUATION MODE WITH LABEL
\newcommand{\beql}[1]{\begin{equation}\label{#1}}
% 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}}
典型用法可能是
\documentclass{article}
% BEGIN EQUATION MODE
\newcommand{\beq}{\begin{equation}}
% BEGIN EQUATION MODE WITH LABEL
\newcommand{\beql}[1]{\begin{equation}\label{#1}}
% 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 is one equation,
\beql{eq:lbl}
y = mx+b
\eeqc
while here is another,
\beq
y = mx+b
\eeqp
\end{document}
答案2
实际上,对我有用的是@eudoxos 建议的答案(他在我的问题的评论中写了这个答案):
\def\inserteq#1#2{\begin{equation}{#1}\label{#2}\end{equation}}
我认为这个方法最简单。
然后你可以将其用作:
\inserteq{x+y=1}{eq1}
答案3
我通常使用eq
宏:
\makeatletter
\def\eq{\@ifstar\@eq\@@eq}
\def\@eq#1{\begin{equation*}#1 \end{equation*}}
\def\@@eq#1#2{\begin{equation}\label{#1}#2 \end{equation}}
\makeatother
eq 宏将标签作为第一个参数,将方程式作为第二个参数。带星号的版本仅接受方程式。但是,没有语法色彩,并且一些编辑器在编写时会注意到标签并提供它们\ref
,这在这里不起作用。使用示例:
\eq{b-a:ba}{1+1=2}
\eq*{2+2+=4}
类似地,我发现括号/方括号的快捷方式很有用:
\def\({\left(}
\def\){\right)}
\def\[{\left[}
\def\]{\right]}
例子:
\eq{eq:ex-parenthesis}{\(t+3\)\times9-2=0}