Quero ter um comando cup que se adapte ao tamanho de um array à sua esquerda (algo como left
e right
para parênteses), mantendo a mesma fonte para as letras e a espessura da linha. Tentei usar bigcup
com o pacote scalerel mas a linha e o subscrito ficaram muito largos. Relato aqui um exemplo mínimo para mostrar qual é o resultado:
\documentclass{article}
\usepackage{scalerel}
\begin{document}
\[
\scalerel{
\bigcup\limits_{x \in X}
}
{
\left\{
f(x)
\begin{array}{| l}
a \\ % first row
b \\ % second row
c \\ % third row
d \\ % fourth row
e \\ % fifth row
\dots \\ % etc.
z \\ % n-th row
\end{array}
\right\}
}
\]
\end{document}
O tamanho obtido é o correto, porém o tamanho da fonte x \in X
fica muito grande e a linha muito grossa.
Como posso ter um resultado semelhante sem essas distorções?
Responder1
Acho que ao dimensionar com o tamanho do array você sempre enfrentará o fato de que todo o conteúdo da scalerel
caixa, incluindo o subscrito, é dimensionado, levando a tamanhos de script inconsistentes (e provavelmente também a copos de tamanhos ridículos).
Eu sugeriria usar o \scaleobj
comando também fornecido pelo scalerel
pacote, que funciona de forma semelhante \scalebox
ao graphicx
pacote. Ao aumentar o copo inteiro mais o subscrito, você pode dimensionar o subscrito sozinho na outra direção. Para que o subscrito fique bem sob o copo após a escala interna, um \raisebox
e \smash
pode ser adicionado:
\documentclass{article}
\usepackage{scalerel}
\newcommand\hugecup{%
\scaleobj{2.5}{%
\bigcup\limits_{\smash{\raisebox{.25\baselineskip}{\(\scaleobj{0.425}{x\in X}\)}}}
}
}
\begin{document}
\[
\hugecup
\left\{
f(x)
\begin{array}{| l}
a \\ % first row
b \\ % second row
c \\ % third row
d \\ % fourth row
e \\ % fifth row
\dots \\ % etc.
z \\ % n-th row
\end{array}
\right\}
\]
\end{document}
Saída:
Os valores usados são exatamente o que achei sensato para uma variedade de matrizes diferentes (grandes); você pode querer ajustá-los.