5

我正在用 m4 编写宏,以便轻松地将数学嵌入 HTML 代码中。斜线需要转义,我想自动化这个过程,但我还没有想出一个好方法。

运行m4以下显示问题:

define(`_imath', `esyscmd(`echo "$ $1 $"')')dnl
_imath(y = \frac{1}{2} x^{2.3} + 2)

我的输出如下:

$ y = 
      rac{1}{2} x^{2.3} + 2 $

如果我替换\frac\\\fracthen 我会得到想要的结果。我每次都可以这样做,但如果可以的话,我想自动化这个过程。顺便说一句,期望的结果是

$ y = \frac{1}{2} x^{2.3} + 2 $

它通过管道传送到另一个命令,该命令将生成 HTML 代码或图像(在这个最小示例之外)。

我知道解决这个问题的一种不令人满意的方法。我可以为 TeX 使用不同的字符(或字符组合)\并定义另一个宏来自动替换它。这是不令人满意的,因为我想直接使用 LaTeX 代码而不做修改,它并不比使用三个斜杠简单得多。

如何更改我的宏以正确自动转义斜杠,以便我可以使用直接的 LaTeX 代码?

4

1 回答 1

4

我花了足够长的时间才弄清楚这一点,但这有效:

define(`_imath', `esyscmd(echo "$ patsubst(`$1',`\\',`\\\\\\') $")')dnl
_imath(y = \frac{1}{2} x^{2.3} + 2)
于 2012-01-02T03:57:48.787 回答