2012-01-01 9 views
5

m4でマクロを書き、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を交換した場合、私は望ましい結果を得ることができます。私は毎回それを行うことができましたが、可能ならばこのプロセスを自動化したいと思います。所望の結果は、方法によって、HTMLコードまたは(本例最小の外)画像を生成します別のコマンドにパイプで

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

あります。

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

スラッシュを自動的に自動的にエスケープして、まっすぐなLaTeXコードを使用できるようにマクロを変更するにはどうすればよいですか?

答えて

4

それは、これを理解するのに十分な私には時間がかかったが、これは動作します:

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