数学等式内的段落模式或重复使用数组列

数学等式内的段落模式或重复使用数组列

我的问题是我想重复使用某个数学方程中的间距,例如:

\begin{equation}
\begin{array}{l@{\hspace{3mm}}c@{\hspace{3mm}}l}
... & := &  ... \\[4mm]
    & =: &  ...
\end{array}
\end{equation}

这个等式后面跟着一些文字,然后我想用数组列之间的相同间距重复上述等式。这可能吗?开箱即用,我将获得 tex 根据数学符号制作的另一个间距。

也许可以坚持使用一个方程环境并在方程中插入文本。但是\mbox{...}或还\text{...}不够好,因为文本必须以段落模式显示,相对于页面左对齐。

关于我的问题的 MWE,Harish Kumar 的回答是:

\documentclass{article}

\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{amsthm}
\usepackage{mathtools}
\usepackage{relsize}
\usepackage{stmaryrd}
\usepackage{bm}

\begin{document}

\noindent 
Example 1 (not ok):
\begin{align}
\begin{array}{l@{\hspace{3mm}}c@{\hspace{3mm}}l}
a \cdot b & := &  a \cdot \mathlarger{\llbracket\,} 0, \, b \mathlarger{\,\rrbracket} \\[4mm]
    & =: &  ...
\end{array}
\intertext{In the group this means that ... }
\begin{array}{l@{\hspace{3mm}}c@{\hspace{3mm}}l}
a & = &  b.
\end{array}
\end{align}
Example 2 (ok):
\begin{align}
\begin{array}{l@{\hspace{3mm}}c@{\hspace{3mm}}l}
a \cdot b & := &  a \cdot b \\[4mm]
    & =: &  ...
\end{array}
\intertext{In the group this means that ... }
\begin{array}{l@{\hspace{3mm}}c@{\hspace{3mm}}l}
a & = &  b.
\end{array}
\end{align}

\end{document}

答案1

您可以使用align(short)intertext

\documentclass{article}
\usepackage{mathtools,lipsum}
\begin{document}
  \begin{align}
\begin{array}{l@{\hspace{3mm}}c@{\hspace{3mm}}l}
... & := &  ... \\[4mm]
    & =: &  ... 
\end{array}
\intertext{\lipsum*[1]}      %% or \shortintertext{\lipsum*[1]} from mathtools
\begin{array}{l@{\hspace{3mm}}c@{\hspace{3mm}}l}
... & := &  ... \\[4mm]
    & =: &  ... 
\end{array}
\end{align}
\end{document}

在此处输入图片描述

处理编辑后的问题:

您也可以摆脱array

\documentclass{article}
\usepackage{showframe}   %% just for demo
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{amsthm}
\usepackage{mathtools}
\usepackage{relsize}
\usepackage{stmaryrd}
\usepackage{bm}

\newcommand{\h}[1]{\widehat{\bm{#1}}}
\newcommand{\he}{\ensuremath{\tfrac{1}{2}}}
\newcommand{\quat}[2]{\mathlarger{\llbracket\,} \cos{(\he#2)}, \, \sin{(\he#2)} \,\h{#1} \mathlarger{\,\rrbracket}}
\newcommand{\quatv}[1]{\mathlarger{\llbracket\,} 0, \,\h{#1} \mathlarger{\,\rrbracket}}

\begin{document}

\begin{align}
 \quatv{b} \cdot \quatv{a} & := \mathlarger{\llbracket} -\h{b}\cdot\h{a}, \, \h{b}\times\h{a} \mathlarger{\,\rrbracket} \quad \equiv \quad \mathlarger{\llbracket\,} \h{a}\cdot\h{b}, \, \h{a}\times\h{b} \mathlarger{\,\rrbracket} = \\[4mm]
 & =:  \quat{n}{\gamma}.\\
\intertext{In the group this means that ... }
 L_b \circ L_a & =:   R(\gamma \h{n}).
\end{align}

\end{document}

在此处输入图片描述

如果这种情况持续很长时间,您可以添加\allowdisplaybreaks您的序言。

答案2

另一个解决方案是使用更简单、因此更易读的代码。我使用mathtools代替amsmathxparse,使用 允许\Braket使用简单的语法(1 个参数)定义命令。我使用coloneqqeqqcolon命令,它们会产生垂直居中的冒号(使用 则不是这种情况:=)。对齐和编号本身是通过在容器aligned中嵌套环境获得的align

\documentclass{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{mathtools}
\usepackage{amssymb}
\usepackage{amsfonts}
\usepackage{amsthm}
\usepackage{stmaryrd}
\usepackage{bm}

\newcommand{\h}[1]{\widehat{\bm{#1}}}
\newcommand{\he}{\ensuremath{\tfrac{1}{2}}}
\newcommand{\myquat}[2]{\Brackets[\big]{\cos{(\he#2)}, \sin{(\he#2)} \,\h{#1}}}
\newcommand{\myquatv}[1]{\Brackets[\big]{0,\h{#1}}}
%
\usepackage{xparse}
\DeclarePairedDelimiterX{\Brackets}[1]{\llbracket}{\rrbracket}{\setargs{#1}}
\NewDocumentCommand{\setargs}{ >{\SplitArgument{1}{,}}m }
 {\setargsaux#1}
\NewDocumentCommand{\setargsaux}{ m m }
 {#1,\,#2\mkern1.5mu}

\begin{document}

\begin{align}
 \myquatv{b} \cdot \myquatv{a} &
\begin{aligned}[t]{}\coloneqq {}& \Brackets[\big]{-\h{b}\cdot\h{a},\h{b}\times\h{a}}\equiv  \Brackets[\big]{ \h{a}\cdot\h{b}, \h{a}\times\h{b}} = \\[4mm]
\eqqcolon {}& \myquat{n}{\gamma}.% \mathllap{}
\end{aligned}
\intertext{In the group this means that ... }
 L_b \circ L_a &\begin{aligned}[t]
 {}\eqqcolon{} &    R(\gamma \h{n}).
\end{aligned}
\end{align}

\end{document} 

在此处输入图片描述

相关内容