
Пакет stmaryrd
предоставляет два типа разделителей мультимножеств (или пакетов): \lbag
и \rbag
; и \Lbag
и \Rbag
.
Когда я использую эти команды с командами изменения размера разделителя \left
и \right
(или даже \bigl
и \bigr
), я получаю ошибку "Отсутствует разделитель". Есть ли способ использовать разделители multiset разных размеров?
При необходимости я готов использовать символы из другого пакета.
решение1
Макросы \scaleleftright
и stretchleftright
пакета scalerel
предоставляют схожую функциональность синтаксису \left ... \right
. В этом случае необязательный аргумент задает максимально допустимую ширину на шкале. Если ширина превышена, соотношение сторон корректируется для сохранения предельной ширины.
\documentclass{arlticle}
\usepackage{stmaryrd,scalerel}
\begin{document}
\[\Lbag xyz \Rbag\ = \scaleleftright[1.2ex]{\Lbag}{\frac{xyz}{XYZ}}{\Rbag}\]
\end{document}
\strut
А если к числителю и знаменателю прибавить a \frac
, то это будет выглядеть так:
В обсуждении комментариев я поднял вопрос о том, как может выглядеть расширяемая версия этого глифа. Ради забавы я построил его вручную. Я не рекомендую реализацию, но подумал, что было бы интересно сравнить ее по внешнему виду с моим предложенным выше решением:
\documentclass{arlticle}
\usepackage{stmaryrd,scalerel,stackengine}
\setstackgap{S}{0pt}
\usepackage{adjustbox}
\def\LbagT{\clipbox{0pt 2.6pt 0pt 0pt}{$\Lbag$}}
\def\LbagB{\clipbox{0pt 0pt 0pt 8.5pt}{$\Lbag$}}
\def\RbagT{\clipbox{0pt 2.6pt 0pt 0pt}{$\Rbag$}}
\def\RbagB{\clipbox{0pt 0pt 0pt 8.5pt}{$\Rbag$}}
\begin{document}
\[\Lbag xyz \Rbag\ = \scaleleftright[1.2ex]{\Lbag}{\frac{xyz}{XYZ}}{\Rbag}\]
\[
\raisebox{-6pt}{\Shortstack{{\LbagT} {\rule{1pt}{2ex}\kern3pt} {\LbagB}}}
\frac{xyz}{XYZ}
\raisebox{-6pt}{\Shortstack{{\RbagT} {\kern2.95pt\rule{1pt}{2ex}} {\RbagB}}}
\]
\end{document}