该stmaryrd
包提供两种类型的多集或包分隔符:\lbag
和\rbag
;和\Lbag
和\Rbag
。
当我将这些命令与分隔符大小调整命令\left
和\right
(甚至\bigl
和\bigr
)一起使用时,我收到“缺少分隔符”错误。有没有办法使用不同大小的多集分隔符?
如果有必要,我愿意使用来自其他包的符号。
答案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
如果在的分子和分母上添加一个\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}