5

HTMLコードに数学を簡単に埋め込むために、m4でマクロを書いています。スラッシュはエスケープする必要があり、このプロセスを自動化したいのですが、まだ良い方法を見つけていません。

以下で実行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 コードまたは画像を生成する別のコマンドにパイプされます (この最小限の例以外)。

私は、この問題を回避するための不十分な方法を 1 つ知っています。TeX に別の文字 (または文字の組み合わせ) を使用し、\別のマクロを定義して自動的に置き換えることができます。私は修正せずにそのままの LaTeX コードを使用したいので、これは不十分です。3 つのスラッシュを使用するよりも大幅に単純ではありません。

ストレートな 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 に答える