SyntaxHighlighter

StackEdit CSS

2013年12月13日金曜日

Rubyの式をTeXの数式に変換するやつ作った

これはTeX & LaTeX Advent Calendar 2013の11日目の記事です。遅れてすみません。

Rubyの式を変換するってどういうことかというと

Ratex.generate{ f(x, y, t) == 2 * sin(pi / 4 * sqrt(x ** 2 + y ** 2) - pi / 2 * t) }

で、

$$f(x, y, t) = 2 \sin(\frac{\pi}{4} \sqrt{x ^{2} + y ^{2}} - \frac{\pi}{2} t)$$

f(x,y,t)=2sin(π4x2+y2π2t)

となるという事です。これってRubyの記事じゃね?と思われるかもしれませんが、まぁTeXつながりという事で。

インストール方法

Rubyをインストールしているならば、

gem install ratex

でインストール出来ます。インストールしていないかたはさようなら。

使い方

Ratex.generate{
    #式...
}

で、TeXのコードが返ってきます。

機能一覧

基本演算

+, -, *, /があります。Rubyのべき乗である、**は、^になります。演算子の優先順序はRubyと同じです。

puts Ratex.generate{ a + b - c * d / e ** f } #=> $$a + b - \frac{c d}{e ^{f}}$$

a+bcdef

=は諸事情により、==です。また、定数は先頭に:をつけてください(これも諸事情)。

puts Ratex.generate{ :V == :R * :I } #=> $$V = R I$$

V=RI

関数

関数の括弧はそのまんまです。呼び出す方(sinやsqrt)も、関数呼び出しのようにかけます。

puts Ratex.generate{ f(x, y) == sqrt(x ** 2 + y ** 2) }

f(x,y)=x2+y2

まとめ

ここまで書いといてなんですが、全然実用的ではありません。なので、こんなんじゃ使えねーよ!と思われる方は、fork(GitHub)して勝手に編集してください(ぉぃ

オイラーの等式

puts Ratex.generate{ e ** (i * pi) == -1 }

eiπ=1

0 件のコメント:

コメントを投稿