
Das stmaryrd
Paket bietet zwei Arten von Multiset- oder Bag-Trennzeichen: \lbag
und \rbag
; und \Lbag
und \Rbag
.
Wenn ich diese Befehle zusammen mit den Befehlen zur Größenanpassung von Trennzeichen \left
und \right
(oder sogar \bigl
und \bigr
) verwende, erhalte ich die Fehlermeldung „Fehlendes Trennzeichen“. Gibt es eine Möglichkeit, die Multiset-Trennzeichen in unterschiedlichen Größen zu verwenden?
Ich bin offen dafür, bei Bedarf Symbole aus einem anderen Paket zu verwenden.
Antwort1
Die \scaleleftright
und stretchleftright
Makros des scalerel
Pakets bieten ähnliche Funktionen wie die \left ... \right
Syntax. In diesem Fall gibt das optionale Argument die maximal zulässige Breite der Skala an. Wenn die Breite überschritten wird, wird das Seitenverhältnis angepasst, um die Grenzbreite beizubehalten.
\documentclass{arlticle}
\usepackage{stmaryrd,scalerel}
\begin{document}
\[\Lbag xyz \Rbag\ = \scaleleftright[1.2ex]{\Lbag}{\frac{xyz}{XYZ}}{\Rbag}\]
\end{document}
\strut
Und wenn Sie zum Zähler und Nenner von ein hinzufügen \frac
, sieht es folgendermaßen aus:
In der Kommentardiskussion habe ich die Frage aufgeworfen, wie eine erweiterbare Version dieses Glyphs aussehen könnte. Aus Spaß habe ich eine von Hand erstellt. Ich empfehle die Implementierung nicht, dachte aber, es wäre interessant, sie optisch mit meiner oben vorgeschlagenen Lösung zu vergleichen:
\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}