重新定义“间隔”以始终按比例缩放

重新定义“间隔”以始终按比例缩放

我已经尝试过这样的事情:

\let\oldinterval\interval
\renewcommand{\interval}[2]{\oldinterval[scaled]{#1}{#2}}

问题是我不能\interval[open]再使用了。

有没有什么办法解决这一问题?

我想\interval[whatever comes here]{a}{b}扩大到\oldinterval[whatever comes here, scaled]{a}{b}

答案1

该宏\interval有一个可选参数和两个强制参数。

使用这种宏的旧定义\let,最好使用 Heiko Oberdiek 的letltxmacro包,而\LetLtxMacro不是\let

由于 OP 希望该scaled选项始终有效,因此我将其明确添加到选项列表中作为最后一个选项#1

\documentclass{article}

\usepackage{interval}
\usepackage{letltxmacro}

\LetLtxMacro\oldint\interval
\renewcommand{\interval}[3][]{\oldint[#1,scaled]{#2}{#3}}

\begin{document}

$\interval{a}{b}$
$\interval[open]{a}{b}$

\end{document}

enter image description here

答案2

别这样。别这样。别这样。

如果您确实不想遵循该建议,请修补\interval宏:

\documentclass{article}
\usepackage{amsmath}
\usepackage{interval}

\usepackage{xpatch}
\xpatchcmd{\interval}{interval,}{interval,scaled,}{}{}

\begin{document}

$\interval{\dfrac{1}{2}}{b}$
$\interval[open]{\dfrac{1}{2}}{b}$

\end{document}

enter image description here

相关内容