我的序言包含以下定义
\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}