Адаптация размера bigcup к массиву без искажений

Адаптация размера bigcup к массиву без искажений

Я хочу иметь команду cup, которая адаптируется к размеру массива слева (что-то вроде leftи rightдля скобок), сохраняя при этом тот же шрифт для букв и толщину линии. Я пробовал использовать bigcupс пакетом scalerel, но линия и нижний индекс становятся слишком широкими. Я привожу здесь минимальный пример, чтобы показать, каков результат:

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

Выход:

выход

Используемые значения — это именно те, которые, по моему мнению, выглядят разумными для ряда различных (больших) массивов; вы можете захотеть их настроить.

Связанный контент