为了追求更高质量的位置、长度自定义,如「方正」、「规整」等,同时受我自己的这个回答启发,我也用tikz
的matrix
子库自己实现了...
下面保留了matrix of math nodes
的边界:
\documentclass{article}
\usepackage[OT1]{fontenc}
\usepackage{eulervm}
\usepackage{amsmath}
\usepackage{tikz}
\usetikzlibrary{decorations.pathreplacing,calligraphy,matrix}
% https://tex.stackexchange.com/a/112212/322482
\makeatletter
\DeclareRobustCommand{\rvdots}{%
\vbox{
\baselineskip4\p@\lineskiplimit\z@
\kern-\p@
\hbox{.}\hbox{.}\hbox{.}
}}
\makeatother
\newcommand*\myHbrace[3][0pt]{%
\draw[mybrace] (foo-#2.north west) -- node[above=3pt] {#3} (foo-#2.north east);
}%
\newcommand*\myVbrace[3][8pt]{%
\draw[mybrace=#1] (foo-#2.north east) -- node[right=8pt] {#3} (foo-#2.south east);
}%
\begin{document}
\begin{tikzpicture}[
every left delimiter/.style={xshift=.5em},
every right delimiter/.style={xshift=-.5em},
% https://tex.stackexchange.com/a/525165/322482
mybrace/.default=3pt,
mybrace/.style = {
thick,pen colour=black,
decorate,
decoration={
calligraphic brace, amplitude=2pt,
pre =moveto, pre length=1pt,
post=moveto, post length=1pt,
raise=#1},
},
]
\matrix (foo) [
matrix of math nodes,
% default linewidth = .4pt
column sep=-.4pt,row sep=-.4pt,
anchor=center,
nodes = {
draw=magenta,dashed,
inner sep=1pt,outer sep=0pt,
minimum size=.75cm,anchor=center,
},
left delimiter=(,right delimiter=),
]
{
A_{11} & A_{12} & \cdots & A_{1s} \\
A_{21} & A_{22} & \cdots & A_{2s} \\
\rvdots & \rvdots & & \rvdots \\
A_{r1} & A_{r2} & \cdots & A_{rs} \\
};
\myHbrace{1-1}{$n_1$}
\myHbrace{1-2}{$n_2$}
\node[above=3pt] at (foo-1-3.north) {$\cdots$};
\myHbrace{1-4}{$n_s$}
\myVbrace{1-4}{$m_1$}
\myVbrace{2-4}{$m_2$}
\node[right=12pt] at (foo-3-4.east) {$\rvdots$};
\myVbrace{4-4}{$m_r$}
\end{tikzpicture}
\end{document}
问 如何进一步调整下面nicematrix代码的「行高和行宽」以及「大括号的长度和位置」使其匀称美观?