\documentclass[12pt,a4paper]{article}
%------------------------------------------------------------
\usepackage{amsmath,amssymb,amsthm}
\begin{document}
\[A=
\begin{pmatrix}
I &0 &\ldots &0\\
0 & I &\ddots &\vdots\\
\vdots &\ddots &I &0\\
0 &\ldots &0 &I
\end{pmatrix}
\]
and
\[
B=\begin{pmatrix}
0 &\cdots &0& I\\
\vdots &0&I&0\\
\vdots & \vdots & & \vdots\\
I & 0 &\cdots& 0\\
\end{pmatrix}
\]
\end{document}
Я хочу нарисовать следующие две матрицы таким образом.
решение1
Вот предложение с использованием nicematrix
пакета. К сожалению, насколько я мог видеть, их красивые пунктирные линии не находятся в некоторых стилях, которые могут быть использованы пользователем для его собственных аннотаций, поэтому мне пришлось переделать его, используя вариантэтот ответ.
\documentclass[12pt,a4paper]{article}
%------------------------------------------------------------
\usepackage{amsmath,amssymb,amsthm}
\usepackage{nicematrix}
\tikzset{Dotted/.style={% https://tex.stackexchange.com/a/52856/194703
line width=1pt,
dash pattern=on 0.01\pgflinewidth off #1\pgflinewidth,line cap=round,
shorten >=0.3em,shorten <=0.3em},
Dotted/.default=5}
\begin{document}
\[A=
\begin{pNiceArray}{CCCC}[
code-after = {\begin{tikzpicture}
%
\draw[Dotted] (2-2) -- (3-3);
\end{tikzpicture}}]%
I &0 &\Cdots &0\\
0 & I &\Ddots &\Vdots\\
\Vdots &\Ddots &I &0\\
0 &\Cdots &0 &I
\end{pNiceArray}
\]
and
\[B=
\begin{pNiceArray}{CCCC}[
code-after = {\begin{tikzpicture}
%
\draw[Dotted] (3-2) -- (2-3);
\draw[Dotted] (3-1) -- (1-3);
\draw[Dotted] (4-2) -- (2-4);
\end{tikzpicture}}]%
0 &\Cdots &0 &I\\
\Vdots & &I &0\\
0 &I & &\Vdots\\
I &0 &\Cdots &0
\end{pNiceArray}
\]
\end{document}
Или вариант с параллельными пунктирными линиями.
\documentclass[12pt,a4paper]{article}
%------------------------------------------------------------
\usepackage{amsmath,amssymb,amsthm}
\usepackage{nicematrix}
\tikzset{Dotted/.style={% https://tex.stackexchange.com/a/52856/194703
line width=1pt,
dash pattern=on 0.01\pgflinewidth off #1\pgflinewidth,line cap=round,
shorten >=0.3em,shorten <=0.3em},
Dotted/.default=5}
\begin{document}
\[A=
\begin{pNiceArray}{CCCC}[
code-after = {\begin{tikzpicture}
%
\draw[Dotted] (2-2) -- (3-3);
\end{tikzpicture}}]%
I &0 &\Cdots &0\\
0 & I &\Ddots &\Vdots\\
\Vdots &\Ddots &I &0\\
0 &\Cdots &0 &I
\end{pNiceArray}
\]
and
\[B=
\begin{pNiceArray}{CCCC}[
code-after = {\begin{tikzpicture}
%
\draw[Dotted] (3-2.30) -- (2-3.-150);
\draw[Dotted] (3-1) -- (1-3);
\draw[Dotted] (4-2) -- (2-4);
\end{tikzpicture}}]%
0 &\Cdots &0 &I\\
\Vdots & &I &0\\
0 &I & &\Vdots\\
I &0 &\Cdots &0
\end{pNiceArray}
\]
\end{document}
Или без nicematrix
.
\documentclass[12pt,a4paper]{article}
%------------------------------------------------------------
\usepackage{amsmath,mathdots}
\begin{document}
\[A=
\begin{pmatrix}
I &0 &\cdots &0\\
0 & I \smash{\makebox[0pt][l]{\;\raisebox{-0.8em}{$\ddots$}}} &\ddots &\vdots\\
\vdots &\ddots &I &0\\
0 &\cdots &0 &I
\end{pmatrix}
\]
and
\[B=
\begin{pmatrix}
0 &\cdots &0 &I\\
\vdots & \iddots &I &0\\
0 &I\smash{\makebox[0pt][l]{\;\raisebox{0.8em}{$\iddots$}}} & \iddots &\vdots\\
I &0 &\cdots &0
\end{pmatrix}
\]
\end{document}
решение2
Это адаптация ответа кота Шредингера. Фактически, начиная с последней версии nicematrix
(3.13 2020-03-15), можно рисовать непрерывные пунктирные линии любым стилем линий, предоставляемым Tikz.
Замечание: Начиная с этой версии 3.13, больше nicematrix
не загружается tikz
. Только загружается pgf
(потому что по умолчанию эта новая версия использует только pgf
).
\documentclass[12pt,a4paper]{article}
%------------------------------------------------------------
\usepackage{amsmath,amssymb,amsthm}
\usepackage{nicematrix}
\usepackage{tikz}
\tikzset{Dotted/.style={% https://tex.stackexchange.com/a/52856/194703
line width=1pt,
dash pattern=on 0.01\pgflinewidth off #1\pgflinewidth,line cap=round,
shorten >=0.3em,shorten <=0.3em},
Dotted/.default=5}
\begin{document}
\begin{gather*}
A=
\begin{pNiceArray}{CCCC}[code-after={\line[line-style = Dotted]{2-2}{3-3}}]
I & 0 & \Cdots &0 \\
0 & I & \Ddots &\Vdots\\
\Vdots &\Ddots & I &0 \\
0 &\Cdots & 0 &I
\end{pNiceArray}
\\
B=
\begin{pNiceArray}{CCCC}[
code-after = {
\line[line-style = Dotted]{3-2}{2-3} }
]%
0 & \Cdots & 0 & I\\
\Vdots & \Iddots[line-style=Dotted] & I & 0\\
0 & I & \Iddots[line-style=Dotted] & \Vdots\\
I & 0 &\Cdots & 0
\end{pNiceArray}
\end{gather*}
\end{document}