仅适用于数学模式的新命令

仅适用于数学模式的新命令

我的序言包含以下定义

\newcommand*  {\pdiffat}[3] {\left(\frac{\partial{#1}}{\partial{#2}}\right)_{#3}}

这只是在数学模式下使用。然而,overleaf 抱怨说\left只能在数学模式下使用,因此将此行和所有后续行都涂成粉红色/红色。

有没有(理想情况下是简单的)方法来避免这种情况?也就是说,具有相同功能的宏仍然有效,但 overleaf 却很正常?

答案1

删除 \newcommand* 和命令名称之间的空格,它们似乎会让 overleaf 解析器感到困惑。这对我来说很好用:

 \newcommand*{\pdiffat}[3]{\left(\frac{\partial{#1}}{\partial{#2}}\right)_{#3}}

答案2

尽管有很多理由不这样做,而且艾伦的评论提供了关于不使用的链接\ensuremath,但我仍然建议\ensuremath在代码周围放置一个,如下所示

\newcommand*{\pdiffat}[3]{\ensuremath{\left(\frac{\partial{#1}}{\partial{#2}}\right)_{#3}}}

以这种方式,该命令将在文本或数学模式下调用时发挥作用。

我并没有建议将此作为制作宏的通用方法,而只是将其作为 OP 遇到的特定 overleaf 问题的可能补救措施。(我自己对 overleaf 一无所知)

\documentclass{article}
\begin{document}
\newcommand*{\pdiffat}[3]{\ensuremath{\left(\frac{\partial{#1}}{\partial{#2}}\right)_{#3}}}

\pdiffat{a}{b}{c} vs. $\pdiffat{a}{b}{c}$
\end{document}

相关内容