ULMULは独自の軽量マークアップ言語 (Ultra Lightweight MarkUp Language) です。 文章中のTeXスタイルで書かれた数式をMathMLかMathJaxに変換できるのが特徴です。 コマンドulmul2html5でMathMLを使ったHTML5に、ulmul2mathjaxでMathJaxを使ったHTML5に変換します。 ulmul2latexでLaTeXにも変換できます。 Rubyで書かれています。ulmul.rbをライブラリとして利用することも可能です。
ホームページ: http://t-nissie.users.sourceforge.net/ULMUL/
Ruby Gem: http://rubygems.org/gems/ulmul
レポジトリ: https://github.com/t-nissie/ULMUL
ULMULテキストのエンコーディングにはutf-8を使ってください。
ulmul.rbは状態遷移 (state machine) ライブラリaasmを使っていて、 入力の各行を「イベント」として扱っています。
空行は段落を分割します。
"= ", "== ", "=== ", "==== ", "===== ", または "====== " で始めてください。 「= ABCD EFGH」ならABCD EFGHがタイトルになります。Slidyの表紙にもなります。
4〜5段までネストした箇条書きが可能です: たとえば、
# Nesting is allowed uo to 4th--5th level. * First * Second * Third * Fourth * more for Fourth second continue * More for third * More for first
は
と変換されます。
1つスペースを置いて書き始めた行はverbatimになります。
EOF と "=end" が出てくると処理が終了します。
"#" または "=begin" で始まる行は無視されます。
地の文になります。
文章中の2つのドル記号($)で挟まれた部分がTeX形式からMathML形式に変換されます。 また、"\Eq:foo"と"/Eq:foo"とで挟まれた行も次の例のように処理されます。
入力:
Mass $m$ can be converted into energy $E$ as \Eq:Emc2 E=mc^2. /Eq:Emc2
出力:
Mass can be converted into energy as
数式は"Eq:Einstein"のように参照します。こんなかんじEq. (1)。
数式を正しくご覧いただくには
などのブラウザを試してみて下さい。
「図環境」は "\Fig:foo FILENAME.jpg" で始めて "/Fig:foo" で閉じてください。 間に図のキャプションを書くことができます。 ここで "foo" は図のタグです。 "Fig:foo"で図を参照することができます。こんな具合ですFig. 1。
入力:
\Fig:ruby ruby.jpg これは図のキャプションの例です。 Rubyのロゴを描いてみました。 キャプションに数式を$ax^2+bx+c=0$と書くこともできます。 /Fig:ruby
出力:
Table環境はまだインプリメントされていません。
「コード環境」は "\Code:baz FILENAME" で始めて "/Code:baz" で閉じてください。 間にキャプションを書くことができます。 ここで "baz" はコードのタグです。 "Code:baz"で当該コードを参照することができます。こんな具合ですCode 1。
入力:
\Code:hello hello.c Ordinary hello.c. Can you see stdio.h? /Code:hello
出力:
/* hello.c */ #include <stdio.h> int main() { printf("hello, world\n"); return 0; }
$ ulmul2html5 foo.txt > foo.html $ ulmul2html5 -n 'Takeshi Nishimatsu' -s ulmul-slidy.css -j ulmul-slidy.js presentation.txt > presentation.html
ヘルプ情報が表示されます。
スタイルシートのファイル名を指定します。--style=style.css などがよいでしょう。
あなたの名前を指定します。著作権表示に使われます。
JavaScriptのファイル名を指定します。
自然言語の種類を指定します。既定値は"en"です。日本語の場合は-l jaとします。
目次の深さを指定します。既定値は"3"です。 目次が必要なければ1を指定してください。
数式を MathJax http://www.mathjax.org/ で出力します。
$ ulmul2mathjax --help $ ulmul2mathjax -s ulmul2html5.css -j https://cdn.rawgit.com/google/code-prettify/master/loader/run_prettify.js \ -j 'http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default' README-en > README-en-mathjax.html
$ ulmul2latex --help $ ulmul2latex test.ulmul | tee test.tex $ latex test.tex $ latex test.tex $ dvipdfmx test.dvi
ulmul2latexはまだ発展途上です。
ソース・ツリーはGitHubに置いてあります。 git(1)コマンドを使って
$ git clone https://github.com/t-nissie/ULMUL.git ulmul
と匿名でcloneできます。
Copyright © 2008,2009,2010,2011,2012,2013,2014,2015,2017,2022,2024 by Takeshi Nishimatsu
ulmul.rb is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY. You can copy, modify and redistribute ulmul.rb, but only under the conditions described in the GNU General Public License (the "GPL").
W3C has copyrights for ulmul-slidy.js and ulmul-slidy.css. Their original names were slidy.js and slidy.css, respectively. Takeshi Nishimatsu slightly modified them. You can download the original package, slidy.zip, from http://www.w3.org/Talks/Tools/Slidy/ . You can find their licenses at http://www.w3.org/Consortium/Legal/copyright-documents and http://www.w3.org/Consortium/Legal/copyright-software .
西松タケシ (t_nissie{at}yahoo.co.jp) http://t-nissie.users.sourceforge.net/