![LaTex (Overleaf) 中的标记和双标记矩阵 - 适用于马尔可夫链转移矩阵](https://linux22.com/image/428557/LaTex%20(Overleaf)%20%E4%B8%AD%E7%9A%84%E6%A0%87%E8%AE%B0%E5%92%8C%E5%8F%8C%E6%A0%87%E8%AE%B0%E7%9F%A9%E9%98%B5%20-%20%E9%80%82%E7%94%A8%E4%BA%8E%E9%A9%AC%E5%B0%94%E5%8F%AF%E5%A4%AB%E9%93%BE%E8%BD%AC%E7%A7%BB%E7%9F%A9%E9%98%B5.png)
这其实不是一个问题,而是一个解决方案。我到处找,给出的所有解决方案都非常复杂,所以我想为需要帮助的人分享我自己的解决方案!!
- 将矩阵/标签视为一个大数组
- 我使用“tabular”命令而不是array,因为使用“array”命令时水平间距不起作用,但这并不重要,因为两者的语法相对相同
我会在答案中发布我的代码!!
答案1
为了标记一个简单的 3x3 矩阵,您可以按列/行进行标记,也可以为整个矩阵赋予完整的标题。
这是完整标题和每列/行的代码:
\begin{document}
\begingroup
\setlength{\tabcolsep}{2pt} % sets spacing horizontally
\renewcommand{\arraystretch}{1} % sets spacing vertically
\begin{tabular}{ c c c }
%===============================================================
%Row 1
%===============================================================
%Column 1
Top Title &
%Column 2
&
%Column 3
\\
%===============================================================
%Row 2
%===============================================================
%Column 1
%this creates the horizontal array
\begingroup %make sure to use this to control spacing separately from the bigger array
\setlength{\tabcolsep}{6pt}
\begin{tabular}{cccc}
1 & 2 & 3
\end{tabular}
\endgroup&
%Column 2
&
%Column 3
\\
%===============================================================
%Row 3
%===============================================================
% Column 1
$\begin{bmatrix}
a & b & c \\
d & e & f \\
g & h & i
\end{bmatrix}$ &
%Column 2
% this creates the vertical array
\begin{tabular}{ccc}
x \\ y \\ z
\end{tabular} &
%Column 3
Side Title
\end{tabular}
\endgroup
\end{document}
您可以从此代码调整要保留/删除的标题。请记住相应地调整矩阵大小。矩阵/表格/数组的语法如下:
Row1Column1 & Row1Column2 & ... & Row1Column(N) \\
Row2Column1 & Row2Column2 & ... & Row2Column(N) \\
.
.
.
Row(N)Column1 & Row(N)Column2 & ... & Row(N)Column(N)
所以这本质上是一个 3x3 矩阵,第一列是:
- 大标题(顶部标题)
- 列标题 (1 2 3)
- 矩阵
第二列:
- 空的空间
- 空的空间
- 行标题 (xyz)
第三列:
- 空的空间
- 空的空间
- 大标题(侧标题)
答案2
欢迎来到 TEX.SE!这是一个不错的方法。我使用nicematrix
包来实现这一点。
\documentclass{article}
\usepackage{amsmath}
\usepackage{nicematrix}
\begin{document}
\begin{align*}
\begin{array}{cc}
\text{Top Title} & \\
\begin{bNiceMatrix}[first-row,last-col]
1 & 2 & 3 & \\
a & b & c & x \\
d & e & f & y \\
g & h & i & z
\end{bNiceMatrix} & \text{Side Title}
\end{array}
\end{align*}
\end{document}
在这里我处理了具有外部和环境的矩阵bNiceMatrix
。
答案3
这是使用 的另一种方法nicematrix
。在最新版本(2021-02-05 的 5.10)中,有一个内置命令\SubMatrix
,我用它来在之前构建的数组中添加括号。
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
$A = \enskip
\begin{NiceMatrix}[baseline=4]
\Block{1-3}{\text{Top Title}} \\
1 & 2 & 3 & \\
a & b & c & x & \Block{3-1}{\text{Side Title}} \\
d & e & f & y \\
g & h & i & z
\CodeAfter \SubMatrix[{3-1}{5-3}]
\end{NiceMatrix}$
\end{document}
您需要多次编译(因为nicematrix
使用 PGF/Tikz 节点)。