Adaptando o tamanho do bigcup ao array sem distorções

Adaptando o tamanho do bigcup ao array sem distorções

Quero ter um comando cup que se adapte ao tamanho de um array à sua esquerda (algo como lefte rightpara parênteses), mantendo a mesma fonte para as letras e a espessura da linha. Tentei usar bigcupcom 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 Xfica 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 scalerelcaixa, incluindo o subscrito, é dimensionado, levando a tamanhos de script inconsistentes (e provavelmente também a copos de tamanhos ridículos).

Eu sugeriria usar o \scaleobjcomando também fornecido pelo scalerelpacote, que funciona de forma semelhante \scaleboxao graphicxpacote. 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 \raiseboxe \smashpode 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:

saída

Os valores usados ​​são exatamente o que achei sensato para uma variedade de matrizes diferentes (grandes); você pode querer ajustá-los.

informação relacionada