LaTeX2HTML

数式を含んだホームページは作るのがとてもめんどくさいです.数式をHTMLで表現するのが大変なので,今までMS-Wordで数式を書いてそれコピーし,画像処理ソフトでGIFにして張り付ける,という作業はなかなか大変です.なにかいい方法はないもんかと探し,たどり着いたのがLaTeXとLaTeX2HTMLです. LaTeX2HTMLはLaTeXで書いた文書を,数式や脚注なども含め,自動的にHTMLに変換してくれるツールです.数式はPING形式に変換してくれます.TeXのきれいな数式を手軽にHTMLで扱うことができるので重宝しています.

インストール

TeX環境はだいたいLinuxをインストールした時点で整っていますが, LaTeX2HTMLは入っていないと思うので別途インストールする必要があります.

Vine Plus からインストールする場合

Vine Linuxではrpmが用意されているので手軽にインストールできます.

# apt-get install latex2html

これでOKです.

ソースからインストールする場合

rpmなどがない場合は,ソースに日本語パッチを当ててインストールします.基本的に about LaTeX2HTML (Japanese) で紹介されている通りにすればいいでしょう.パッチもここから入手できます.以下は僕が実際にやったことです.

インストールに必要なのはlatex2html-2002-2-1.tar.gzとl2h-2002-2+jp1.6.patch.gzの二つです.上記サイトからリンクをたどって入手し,これらを一時的に/home/ksp/tmpに保存しました.以下,保存場所は適当に読み変えてください.

パッチの展開

$ gzip -d /home/ksp/tmp/l2h-2002-2+jp1.6.patch.gz

ソースファイルを置く場所へ移動

$ su
# cd /usr/local/src

ソースの展開

# tar xvzf /home/ksp/tmp/latex2html-2002-2-1.tar.gz

展開しておいたパッチをコピー

# cp /home/ksp/tmp/l2h-2002-2+jp1.6.patch .

ソースファイルが展開されたディレクトリへ移動

# cd latex2html-2002-2-1

パッチを当てる

# patch -p1 < ../l2h-2002-2+jp1.6.patch

コンパイル

# ./configure
# make

インストール

# make install

これでOKです.ただし LaTeX2HTML に必要なソフト(GhostScript等)はインストール済とします.

使う

当然ですが,LaTeX2HTMLを使用するにはHTMLに変換したいTeX文書を書いておきます. 実行方法

foo.texという名前のTeXファイルがをHTMLに変換するにはつぎのようにタイプします.

$ platex foo.tex
$ latex2html foo

とします.実行すると tex ファイルと同じ名前のディレクトリが作られ,その中にいくつかのhtmlファイルと数式の画像ファイルがつくられます.

数式は透過のPING画像に変換されます.たとえば,TeXで

\begin{equation}
 \frac{d^2\phi(x)}{dx^2} = 
 \frac{2m}{\hbar^2} \bigl\{ \frac{1}{2}m\omega^2 x^2 - E \bigr\} \phi(x)
\end{equation}

と書いた数式は,LaTeX2HTMLによってつぎの画像で出力されます.

fig1.png

上の画像ではアンチエイリアス(中間色を使って画像を滑らかに見せる技術)がかかっていて文字が読みやすくなっています.アンチエイリアスをかけたくないときは,-no_antialias_text オプションを付けます.

$ latex2html foo -no_antialias_text

この場合の出力は

fig2.png

のようなギザギザが目立つ画像になります.場合によってはこのようなアンチエイリアスがかかっていない画像のほうが使いやすいときもあります.特定の数式のフォントサイズを変えたいときは,TeXソースのなかで

$\mbox{\LARGE 数式}$

などと書きます.

LaTeX2HTMLを使って作ったページは,このサイトの 物理学ハンドブック のような出力になります.ただしこれはスタイルシートなどを少し変更しています.

主なオプション

