答案1
嵌套array
在array
:
\documentclass{article}
\usepackage{amsmath,array}
\begin{document}
\[
\setlength{\arraycolsep}{0pt}
\left(\begin{array}{c|c|c}
\begin{array}{*{3}{w{c}{1em}}}
1 & \cdot & \cdot \\
\cdot & \cdot & \cdot \\
\cdot & \cdot & \cdot
\end{array}
&
\begin{array}{*{3}{w{c}{1em}}}
\cdot & \cdot & \cdot \\
\cdot & 1 & \cdot \\
\cdot & \cdot & \cdot
\end{array}
&
\begin{array}{*{3}{w{c}{1em}}}
\cdot & \cdot & \cdot \\
\cdot & \cdot & \cdot \\
\cdot & \cdot & 1
\end{array}
\\ \hline
\begin{array}{*{3}{w{c}{1em}}}
\cdot & \cdot & \cdot \\
\cdot & \cdot & \cdot \\
\cdot & 1 & \cdot
\end{array}
&
\begin{array}{*{3}{w{c}{1em}}}
\cdot & \cdot & 1 \\
\cdot & \cdot & \cdot \\
\cdot & \cdot & \cdot
\end{array}
&
\begin{array}{*{3}{w{c}{1em}}}
\cdot & \cdot & \cdot \\
1 & \cdot & \cdot \\
\cdot & \cdot & \cdot
\end{array}
\\ \hline
\begin{array}{*{3}{w{c}{1em}}}
\cdot & \cdot & \cdot \\
\cdot & \cdot & 1 \\
\cdot & \cdot & \cdot
\end{array}
&
\begin{array}{*{3}{w{c}{1em}}}
\cdot & \cdot & \cdot \\
\cdot & \cdot & \cdot \\
1 & \cdot & \cdot
\end{array}
&
\begin{array}{*{3}{w{c}{1em}}}
\cdot & 1 & \cdot \\
\cdot & \cdot & \cdot \\
\cdot & \cdot & \cdot
\end{array}
\end{array}\right)
\]
\end{document}
主要技巧是在列之间和固定宽度单元格之间使用零空间。
只是为了好玩,用单个 1 来指定这些块的更好方法。
\documentclass{article}
\usepackage{amsmath,array}
\ExplSyntaxOn
\NewDocumentCommand{\dotblock}{mmm}
{% #1 is the size, #2 the row for the 1, #3 the column for the 1
\userci_dotblock:nnn { #1 } { #2 } { #3 }
}
\tl_new:N \l_userci_dotblock_body_tl
\cs_new_protected:Nn \userci_dotblock:nnn
{
\tl_clear:N \l_userci_dotblock_body_tl
\int_step_inline:nn { #1 }
{%
\int_step_inline:nn { #1 }
{% ##1 = row index, ####1 = column index
\tl_put_right:Nx \l_userci_dotblock_body_tl
{
\bool_lazy_and:nnTF
{ \int_compare_p:n { ##1=#2 } }
{ \int_compare_p:n { ####1=#3 } }
{ 1 }
{ \cdot }
\int_compare:nF { ####1 = #1 } { & }
}
}
\tl_put_right:Nn \l_userci_dotblock_body_tl { \\ }
}
\begin{array}{*{#1}{w{c}{1em}}}
\tl_use:N \l_userci_dotblock_body_tl
\end{array}
}
\ExplSyntaxOff
\begin{document}
\[
\setlength{\arraycolsep}{0pt}
\left(\begin{array}{c|c|c}
\dotblock{3}{1}{1}
&
\dotblock{3}{2}{2}
&
\dotblock{3}{3}{3}
\\ \hline
\dotblock{3}{3}{2}
&
\dotblock{3}{1}{3}
&
\dotblock{3}{2}{1}
\\ \hline
\dotblock{3}{2}{3}
&
\dotblock{3}{3}{1}
&
\dotblock{3}{1}{2}
\end{array}\right)
\]
\end{document}
答案2
您可以在 中嵌套一个数组pmatrix
:
\documentclass{article}
\usepackage{amsmath}
\usepackage{array}
\begin{document}
\[ \begin{pmatrix}
\begin{array}{ccc|ccc|ccc}
1 & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
\cdot & \cdot & \cdot & \cdot & 1 & \cdot & \cdot & \cdot & \cdot \\
\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & 1 \\
\hline
\cdot & \cdot & \cdot & \cdot & \cdot & 1 & \cdot & \cdot & \cdot \\
\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & 1 & \cdot & \cdot \\
\cdot & 1 & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
\hline
\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & 1 & \cdot \\
\cdot & \cdot & 1 & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
\cdot & \cdot & \cdot & 1 & \cdot & \cdot & \cdot& \cdot & \cdot
\end{array}
\end{pmatrix} \]%
\end{document}
答案3
您可以使用 a{array}
并添加括号\left
- \right
。
\documentclass{article}
\begin{document}
$\left(
\begin{array}{@{}ccc|ccc|ccc@{}}
1 & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
\cdot & \cdot & \cdot & \cdot & 1 & \cdot & \cdot & \cdot & \cdot \\
\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & 1 \\
\hline
\cdot & \cdot & \cdot & \cdot & \cdot & 1 & \cdot & \cdot & \cdot \\
\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & 1 & \cdot & \cdot \\
\cdot & 1 & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
\hline
\cdot & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot & 1 & \cdot \\
\cdot & \cdot & 1 & \cdot & \cdot & \cdot & \cdot & \cdot & \cdot \\
\cdot & \cdot & \cdot & 1 & \cdot & \cdot & \cdot & \cdot & \cdot \\
\end{array}
\right)$
\end{document}