我很惊讶在这里没有找到任何关于这个主题的内容。在下面的文档中,即使经过多次编译,括号中的内容仍然与上面的文本冲突:
\documentclass{article}
\usepackage{mathtools,array,nicematrix}
\begin{document}
A A A A A A A A A A A A A A A A A A A A A A A A A A A
\[
\begin{pNiceMatrix}
1 & 2 & 3 & 4 & 5 & 6 \\
11 & 12 & 13 & 14 & 15 & 16 \\
\CodeAfter
\OverBrace{1-1}{2-3}{A\rule{1em}{7ex}}
\OverBrace{1-4}{2-6}{B}
\end{pNiceMatrix}
\]
\end{document}
有没有可能自动解决这个问题,而无需手动rule
插入vspace
?
答案1
这是一个相当复杂的解决方法。tikz
使用库decorations.pathreplacing
和加载calligraphy
。然后将括号 using\Hdotsfor{<num columns>}
放在第 1 行(选项first-row
),但将line-style
using更改为calligraphic brace
。
\documentclass{article}
\usepackage{nicematrix, mathtools, tikz}
\usetikzlibrary{decorations.pathreplacing, calligraphy}
\tikzset{mybrace/.style={thick, decorate, decoration={calligraphic brace, amplitude=1.5mm, raise=-1mm}}}
\begin{document}
A A A A A A A A A A A A A A A A A A A A A A A A A A A
\[
\begin{pNiceMatrix}[first-row]
\Hdotsfor{3}[line-style=mybrace, shorten=0pt]^{\textstyle A}&\Hdotsfor{3}[line-style={mybrace},shorten=0pt]^{\textstyle B}\\
1 & 2 & 3 & 4 & 5 & 6 \\
11 & 12 & 13 & 14 & 15 & 16
\end{pNiceMatrix}
\]
\end{document}
答案2
该包从不为和nicematrix
构造的元素保留空间。\OverBrace
UnderBrace
这里有一个构造,可以确保文本和公式之间的垂直空间与标准 LaTeX 所预期的相同(括号构造在重叠的位置,但标签不是,标签位于“第一行”)。
\documentclass{article}
\usepackage{mathtools,nicematrix}
\begin{document}
A A A A A A A A A A A A A A A A A A A A A A A A A A A
\[
\begin{pNiceMatrix}[first-row]
\rule[-8pt]{0pt}{8pt}
\Block{1-3}{A} & & & \Block{1-3}{B} \\
1 & 2 & 3 & 4 & 5 & 6 \\
11 & 12 & 13 & 14 & 15 & 16 \\
\CodeAfter
\OverBrace[shorten,yshift=3pt]{1-1}{2-3}{}
\OverBrace[shorten,yshift=3pt]{1-4}{2-6}{}
\end{pNiceMatrix}
\]
\end{document}