例如,我正在填充大型稀疏矩阵
\begin{bmatrix}
0 & -2 & 1 & & -1 & 2 \\
2 & \ddots & \ddots & \ddots & & -1 \\
-1 & \ddots & \ddots & \ddots & \ddots & \\
& \ddots & \ddots & \ddots & \ddots & 1 \\
1 & & \ddots & \ddots & \ddots & -2 \\
-2 & 1 & & -1 & 2 & 0
\end{bmatrix}
我不喜欢点的间距。我希望它们在对角线上等距分布。我猜这可以使用 TikZ 来实现,但是有没有更简单的方法?
答案1
使用 TikZ 并不困难。我刚刚删除了ddots
\documentclass{article}
\usepackage{amsmath,tikz}
\usetikzlibrary{matrix}
\begin{document}
Following quadratic form involves a skew symmetric matrix.
\begin{equation}
\begin{pmatrix}
a\\b\\\vdots\\z
\end{pmatrix}^T
\begin{tikzpicture}[baseline=(current bounding box.center)]
\matrix (m) [matrix of math nodes,nodes in empty cells,right delimiter={]},left delimiter={[} ]{
0 & -2 & 1 & & -1 & 2 \\
2 & & & & & -1 \\
-1 & & & & & \\
& & & & & 1 \\
1 & & & & & -2 \\
-2 &1 & & -1 & 2 & 0\\
} ;
\draw[loosely dotted] (m-1-1)-- (m-6-6);
\draw[loosely dotted] (m-1-2)-- (m-5-6);
\draw[loosely dotted] (m-2-1)-- (m-6-5);
\end{tikzpicture}\begin{pmatrix}
a\\b\\\vdots\\z
\end{pmatrix}=0
\label{eq:eqq1}
\end{equation}
\end{document}
它在图片中看起来有点模糊,但如果您愿意,您可以将该选项添加thick
到draw
命令中。
答案2
使用如下图形包绝对可以实现这样的对角线tikz
/pgf
或者pstricks
。但是,这里有一个使用 TeX 引线的:
\documentclass{article}
\usepackage{amsmath,graphicx}
\newcommand{\diagdots}[3][-25]{%
\rotatebox{#1}{\makebox[0pt]{\makebox[#2]{\xleaders\hbox{$\cdot$\hskip#3}\hfill\kern0pt}}}%
}
\begin{document}
\[
\begin{bmatrix}
0 & -2 & 1 & & -1 & 2 \\
2 & & & & & -1 \\
-1 & & & & & \\
& & \multicolumn{2}{c}{\smash{\raisebox{.5\normalbaselineskip}{\diagdots{8em}{.5em}}}} & & 1 \\
1 & & & & & -2 \\
-2 & 1 & \phantom{-2} & -1 & 2 & 0
\end{bmatrix}
\]
\end{document}
最小示例提供了以(默认为)的角度\diagdots[<angle>]{<len>}{<skip>}
绘制长度为 的对角点阵列(实际上是\cdot
s )。定义了点之间的近似长度。<len>
<angle>
-25
<skip>
我已将其放置\diagdots
在您的中间bmatrix
(水平方向使用\multicolumn{2}{c}{...}
,垂直方向使用\raisebox{.5\normalbaselineskip}{...}
),并\smash
对其进行编辑以消除任何垂直高度失真。\diagdots
输出的宽度为零(由于\makebox[0pt]
)。
您可以尝试不同的长度和角度,看看哪种适合您。
答案3
省略号通常用于表示重复的内容。在本例中,您想要表示条目重复,因此应在省略号的两端0
显示。0
因此,假设行数是固定的(正如您的示例所表明的那样),那么我只会\cdots
在一列或两列中使用:
如果行数不固定,那么我会使用以下方法之一。我更喜欢最后一个,因为这样就不会混淆0
s 的位置。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[
\begin{bmatrix}
0 & -2 & 1 & 0 & -1 & 2 \\
2 & 0 & & \cdots & 0 & -1 \\
-1 & 0 & & \cdots & 0 & 0 \\
0 & 0 & & \cdots & 0 & 1 \\
1 & 0 & & \cdots & 0 & -2 \\
-2 & 1 & 0 & -1 & 2 & 0
\end{bmatrix}
%
\begin{bmatrix}
0 & -2 & 1 & 0 & -1 & 2 \\
2 & 0 & \cdots & \cdots & 0 & -1 \\
-1 & 0 & \cdots & \cdots & 0 & 0 \\
0 & 0 & \cdots & \cdots & 0 & 1 \\
1 & 0 & \cdots & \cdots & 0 & -2 \\
-2 & 1 & 0 & -1 & 2 & 0
\end{bmatrix}
\]
If the number of rows is not fixed:
\[
\begin{bmatrix}
0 & -2 & 1 & 0 & -1 & 2 \\
2 & 0 & & \cdots & 0 & -1 \\
-1 & 0 & & \cdots & 0 & 0 \\
0 & 0 & & \cdots & 0 & 0 \\
\vdots & \vdots & & \vdots & \vdots & \vdots \\
0 & 0 & & \cdots & 0 & 0 \\
0 & 0 & & \cdots & 0 & 1 \\
1 & 0 & & \cdots & 0 & -2 \\
-2 & 1 & 0 & -1 & 2 & 0
\end{bmatrix}
%
\begin{bmatrix}
0 & -2 & 1 & 0 & -1 & 2 \\
2 & 0 & \cdots & \cdots & 0 & -1 \\
-1 & 0 & \cdots & \cdots & 0 & 0 \\
0 & 0 & \cdots & \cdots & 0 & 0 \\
\vdots & \vdots & \ddots & & \vdots & \vdots \\
\vdots & \vdots & & \ddots & \vdots & \vdots \\
0 & 0 & \cdots & \cdots & 0 & 0 \\
0 & 0 & \cdots & \cdots & 0 & 1 \\
1 & 0 & \cdots & \cdots & 0 & -2 \\
-2 & 1 & 0 & -1 & 2 & 0
\end{bmatrix}
\]
\end{document}
答案4
用xelatex
\documentclass{article}
\usepackage{mathtools}
\usepackage{pst-node}
\begin{document}
Following quadratic form involves a skew symmetric matrix.
\begin{equation}\label{eq:eqq1}
\begin{pmatrix*}[r]
a\\b\\c\\\vdots\\z
\end{pmatrix*}^T
\begin{bmatrix*}[r]
\rnode[rb]{C}{0} & \rnode[rb]{B}{-2} & \rnode[rb]{A}{1} & & -1 & 2 \\
\rnode[rb]{D}{2} & & & & & -1 \\
\rnode[rb]{E}{-1} & & & & & \\
& & & & & \rnode[l]{a}{1} \\
1 & & & & & -\rnode[l]{b}{2} \\
-2 &1& & -\rnode[l]{e}{1} & \rnode[rb]{d}{2} & \rnode[l]{c}{0}\\
\end{bmatrix*}
\begin{pmatrix*}[r]
a\\b\\c\\\vdots\\z
\end{pmatrix*}=0
\psset{linestyle=dotted,nodesep=2mm}
\ncline{A}{a}\ncline{B}{b}\ncline{C}{c}\ncline{D}{d}\ncline{E}{e}
\end{equation}
\end{document}