我想创建某种宏,它会产生一个垂直条|
,该垂直条会随其引用的对象的高度而缩放。使用物理包,它的工作原理如下:
\eval{\pdv{f}{x}}_y
不过我想使用类似的东西:
\pdv{f}{x}\eval|_x
\pdv{f}{x}\eval_x
\pdv{f}{x}\eval{x}
这是因为当我写作时,在导数后写竖线更为自然。我可能会使用 $\bigg|$ 或 $\Bigg|$,因为我的大多数表达式都有类似的高度,但我想知道是否有某种方法可以使其工作以便缩放。
答案1
我猜想,宏的作用\eval{...}
是确保缩放(我一般不喜欢)。可以打补丁\pdv
,将整个构造的高度保存在长度寄存器中,该寄存器稍后用于构建 par,但我不喜欢也不使用这个physics
包。此外,自动缩放通常非常危险,如以下示例所示
\[
\left.\frac{\partial f}{\partial x}\right|_x
\left.\frac{\partial \tilde{f}}{\partial x}\right|_x
\]
我相信毫无疑问,第二种表达看起来令人震惊。
说实话,我认为没有什么区别
\frac{dy}{dx}\eval_x
更直接
\frac{dy}{dx}\biggr|_x
除了省去两次击键并使代码在我看来更难读(尽管后面的评论可能取决于我的眼睛和大脑如何解析 LaTeX 数学)。但如果你\eval
几乎总是有相同的高度(比如说\bigg
),那么你可以定义如下内容
\documentclass{article}
\makeatletter
\newcommand*{\eval}[1][\bigg]{%
\if\relax\detokenize{#1}\relax
\def\next{\mathclose|}%
\else
\def\next{\csname\expandafter\@gobble\string#1r\endcsname|}%
\fi
\next
}
\makeatother
\begin{document}
\[
\frac{\partial f}{\partial x}\eval_x \quad
a\eval[\big]_x \quad
a\eval[]_x \quad
\frac{\partial f}{\partial x}\eval[\Bigg]_x^y
\]
\end{document}
默认情况下\bigg
使用;可以提供不同的尺寸作为可选参数。