我正在使用mathtools
命令\DeclarePairedDelimiters
来创建垂直拉伸的括号:
\DeclarePairedDelimiters{\paren}{\lparen}{\rparen}
\paren*{\frac{a}{b}}_c
对于那些不了解此命令的人来说,它给出的结果与 相同\left(\frac{a}{b}\right)_c
,只是括号周围的间距与(\frac{a}{b})^c
现在我想这样做...
\[ \left.\frac{a}{b}\right|_c \]
...和\DeclarePairedDelimiters
:
\DeclarePairedDelimiter{\rightbar}{ ??? }{\rvert}
\rightbar{\frac{a}{b}}_c
问题是我需要一个空白的开头字符,即\delimiter"4xxxyyy
。有人知道这个字符是否存在吗?另外,我在哪里可以找到完整的代码列表\mathchar
?谷歌没有帮助我。
谢谢你!
答案1
虽然不太理想,但在这里我声明了两个单独的分隔符,一个仅用于可扩展的情况。然后,我使用条件\@ifstar
来决定选择哪一个:
\newcommand\rightbar{\@ifstar{\fullrightbar*}{\stdrightbar}}
更切合原帖提问的要点。 应该???
是一个点.
;但是,该版本仅适用于带星号的调用版本。
\documentclass{article}
\usepackage{mathtools}
\usepackage{mleftright}
\DeclarePairedDelimiter{\stdrightbar}{}{\rvert}
\DeclarePairedDelimiter{\fullrightbar}{.}{\rvert}
\makeatletter
\newcommand\rightbar{\@ifstar{\fullrightbar*}{\stdrightbar}}
\makeatother
\begin{document}
\[\rightbar{x+2}_0\]
\[\rightbar*{\frac{ax^2}{bx + c}}_0\]
\end{document}
答案2
如果当没有可选参数或存在时\DeclarePairedDelimiter
,我们能够注意到其中一个分隔符为空(由 表示)并且不打印任何内容,那就太好了。.
*
这是一个解决办法。
\documentclass{article}
\usepackage{mathtools,xparse}
\DeclarePairedDelimiter{\rightbarinner}{.}{\rvert}
\NewDocumentCommand{\rightbar}{som}{%
\IfBooleanTF{#1}
{\rightbarinner*{#3}}
{\IfNoValueTF{#2}{#3\rvert}{\rightbarinner[#2]{#3}}}%
}
\begin{document}
\begin{gather}
\rightbar{x+2}_0 \\
\rightbar[\big]{x+2}_0 \\
\rightbar[\Big]{x+2}_0 \\
\rightbar[\bigg]{x+2}_0 \\
\rightbar[\Bigg]{x+2}_0 \\
\rightbar*{\frac{ax^2}{bx + c}}_0
\end{gather}
\end{document}