带线条和带箭头的标签的矩阵

带线条和带箭头的标签的矩阵

我试图重现这样的事情:enter image description here

到目前为止,我已经获得了包含以下代码的矩阵:

\documentclass{article}
\usepackage{amsmath}
\usepackage{mleftright}

\begin{document}
\[
\renewcommand\arraystretch{1.3}
A_{ij} = \mleft[
\begin{array}{c|c|c|c|c}
     A_{c,\rho} & A_{c,u_r} & A_{c,u_{\theta}} & A_{c,u_z} & A_{c,T}     \\ \hline
     A_{r,\rho} & A_{r,u_r} & A_{r,u_{\theta}} & A_{r,u_z} & A_{r,T}    \\ \hline
     A_{\theta,\rho} & A_{\theta,u_r} & A_{\theta,u_{\theta}} & A_{\theta,u_z} & A_{u_{\theta},T}   \\ \hline
     A_{z,\rho} & A_{z,u_r} & A_{z,u_{\theta}} & A_{z,u_z} & A_{z,T}   \\ \hline
     A_{e,\rho} & A_{e,u_r} & A_{e,u_{\theta}} & A_{e,u_z} & A_{e,T}   
\end{array}
\mright]
\]

\end{document}

现在,如何向带有箭头的行和列添加标签?

答案1

您可以使用 来实现blkarray。需要几个虚拟列来适应水平规则。

\documentclass{article}
\usepackage{amsmath}
\usepackage{blkarray}

\begin{document}
\[
\renewcommand\arraystretch{1.3}
\begin{blockarray}{rcccccccc}
&&& u & v & w & \rho & T & \\
&&& \downarrow & \downarrow & \downarrow & \downarrow & \downarrow & \\
\begin{block}{rc[c@{}c|c|c|c|c@{}c]}
\text{Cont.}  & \to && A_{c,u} & A_{c,v} & A_{c,w} & A_{c,\rho} & A_{c,T} &\vphantom{\smash[b]{\bigg|}} \\
\BAhhline{~~~-----~}
x\text{-mom}  & \to && A_{r,\rho} & A_{r,u_r} & A_{r,u_{\theta}} & A_{r,u_z} & A_{r,T} & \\
\BAhhline{~~~-----~}
A_{ij}=\quad
y\text{-mom}  & \to && A_{\theta,\rho} & A_{\theta,u_r} & A_{\theta,u_{\theta}} & A_{\theta,u_z} & A_{u_{\theta},T} & \\
\BAhhline{~~~-----~}
z\text{-mom}  & \to && A_{z,\rho} & A_{z,u_r} & A_{z,u_{\theta}} & A_{z,u_z} & A_{z,T} & \\
\BAhhline{~~~-----~}
\text{energy} & \to && A_{e,\rho} & A_{e,u_r} & A_{e,u_{\theta}} & A_{e,u_z} & A_{e,T} & \vphantom{\smash[t]{\bigg|}}\\
\end{block}
\end{blockarray}
\]

\end{document}

诀窍\vphantom是获得稍微大一点的括号。

enter image description here

答案2

与。{bNiceMatrix}nicematrix

\documentclass{article}
\usepackage{nicematrix}

\begin{document}

\newcommand {\xx} [1] 
  {
    \renewcommand{\arraystretch}{1}
    \begin{array}{c}
      #1 \\
      \downarrow 
    \end{array}
  }

\renewcommand{\arraystretch}{1.2}

$A_{ij} = 
\begin{bNiceMatrix}[hvlines,first-row,first-col,margin]
                    & \xx{u}  & \xx{v}  & \xx{w}  & \xx{\rho}  & \xx{T}  \\
\text{Cont}     \to & A_{c,u} & A_{c,v} & A_{c,w} & A_{c,\rho} & A_{c,T} \\
x - \text{mom.} \to & A_{x,u} & A_{x,v} & A_{x,w} & A_{x,\rho} & A_{x,T} \\
y - \text{mom.} \to & A_{y,u} & A_{y,v} & A_{y,w} & A_{y,\rho} & A_{y,T} \\
z - \text{mom.} \to & A_{z,u} & A_{z,v} & A_{z,w} & A_{z,\rho} & A_{z,T} \\
\text{energy}   \to & A_{e,u} & A_{e,v} & A_{e,w} & A_{e,\rho} & A_{e,T} \\
\end{bNiceMatrix}$

\end{document}

您需要多次编译(因为nicematrix在后台使用 PGF/Tikz 节点)。

Output of the above code

相关内容