数学模式中的空白分隔符

数学模式中的空白分隔符

我正在使用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}

在此处输入图片描述

相关内容