概要
Jekyll/Octopressで数式を使った記事の作成を簡単にします.
Google Chart Tools には,Tex形式で書かれた数式をURLに含めて投げると変換した画像を返してくれるAPIがあります.しかし,URLで数式を投げるには特定の文字のエスケープ(変換)をする必要があり,とても面倒です.ということで,Jekyll/Octopress内に書かれた数式を自動でGoogle Chart APIのURL形式に変換するプラグインを作りました.これを使えば,記事の中で数式を書くときに,面倒なHTMLのタグやURLの変換を気にする必要がありません.
使い方
以下のようにgctex というタグとTex形式の数式を埋め込むと,Google Chart APIの画像のURLに変換されます.
1
{% gctex \frac{1}{\sqrt{2\pi}\sigma} \exp(\frac{-(x-\mu)^2}{2\sigma^2}) %}
1
また,文字の途中に埋め込むことも可能です.
1
これは{% gctex \mathcal{N}(x|\mu,\sigma) %}です.
1
これは です.
注意
ここで使用しているLiquid Tagプラグインは,中に改行を入れてしまうとコンパイルエラーを起こして正しく変換されません.なので,
1
{% gctex x \\ y \\ z %}
1
TeX内で改行を表すことはできますが,
1
2
3
{% gctex x \\
y \\
z% }
のように,実際にテキストの中で改行を含めるような書き方はできません.
インストールとコード
以下のgooglechart_tex.rbをダウンロードして,プラグインのコードがあるディレクトリに入れるだけです(Jekyllの場合は_plugins,Octopressの場合はplugins).
# Convert tex formula into google chart API format (Jekyll/Octopress plugin)
#
# Usage: {% gctex tex_formula %}
#
# Author: yag_ays (yanagi.ayase [at] gmail.com)
# blog http://yagays.github.com/
#
# Ref : http://d.hatena.ne.jp/repose/20110506/1304612242
require "cgi"
module Jekyll
class GoogleChartTexTag < Liquid::Tag
def initialize(tag_name, text, tokens)
super
@text = text
end
def render(context)
"<img src=http://chart.apis.google.com/chart?cht=tx&chl=#{CGI.escape(@text)}>"
end
end
end
Liquid::Template.register_tag('gctex', Jekyll::GoogleChartTexTag)
参考