我怎样才能将方程式分解成更小的部分?

我怎样才能将方程式分解成更小的部分?

与其写很长的行来创建复杂的方程式,不如用变量来代替较小的块...

一个简单的例子:

\[
\frac{ \sqrt{ \mu(i)^{ \frac{3}{2}} (i^{2} -1) } }
{ \sqrt[3]{\rho(i) - 2} + \sqrt[3]{\rho(i) - 1} }
\]

它会像这样完成:

A = \sqrt{ \mu(i)^{ \frac{3}{2}} (i^{2} -1) }
B = \sqrt[3]{\rho(i) - 2} 
C = \sqrt[3]{\rho(i) - 1} 
\[
\frac{ A } { B + C }
\]

结果是一样的,但是代码更易于阅读,示例也更加复杂。

我如何轻松定义这些替换或参数?或者使用任何专门的包?

PD:Tex.StackExchange 上还有其他问题询问如何将一个方程分成几行,但这并不一样。

答案1

当然可以,因为 TeX 是一种宏扩展语言:

\[
\newcommand\cA{\sqrt{ \mu(i)^{ \frac{3}{2}} (i^{2} -1) }}
\newcommand\cB{\sqrt[3]{\rho(i) - 2}}
\newcommand\cC{\sqrt[3]{\rho(i) - 1}}
%
\frac{ \cA } { \cB + \cC }
\]

我更喜欢使用“块”的前缀,以免破坏已经定义的宏(无论如何,由于,您会收到警告\newcommand)。

由于\[...\]形成一个组,这些宏在显示结束时将变为未定义。

另一种选择,使用数学活跃字符(但风险更大):

\documentclass{article}
\usepackage{amsmath}

\newcommand{\chunk}[2]{%
  % #1 is a letter, #2 the replacement text
  \begingroup\lccode`~=`#1\lowercase{\endgroup\def~}{#2}%
  \mathcode`#1="8000
}

\newenvironment{abbrev}{}{}

\begin{document}

\[
\chunk{A}{\sqrt{ \mu(i)^{ \frac{3}{2}} (i^{2} -1) }}
\chunk{B}{\sqrt[3]{\rho(i) - 2}}
\chunk{C}{\sqrt[3]{\rho(i) - 1}}
%
\frac{ A } { B + C }
\]

\begin{abbrev}% defining \chunk in align wouldn't work
\chunk{A}{a+b}
\chunk{B}{c+d}
\begin{align}
x &= A\\
y &= B
\end{align}
\end{abbrev}

\end{document}

在此处输入图片描述

相关内容