我已经使用过这个答案https://tex.stackexchange.com/a/61290/46626调整我的矩阵,它可以与标准字体(拉丁现代数学)配合使用
但是当我使用 Cambria Math 时,内部矩阵似乎太高了:
我无法解决这个问题,有人知道吗?是否可以将其用作标准矩阵样式?我正在使用 TeX Live 2016 和 LuaLaTeX。也欢迎提供其他解决方案来正确设置此矩阵。谢谢!
梅威瑟:
\documentclass{article}
\usepackage{fontspec}
\usepackage{mathtools} % includes: \usepackage{amsmath} (-> needed e.g. for bmatrix) !! load BEFORE \usepackage{unicode-math}
\usepackage{unicode-math} %Unicode mathematics support for X∃TEX and LuaTEX
%% Set font
%\setromanfont{Cambria}
%\setsansfont{Calibri}
%\setmonofont{Consolas}
%\setmathfont{Cambria Math}
\makeatletter
\newif\ifcenter@asb@\center@asb@false
\def\center@arstrutbox{%
\setbox\@arstrutbox\hbox{$\vcenter{\box\@arstrutbox}$}%
}
\newcommand*{\CenteredArraystretch}[1]{%
\ifcenter@asb@\else
\pretocmd{\@mkpream}{\center@arstrutbox}{}{}%
\center@asb@true
\fi
\renewcommand{\arraystretch}{#1}%
}
\makeatother
\begin{document}
\begin{equation}
\CenteredArraystretch{1.2}
\delimitershortfall=-2pt %\renewcommand*{\arraystretch}{1.2} %Default is 1.0
\begin{split}
\begin{bmatrix}
\begin{bmatrix}
m & 0\\
0 & m
\end{bmatrix}&
-m\, \mathbfit{A}^{RL}
\begin{bmatrix}
\phantom{-}y^L_{P_{\mathrm{COG}}O_L}\\
-x^L_{P_{\mathrm{COG}}O_L}
\end{bmatrix}\\
-m
\begin{bmatrix}
y^L_{P_{\mathrm{COG}}O_L} & -x^L_{P_{\mathrm{COG}}O_L}
\end{bmatrix}
\mathbfit{A}^{LR}&
J^L + m\left(\left(x^L_{P_{\mathrm{COG}}O_L}\right)^2 +
\left(y^L_{P_{\mathrm{COG}}O_L}\right)^2
\right)
\end{bmatrix}
\begin{bmatrix}
\begin{bmatrix}
\ddot{x}^R_{O_LO_R}\\
\ddot{y}^R_{O_LO_R}
\end{bmatrix}\\%[2ex]
\ddot{\psi}
\end{bmatrix} = \\
\begin{bmatrix}
\sum
\begin{bmatrix}
F^R_{ix}\\
F^R_{iy}
\end{bmatrix}\\
\sum M^L_{iz}+\sum
\begin{bmatrix}
-y^L_{PiP} &
x^L_{PiP}
\end{bmatrix}
\begin{bmatrix}
F^L_{ix}\\
F^L_{iy}
\end{bmatrix}
\end{bmatrix}
+
\begin{bmatrix}
m\,\mathbfit{A}^{RL}
\begin{bmatrix}
x^L_{P_{\mathrm{COG}}O_L}\\
y^L_{P_{\mathrm{COG}}O_L}
\end{bmatrix}
\dot{\psi}^2\\%[2ex]
0
\end{bmatrix}
\end{split}
\end{equation}
\end{document}
更新: 使用 Mico 的答案,我(几乎)找到了所需的结果。但它需要大量的手动调整,我想知道是否有更简单的解决方案?
\documentclass{article}
\usepackage{fontspec}
\usepackage{mathtools} % includes: \usepackage{amsmath} (-> needed e.g. for bmatrix) !! load BEFORE \usepackage{unicode-math}
\usepackage{unicode-math} %Unicode mathematics support for X∃TEX and LuaTEX
% Set font
\setmainfont{Cambria}
\setmathfont{Cambria Math}
\setsansfont{Calibri}
\setmonofont{Consolas}
\begin{document}
\begin{multline}
\delimitershortfall=-2pt \renewcommand{\arraystretch}{1.33}
\begin{bmatrix}
\delimitershortfall=5pt
\begin{bmatrix}
m & 0\\
0 & m
\end{bmatrix} &
-m\, \mathbfit{A}^{RL}
\delimitershortfall=5pt
\begin{bmatrix}
\phantom{-}y^L_{P_{\mathrm{COG}}O_L} \\
-x^L_{P_{\mathrm{COG}}O_L}
\end{bmatrix} \\[3ex]
-m \begin{bmatrix}
y^L_{P_{\mathrm{COG}}O_L} &
-x^L_{P_{\mathrm{COG}}O_L}
\end{bmatrix}
\mathbfit{A}^{LR} &
J^L + m\bigl(
(x^L_{P_{\mathrm{COG}}O_L})^2 +
(y^L_{P_{\mathrm{COG}}O_L})^2
\bigr)
\end{bmatrix}\,
\begin{bmatrix}
\delimitershortfall=5pt
\begin{bmatrix}
\ddot{x}^R_{O_LO_R}\\
\ddot{y}^R_{O_LO_R}
\end{bmatrix} \\[3.25ex]
\ddot{\psi}
\end{bmatrix} \\[2ex] % end of first row
\delimitershortfall=-2pt
=\begin{bmatrix}
\sum\limits_{i} \begin{bmatrix}
F^R_{ix} \\[0.5ex]
F^R_{iy}
\end{bmatrix}\\
\sum\limits_{i} M^L_{iz}+
\sum\limits_{i} \begin{bmatrix}
-y^L_{PiP} & x^L_{PiP}
\end{bmatrix}
\begin{bmatrix}
F^L_{ix} \\[0.5ex] F^L_{iy}
\end{bmatrix}
\end{bmatrix}
+
\begin{bmatrix}
m\,\mathbfit{A}^{RL}
\begin{bmatrix}
x^L_{P_{\mathrm{COG}}O_L} \\[0.5ex]
y^L_{P_{\mathrm{COG}}O_L}
\end{bmatrix}
\dot{\psi}^2 \\[4.5ex]
0
\end{bmatrix}
\end{multline}
\end{document}
答案1
(使用 TeXLive2018 中的 LuaLaTeX 进行测试。注意:LuaTeXunicode-math
在 TeXLive2016 和 TeXLive2018 之间有了很大的发展。如果可行的话,请考虑更新到 TeXLive2018。)
我认为没有必要更改\delimitershortfall
,这是一个非常低级的参数。相反,更改 的值\arraystretch
并根据需要添加一些额外的垂直间距指令。由于行间没有明显的对齐点,我会使用 环境multline
而不是嵌套的方程式/拆分环境。此外,无需使用\left
和 \right
来自动调整某些括号的大小。
\documentclass{article}
\usepackage{mathtools}
% Set fonts
\usepackage{unicode-math}
\setmainfont{Cambria}
\setmathfont{Cambria Math}
\setsansfont{Calibri}
\setmonofont{Consolas}
\begin{document}
\begin{multline}
\renewcommand{\arraystretch}{1.33}
\begin{bmatrix}
\begin{bmatrix}
m & 0\\
0 & m
\end{bmatrix} &
-m\, \mathbfit{A}^{RL}
\begin{bmatrix}
\phantom{-}y^L_{P_{\mathrm{COG}}O_L} \\
-x^L_{P_{\mathrm{COG}}O_L}
\end{bmatrix} \\[3ex]
-m \begin{bmatrix}
y^L_{P_{\mathrm{COG}}O_L} &
-x^L_{P_{\mathrm{COG}}O_L}
\end{bmatrix}
\mathbfit{A}^{LR} &
J^L + m\bigl(
(x^L_{P_{\mathrm{COG}}O_L})^2 +
(y^L_{P_{\mathrm{COG}}O_L})^2
\bigr)
\end{bmatrix}\,
\begin{bmatrix}
\begin{bmatrix}
\ddot{x}^R_{O_LO_R}\\
\ddot{y}^R_{O_LO_R}
\end{bmatrix} \\[3.25ex]
\ddot{\psi}
\end{bmatrix} \\[2ex] % end of first row
=\begin{bmatrix}
\sum \begin{bmatrix}
F^R_{ix} \\[0.5ex]
F^R_{iy}
\end{bmatrix}\\
\sum M^L_{iz}+
\sum \begin{bmatrix}
-y^L_{PiP} & x^L_{PiP}
\end{bmatrix}
\begin{bmatrix}
F^L_{ix} \\[0.5ex] F^L_{iy}
\end{bmatrix}
\end{bmatrix}
+
\begin{bmatrix}
m\,\mathbfit{A}^{RL}
\begin{bmatrix}
x^L_{P_{\mathrm{COG}}O_L} \\[0.5ex]
y^L_{P_{\mathrm{COG}}O_L}
\end{bmatrix}
\dot{\psi}^2 \\[4.5ex]
0
\end{bmatrix}
\end{multline}
\end{document}