我正在尝试创建一个矩阵,其中我使用的基出现在矩阵的顶部和左侧,根据在线建议,我分别使用和包中的内置\bordermatrix
或blockarray
或pNiceMatrix
环境。到目前为止,我最喜欢这种格式,但矩阵括号顶部和第一行条目之间没有足够的空间。如果我使用底行,这在底部也会有问题。这是我当前的代码:blkarray
nicematrix
pNiceMatrix
\documentclass{article}
\usepackage{tikz}
\usepackage{nicematrix}
\begin{document}
\begin{equation}
\begin{pNiceMatrix}[first-col, first-row]
& v_1 & \dots & v_n & w_1 & \dots & w_m \\
\Block{1-1}{v_1} & 1 & & 0 & & & \\
\Block{1-1}{\vdots} & & \ddots & & & A & \\
\Block{1-1}{v_n} & 0 & & 1 & & & \\
\Block{1-1}{w_1} & & & & & & \\
\Block{1-1}{\vdots} & & 0 & & & 0 & \\
\Block{1-1}{w_m} & & & & & & \\
\end{pNiceMatrix}
\end{equation}
\end{document}
结果如下:
您可能注意到,我在水平居中方面也遇到了一些问题\vdots
,我对这个笨拙的解决方案并不十分满意。\Vdots
包装中提供的圆点太多了,我不喜欢。
无论如何,1
左上角的那个就在括号的顶部或略高于括号的顶部。我想要的只是在顶部添加一点填充以使其看起来更美观。我仔细阅读了文档nicematrix
,但没有找到任何有用的东西。有很多水平填充选项(即参数margin
),并且有cell-space-top-limit
,但这会调整每行的间距,而不仅仅是顶部。我见过的唯一其他解决方案是在顶部添加一行并手动调整高度,但我想看看是否有一种非黑客的方式来做到这一点。
答案1
您可以\rule
在左上角的单元格中添加一个,用于填充。
\documentclass{article}
\usepackage{tikz}
\usepackage{nicematrix}
\begin{document}
\begin{equation}
\begin{pNiceMatrix}[first-col, first-row]
& v_1 & \dots & v_n & w_1 & \dots & w_m \\
\Block{1-1}{v_1} & \rule{0pt}{3ex}1 & & 0 & & & \\
\Block{1-1}{\vdots} & & \ddots & & & A & \\
\Block{1-1}{v_n} & 0 & & 1 & & & \\
\Block{1-1}{w_1} & & & & & & \\
\Block{1-1}{\vdots} & & 0 & & & 0 & \\
\Block{1-1}{w_m} & & & & & & \\
\end{pNiceMatrix}
\end{equation}
\end{document}
\rule
也可以在标签向量的左下角单元格中添加一个负数:
\documentclass{article}
\usepackage{tikz}
\usepackage{nicematrix}
\begin{document}
\begin{equation}
\begin{pNiceMatrix}[first-col, first-row]
& v_1 & \dots & v_n & w_1 & \dots & w_m \\
\Block{1-1}{v_1} & \rule{0pt}{3ex}1 & & 0 & & & \\
\Block{1-1}{\vdots} & & \ddots & & & A & \\
\Block{1-1}{v_n} & 0 & & 1 & & & \\
\Block{1-1}{w_1} & & & & & & \\
\Block{1-1}{\vdots} & & 0 & & & 0 & \\
\Block{1-1}{\rule[-1.5ex]{0pt}{0pt}w_m} & & & & & & \\
\end{pNiceMatrix}
\end{equation}
\end{document}