`评估于` 分隔符

`评估于` 分隔符

我正在使用包\DeclarePairedDelimiterXPP中的命令mathtools来声明一些新的分隔符,可以轻松打开和关闭它们的缩放。具体来说,我想声明命令\evalat,它表示在给定点处对表达式的求值:例如$\left.\frac{x}{2}\right|_{x=1}$

正如我之前所说,我希望它具有\DeclarePairedDelimiter-type 命令提供的缩放选项。这意味着\evalat{\frac{x}{2}}{x=1}在右侧给出一条非缩放的垂直线,\evalat*{\frac{x}{2}}{x=1}在右侧给出一条缩放的垂直线,并\evalat[\size]{\frac{x}{2}}{x=1}给出一个大小为 的垂直条\size

我尝试了以下定义:

\DeclarePairedDelimiterXPP{\evalat}[2]{}{.}{|}{_{#2}}{#1}

\DeclarePairedDelimiterXPP{\evalat}[2]{}{\left.}{\right|}{_{#2}}{#1}

第一个版本在带星号(自动缩放)的版本中可以正常工作。但是,其无星号版本会显示$.\frac{x}{2}|_{x=1}$,并且点仍显示在左侧。第二个版本始终缩放分隔符,无论是带星号的版本还是无星号的版本。

我理解为什么这些命令会如此表现,但我不知道如何获得我想要的行为?

附言:对另一个问题的回答可能是一个后备解决方案,但我宁愿将其_{x=1}作为命令的参数。

答案1

直接定义命令更简单:

\documentclass{article}
\usepackage{amsmath}
\usepackage{xparse}

\NewDocumentCommand{\evalat}{sO{}mm}{%
  \IfBooleanTF{#1}
    {\kern-\nulldelimiterspace\left.#3\right|_{#4}}
    {#3#2|_{#4}}%
}

\begin{document}

\[
\evalat{x^2}{x=1}=1
\qquad
\evalat*{\frac{x^2}{3}}{x=6}=12
\qquad
\evalat[\Big]{\frac{x^2}{3}}{x=6}=12
\]

\end{document}

在此处输入图片描述

相关内容