Last modified: 2007-11-08
Emacs Museを用いたスマートな文書作成法
Emacs Muse (以下 Muse )はWiki風記法で気軽にかける文書作成モードです.Emacs Muse が持つ膨大な機能のうち,いくつかを紹介します.
キーワード:Emacs Muse, wiki, LaTeX
![]() |
| スクリーンショット |
Emacs Museとは
Emacs Muse (以下 Muse )はWiki風の記法で記述可能な文書作成モードです。 作成した文章を
- html(xhtml)
- docbook
- latex
- xml
といったようなさまざまな形式で発行することが出来ます(これを publish といいます)。 このウェブサイトも Muse を利用して作成しました。
詳しいインストールの手順や設定の仕方などはこちらのサイト が非常に参考になります。
以下、今現在(2007-6-26(Tue))の最新バージョン(3.02.93)に沿って話を進めていきます。
何がいいのか
- 手軽に文章を書くことができる
-
- Wiki風の記法でサクサク書けるので非常に便利です。
- LaTeX/PDFでの出力もサポートされているので、 簡単なものであればLaTeX文章も Muse で書いた方が 書きやすいかと思います。 また、latex形式の数式を使うこともできます。
- 文書の管理がとても楽
-
- Muse ではプロジェクトという単位で文書を編集します。 そのおかげで文書の管理がスムーズに行なえます。
- また各ページに他のページへのリンクを気軽に埋め込めるので、 マインドマップ的な使い方をすることも可能です。
- 1つの文書を複数のフォーマットで出力できる
-
- 例えばある資料を作成するとき Muse で作成すれば、印刷用にはPDFで、 またウェブ用にはHTMLで、といったようにそれぞれのフォーマットで 資料を同時に出力することができます。
- もちろんそれぞれの出力形式固有の命令も(その出力形式のみに出力するよう) 埋め込めるので、ある程度複雑な文書も作成することが出来ます。
- そこそこカスタマイズできる
-
- 例えば各ファイルで出力するときのヘッダやフッタなどもきちんと自分で指定できます。
- 文章を書いていて楽しい
-
- いったん設定をしっかりしてしまえば(これが結構時間かかるんですが…)、 あとは Muse の支援によってかなりの部分を自動化できるため、 驚くほどスピーディーに文章が書けます。
- 上にも書いたとおり、このウェブサイトも Muse を利用して作成しています. 1キーバインドでサイト更新を行なえるのはなかなか爽快です。
何に使えるのか
向いている用途
ある程度構造がしっかりした文書だとMuseで扱いやすいです。 以下は実際に私が使っている用途です。
- ウェブサイト(HTML)
-
- Emacs Muse を使う用途としては恐らくウェブサイトが一番向いているでしょう。 Muse を使うことによってリンクから直接ファイルを新規作成できるなど、 ページの作成がより直観的に行えます。
- また、後述するように、latex形式の数式が使えたり、ソースコードの色付が 簡単に行えるので、特に技術系ウェブサイトと相性がいいと思われます。
- 簡単なレポート(PDF/LaTeX)
-
- 学校の課題など簡単なレポートもMuseで作成するのに向いているでしょう。
- 自分用の日記
-
- 自分専用の日記をローカルで管理する際にも便利です。
向いていない用途
論文,特に理系の論文を書くツールとしてはおそらく Muse は使いづらいでしょう. 一応 Muse はLaTeX形式の数式をサポートしていますが, もし論文を Muse で書く場合, ラベル付け・図表の配置調節などはいったん Muse を LaTeX 形式に 落としてから行なわければならないため,二度手間となってしまいます.
どのように使うのか
簡単な流れ
- プロジェクトの設定を行なう( .emacs に記述する)
M-x muse-project-find-fileでプロジェクトを開く- 文書を編集
- とりあえず
#titleを記述 - 新たなページを編集したければ、
C-c TAB uでリンクを生成し、 そのリンク上でエンターキーを押せば新しいページに自動で移動 - リンク上で
C-c C-eでリンク編集 TABでリンク移動<contents>タグでヘッダーのアウトラインを自動生成
- とりあえず
C-c C-pで文書を publish し、C-c C-vで publish したファイルを ビューワで閲覧
キーバインド
C-c C-pC-u C-c C-pC-c ! aM-x footnote-mode としてこのキーバインドを入力すると,
脚注を入力できるTIPS
リモートサーバ上に文章を発行する
例えばローカルで作成した Muse 文書をHTMLで publish する際、
ウェブサーバ上にファイルを書き出したいとします。
このような場合には Tramp を使えば一発で出来ます。
具体的には :path に Tramp 用のパスを設定して下さい。
例えば、このウェブページの設定は以下のようになっています。
(add-to-list 'muse-project-alist
'("personal"
("~/muse/mysite/my/" :default "index")
(:base "xhtml"
:path "/ssh:user@host:~/public_html/my"
:style-sheet "my.css"
:author "Kohei Hayashi"
:base-url "http://hawaii.naist.jp/~kohei-h/my/")
))
ここで、同時に :base-url も設定しておかないと、 Muse で他の Muse のページにリンクを
貼った際にURLがおかしくなってしまうので要注意。
LaTeX形式の数式を使う
Muse では標準で
形式の数式や他のコマンドを
muse-latex2pngにより画像として取り扱うことが できます。具体的にはdvipngで数式や他のコマンドをPNG形式の画像に変換し、それを取り込む形となります。
設定
まず自分の環境で dvipng がつかえるかどうか確認して下さい。
もし使えなければインストールして下さい。
私の環境(Vine Linux 4.1)には標準で入っていなかったので、
apt-get install dvipng
としてインストールしました。
次にemacsの設定です。以下agwさんのサイトを参考にさせて頂きました。 .emacsに以下を書き足します。
;; muse-latex2png (require 'muse-latex2png) (setq muse-latex2png-scale-factor 1.25) ; LaTeXのスケール (setq muse-latex2png-img-dest "./img") ; 任意の画像フォルダを指定 ;(setq muse-latex2png-use-xhtml t) ; 出力形式がxhtmlであれば設定
以上で設定は終了です。
例
muse-latex2png の使用例です。以下のように muse
文章中に書くと、
<latex> % Local Variables: % TeX-master: "header.tex" % TeX-command-default: "LaTeX" % End: \begin{align*} \mathrm{Beta}(\mu|a,b) &= \frac{\Gamma(a+b)}{\Gamma(a)\Gamma(b)} \mu^{a-1}(1-\mu)^{b-1},\\ \Gamma(x) &= \int^\infty_0 u^{x-1} e^{-u} \mathrm{d}u. \end{align*} </latex>
以下のように publish されます。
注意
muse-latex2png を使って生成したPNGファイルはInternet Explorer6では
正常に表示されない可能性があります。どうやらPNGの背景がアルファチャネルつきで
透過されているのがまずいらしく、うまく表示されません。
そのため、 Muse の設定に以下を追加し、数式の背景色を指定することをお勧めします。
(setq muse-latex2png-bg "White") ; Defaultでは"Transparent"
追記[2007-7-9]
youmosさんの記事によると,IEでもアルファチャネルのPNGを表示 するようにできるようです.
IEでアルファチャンネルPNGを表示する (iepngfix.htc)より.
Emacs MuseでMathML
現在調査中です。
src タグを用いたソースコードの色付け
<src> タグを使うことによって
任意のプログラム言語のソースに色を付けることができます。
準備
htmlize.el をこちらよりダウンロードし、Emacsのロードパスが通った場所に
保存します。
そして
<src lang="foo"> program codes... </src>
などとしてやることにより、
現在使用しているEmacsで利用可能なメジャーモードの色設定
(face)に応じて <src> タグ内のプログラムコードを色付けし、
出力することができます(出力形式がHTMLベースのときのみ)。
ここで、 <src> タグの lang にはEmacsで使用できる任意の
モード ***-mode の *** の部分を指定します。
例
latex-modeの色付けを行ないたければ
<src lang="latex"> latex codes... </src>
とします。
Emacs Museを使う際に注意すること
- Muse ではemacsの日本語入力フロントエンドである
eggが使えませ ん(参考)。 - emacsの色を変える
color-themeと一緒に使うと、museの関数replace-in-stringとバッティングを起こし、museがうまく動かなくなります。 こちらのサイトで配布しているパッチを使わせて頂きましょう。 パッチを'col.patch'などというファイル名で保存し、color-theme.elが あるディレクトリで、以下のコマンドを実行すればOKです。
% patch < col.patch

形式の数式や他のコマンドを