ULMUL取扱説明書

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


Table of Contents:

特徴

インストール方法

RubyGems https://rubygems.org/ でインストールすれば必要なライブラリも自動的にインストールされます:

 $ sudo gem install ulmul

ULMULテキストの書き方

ULMULテキストのエンコーディングにはutf-8を使ってください。

各行の種類

ulmul.rbは状態遷移 (state machine) ライブラリaasmを使っていて、 入力の各行を「イベント」として扱っています。

空行 (empty)

空行は段落を分割します。

ヘディング (heading)

"= ", "== ", "=== ", "==== ", "===== ", または "====== " で始めてください。 「= ABCD EFGH」ならABCD EFGHがタイトルになります。Slidyの表紙にもなります。

アスタリスクで始まる行は箇条書きになります (asterisk)

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

と変換されます。

オフセットされて書かれた行はそのまま出力 (verbatim, pre) されます (offset)

1つスペースを置いて書き始めた行はverbatimになります。

終わり (end)

EOF と "=end" が出てくると処理が終了します。

無視される行 (ignore)

"#" または "=begin" で始まる行は無視されます。

その他の入力行 (normal)

地の文になります。

その他のルール

数式の書き方

文章中の2つのドル記号($)で挟まれた部分がTeX形式からMathML形式に変換されます。 また、"\Eq:foo"と"/Eq:foo"とで挟まれた行も次の例のように処理されます。

入力:

Mass $m$ can be converted into energy $E$ as
\Eq:Emc2
           E=mc^2.
/Eq:Emc2

出力:

Mass m can be converted into energy E as E=mc2.

数式は"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

出力:

ruby.jpg
Figure 1: これは図のキャプションの例です。 Rubyのロゴを描いてみました。 キャプションに数式をax2+bx+c=0と書くこともできます。

表の挿入方法

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

出力:

Code 1: Ordinary hello.c. Can you see stdio.h? (download: hello.c)

/* hello.c */
#include <stdio.h>
int main()
{
  printf("hello, world\n");
  return 0;
}

ulmul2html5の使用方法

$ ulmul2html5 foo.txt > foo.html
$ ulmul2html5 -n 'Takeshi Nishimatsu' -s ulmul-slidy.css -j ulmul-slidy.js presentation.txt > presentation.html

コマンド・ライン・オプション

--help

ヘルプ情報が表示されます。

-s, --style

スタイルシートのファイル名を指定します。--style=style.css などがよいでしょう。

-n, --name

あなたの名前を指定します。著作権表示に使われます。

-j, --javascript

JavaScriptのファイル名を指定します。

-l, --language

自然言語の種類を指定します。既定値は"en"です。日本語の場合は-l jaとします。

-m, --max-table-of-contents

目次の深さを指定します。既定値は"3"です。 目次が必要なければ1を指定してください。

実際の使用例

ulmul2mathjaxの使用方法

数式を 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の使用方法

$ 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/