在shell命令中自动转义m4中的斜杠

  • 本文关键字:m4 转义 shell 命令 m4
  • 更新时间 :
  • 英文 :


我正在用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代替frac,那么我得到了所需的结果。我可以每次都这样做,但如果可以的话,我想让这个过程自动化。顺便说一下,期望的结果是

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

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

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

我怎么能改变我的宏自动转义斜杠正确,所以我可以使用直接的LaTeX代码?

我花了很长时间才弄明白这一点,但这是可行的:

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

相关内容

  • 没有找到相关文章

最新更新