![roff 中的方程式](https://linux22.com/image/407847/roff%20%E4%B8%AD%E7%9A%84%E6%96%B9%E7%A8%8B%E5%BC%8F.png)
我是一名物理本科生,经常需要写 Latex 文档。不过,我最近听说了 Groff,据我所知,它比 Latex 轻量级得多,也更简洁。它适合写数学题吗?还是像 Markdown 一样功能有限?
答案1
roff 中的方程式
罗夫(或者格罗夫或任何其他实现)实际上不支持数学排版。为此,您必须使用预处理器将文档中的方程式转换为 groff 可以读取的内容。我只知道方程方程的预处理器,但可能还有其他。
eqn(或 groff 的一般用法)的一个明显缺点是大多数命令必须单独出现在一行中,这在书写时非常麻烦。对于显示的方程式来说,这其实不是什么问题,但对于内联数学来说却非常烦人。
LaTeX 与 groff 的比较
此外,groff 与 eqn 的输出质量与 LaTeX 不相上下(在我看来,其他的也一样)。
除此之外,LaTeX 还具有比 groff 多得多的功能,例如自动交叉引用、参考书目管理和开箱即用的多语言支持。此外,它还通过出色的宏包进行了扩展,例如amsmath
数学、siunitx
单位、beamer
演示幻灯片、tikz
内联矢量图形、microtype
微排版功能等等。
LaTeX 的其他“特点”是,科学期刊通常接受 LaTeX 格式的投稿,你的导师可能也懂 LaTeX,所以你们可以一起写稿件。很多软件都可以导入和导出 LaTeX 语法的公式,包括数学乃至微软 Word!
此外,LaTeX 社区比 groff 大得多(它存在吗?),并且您可以通过 Overleaf 等在线编辑器享受公司支持。
我可能还会继续解释为什么 LaTeX 优于其他任何非商业排版系统(也可能优于任何商业排版系统)。在继续比较输出质量之前,让我先回答您的两个具体问题。
具体问题
它对写数学有用吗?
不,输出质量不如 LaTeX,而且公式语法(在我看来)不直观且复杂。例如,在某些情况下空格很重要,但在其他情况下则不然,有时您需要用{}
或 来包装内容""
。
还是像 Markdown 一样有限制?
并不真地。 虽然 Markdown 实际上是一种平面静态文本格式,但 groff 至少支持宏,但它们似乎不如 TeX 宏(著名的图灵完备)那么强大。
输出质量
乳胶
\[ s = \sqrt{\frac{\sum_{i=1}^N (x_i - \bar{x})^2}{N - 1}} \]
使用方程式进行 groff
.EQ
s = sqrt { { sum from i=1 to N ( x sub i - x bar ) sup 2 } over { N - 1 } }
.EN
处理
groff -e test.tr > test.pdf
答案2
roff
TeX 的使用频率也比或更高eqn
,包括在网站和留言板上。例如,SX 上的数学网站使用基于 LaTeX 的 MathJax。如果您想发表论文,您也需要了解它。
答案3
我更喜欢 Groff(带-ms
),因为命令更短,更容易阅读,特别是如果你自己制作宏的话。这是因为,在 中eqn
,空格用作语法,而不是花括号。
例如eqn
cos theta + roman i sin theta
与 LaTeX 相同
\cos\theta + \mathrm{i}\sin\theta.
Groff 安装通常约为 10MB,比典型的 LaTeX 安装要小。Groff 更加模块化,并且总体上更符合 UNIX 理念,充分利用了管道,并且命令名大多为两个字母。
如果您需要帮助,请在 GNU Groff 邮件列表上询问:
https://lists.gnu.org/archive/html/groff/
例子(使用宏)
.LP
By expanding out the brackets of $pq$, we find that
.L q_vec_mul
.EQ "\*[q_vec_mul]"
pq
=
[[ s _ 1 s _ 2 - #v _ 1 . #v _ 2
,~~
s _ 1 #v _ 2 + s _ 2 #v _ 1 + #v _ 1 * #v _ 2 ]] \.
.EN
限制
在限制方面,Groff 可以完成 LaTeX 的大部分功能,但有些功能(例如黑板字符)需要进行一些研究才能弄清楚如何使用。
而且,正如人们指出的那样,LaTeX 中的方程式看起来更漂亮,而且现在也更常用。
但是,您可以使用-Tdvi
groff 选项,然后dvipdf
输出以生成具有外观的 PDF TeX
。