この記事は Qiita に 2018/01/07 に投稿したものです。2020/3/26 移行しました。
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)")
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)
べき乗や括弧が多く目がチカチカするような式を評価する前に MathJax で表示させることで転記ミスを減らすことができるでしょう。