假设我有以下乳胶代码,它在矩阵中绘制一个矩阵,如下所示,其中外部矩阵的单元格 (1,2) 是定义列标签的向量,外部矩阵的单元格 (2,1) 是定义行标签的向量,单元格 (2,2) 包含矩阵:
\begin{matrix}
& \begin{matrix}
\cdots & \rho_{ij} & \cdots & \rho_{ik} & \cdots & \gamma_i & \cdots & \gamma_j & \cdots & \lambda
\end{matrix}\\
\begin{matrix}
\cdots \\
\rho_{ij}\\
\cdots \\
\rho_{ik}\\
\cdots \\
\gamma_i \\
\cdots \\
\lambda \\
\end{matrix} & \begin{bmatrix}
\cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots\\
\cdots & 1 & \cdots & 0 & \cdots & b_j \mu_j & \cdots & b_i \mu_i & \cdots & 0 \\
\cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots\\
\cdots & 0 & \cdots & 1 & \cdots & b_j \mu_j & \cdots & 0 & \cdots & 0 \\
\cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots\\
\cdots & b_j \mu_j & \cdots & b_k \mu_k & \cdots & 0 & \cdots & 0 & \cdots & -\mu_i\\
\cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots\\
\cdots & 0 & \cdots & 0 & \cdots & -\mu_i & \cdots & -\mu_j & \cdots & 0
\end{bmatrix}
\end{matrix}
我手头的问题是行标签(在单元格 (2,1) 中)和列标签(在单元格 (1,2) 中)不一定与矩阵(在单元格 (2,2) 中)对齐。
我怎样才能使它们对齐?
答案1
为了忠实于您的实现,您必须使用某种方式来指定具有不同宽度和标题的列的宽度。最简单的方法是创建一个框,在其中找到列中最宽的元素以获得正确的宽度,然后将该框内的标题设置为所述宽度:
\documentclass{article}
\usepackage{mathtools,calc}
\newcommand{\mathwd}[2]{\makebox[\widthof{$#1$}]{$#2$}}
\begin{document}
\[
\begin{matrix}
&
\begin{matrix}
\cdots & \mathwd{b_j\mu_j}{\rho_{ij}} & \cdots & \mathwd{b_k\mu_k}{\rho_{ik}} & \cdots &
\mathwd{b_j\mu_j}{\gamma_i} & \cdots & \mathwd{-\mu_j}{\gamma_j} & \cdots & \mathwd{-\mu_i}{\lambda}
\end{matrix} \\
\begin{matrix}
\cdots \\
\rho_{ij}\\
\cdots \\
\rho_{ik}\\
\cdots \\
\gamma_i \\
\cdots \\
\lambda \\
\end{matrix} &
\begin{bmatrix}
\cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots\\
\cdots & 1 & \cdots & 0 & \cdots & b_j \mu_j & \cdots & b_i \mu_i & \cdots & 0 \\
\cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots\\
\cdots & 0 & \cdots & 1 & \cdots & b_j \mu_j & \cdots & 0 & \cdots & 0 \\
\cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots\\
\cdots & b_j \mu_j & \cdots & b_k \mu_k & \cdots & 0 & \cdots & 0 & \cdots & -\mu_i\\
\cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots\\
\cdots & 0 & \cdots & 0 & \cdots & -\mu_i & \cdots & -\mu_j & \cdots & 0
\end{bmatrix}
\end{matrix}
\]
\end{document}
替代输入也以以下形式存在bordermatrix
,blkarray
和kbordermatrix
。 看带标签列的阵列。
答案2
与。{bNiceMatrix}
nicematrix
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\[
\begin{bNiceMatrix}[first-col,first-row]
&
\cdots & \rho_{ij} & \cdots & \rho_{ik} & \cdots & \gamma_i & \cdots & \gamma_j & \cdots & \lambda \\
\cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots\\
\rho_{ij}& \cdots & 1 & \cdots & 0 & \cdots & b_j \mu_j & \cdots & b_i \mu_i & \cdots & 0 \\
\cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots\\
\rho_{ik} & \cdots & 0 & \cdots & 1 & \cdots & b_j \mu_j & \cdots & 0 & \cdots & 0 \\
\cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots\\
\gamma_i & \cdots & b_j \mu_j & \cdots & b_k \mu_k & \cdots & 0 & \cdots & 0 & \cdots & -\mu_i\\
\cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots\\
\lambda & \cdots & 0 & \cdots & 0 & \cdots & -\mu_i & \cdots & -\mu_j & \cdots & 0
\end{bNiceMatrix}
\]
\end{document}
如果您希望第一列(矩阵之外)居中,则必须稍微更改代码:
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
\[
\begin{NiceArray}[first-row]{c[*{10}{c}]}
&
\cdots & \rho_{ij} & \cdots & \rho_{ik} & \cdots & \gamma_i & \cdots & \gamma_j & \cdots & \lambda \\
\cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots\\
\rho_{ij}& \cdots & 1 & \cdots & 0 & \cdots & b_j \mu_j & \cdots & b_i \mu_i & \cdots & 0 \\
\cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots\\
\rho_{ik} & \cdots & 0 & \cdots & 1 & \cdots & b_j \mu_j & \cdots & 0 & \cdots & 0 \\
\cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots\\
\gamma_i & \cdots & b_j \mu_j & \cdots & b_k \mu_k & \cdots & 0 & \cdots & 0 & \cdots & -\mu_i\\
\cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots & \cdots\\
\lambda & \cdots & 0 & \cdots & 0 & \cdots & -\mu_i & \cdots & -\mu_j & \cdots & 0
\end{NiceArray}
\]
\end{document}