
我的問題是我想重用某個數學方程式中的間距,例如:
\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 個參數)定義指令。我使用和命令,它會產生一個垂直居中的冒號( 的情況並非如此)。對齊和編號本身是透過容器中的嵌套環境獲得的。amsmath
xparse
\Braket
coloneqq
eqqcolon
:=
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}