我突然想到,在编写 TeX 文档时,我花了大量时间从之前计算出的行中复制和粘贴表达式。如果我在表达式中犯了一个错误,那么我必须检查所有后续行并进行更新。
有没有办法将数学表达式分配给某种符号,这样我就不必重复输入,只需将该表达式导入页面下方的数学模式环境中即可。一旦文档呈现,这看起来就与将表达式的 TeX 代码从一行复制并粘贴到下一行相同。
每当我有一个必须反复重复的常见子表达式时,这将非常有用。如果我犯了错误,我可以简单地修改数学表达式的原始版本,它会更新所有后续方程式。
答案1
你问,
有没有办法将数学表达式分配给某种符号,这样我就不必重复了,而是可以简单地将该表达式导入页面下方的数学模式环境中?
您的帖子听起来好像您可以从掌握有关如何创建和使用 LaTeX 宏的实际知识中受益匪浅。这些宏几乎可以在 LaTeX 文档的任何地方定义和重新定义。(好吧,我想在 之后定义它们就没意义了\end{document}
,对吧?)通过 创建宏\newcommand
并不局限于文档的序言——尽管通常有很好的理由倾向于将宏定义放在序言中……
附录\newcommand
: 正如 @egreg 在评论中指出的那样,在后面添加指令的一个副作用(可能出乎意料且非常不受欢迎)\begin{document}
是必须小心不要无意中插入空格字符,因为这些空格字符会影响 TeX 的间距甚至换行例程。为了防止 TeX 在指令末尾插入空格\newcommand
,请务必使用%
(注释)字符终止它。
我将让你猜测一下下面的测试文档会产生什么结果。
\documentclass{article}
\begin{document}
Hello World.
\newcommand\CommonTerm{a^2+b^2}% <-- note the comment character
\[
\CommonTerm \quad \sqrt{\CommonTerm} \quad -\ln(\CommonTerm)
\]
\end{document}
另外,为了完整起见:事实上,有少数与数学相关的定义活动必须出现在序言中。例如,如果你想使用\DeclareMathOperator
(由包提供amsmath
),你必须在序言中就这样做。