歪みなく配列にbigcupのサイズを適応させる

歪みなく配列にbigcupのサイズを適応させる

文字のフォントと線の太さを同じにしたまま、左側の配列のサイズに適応する cup コマンド (括弧のleftandのようなもの) が必要です。scalerelパッケージを使用してみましたが、線と下付き文字が広くなりすぎます。ここでは、結果を示す最小限の例を示します。rightbigcup

\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} 

得られたサイズは正しいものですが、フォントサイズがx \in X大きくなりすぎ、線が太くなりすぎます。

これらの歪みなしで同様の結果を得るにはどうすればよいですか?

答え1

配列のサイズに合わせてスケーリングすると、下付き文字を含むボックスの内容全体がスケーリングされ、スクリプトのサイズが不一致になる (おそらくカップのサイズも異常に大きくなる) という問題に常に直面することにscalerelなると思います。

\scaleobj代わりに、パッケージで提供されているコマンドを使用することをお勧めします。このコマンドscalerelは、パッケージ\scaleboxのと同様に機能しますgraphicx。カップ全体と下付き文字を拡大しながら、下付き文字だけを反対方向に拡大することができます。内側の拡大縮小後に下付き文字をカップの下にうまく配置するには、 と を\raisebox追加\smashします。

\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}

出力:

出力

使用された値は、さまざまな (大きな) 配列の範囲に対して適切だと思われる値です。これらを微調整することもできます。

関連情報