几年前,我就一直在不用纸笔的情况下用 LaTeX 解决数学问题。有些问题有 (很多) 行单词,有些有 (很多) 行方程式,有些则两者都有。
当我发现自己有时会遇到时间问题,并且觉得从 LaTeX 代码中推理不太直接,担心在 LaTeX 代码之间切换、重新编译和查看 pdf 文件会浪费时间时,我开始怀疑完全用 LaTeX 做事是否会减慢我的速度。但我记得当我完全在纸上做事时,我希望我可以像在电脑上一样“复制”和“粘贴”。
我正在寻找提高推理和解决数学问题的效率的方法:
- 用纸和笔,
- 在 LaTeX 中,
- 两者结合……
当我们不使用纸笔用 LaTeX 解决数学问题时,您有哪些技巧可以提高我们的工作效率?
答案1
我很确定标题中问题的答案是——使用 LaTeX 不带纸解决数学问题是否比使用纸质文件慢?-是是的。我工作时,面前放着一台电脑键盘,左边放着一支笔和一本便笺簿(是的,我是左撇子),当我输入问题解决方案时,我通常会让键盘在便笺簿上划一会儿,然后再回到键盘上用 LaTeX 将其写出来。我可以想到一些原因来解释为什么这可能更真实:
- 我的思考速度比打字速度快。
- 尽管用英语打字时我打字的速度比写字快得多,但是用数学书写时我写字的速度比用 LaTeX 打字时快得多。
- 我可以手绘非常多比在 LaTeX 中绘制速度更快。
我承认这是一个完全主观的答案,但我不知道有哪位同事会先在 LaTeX 中工作,而不是先在纸上或黑板/白板上涂鸦。
至于提高编写 LaTeX 效率的技巧,我建议遵循良好的编码实践。据我所知,代码组织方面没有那么多固定的惯例,但我遵循的一些一般做法是:
每个句子都另起一行。
在环境块内缩进代码。
使用括号将组括起来,即使它们只有一个标记。我在上标/下标中违反了此规则,但在
\frac
-tions 中严格遵守此规则。使用
cool
包使许多数学表达式更像宏。
例如(这不是我举的最好例子,但这是我手头上的例子),
Let $E$ be the solid.
Its volume is $\frac{1}{8} \frac{4}{3}\pi = \frac{\pi}{6}$.
In spherical coordinates it is a wedge $0 \leq \rho\leq 1$, $0 \leq \theta \leq \pi/2$, $0 \leq \phi\leq \pi/2$.
So the moments are
\begin{align*}
M_{yz} = \iiint_E x\,dV &= \int_0^{\pi/2}\int_0^{\pi/2} \int_0^1 (\rho \Sin{\phi}\Cos{\theta})\rho^2\Sin{\phi}\,d\rho\,d\phi\,d\theta \\
&= \int_0^{\pi/2} \Cos{\theta} \,d\theta\cdot\int_0^{\pi/2} \Sin{\phi}^2 \,d\phi\cdot\int_0^{1} \rho^3\,d\rho \\
&= 1 \cdot \frac{\pi}{4} \cdot \frac{1}{4} = \frac{\pi}{16} \\
M_{yz} = \iiint_E y\,dV
&= \int_0^{\pi/2}\int_0^{\pi/2} \int_0^1 (\rho \Sin{\phi}\Sin{\theta})\rho^2\Sin{\phi}\,d\rho\,d\phi\,d\theta \\
&= \int_0^{\pi/2} \Sin{\theta} \,d\theta\cdot\int_0^{\pi/2} \Sin{\phi}^2\,d\phi \cdot \int_0^1 \rho^3 \,d\rho \\
&= 1 \cdot \frac{\pi}{4} \cdot \frac{1}{4} = \frac{\pi}{16} \\
M_{xy} = \iiint_E z\,dV
&= \int_0^{\pi/2}\int_0^{\pi/2} \int_0^1 (\rho \Cos{\phi})\rho^2\Sin{\phi}\,d\rho\,d\phi\,d\theta \\
&= \int_0^{\pi/2} d\theta\cdot \int_0^{\pi/2} \Sin{\phi}\Cos{\phi}\,d\phi \cdot \int_0^1 \rho^3 \,d\rho \\
&= \frac{\pi}{2} \cdot \frac{1}{2} \cdot \frac{1}{4} = \frac{\pi}{16}
\end{align*}
So the coordinates of the centroid are
$\left(\frac{3}{8},\frac{3}{8},\frac{3}{8}\right)$
即使对于这个,我也首先在纸上解决它。
2023 年更新:写这篇文章九年后,我获得了一个点赞,这让我有机会重读它。我的工作流程没有太大变化,只是我左边的“笔和垫子”经常被平板电脑和手写笔取代。这种工作流程的优点是图表也更容易徒手绘制。
答案2
如果您能够足够快地编写 latex 数学公式,那么当您尝试直接在 latex 中解决问题时,它将为您提供额外的灵活性和生产力。鉴于这样的速度,在 latex 中工作可能比在纸上工作更快,因为可以剪切和粘贴长序列,从而允许通过编辑调整进行下一步。我以这种方式解决了一些棘手的数学问题,我可能不会在纸上尝试,因为写出长方程式(所有方程式都略有不同)会花费太长时间。
考虑到这一点,这里有一些我发现可以提高我的乳胶开发效率的方法,可以在适当的时候直接在乳胶中工作:
使用
pdflatex -synctex=1
,以及支持此功能的 pdf 查看器,例如苏门答腊 PDF。这样您就可以双击 pdf 文件中的文本或公式,并立即.tex
在感兴趣的位置编辑相关文件。如果您使用 Windows,Sumatra 也比 Adobe Reader 更好,因为它不会对文件应用 Windows 锁定,并且如果通过在后台运行“make”进行更改,它将自动重新加载 pdf。如果你发现自己需要反复输入一些数学序列,可以为其创建一个宏。一些例子:
\newcommand{\inv}\[1\]{\frac{1}{#1}} \newcommand{\abs}\[1\]{\lvert{#1}\rvert} \newcommand{\norm}\[1\]{\lVert{#1}\rVert} \newcommand{\lr}\[1\]{\left(#1\right)} \newcommand{\Bx}\[0\]{\mathbf{x}}
保留备忘单您使用的常见乳胶模式。我使用它来快速获取我经常使用的序列。使用 vim,我可以运行以下命令(通常在我的命令历史记录中,可以快速检索)
:r!grep equation} latexCheatSheet.tex :r!grep bmatrix} latexCheatSheet.tex :r!grep aligned} latexCheatSheet.tex
使用脚本自动编号标签。
如果你发现自己输入了一些模式,但又不觉得想要永久的模式
\newcommand
,那么可以使用一些临时的搜索和替换模式,这样你就可以更快地输入内容,然后运行脚本将内容转换为实际的 latex。我发现perl -pi
,无论输入什么临时正则表达式列表在当时是合适的,效果确实很好。使用版本控制系统,例如git,以管理您的源。如果您使用脚本技巧来更改源,这一点尤其重要,这样如果出现问题,您可以返回到以前的版本。
使用软件包
\begin{dmath} ... \end{dmath}
中的breqn
功能,将长多部分方程式的格式留给 Latex,而不是乱用aligned
、&
和\\
标记。这有助于让您花时间制作内容,而不是浪费时间尝试正确设置格式。学习并使用正则表达式以及支持它们的编辑器(和/或类似工具
perl
)。一开始你可能会头疼,但你的编辑效率会提高几个数量级。
这些方法非常有效,我现在通常可以写我的课堂笔记,这些内容都涉及繁重的数学运算,可在 Latex 中实时完成。
答案3
关于在 LaTeX 代码之间切换、重新编译和查看 pdf 文件所浪费的时间,有一些 LaTeX 编辑器具有集成查看器、后台编译,甚至公式的实时预览功能,例如 TeXstudio。
您可能需要尝试一些工具才能找到最适合您的工具。以下是IDE 及其功能列表。
答案4
我更喜欢直接在乳胶中处理代数和方程式运算,而在纸上解决更多几何和绘图问题。
在我看来,LaTeX 最大的好处之一是能够使用非常先进的文本编辑工具。我使用Sublime Text 2
with LaTeXTools
,它提供了大多数基本的 vim 命令(只需点击yyp
即可复制该行,因此我写出每一步这有助于捕获错误)
使用LaTeXTools
在多光标、自动完成、vi 和 Sublime 中的其他出色工具之上添加一整层,其补全功能可以真正加快速度。例如,输入:
\begin{align*}
\frac{4}{5} = x\\
\frac{9}{5} = x\\
\end{align*}
我的按键是
bal <tab> <tab> fra <tab> 4 <tab> 5 <tab> = x \\ <esc> yyp/4r9
它看起来很复杂,但只需 25 次击键就可以在 4 行中输入 65 个字符,并进行适当的缩进,而且方程式越大,效率就越高。
它还有助于写作,superc <tab>
只要我已经在文档的某个地方输入了像 Supercalifragilisticexpialidocious 这样的长单词,它就会帮我填充其余部分。
它还允许我cmd b
在 Skim 中编译和显示该文档。