在我的论文中我需要经常使用偏微分分数,例如
\frac{\partial^\alpha x}{\partial y^\alpha }}
因此我定义了命令
\newcommand{\partialfrac}[3][]{\frac{\partial^ #1 #2}{\partial #3 ^ #1}}
这应该等于第一个使用
\partialfrac[\alpha]{x}{y}
如果我定义可选的 #1 输入,那么这种方法就可行。如果愿意,我希望能够跳过上标(通常不会写 ^1...),但如果我省略可选输入,则会收到错误。有没有办法以某种方式告诉 latex “跳过”上标?
谢谢
答案1
可扩展的测试是:
\ifx\\#1\\%
% #1 is empty
\else
% #1 is not empty
\fi
^#1
如果#1
包含多个标记,也会失败。此问题已由 修复^{#1}
。
\documentclass{article}
\newcommand*{\partialfrac}[3][]{%
\frac{%
\partial \ifx\\#1\\\else^{#1}\fi #2%
}{%
\partial #3 \ifx\\#1\\\else^{#1}\fi
}%
}
\begin{document}
\[
\partialfrac{a}{b} = \partialfrac[\alpha]{x}{y}
\]
\end{document}
答案2
我认为仍有空间xparse
-based 版本。感谢\IfNoValueTF
测试,可以检查可选的第一个参数是否存在:
\documentclass{article}
\usepackage{xparse}
\NewDocumentCommand{\partialfrac}{o m m}{%
\IfNoValueTF{#1}{%
\frac{\partial #2}{\partial #3}%
}{%
\frac{\partial^{#1}#2}{\partial #3^{#1}}%
}%
}
\begin{document}
\[
\partialfrac{a}{b} = \partialfrac[\alpha]{x}{y}
\]
\end{document}
结果:
答案3
用于etoolbox
测试可选参数并采取相应行动。
\newcommand{\partialfrac}[3][]{\frac{\partial\ifblank{#1}{}{^ #1} #2}
{\partial #3 \ifblank{#1}{}{^ #1}}}
(未经测试)
答案4
很抱歉我提出了这个问题:我在打开它之前尝试了 1 个小时,然后在 2 分钟后找到了解决方案......
这
\newcommand{\partialfrac}[3][]{\frac{\partial^{#1}#2}{\partial#3^{#1}}}
按预期工作。
非常感谢