![是否可以使用例如 pandoc 将 groff 文本转换为 latex?](https://linux22.com/image/472201/%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E4%BD%BF%E7%94%A8%E4%BE%8B%E5%A6%82%20pandoc%20%E5%B0%86%20groff%20%E6%96%87%E6%9C%AC%E8%BD%AC%E6%8D%A2%E4%B8%BA%20latex%EF%BC%9F.png)
自从我知道可以groff
使用eqn
宏用简单的英语写出等式后,我就想花时间学习它。时不时地,我会输入一些非常严肃的数学运算LaTeX
(我的意思是,我在这个行业上花费了大量时间。一方面,它给我带来了很多好处,例如:文本编辑器(s?ed|n?vim?);;regex
(vimscript
| lua
);,tree-sitter
以及lsp
;snippets
它还让我进入了机械键盘的世界qmk
。via
这只是其中的几个例子)。另一方面,我一直在寻求完美的工作流程,这一事实本身就表明这项任务非常耗时。我在这段旅程中所学到的一件事就是永远不要放弃磨锯子(首先,与 4 年前开始挖这个兔子洞时相比,我现在花的时间要少得多)。
我喜欢使用 定义宏eqn
,这类似于在 中定义我自己的命令LaTeX
。我还可以创建表格、图形和目录、数字方程、引用和引文。只有两件事尚未确定,这样我才能下定决心并明确地进入eqn
。它们是:
- 如何使用和
\nabla
正确显示复杂符号(例如)?groff
eqn
- 万一我需要将我的源转换为
LaTeX
,是否有任何标准工具?也许pandoc
可以做到这一点,但怎么做?
PS 起初,我打算把这个问题发布在stackoverflow
,但当网站看到我的标签时,它就把我重定向到这个论坛。如果这不是提出此类问题的合适场所,我很抱歉。
答案1
以下是关于 Nabla 的第一个问题的答案。我不知道第二个问题的答案。
Nabla 是倒置的希腊大写字母 Delta。因此您可以使用https://lists.gnu.org/archive/html/groff/2000-08/msg00068.html(来自评论中提到的 Groff 邮件列表)反转 Delta 字符,即\[*D]
。
\v
请注意,我没有在 Groff/eqn 中设置(垂直位置),而是x y translate
直接使用了 Postscript,因为这不会增加边界框 - 在邮件列表的原始解决方案中,字符的高度由围绕基线的完整旋转(即两行)组成,这导致分数太高。但是对于其他尺寸(如上标),您可能需要调整平移值。
示例方程取自https://tex.stackexchange.com/a/527873:
.ds Nabla "\h'\w'X'u'\X'ps: exec gsave currentpoint \
0 -6.5 translate 2 copy translate -180.0000 rotate neg exch neg exch \
translate'\[*D]\X'ps: exec grestore'\h'-\w'X'u'
.char \(Nb \*[Nabla]
.EQ
s = sqrt { { sum from i=1 to N ( x sub i - x bar ) sup 2 } over { \(Nb - 1 } }
.EN
编译结果如下groff -e example.tr > example.pdf
: