
O stmaryrd
pacote fornece dois tipos de delimitadores multiset ou bag: \lbag
e \rbag
; e \Lbag
e \Rbag
.
Quando uso esses comandos com os comandos de dimensionamento do delimitador \left
e \right
(ou mesmo \bigl
e \bigr
), recebo um erro "Delimitador ausente". Existe uma maneira de usar os delimitadores multiset em tamanhos variados?
Estou aberto a usar símbolos de outro pacote, se necessário.
Responder1
As macros \scaleleftright
e stretchleftright
do scalerel
pacote fornecem funcionalidade semelhante à \left ... \right
sintaxe. Neste caso, o argumento opcional fornece a largura máxima permitida na escala. Se a largura for excedida, a proporção será ajustada para preservar a largura limite.
\documentclass{arlticle}
\usepackage{stmaryrd,scalerel}
\begin{document}
\[\Lbag xyz \Rbag\ = \scaleleftright[1.2ex]{\Lbag}{\frac{xyz}{XYZ}}{\Rbag}\]
\end{document}
E se você adicionar a \strut
ao numerador e denominador de \frac
, ficará assim:
Na discussão dos comentários, levantei a questão sobre como seria uma versão extensível desse glifo. Para me divertir, construí um à mão. Não recomendo a implementação, mas achei que seria interessante comparar, na aparência visual, com a solução proposta acima:
\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}