垂直对齐向量和矩阵

垂直对齐向量和矩阵

你有什么技巧可以让下面的内容看起来更好?谢谢。

\documentclass{article}
\usepackage{amsmath}
\newcommand{\ud}{\mathop{\mathrm{{}d}}\mathopen{}}

\begin{document}
\begin{equation}\everymath{\displaystyle}\begin{pmatrix} \ud X_1
\\ \ud X_2 \\ \ud X_3
\end{pmatrix}=\begin{pmatrix} \ud x_1 \\ \ud x_2
\\\ud x_3 \end{pmatrix}+\begin{bmatrix}
\frac{\partial u_1}{\partial x_1} & \frac{\partial u_1}{\partial x_2} & 
\frac{\partial u_1}{\partial x_3} \\
\frac{\partial u_2}{\partial x_1} & \frac{\partial u_2}{\partial x_2} & 
\frac{\partial u_2}{\partial x_3} \\
\frac{\partial u_3}{\partial x_1} & \frac{\partial u_3}{\partial
x_2} & \frac{\partial u_3}{\partial x_3}
\end{bmatrix}\begin{pmatrix} \ud x_1 \\ \ud x_2 \\
\ud x_3 \end{pmatrix}
\end{equation}
\end{document}

渲染代码

答案1

\partial_1 u_1这更像是一个数学答案,而不是一个技术答案:我会用而不是 等等来排版矩阵\frac{\partial u_1}{\partial x_1}。这样看起来会更好,而且我发现它的可读性也更好。您可能想解释一下,该符号\partial_j是 的简写\frac{\partial}{\partial x_j}

答案2

这里有一种方法可以改善符号的间距。这是对内部 amsmath 宏的重新定义。它允许向每个矩阵行添加一个可选空格,并且它扩展了所有 amsmath 矩阵环境,如 bmatrix、pmatrix、vmatrix、Bmatrix 等(smallmatrix 除外)。

\makeatletter
\let\origenv@matrix\env@matrix
\renewcommand*{\env@matrix}[1][0pt]{%
  \expandafter\def\expandafter\@arraycr\expandafter{\@arraycr[#1]}
  \origenv@matrix}
\makeatother

现在,使用常见的 LaTeX 矩阵命令,省略可选参数以获取其标准行为,或指定额外的空间。在您的示例中,\begin{bmatrix}[2.5ex]改为写入结果为:

替代文本

您可以使用临时设置的可选参数执行非常类似的操作\arraystretch。但第一种方法保持分隔符正确,这种\arraystretch方法可能会在矩阵顶部留下不必要的空间,因为它垂直拉伸了包括第一行在内的所有行。

我使用避免递归的方式,使用宏自己的定义\expandafter将括号中的空格添加到宏中。这样做会更容易,但可以全局使用。这就是为什么有些类或包会定义本地的。\@arraycr\g@addto@macro\l@addto@macro

答案3

另一个选择是\phantom使用\lefteqn这个答案。对于pmatrix块,将其更改为,例如

\begin{pmatrix}
\lefteqn{\phantom{\frac{\partial u_1}{\partial x_3}}} dx_1 \\
\lefteqn{\phantom{\frac{\partial u_2}{\partial x_3}}} dx_2 \\
\lefteqn{\phantom{\frac{\partial u_3}{\partial x_3}}} dx_3
\end{pmatrix}

里面\phantom应该放有您想要排列的行中的“最高”术语。

答案4

您可以尝试使用\\[0.5em](或您喜欢的间距)垂直展开所有数组,以便行水平排列。这还可以缓解因使用 而导致的 3x3 数组拥挤问题\displaystyle

相关内容