我希望在 LaTex 中写入以下块矩阵。
我尝试了很多方法,但似乎都不起作用。特别是,我尝试了以下方法:
\begin{bmatrix}
0 & -1& & & & & 0 & & & &\\
1 & 0 & & & & & & & & &\\
& & \cdot & & & & & & & &\\
& & & \cdot & & & & & & &\\
& & & & \cdot & & & & & &\\
& & & & & 0 & 1 & & & &\\
& & & & &-1 & 0 & & & &\\
& & & & & & & \cdot & & &\\
& & & & & & & & \cdot & & \\
& & & & & & & & & \cdot & \\
0 & & & & & & & & & & 0\\
\end{bmatrix}
但这非常丑陋,因此任何建议都将不胜感激。
答案1
答案2
就是图个好玩儿!:-)
\documentclass{article}
\usepackage{amsmath,array}
\begin{document}
\[
\begin{pmatrix}
\newcommand{\lr}[1]{\multicolumn{1}{|c}{#1}}
\newcommand{\rr}[1]{\multicolumn{1}{c|}{#1}}
\;
\begin{array}{@{}*{10}{c}@{}}
\cline{1-2}
\lr{0} & \rr{1} &&&&&&&& \raisebox{-1em}[0pt][0pt]{$0$}\\
\lr{-1} & \rr{0} \\
\cline{1-2}
&& \ddots \\
\cline{4-5}
&&& \lr{0} & \rr{1} \\
&&& \lr{-1} & \rr{0} \\
\cline{4-5}
&&&&& 0 \\[-1ex]
&&&&&& \ddots \\
&&&&&&& 0 \\[-1ex]
&&&&&&&& \ddots \\
\multicolumn{2}{c}{0} &&&&&&&& 0
\end{array}
\;\;
\end{pmatrix}
\]
\end{document}
答案3
这是我的建议,使用\bmatx
命令替换原始图片,作为盒装矩阵。
\documentclass{article}
\usepackage{mathtools}
\newcommand{\bmatx}{\boxed{\begin{matrix} 0& 1 \\ -1& 0\end{matrix}}}
\begin{document}
\[
\begin{pmatrix}
\, \bmatx& & & & & & & 0 \\
& \ddots& & & & \\
& & \bmatx & & & & \\
& & & \ddots& & &\\
& & & & 0 & &\\
& & & & & & \ddots\\
0 & & & & & & & 0
\end{pmatrix}
\]
\end{document}
感谢@Bernard 的宝贵评论,提供了最好的代码。
答案4
这是一个使用 Ti 的解决方案钾Z 可以在各种情况下(不仅仅是矩阵)绘制方框。您只需输入\tl
右上角应该在的位置以及\br
右下角应该在的位置即可。您也可以使用任何 Ti钾Z 功能可修改您的框。显然,这需要根据您使用它的具体目的(间距等)进行微调。
\newcounter{textbox}
\def\tl{\stepcounter{textbox}\tikzmarknode{a\thetextbox}{\strut}}
\def\br{\tikzmarknode{b\thetextbox}{\strut}\begin{tikzpicture}[overlay, remember picture]\draw (a\thetextbox.north west) rectangle (b\thetextbox.south east);\end{tikzpicture}}
此版本中的间距未针对矩阵进行优化,但您可以使用
\tikzmarknode{b\thetextbox}{\strut}\begin{tikzpicture}[overlay, remember picture]\draw ($(a\thetextbox.north west)+(-0.4\arraycolsep,0ex)$) rectangle ($(b\thetextbox.south east)+(0.4\arraycolsep,0ex)$);\end{tikzpicture}
添加额外的空间。
完整代码:
\documentclass{article}
\usepackage{tikz}
\usepackage{amsmath}
\usetikzlibrary{tikzmark,calc}
\newcounter{textbox}
\def\tl{\stepcounter{textbox}\tikzmarknode{a\thetextbox}{\strut}}
\def\br{\tikzmarknode{b\thetextbox}{\strut}\begin{tikzpicture}[overlay, remember picture]\draw (a\thetextbox.north west) rectangle (b\thetextbox.south east);\end{tikzpicture}}
\begin{document}
\[
\begin{bmatrix}
\tl0 &-1 & & & & & & & & 0 \\
1 & 0\br & & & & & & & & \\
& & \cdot & & & & & & & \\
& & & \cdot & & & & & & \\
& & & & \cdot & & & & & \\
& & & & &\tl0 & 1 & & & \\
& & & & &-1 & 0\br & & & \\
& & & & & & & \cdot & & \\
& & & & & & & & \cdot & \\
0 & & & & & & & & & \cdot \\
\end{bmatrix}
\]
\end{document}