对于 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 代码?
I'm writing macros with m4 to easily embed math in HTML code. Slashes need to be escaped and I want to automate this process but I have not yet figured out a good way.
Running m4
on the following shows the problem:
define(`_imath', `esyscmd(`echo "$ $1 $"')')dnl
_imath(y = \frac{1}{2} x^{2.3} + 2)
My output in the following:
$ y =
rac{1}{2} x^{2.3} + 2 $
If I replace \frac
with \\\frac
then I get the desired result. I could do that every time, but I want to automate this process if I can. The desired result, by the way, is
$ y = \frac{1}{2} x^{2.3} + 2 $
which is piped to another command that'll produce HTML code or an image (outside of this minimal example).
I know one unsatisfactory way to get around this problem. I could use a different character (or combination of characters) for TeX's \
and define another macro to automatically replace it. This is unsatisfactory because I want to use straight LaTeX code without modification and it is not significantly simpler than using three slashes.
How can I change my macro to automatically escape the slash correctly so I can use straight LaTeX code?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我花了很长时间才弄清楚这一点,但这有效:
It took me long enough to figure this out, but this works: