Julia

Latexify.jl: Juliaの式をLaTeXに変換する

Juliaの式をLaTeXコマンドに変換してくれる Latexify.jl を紹介したいと思います。
Latexify.jl は Mathematica でいったらTeXForm, Maxima でいったらtex, MATLAB でいったらlatexコマンドのような機能を提供してくれるパッケージです。

数値計算で使った式をレポート、論文に載せるときに TeX に直すの面倒だなぁというときに便利です。
Jupyter notebook 使用時には MathJax で表示されるので挙動が怪しい部分を確かめるときに結構使えます。

環境

OS: ArchLinux
Julia v0.6.2
Latexify.jl v0.3.0

使い方

使い方は簡単で Julia 形式で書いた式を latexify コマンドに食わせるだけです。

julia> Pkg.add("Latexify.jl")
julia> using Latexify
julia> latexify("x + x^2/y + sin(x)") # or latexify(:(x + x^2/y + sin(x)))
L"$x + \frac{x^{2}}{y} + \sin\left( x \right)$"

julia> println(latexify("x + x^2/y + sin(x)"))
$x + \frac{x^{2}}{y} + \sin\left( x \right)$

latexifyの戻り値は LaTeXStrings.LaTeXStringです。print することで先頭の L などの無駄な部分を省いたTeXコマンドが標準出力されます。

Latexify.copy_to_clipboard(true)

とすると以後自動的にTeXコマンドがクリップボードにコピーされるので自分でコピーする手間が省けるようになります。

前記したようにlatexifyの戻り値は LaTeXStrings.LaTeXString なので Jupyter notebook で使うと自動的に MathJax で表示されます。

latexify("x + x^2 / (z + α) + sin(x)")

latexify.png

DifferentialEquations.jlにも対応しています。方程式を表示する時は latexalign を使ってください。

using DifferentialEquations

f = @ode_def positiveFeedback begin
    dx = v*y^n/(k^n+y^n) - x
    dy = x/(k_2+x) - y
end v n k k_2
latexalign(f)

latexify2.png
べき乗や括弧が多く目がチカチカするような式を評価する前に MathJax で表示させることで転記ミスを減らすことができるでしょう。