數學方程式內的段落模式或重複使用數組列

數學方程式內的段落模式或重複使用數組列

我的問題是我想重用某個數學方程式中的間距,例如:

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

這個方程式後面跟著一些文本,然後我想以數組列之間相同的間距重複上面的方程式。是否可以?開箱即用,我將得到 tex 根據數學符號製作的另一個間距。

也許可以堅持一種方程式環境並將文字插入方程式中。然而\mbox{...}或者\text{...}不夠好,因為文本必須以段落模式顯示,與頁面左對齊。

Harish Kumar 對我的問題的 MWE 的回答:

\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

另一種解決方案具有更簡單、因此更具可讀性的程式碼。我使用, 和, withmathtools代替,允許使用簡單的語法(1 個參數)定義指令。我使用和命令,它會產生一個垂直居中的冒號( 的情況並非如此)。對齊和編號本身是透過容器中的嵌套環境獲得的。amsmathxparse\Braketcoloneqqeqqcolon:=alignedalign

\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} 

在此輸入影像描述

相關內容