我的问题是我想重复使用某个数学方程中的间距,例如:
\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
代替amsmath
和xparse
,使用 允许\Braket
使用简单的语法(1 个参数)定义命令。我使用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}