当我尝试使用
\documentclass[11pt,a4paper]{article}
\usepackage{amsmath}
\usepackage{arydshln}
\begin{document}
\[\left[
\begin{array}{c:c:c}
\begin{bmatrix}A_l& A_{nl}\end{bmatrix} & B_r & \begin{bmatrix}B_l& B_{nl}\end{bmatrix} \\
\hdashline
C &0&0
\end{array}
\right]\]
\end{document}
我得到:
这很好,这正是我想要的。然而,当我开始使用elsarticle
document class时,
\documentclass[review,3p, twocolumn, times,11pt]{elsarticle}
\usepackage{amsmath}
\usepackage{arydshln}
\begin{document}
\[\left[
\begin{array}{c:c:c}
\begin{bmatrix}A_l& A_{nl}\end{bmatrix} & B_r & \begin{bmatrix}B_l& B_{nl}\end{bmatrix} \\
\hdashline
C &0&0
\end{array}
\right]\]
\end{document}
我得到:
在此,如果您看到,行间距关闭(请忽略双倍行距。这是由于review
选择了该模式)。我该如何纠正这个问题?
答案1
\addstackgap
将在其参数上添加(默认)3pt 垂直缓冲区。它只需添加到行中的一个术语中。
\documentclass[review,3p, twocolumn, times,11pt]{elsarticle}
\usepackage{amsmath,stackengine}
\stackMath
\usepackage{arydshln}
\begin{document}
\[\left[
\begin{array}{c:c:c}
\addstackgap{\begin{bmatrix}A_l& A_{nl}\end{bmatrix}} & B_r & \begin{bmatrix}B_l& B_{nl}\end{bmatrix} \\
\hdashline
C &0&0
\end{array}
\right]\]
\end{document}
以下是\addstackgap[2pt]{...}
答案2
通常,人们会使用支柱为方程式添加额外的空间(参见和\strut
)。棘手的是将其居中,因为基线位于中心下方。\mathstrut
\arraystretch
\fbox
在所有侧面均匀地增加空间(\fboxsep+\fboxrule
),在这种情况下,我们只需要额外的垂直空间,因此\vphantom
。
\documentclass[review,3p, twocolumn, times,11pt]{elsarticle}
\usepackage{amsmath}
\usepackage{arydshln}
\begin{document}
\[\left[
\begin{array}{c:c:c}
\sbox0{$\displaystyle \begin{bmatrix}A_l& A_{nl}\end{bmatrix}$}%
\vphantom{\fbox{\usebox0}}% strut
\usebox0 & B_r & \begin{bmatrix}B_l& B_{nl}\end{bmatrix} \\
\hdashline
C &0&0
\end{array}
\right]\]
\end{document}
该解决方案使用 增加了额外的垂直空间\raisebox
。
\documentclass[review,3p, twocolumn, times,11pt]{elsarticle}
\usepackage{amsmath}
\usepackage{arydshln}
\begin{document}
\[\left[
\begin{array}{c:c:c}
\raisebox{0pt}[\dimexpr \height+2pt][\dimexpr \depth+2pt]%
{$\displaystyle \begin{bmatrix}A_l& A_{nl}\end{bmatrix}$}
& B_r & \begin{bmatrix}B_l& B_{nl}\end{bmatrix} \\
\hdashline
C &0&0
\end{array}
\right]\]
\end{document}