根据情况选择命令中的分隔符

根据情况选择命令中的分隔符

我正在尝试创建一个类似于\qtyfrom 的命令physics package。为了理解,我有以下代码作为示例:

\documentclass{article}

\usepackage{physics}

\RenewDocumentCommand{\grad}{sm}{%
    \IfBooleanTF{#1}{\nabla#2}
    {\nabla\biggl[ #2 \biggl]}
}

\begin{document}

The command $\backslash\text{qty}$ produces
\begin{gather*}
    \qty(x+y), \qquad
    \qty[x+y], \qquad
    \qty{x+y}
\end{gather*}
All I have now is the command $\backslash\text{grad}$ that only accepts braces \{\}:
\begin{gather*}
    \grad{x+y}
\end{gather*}

\end{document}

我想要调整的命令是这样的,\grad以便能够写入:\grad()\grad[]\grad{}

答案1

不确定问题出在哪里。

\documentclass{article}

\usepackage{physics}

\RenewDocumentCommand{\grad}{s}{%
  \nabla
  \IfBooleanF{#1}{\qty}%
}

\begin{document}

\[
    \qty{x+y}, \qquad
    \qty(x+y), \qquad
    \qty[x+y], \qquad
    \qty{x+y}, \qquad
    \qty\Big(x)
\]

\begin{gather*}
    \grad{x+y} \qquad
    \grad(x+y) \qquad
    \grad[x+y] \qquad
    \grad|x+y|
\\
    \grad\Big(x+y) \qquad
    \grad\Big[x+y] \qquad
    \grad* \qquad
    \grad*x \qquad
    \grad*(x+y)
\end{gather*}

\end{document}

在此处输入图片描述

假设您确实想使用physics它,但语法很奇怪。我会远离它。

相关内容