我想在 LaTeX 中放入一些块矩阵:最后它们应该看起来像这样;我需要的第一个矩阵看起来像这样,抱歉我知道这样看起来不太清楚(为了更好地查看,请查看下图)。较大的点表示必须重复块。较小的点表示矩阵可以更大。我不需要在 latex 中完全这样,只需在左下角放置点也可以。)
2 -1 0 0 0 0 0 0
-1 2 0 0 0 0 0 0
0 -1 2 -1 0 . . .
0 0 -1 2 -1 0 0 .
0 0 0 -1 2 -1 0 0
and so on...
第二个如下所示:
1 0 0 0 0 0 0
0 1 -1 0 0 0 0
0 -1 1 0 0 0 0
0 0 0 1 -1 0 0
0 0 0 -1 1 0 0
0 0 0 0 0 . .
0 . . . . ...
我尝试使用该包来这样做easybmat
。
\[
\left(
\begin{BMAT}(rc){c:c}{c:c}
\begin{BMAT}(rc){cc}{cc}
1 & -1\\
-1 & 1
\end{BMAT} &\begin{array}{cc}
0 & . \\
0 & 0 \\
\end{array}\\
\begin{array}{cc}
0& 0 \\
. & 0 \\
\end{array} & \begin{BMAT}(rc){cc}{cc}
1 & -1\\
-1 & 1
\end{BMAT}
\end{BMAT}
\right)
\]
但这给出了正确的想法,但我不知道如何将其调整到更大的尺寸。而且我也不知道如何放入第二个矩阵所需的额外单元格。
答案1
这是第一个矩阵的可能代码:
\documentclass{book}
\usepackage{easybmat}
\begin{document}
\[
A= \delta^{-2}
\left(
\begin{BMAT}[8pt]{cc:cc:cc:c}{cc:cc:cc:c}
1 & -1 & 0 & & & & 0 \\
-1 & 1 & 0 & 0 & 0 & & \\
0 & 0 & \bullet & \bullet & 0 & &\\
& 0 & \bullet & \bullet & 0 & 0 & \\
& & 0 & 0 & \bullet & \bullet & 0 \\
& & & 0 & \bullet & \bullet & 0 \\
0 & & & 0 & 0 &0 &
\end{BMAT}
\right)
\]
\end{document}
使用此示例代码,您可以轻松构建第二个矩阵。
答案2
你的图片中第一个矩阵可以通过下面的代码获取:
\[
\left(
\begin{BMAT}(c)[4pt]{cc:cc:cc:c}{cc:cc:cc:c}
1 & -1 & 0 & & & & 0 \\
-1 & 1 & 0 & 0 & 0 & & \\
0 & 0 & \bullet & \bullet & 0 & & \\
& 0 & \bullet & \bullet & 0 & 0 & 0\\
& & 0 & 0 & \bullet & \bullet & 0 \\
& & & 0 & \bullet & \bullet & 0 \\
0 & & & 0 & 0 & 0 & \smash{\ddots}
\end{BMAT}
\right)
\]
表示(c)
所有列的宽度应相同;[4pt]
表示额外的间距。然后是列模式:
cc:cc:cc:c
意思是“两个居中列,分离,两个居中列,分离,一个居中列”。
之后是行的规范,类似。重要的是在每行中输入准确数量的&
字符,本例中为 6 个。希望这对您有所帮助;文档位于http://mirror.ctan.org/macros/latex/contrib/easy/doc/docbmat.pdf有点神秘。
答案3
{pNiceArray}
这是第一个矩阵的代码nicematrix
。使用该包,可以使用 TikZ 样式绘制矩阵规则。
\documentclass{book}
\usepackage{nicematrix,tikz}
\NiceMatrixOptions
{
custom-line =
{
letter = : ,
command = hdashedline ,
tikz = dashed
}
}
\begin{document}
\[\renewcommand{\arraystretch}{1.3}
A= \delta^{-2}
\begin{pNiceArray}{cc:cc:cc:c}[margin=4pt]
1 & -1 & 0 & & & & 0 \\
-1 & 1 & 0 & 0 & 0 & & \\
\hdashedline
0 & 0 & \bullet & \bullet & 0 & &\\
& 0 & \bullet & \bullet & 0 & 0 & \\
\hdashedline
& & 0 & 0 & \bullet & \bullet & 0 \\
& & & 0 & \bullet & \bullet & 0 \\
\hdashedline
0 & & & 0 & 0 &0 &
\end{pNiceArray}
\]
\end{document}
答案4
我会使用arydshln
或tabu
打包来代替easybmat
。语法更标准、更灵活。
\documentclass{article}
\usepackage{arydshln}
\begin{document}
\[
A= \delta^{-2}
\left( \begin{array}{cc:cc:cc:c}
1 & -1 & 0 & & & & 0 \\
-1 & 1 & 0 & 0 & 0 & & \\ \hdashline
0 & 0 & \bullet & \bullet & 0 & &\\
& 0 & \bullet & \bullet & 0 & 0 & \\ \hdashline
& & 0 & 0 & \bullet & \bullet & 0 \\
& & & 0 & \bullet & \bullet & 0 \\ \hdashline
0 & & & 0 & 0 &0 & \ddots
\end{array} \right)
\]
\end{document}
和tabu
:
\documentclass{article}
\usepackage{tabu}
\begin{document}
\[
A= \delta^{-2}
\tabulinestyle{on 2pt off 2pt}
\begin{tabu}{cc|cc|cc|c}
1 & -1 & 0 & & & & 0 \\
-1 & 1 & 0 & 0 & 0 & & \\ \tabucline-
0 & 0 & \bullet & \bullet & 0 & &\\
& 0 & \bullet & \bullet & 0 & 0 & \\ \tabucline-
& & 0 & 0 & \bullet & \bullet & 0 \\
& & & 0 & \bullet & \bullet & 0 \\ \tabucline-
0 & & & 0 & 0 &0 & \ddots
\end{tabu}
\]
\end{document}