
Considere el siguiente código:
\documentclass{article}
\usepackage{amsmath}
\usepackage{rotating}
\begin{document}
\begin{align*}
\rotatebox[origin=c]{90}{$n$ parts}\left\{\overbrace{\begin{matrix}
\bullet & \bullet & \bullet & \bullet & \bullet & \cdots & \bullet\\
\bullet & \bullet & \bullet & \cdots & \bullet\\
\bullet & \bullet & \bullet & \cdots & \bullet\\
\bullet & \bullet & \bullet & \cdots & \bullet\\
\bullet & \cdots & \bullet\\
\bullet & \cdots & \bullet\\
\end{matrix}}^{\text{Even number}}\right.
\end{align*}
\begin{align*}
\rotatebox[origin=c]{90}{$n$ parts}\overbrace{\left\{\begin{matrix}
\bullet & \bullet & \bullet & \bullet & \bullet & \cdots & \bullet\\
\bullet & \bullet & \bullet & \cdots & \bullet\\
\bullet & \bullet & \bullet & \cdots & \bullet\\
\bullet & \bullet & \bullet & \cdots & \bullet\\
\bullet & \cdots & \bullet\\
\bullet & \cdots & \bullet\\
\end{matrix}\right.}^{\text{Even number}}
\end{align*}
\end{document}
Esto produce el siguiente resultado:
En ambos casos, uno de los tirantes se superpone al otro. Me gustaría poder hacer que cada llave comience y termine exactamente en uno de los puntos del diagrama. ¿Cómo puedo lograr esto?
Respuesta1
Aquí tienes una forma de hacerlo:
\documentclass{article}
\usepackage{amsmath}
\usepackage{rotating}
\begin{document}
\begin{equation*}
%
% the vertical brace
%
\rotatebox[origin=c]{90}{\scriptsize{
$n$ parts
}}
%
% an invisible matrix for height
%
\left\{\begin{matrix}
\vphantom{} \\ \vphantom{} \\ \vphantom{} \\
\vphantom{} \\ \vphantom{} \\ \vphantom{} \\
\end{matrix}\right.
%
% the horizontal brace and the visible matrix
%
\overbrace{
\begin{matrix}
\bullet & \bullet & \bullet & \bullet & \bullet & \cdots & \bullet\\
\bullet & \bullet & \bullet & \cdots & \bullet\\
\bullet & \bullet & \bullet & \cdots & \bullet\\
\bullet & \bullet & \bullet & \cdots & \bullet\\
\bullet & \cdots & \bullet\\
\bullet & \cdots & \bullet\\
\end{matrix}
}^{\text{
even number
}}
\end{equation*}
\end{document}
que parece
Esto es muy similar a sus ejemplos, con una sola diferencia: las dos llaves ahora se envuelven alrededor de matrices diferentes.
La matriz cuyas entradas son todas \vphantom{}
no aparece en el documento impreso, pero tiene la misma altura que la matriz de puntos. Si agrandó o redujo la matriz de puntos, necesitará agregar o eliminar entradas de esta matriz para compensar. Esta matriz proporciona el tamaño del puntal vertical.
Luego, la llave horizontal envuelve la matriz de puntos original y nunca ve el espacio ocupado por la llave vertical.
Alternativamente, aquí hay una solución bastante simple basada en TikZ que usa la matrix
biblioteca para diseñar las entradas y luego la decorations
biblioteca para dibujar las llaves.
\documentclass{article}
\usepackage{amsmath}
\usepackage{rotating}
\usepackage{tikz}
\usetikzlibrary{matrix, decorations.pathreplacing}
\begin{document}
\begin{tikzpicture}[decoration={brace, amplitude=6pt}]
\matrix (m) [matrix of math nodes] {
\bullet & \bullet & \bullet & \bullet & \bullet & \cdots & \bullet\\
\bullet & \bullet & \bullet & \cdots & \bullet\\
\bullet & \bullet & \bullet & \cdots & \bullet\\
\bullet & \bullet & \bullet & \cdots & \bullet\\
\bullet & \cdots & \bullet\\
\bullet & \cdots & \bullet\\
};
\draw [decorate, transform canvas={xshift=-0.3em}, thick]
(m-6-1.south west) -- node [left=6pt]
{\rotatebox[origin=c]{90}{\scriptsize\text{$n$ parts}}} (m-1-1.north west);
\draw [decorate, transform canvas={yshift=0.5em, xshift=0.5em}, thick]
(m-1-1.north west) -- node [above=6pt]
{\scriptsize\text{even number}} (m-1-6.north east);
\end{tikzpicture}
\end{document}
Así es como se ve la solución TikZ:
Respuesta2
Así es como puedes hacerlo con pilas:
\documentclass{article}
\usepackage{tabstackengine}
\stackMath
\begin{document}
\setbox0=\hbox{\setstacktabbedgap{1ex}\tabbedCenterstack{
\bullet & \bullet & \bullet & \bullet & \bullet & \cdots & \bullet\\
\bullet & \bullet & \bullet & \cdots & \bullet\\
\bullet & \bullet & \bullet & \cdots & \bullet\\
\bullet & \bullet & \bullet & \cdots & \bullet\\
\bullet & \cdots & \bullet\\
\bullet & \cdots & \bullet
}}
\[
\Shortstack[r]{%
{\stackon{\makebox[\wd0]{\downbracefill}}{\textrm{top~text}}}\\
{\textrm{side~text}\left\{\box0\right.}
}
\]
\end{document}
Respuesta3
Esto es lo que puedes hacer con {NiceMatrix}
de nicematrix
(≥ 6,4 del 23/11/2021):
\documentclass{article}
\usepackage{nicematrix}
\begin{document}
$\begin{NiceMatrix}
\Block{*-1}{\rotate n \text{ parts}}
& \bullet & \bullet & \bullet & \bullet & \bullet & \cdots & \bullet\\
& \bullet & \bullet & \bullet & \cdots & \bullet\\
& \bullet & \bullet & \bullet & \cdots & \bullet\\
& \bullet & \bullet & \bullet & \cdots & \bullet\\
& \bullet & \cdots & \bullet\\
& \bullet & \cdots & \bullet\\
\CodeAfter
\OverBrace{1-2}{1-last}{\text{even number}}[yshift=1mm]
\SubMatrix{\{}{1-2}{last-2}{.}[left-xshift=0.8mm]
\end{NiceMatrix}$
\end{document}
Necesita varias compilaciones (porque nicematrix
utiliza nodos PGF/Tikz bajo el capó).