获取正确对齐的复数矩阵

获取正确对齐的复数矩阵

我正在尝试编写一个包含两个项目和一个分数的矩阵。我发现矩阵输出非常奇怪,因为行和列的间距不是相同的。

除此之外,分数似乎占用了太多空间,我尝试使用大小命令来减小字体,但它们似乎在数学模式下不起作用。我写的代码如下:

\begin{align*}
Q= \begin{pmatrix}
\dfrac{1}{\Delta \alpha^2_{\mathrm{max}}} & 0 & 0 & 0\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & \dfrac{1}{\Delta h^2_{\mathrm{max}}}
\end{pmatrix}
\end{align*}

输出如下:

输出

有什么想法可以提高产量吗?

答案1

首先,您可以使用\frac而不是\dfrac在矩阵环境中缩小分数。

一个选择是,受到启发这个答案,使用tabstackengine包:

\documentclass{article}

\usepackage{tabstackengine}
\stackMath

\begin{document}
\[
\setstackgap{L}{1.1\baselineskip}
\fixTABwidth{T}
Q= \parenMatrixstack{
    \frac{1}{\Delta \alpha^2_{\mathrm{max}}} & 0 & 0 & 0\\
    0 & 0 & 0 & 0\\
    0 & 0 & 0 & 0\\
    0 & 0 & 0 & \frac{1}{\Delta h^2_{\mathrm{max}}}
}
\]
\end{document}

在此处输入图片描述

答案2

我建议增加\arraystretch,并使用\mfrac命令(中等大小的分数,约 的 80% \displaystylenccmath。如果您希望所有列都具有 qame 宽度,可以使用eqparbox包来完成。另外,请注意\max是一个数学运算符,因此您不需要编码_{\mathrm{max}}

\documentclass{article}
\usepackage{mathtools, array, nccmath, eqparbox}
\newcommand\eqmathbox[2][cw]{\eqmakebox[#1]{\ensuremath{#2}}}

\begin{document}

\[ \renewcommand\arraystretch{1.333}%
 Q= \begin{pmatrix}
\mfrac{1}{\Delta h^2_{\max}} & 0 & 0 & 0\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & \mfrac{1}{\Delta h^2_{\max}}
\end{pmatrix}
 \]%
\vskip2ex
\[ \renewcommand\arraystretch{1.333}\setlength\arraycolsep{0pt}%
 Q= \left(\begin{array}{cccc} \eqmathbox{\mfrac{1}{\Delta h^2_{\max}}} & \eqmathbox{0} & \eqmathbox{0} & 0\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & 0\\
0 & 0 & 0 & \eqmathbox{\mfrac{1}{\Delta h^2_{\max}}}
\end{array}\right)
 \]%
\end{document} 

在此处输入图片描述

相关内容