![latex 中代码的快捷方式](https://linux22.com/image/260995/latex%20%E4%B8%AD%E4%BB%A3%E7%A0%81%E7%9A%84%E5%BF%AB%E6%8D%B7%E6%96%B9%E5%BC%8F.png)
我厌倦了写\frac{\partial something}{\partial something_else}
。我可以通过定义某种快捷方式来自动化它,以便在我写的时候\p(x)(y)
它会转换为\frac{\partial x}{\partial y}
?
答案1
\documentclass{article}
\usepackage{amsmath}
\newcommand\p[2]{\frac{\partial #1}{\partial #2}}
\begin{document}
$ \p{x}{y} $
\end{document}
答案2
定义复杂宏的能力是 LaTeX 的优势之一。传统的 LaTeX 方式是\p{x}{y}
在文本中使用 而不是\p(x)(y)
。如果您对 感到满意\p{x}{y}
,那么您可以直接添加
\newcommand{\p}[2]{\frac{\partial#1}{\partial#2}}
到你的序言。由于这个新宏需要数学模式,你可能还想将宏包装在一个\ensuremath
类似
\newcommand{\p}[2]{\ensuremath{\frac{\partial#1}{\partial#2}}}
如果你真的想要,\p(x)(y)
那么你可以添加
\def\p(#1)(#2){\ensuremath{\frac{\partial #1}{\partial #2}}}
到你的序言。这不是特别健壮,因为像 LaTeX3 这样的代码会破坏它。有很多方法可以让它更健壮,但是,除非有充分的理由(尤其是作为初学者),否则$\p((a+b)(a-b))(a+b)$
我建议不要使用它。\p(x)(y)
最后要注意的是,最好使用稍长且更具描述性的宏名称。虽然\p
现在看起来不错,但几个月后它可能对你来说就没有任何意义了。短宏名称也会增加你与其他包发生名称冲突的可能性。
答案3
这commath
包中已经定义了很多这些方便的宏,比如\pd[2]{f}{x}
。我碰巧用了它,但它也有一些棘手的问题,比如对内联和显示数学的错误检测,以及与 TikZ 在冒号字符上的冲突(见为什么 pdfTeX 会挂在这个文件上?)。