我刚刚在这里注册,但我一直在浏览网站,但一直找不到以下问题的答案。我只想为标量积创建一个特定的视图。它应该看起来像:。我使用以下代码:
\newcommand*{\spr}{\left(\,#1\,|\,#2\,\right)}
。
问题出在这个符号上:|。事实上,当我输入例如 \dfrac{}{} 而不是 expr1. 或 expr2. 时,该符号的高度是相同的。如何让“|”的高度随着两个表达式(在“|”之前和“|”之后)中任意一个的高度的变化而变化?感谢您的关注,抱歉我的英语不好。
答案1
|
假设我理解了这个问题,可以通过|
用替换 来获得可变大小的管道(即) \middle|
。以下是使用 的 MWE \dfrac
:
\documentclass{article}
\usepackage{amsmath}
\newcommand*{\spr}[2]{\left(\,#1\,\middle|\,#2\,\right)}
\begin{document}
\(
\spr{\dfrac{x}{y}}{z}
\)
\end{document}
请注意,您的定义\spr
忘记指出它需要两个参数。我在这里修复了这个问题。上面的代码给出以下输出:
答案2
mathtools
以下是使用和中的宏的解决方案xparse
。我定义了一个 \spr
命令,其中包含两个参数,用逗号分隔。如果其中一个参数为空,则将其替换为点。要使用可变大小的括号或中间分隔符,请使用\spr*
。您还可以使用可选参数微调分隔符的大小,该参数将是big, \Big, \bigg
或之一Bigg
。
\documentclass{article}
\usepackage{mathtools}
\usepackage{xparse, etoolbox}
\DeclarePairedDelimiterX\spr[1](){\sprargs{#1}}%
\NewDocumentCommand{\sprargs}{>{\SplitArgument{1}{,}}m }
{\sprargsaux#1}
\NewDocumentCommand{\sprargsaux}{ m m }%
{\ifblank{#1}{\cdot}{#1}\nonscript\,\delimsize\vert\nonscript\,\mathopen{}\ifblank{#2}{\cdot}{#2}}
\begin{document}
\[ \spr*{\dfrac{x}{y},z}\quad\spr[\Bigg]{\dfrac{x}{y},z}\quad\spr[\Big]{\dfrac{x}{y},z}\quad\spr*{,z} \quad\spr*{\dfrac{x}{y},} \]
\end{document}