声明新命令以使用附加设置来表示条件

声明新命令以使用附加设置来表示条件

有人能告诉我如何设置已声明的新命令的参数,类似于在包中设置的方式TikZ吗?更具体地说,我想声明一个函数,该函数在所选表达式(环境+ )\condVert{}的右侧设置一条垂直线,表示条件(或变量变化的限制)。此外,作为附加参数,我想设置在表达式周围设置括号/框架的能力。\left.\right|

例子:

命令 结果 评论
\condVert[lim={x=0 | a}]{f(x)} 在此处输入图片描述
\condVert[limits={x=0 | a}]{f(x)} 在此处输入图片描述 限制在设置中应该给出相同的结果。
\condVert[lim={x=a}, angle bracs]{\dfrac{x^2}{2} + x} 在此处输入图片描述 我还希望能够使用类似 [...] 的语法括号=角]。
\condVert[lim={x=a}, rangle bracs]{\dfrac{x^2}{2} + x} 在此处输入图片描述
\condVert[lim={x=a}, {dash box}]{\dfrac{x^2}{2} + x} 在此处输入图片描述
\condVert[lim={x=a}, {dash circle box}]{\dfrac{x^2}{2} + x} 在此处输入图片描述

突出显示背景颜色可能会过于富有表现力,但也许增加功能性会更好。:)

答案1

以下是我自己的一个解决方案,略微非标准,语义。我擅自改变了一些参数和键的顺序和含义,以便于实现:

\documentclass{article}

\usepackage{semantex}

\NewVariableClass\condVert[
    define keys[2]={
        {limits}{
            Other spar={.}{|}{auto},
            lower={#1},
            upper={#2},
        },
    },
    define keys[1]={
        {lim}{ limits={#1}{} },
    },
    define keys={
        {angle bracs}{
            Other spar={(}{)}{auto},
        },
        {rangle bracs}{
            Other spar={[}{]}{auto},
        },
        {dash box}{
            command=\dashboxcommand,
        },
        {dash circle box}{
            command=\dashcircleboxcommand,
        },
    },
]

\newcommand\dashboxcommand[1]{%
    #1% change to suit your needs
}

\newcommand\dashcircleboxcommand[1]{%
    #1% change to suit your needs
}

\begin{document}

\begin{gather*}
    \condVert{f(x)}[lim={x=0}]
\\
    \condVert{f(x)}[limits={x=0}{a}]
\\
    \condVert{\dfrac{x^2}{2} + x}[angle bracs,lim={x=a}]
\\
    \condVert{\dfrac{x^2}{2} + x}[rangle bracs,lim={x=a}]
\\
    \condVert{\dfrac{x^2}{2} + x}[dash box, lim={x=a}]
\\
    \condVert{\dfrac{x^2}{2} + x}[dash circle box, lim={x=a}]
\end{gather*}

\end{document}

在此处输入图片描述

相关内容