方程内的矩阵

方程内的矩阵

我在让它正确显示方面遇到了一些困难。

 \begin{equation}
{\bf H} = -{\bf \mu} \cdot {\bf B} = - \gamma B_o {\bf S}_z = -\frac{\gamma B_o\hbar}{2} 
\begin{bmatrix} 1&0\\0&-1 \end{bmatrix}.
\end{equation}

如下所示,

丑陋的等式

我希望矩阵高度与方程的其余部分一致。

答案1

\documentclass{article}
\usepackage{amsmath}
\usepackage[nodisplayskipstretch]{setspace}
\doublespacing
\everydisplay\expandafter{\the\everydisplay\setstretch{1}}% return to singlespacing

\begin{document}
\begin{equation}
\mathbf{H} = -\mathbf\mu \cdot \mathbf{B} = -\gamma B_o \mathbf{S}_z = -\frac{\gamma B_o\hbar}{2} 
\begin{bmatrix} 1&0\\0&-1 \end{bmatrix}.
\end{equation}

\end{document} 

答案2

我会修改\env@matrix所有矩阵构造所基于的命令;

\documentclass{article}

\usepackage{amsmath,bm}
\usepackage{setspace}

\usepackage{lipsum} % just for this example

\makeatletter
\def\env@matrix{\hskip -\arraycolsep
  \let\@ifnextchar\new@ifnextchar
  \linespread{1}\selectfont
  \renewcommand{\arraystretch}{1.2}%
  \array{*\c@MaxMatrixCols c}}
\makeatother

\doublespacing

\begin{document}
\lipsum*[2]
\begin{equation}
\mathbf{H} =
 -\bm{\mu} \cdot \mathbf{B} =
 - \gamma B_o \mathbf{S}_z = -\frac{\gamma B_o\hbar}{2}
 \begin{bmatrix} 1&0\\0&-1 \end{bmatrix}.
\end{equation}
\lipsum[3]
\end{document}

还可以尝试不带\renewcommand{\arraystretch}{1.2},我添加 是为了将行间隔开一点,这样似乎更好\doublespacing

实际上,使用 来改进某些东西非常困难\doublespacing,这会破坏任何良好排版的尝试。

在此处输入图片描述


这与 Mico 和 Herbert 的方法有何不同?

Mico 的解决方案只适用于equation。Herbert 的解决方案则将单倍行距应用于全部显示环境,例如align,减少对齐方程之间的行距。这可能是可取的,也可能不是,这取决于你。


请注意,{\bf H}不应使用,而应使用\mathbf{H}。此外,您会注意到,{\bf \mu}不会加粗 mu;使用\bm{\mu}并加载bm包,就像在我的代码中一样。

答案3

您可以使用该etoolbox包并使用其\AtBeginEnvironment命令将间距重置为环境\singlespacing的开始位置equation

在此处输入图片描述

\documentclass{article}
\usepackage{amsmath}
\usepackage{setspace} % per the OP's information provided in a comment
\doublespacing
\usepackage{etoolbox}
\AtBeginEnvironment{equation}{\singlespacing}
\begin{document}
\begin{equation}
\mathbf{H} = -\boldsymbol{\mu} \cdot \mathbf{B} = - \gamma B_o \mathbf{S}_z = -\frac{\gamma B_o\hbar}{2} 
\begin{bmatrix} 1&0\\0&-1 \end{bmatrix}.
\end{equation}
\end{document}

equation备注:如果只需要固定环境,则此方法非常简单;如果文档中出现许多不同的显示数学环境,则它很快就会变得乏味。

答案4

嗯,我以为会有一个简单的(不优雅的)答案,而且确实有!只需切换到单倍行距并添加一些\vspace即可让一切变得完美!

Text here. . .Magnetic resonance imaging blah blah Hamiltonian. . .

\vspace{-0.5cm}
\singlespacing
\begin{equation}
{\bf H} = -{\bf \mu} \cdot {\bf B} = - \gamma B_o {\bf S}_z = -\frac{\gamma B_o\hbar}{2} 
\begin{bmatrix} 1&0\\0&-1 \end{bmatrix}.
\vspace{0.5cm}
\end{equation}
\doublespacing 

感谢 egreg 的评论!注:egreg警告说,这可能会导致公式移到下一页的顶部,这是大忌。因此,这种快速解决方案可能不是所有人的解决方案。

固定的!

相关内容