-font_size <size>
イメージに変換されるフォントサイズを変更.<size> は 10pt, 11pt, 12pt のいずれか.
-no_math
数式すべてをイメージにする.
-no_antialias_text
タイプセットからつくったイメージ(数式など)にアンチエイリアスをつけない.
-external_images
イメージをリンクで参照するようにする.
-no_subdir
現在のディレクトリに出力する.
-no_navigation
各ページのナビゲーションリンクを付けない.
-top_navigation
各ページの上段にナビゲーションリンクを付ける(デフォルト).
-bottom_navigation
各ページの下段にナビゲーションリンクを付ける.

初期設定ファイル

Vine Plusのrpmからインストールした場合には/usr/lib/latex2htmlに,上記の方法でソースからインストールした場合には /usr/local/lib/latex2htmlに各種設定ファイルがあります.

そのなかに dot.latex2html-init というファイルがあります.これをユーザのホームディレクトリに .latex2html-init という名前でコピーします.

$ cp /usr/lib/latex2html/dot.latex2html-init ~/.latex2html-init

または

$ cp /usr/local/lib/latex2html/dot.latex2html-init ~/.latex2html-init

するとlatex2htmlを実行した場合にこの設定ファイルにしたがって実行されます.各種オプションをあらかじめ記入しておくことで自分なりのカスタマイズができます.僕の設定ですが,つぎのようなものを書き加えています(# からはじまる行はコメント行です).

# -- math
$FONT_SIZE = "11pt";
#$FONT_SIZE = "12pt";
$MATH_SCALE_FACTOR = 1.6;
#$MATH_SCALE_FACTOR = 2.1;
$DISP_SCALE_FACTOR = 1;
$ANTI_ALIAS_TEXT = 1;
$EXTRA_IMAGE_SCALE = 1.0;

# -- figure
$FIGURE_SCALE_FACTOR = 1.6;
$EXTRA_SCAL_FACTOR = 1.0;
$ANTI_ALIAS = 0;
$INTERLACE = 0;
$WHITE_BACKGROUND = 1;
$TRANSPARENT_FIGURES = 1;

# -- color
$BODYTEXT = "bgcolor=\"#ffffdd\"";
$LATEX_COLOR = "\\pagecolor[rgb]{1,1,0.8}";
$COLOR_HTML = 1;
$RGBCOLORFILE = '/usr/local/share/lib/latex2html/styles/rgb.txt';

# -- html
$charset = "iso-2022-jp";
#$HTML_VERSION = "3.2";
#$HTML_VERSION = "3.2,math";
$HTML_VERSION = "4.0";
$LOCAL_ICONS = 1;
$MAX_SPLIT_DEPTH = 5;
$MAX_LINK_DEPTH = 1;
$DESTDIR = 'html'; 
$SHOW_SECTION_NUMBERS = 1;
$address_data[0] = "SAKIMA Kimihisa";
$ADDRESS = "$address_data[0] / $address_data[1]";

# -- navigation
$INDEX_IN_NAVIGATION = 1;
$NEXT_PAGE_IN_NAVIGATION = 1;
$CONTENTS_IN_NAVIGATION = 1;
$PREVIOUS_PAGE_IN_NAVIGATION = 1;
$INDEX_IN_NAVIGATION = 1;
$NO_NAVIGATION = 0;
$BOTTOM_NAVIGATION=1;
$EXTERNAL_UP_LINK = "http://www12.plala.or.jp/ksp/";
$EXTERNAL_UP_TITLE = "物理のかぎしっぽ";

苦労したのは $LATEX_COLOR の部分(この設定を見つけるのに苦労したんです)で,これがないときは数式のアンチエイリアスがイマイチでたまに透明化に失敗して数式画像の背景画灰色になっていました.デフォルトでは背景色が灰色だからです.

それを防ぐために pagecolor[rgb]{1,1,0.8} で16進数表記の“#ffffcc”相当の色を背景色として設定しています("#ffffcc" はこのサイトの背景色).これで透明化に失敗しても灰色の背景になることはなくなりました.背景色に合わせたアンチエイリアスをしてくれるので,画像もよりきれいになりました.

参考リンク

Valid XHTML 1.1! home > コンピュータ > TeX >
リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
Modified by 物理のかぎプロジェクト PukiWiki 1.4.5_1 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-jiPowered by PHP 5.2.17HTML convert time to 0.105 sec.