竹の 09/18 2005
---------------
■一般的な注意
いくつか LaTeX2HTML に関する一般的な注意を述べます。
[1] GIF ライセンスの問題 (現在は問題がありませんので、この注意は
削除しました)
[2] パッチを当てた後にできる styles/japanese.perl に、日本語用の
設定が行われています。この中の sub japanese_titles には、例えば
styles/english.perl を見れば分かりますがまだ日本語用にはカスタマ
イズされていない項目がたくさんあります。styles/japanese.perl に
直接書き加えてもいいでしょうが、初期化ファイル ~/.latex2html-init
内で
&do_require_package("japanese") ;
した後で必要なものを
$next_name = "次";
$up_name = "上";
$prev_name = "前";
のように追加してもいいでしょう。
ただし、例としてあげた $next_name, $up_name, $prev_name は、本来
はナビゲーションボタンの下のリンクの前に書かれる "Next:", "Up:",
"Previous:" を定義する変数なのですが、初期化ファイル内に
top_navigation_panel() が定義されている (latex2html についている
dot.latex2html-init を使っている場合) 場合は、その中に "Next:" 等
がハードコードされているので、上のように設定してもそれが効きませ
ん。初期化ファイルの (top|bottom)_navigation_panel() の定義を直接
書き直してください。
[3] root になれない場合は、個人のホームディレクトリにインストール
して使いたい、ということもあるでしょうが、その場合は configure の
ときに --with-texpath=[path] をつけて、適当なインストール先を指定
するのを忘れないようにしてください。
そうでないと、latex2html 用のスタイルファイルが、システムの TeX
のディレクトリ (/usr/local/share/texmf/tex/latex/html など) にイ
ンストールされようとしてしまいます。
[4] 日本語 pLaTeX ではマクロの名前を日本語 (全角文字) にすること
もできますが、日本語名のマクロは latex2html はうまく処理してくれ
ないようです。半角のアルファベットのマクロ名に変えてください。
[5] 現在の版の latex2html は、LaTeX2.09 形式の LaTeX ファイルも一
応は通るように作られていますが、LaTeX2.09 の形式のファイルに対し
ては色々不具合が起こります。LaTeX2e に移行できるならそうした方が
いいでしょう。LaTeX 2.09 の LaTeX ファイルを HTML に変換する場合
は、latex2html 97.1 以前のものを使った方がいいかもしれません。
[6] 数式を画像化したファイルを作成するのに /tmp/l2hXXXX (XXXX は
プロセス番号) という作業ディレクトリが作られて、通常は作業終了後
に消されるのですが、-debug オプションをつけて起動した場合にはその
ディレクトリは残ったままになるようです。知らずに何度も -debug オ
プションを実行していると /tmp を 使い尽くしてしまう可能性がありま
すので気をつけてください。(というか私がそうやってしまった (^^;)
[7] psfrag は現在の版ではおおむねうまくいくようです。ただし、端の
方の文字を変換する際は、文字がはみ出て切れてしまうことがあります
ので注意して下さい。
[8] \section, \caption に数式を入れる場合は注意が必要です。
\caption では、\sin などが .aux ファイルで展開されて図番号が正し
く割り当てられないことがあります。その場合 \protect でその展開を
抑制して
\caption{$\protect\sin\theta$ のグラフ}
のようにする必要があります。
\section のタイトルはページ上部のリンク先のタイトルとして使われま
すが、数式部分は抜けてしまいます。よって、
\usepackage{html}
として
\section{\latexhtml{$\sin x$}{sin x} の微分}
のようにするといいでしょう。
[9] LaTeX では、位置を左寄せ、右寄せ、中央寄せにするときは、
flushleft 環境、flushright 環境、center 環境を使うやり方と
\raggedright, \raggedleft, \centering の宣言を使うやり方がありま
すが、 宣言を使う方は LaTeX の出力と LaTeX2HTML の出力で異なる結
果になる場合があるようですので、宣言の方は使わないようにするのが
いいようです。
[10] \includegraphics{} で画像ファイルを回転させるオプション
angle を使うと LaTeX2HTML ではその画像は表示されなくなります
(dvips の問題)。よって、元の画像を回転しておいて angle を使わない
ようにするか、または
\usepackage{html}
として
\begin{figure}[h]
\latexhtml{\includegraphics[angle=270]{hoge.eps}}% for LaTeX
{\htmlimage{flip=r270}\includegraphics{hoge.eps}}% for l2h
\end{figure}
のようにする必要があります。なお、この \htmlimage{} を使う方法は
figure 環境内でないと効かないようです。
[11] 奥村@三重大 さんの jsarticle, jsbook スタイルにも対応しまし
た (by 高久さん)。
[12] jbook, j-book スタイルにも対応しました (by 児玉さん)。
[13] ブラウザによっては日本語と欧文アクセントを使った HTML 特殊文
字 (ö など) は同居できず表示されない (または文字化けする) 場
合があります。
latex2html は、
・欧文アクセントに対応した HTML 特殊文字があれば [num]; に変換
する (charset に依存)
・無い場合は $ACCENT_IMAGES (起動時オプション -accent_images) が
設定してあれば画像に変換し、設定してなければアクセントを外す
(例えば \"{o} -> o という風に)
という形になっています。
以前の日本語化パッチ (jp1.4~1.9, jp2.0) では、$UNUSEACCENT という
変数を設定し、それによって
・$ACCENT_IMAGES (起動時オプション -accent_images) が設定してあれ
ば常に画像に変換し、設定してなければ常にアクセントを外す
ということもできるようにしてありましたが、この機能には問題がある
ことが分ったことと、ブラウザ側の対応により現在はこの機能の必要性
が低くなっていることを考えて、jp.1.10, jp2.1 以降の日本語化パッチ
からは削除しました。今後は、公開するとしても別な形での公開となる
と思います。
なお、'i' または 'j' にアクセントを付ける場合、LaTeX では上の点を
取ってからアクセントをつけることがありますが、その場合 LaTeX では
例えば "\'\i" と書いても "\'{\i}" と書いても同じ物と解釈されます
が、残念ながら latex2html ではこれを別なものと解釈し、後者は
"\'i" とみなしてしまいます。よってその場合は前者を使用するように
して下さい。
また、latex2html では、LaTeX ではサポートされていない、丸が上に付
くアクセント (Ex. オングストローム記号) もサポートされています。
LaTeX で使う場合は、例えば u の上に丸を付ける場合は \accent23u の
のように書きます。しかし、これを \accent23{u} と書くと LaTeX では
アクセントにならず丸と u が左右に分かれます (latex2html ではどち
らも OK です)。
[14] 例えば
\newcommand{\mymacro}[1]{\mbox{\rm #1}}
のようなマクロは latex2html ではうまく展開されないようです。場合
によって
\newcommand{\mymacro}[1]{{\rm #1}}
のようにするといいかもしれません。また、'\@' で始まる名前のマクロ
や、\gdef などもうまく展開されない可能性があるようです。
[15] tabbing 環境の変換は苦手のようで、tabular 環境に変えてくれ、
というメッセージが出ます。実際に tabbing 環境を変換したものは、ず
れた形で表示されるようですので、tabular 環境で書き直すか
\latexhtml で書き分けると良いようです。
[16] 2 重引用府 '"' を LaTeX で使う場合、「"a", ``a''」のような書
き方がありますが (もちろん LaTeX での表示は異なりますが)、
latex2html は、通常これらを 「"a", ``a''」のままにしか変換せず、
例えば 「"a", "a"」のようにはしてくれません
(日本語化パッチの問題ではなく、オリジナルの latex2html の仕様のよ
うです)。
[17] 例えば「LaTeX の書き方」のような文書を LaTeX で書く場合など
で 「\begin」のような文字列を出力するマクロを無理矢理
\newcommand{\macroA}{\texttt{\symbol{"5C}begin}}
のように書いてしまうとこれは latex2html では通りません。この場合
やや裏技的ですが、例えば \usepackage{html} の元で
\newcommand{\macroA}{\latexhtml{\texttt{\symbol{"5C}begin}}%
{\verb+\begin+}}
のようにするとうまくいくようです。通常 \verb はマクロ内ではうまく
機能しませんが、この場合は LaTeX では \texttt{} の方 (\latexhtml
の第 1 引数の方) が展開されるので関係なく、また、latex2html では
第 2 引数の方が解釈され、それが \verb 内なので \begin 自身が特殊
な意味を持つ物と解釈されることもなくうまくいくようです。
[18] latex2html が生成する各ページ上部のリンク先の文字列には
section 名が用いられますが、この名前の文字数は l2hconf.pm や
~/.latex2html-init で定義されている
$WORDS_IN_NAVIGATION_PANEL_TITLES (デフォルトでは 4)
で決まりますが、これは空白で区切られている単語数を数えているので
日本語のセクション名に対してはあまり意味がありません。しかし、こ
の値はデフォルトでは 4 と定義されていますが、セクション番号もそれ
にカウントされるので実際には単語数は 3 で切られてしまいます。例え
ば、数字と日本語の間などに半角の空白をはさんで
\section{0 の 0 乗ってなあに}
のように書いている場合は、見出し文字列が
1 0 の 0
とされてしまいます (1 はセクション番号)。これを避けるには、上記の
変数の値を負の値にする (1000 と指定したことと同じことになる) か、
あるいは LaTeX のファイルで空白の代わりに '~' を使って
\section{0~の~0~乗ってなあに}
とする、という手があります。これなら単語数は 1 と数えられますし、
'~' はちゃんと空白に変換されます。
[19] 画像ファイルに下線が残る、というのは latex2html と netpbm の
バージョンがうまく対応していない場合の典型的な症状なのですが、そ
れ以外にも起こる場合があるようで、l2hconf.pm の (または configure
する前の prefs.pm の 220 行付近の) DVIPSOPT に -Ppdf が設定されて
いる場合はそれを無効にして -E だけにしてみてください。
この -Ppdf で問題が起こる原因ですが、奥村@三重大 さんの「TeX Q&A
掲示板」
http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/
の 37151,37161 番以降のたくさんの記事で栗山さん、角藤さんに色々教
えてもらって様子がわかりましたが、以下のような状況のようです。
1) 黒線の残る画像を調べると、gs で PPM 画像に落としたときに本来 L
字型の黒枠が左と下につくはずなのだが、黒線が残るものはその縦線
が下に少し (1 ドット幅) 突き出ている
2) そのために、その後の処理の pnmcrop が下の黒線を削除するのに失
敗している
3) これは dvips のオプションによってそういうことが起こることがあ
るようで (例えば -Z をつける)、細かくいうと dvips で
alt-rule.pro の後で tex.pro や texc.pro を読みこむようにして作
った EPS ファイルではそういうことは起こらない (Vine Linux や
W32TeX ではそのために起こらないらしい)
4) しかし、-Ppdf の場合、tex.pro や texc.pro を、PDF 用により適切
な再定義をしている alt-rule.pro を、その後でまた tex.pro や
texc.pro で上書きするのはおかしい
5) -Ppdf の場合、まれにフォントの生成で失敗して出力できない可能性
もある
6) そもそも PDF 出力用のオプションである -Ppdf を使って作った EPS
を PNG/GIF を作るために PPM に落すということ自体がナンセンス
よって現在の jp1.10beta, jp2.1beta 以降のパッチでは -Ppdf は無効
にしてあります。
[20] LaTeX の文書で URL を書く場合、latex2html に用意されている
html.sty を利用して、そこに用意されている \htmladdtonormallink 等
のマクロを利用すると便利です。その場合、'~' という記号を書く場合
は '\~{}' などではなく、\textasciitilde を使います。
また、長い URL を書く場合は url.sty に用意されている \url を使う
と便利なようです。この中では '~' はそのまま書きます。ただしこの場
合 latex2html で変換した HTML ファイルでは '~' は空白になってしま
います。
[21] 画像ファイル等を includegraphics を使って読み込んでいる場合
\includegraphics{./file.eps}
\includegraphics{./subdir/file.eps}
のようにカレントディレクトリからの相対パスを "./" を入れて指定す
ると、latex2html が内部で呼び出す dvips によって 画像を生成すると
ころで失敗しますので、この場合は './' を取って
\includegraphics{file.eps}
\includegraphics{subdir/file.eps}
のようにするといいようです。
[22] オリジナルの latex2html は CJK パッケージ (英語版の LaTeX2e
で中日韓の文書を書くためのパッケージ) に対応していましたが、日本
語化パッチ jp1.X は、CJK パッケージを用いた日本語文書には対応して
いません。CJK パッケージと併用する場合は、日本語化パッチ jp2.X を
使って下さい。こちらは nkf を使用しておらず、CJK パッケージの日本
語文書でもちゃんと変換できるようです。
[23] latex2html は数式等を画像化した部分の ALT 属性として、元の
LaTeX の数式表記を利用していますが、長い数式では
ALT = "数式の頭の部分 ... 数式の最後の部分"
のようにその一部を切り出して使用しており、その数式に日本語が含ま
れている場合、2 バイト文字を 1 バイト目と 2 バイト目の切れ目で切
り離してしまって文字化けを起こしてしまうことがあります。
今のところ、適当な所にスペースを挟んでみるとか、逆にスペースを取
ってみるとか、文章の表現をかえてみる、といった回避策しか残念なが
らわかっていません。
[24] equation 環境内の \label コマンドは、その位置によって不具合
が出ることがあります。それは latex2html 内で \label コマンドが削
除された latex ファイルをコンパイルするからで、例えば
\begin{equation}
\label{test1}
\int_0^1\sin x dx
\end{equation}
のように \label 単独の行を作ってその先頭にスペースが入っている場
合 (以前の latex2html では) equation 環境内に空行ができることにな
ってしまいますが、ディスプレイ数式環境内の空行は LaTeX ではエラー
になります。よってその場合は
\begin{equation}\label{test1}
\int_0^1\sin x dx
\end{equation}
や
\begin{equation}
\int_0^1\sin x dx\label{test1}
\end{equation}
のように書いて、\label のみの行を作らないようにするか、\label の
みの行に先頭に空白を入れずに
\begin{equation}
\label{test1}
\int_0^1\sin x dx
\end{equation}
のようにするとうまくいきます。
なお、jp1.10beta, jp2.1beta ではこの問題への対処も行なわれていま
すので、最初の書き方でも問題はありません。
[25] 生成する画像形式を GIF/PNG 以外に JPEG にしたい場合は、
http://takeno.iee.niit.ac.jp/~shige/TeX/latex2html/
の「注意、その他 (11/14 2003)」をごらん下さい。
[26] 画像ファイルはデフォルトでは透過画像になるのですが、それがう
まくいかずに灰色背景の画像になってしまう、あるいはブラウザで透過
画像がうまく表示されない、という場合は画像の背景色を指定してみる
といいでしょう。数式等の画像の背景色は、color パッケージを用いて
l2hconf.pm 内で
$LATEX_COLOR = "\\pagecolor[gray]{.7}";
と定義されています。例えば ~/.latex2html-init 等で
$BODYTEXT = "bgcolor=\#e0ffff";
のようにして背景色を定義している場合は、
$LATEX_COLOR = "\\pagecolor[rgb]{0.875,1,1}";
のようにこの背景に合う色を ~/.latex2html-init で定義すると良いで
しょう。0.875 = 224/256 (16 進 e0 = 10 進 224) です。\pagecolor
の設定法については color パッケージに関する説明 (例えば「LaTeX グ
ラフィックスコンパニオン」など) を参照して下さい。
[27] 生成される HTML ファイル名を node[数字].html から変更したい
場合は、
http://takeno.iee.niit.ac.jp/~shige/TeX/latex2html/
の QandA Q.6. をごらん下さい。
[28] 奥村@三重大 さんが作っておられる jsclasses (pLaTeX2e 新ドキ
ュメントクラス) を使っている場合、includegraphics で取り込んだ
EPS 画像が latex2html では切れる場合があります。この問題は
\documentclass[12pt]{jsarticle}
などのように、10pt でないサイズを指定して jsarticle クラスを使用
している場合に起こるようです。これは jsclasses の WWW ページ の
FAQ に書いてある「長さがずれます」の話が原因のようです。例えば
\includegraphics[width=14cm]{file.eps}
としても、LaTeX の出力は 14cm にはならず、14cm にするには
\includegraphics[width=14truecm]{file.eps}
とせよ、と書かれています。ところが、latex2html 上の問題はこれでは
解決せず、やはり一部切れてしまいます。真っ当な解決策ではないので
すが、これを避けるには、とりあえずは
\includegraphics[width=14truecm,scale=1.1]{file.eps}
のように、1.0 より大きい scale を指定するといいようです (どんな場
合でもこれで大丈夫かどうかはわかりません)。 LaTeX のレベルでも、
scale=1.1 は無視されるようで、 とりあえずはどちらでも大丈夫なよう
です。
ただ、単に
\includegraphics{file.eps}
とした場合もこの問題が引っかかり、奥村さんの WWW ページでは、
LaTeX レベルでは、
\includegraphics[scale=0.83333]{file.eps}
とせよ (12pt の場合) とあるのですが、この場合は latex2html では上
記のような回避策が取れません。とりあえずは、常に width を指定する
以外無いようです。
[29] latex2html の日本語化パッチでは、現在のところ長さの単位の
zw,zh をサポートしていません。
[30] \usepackage{graphicx} を使用している場合、latex2html では
*********** WARNINGS ***********
No implementation found for style `graphicx'
のようなものがでますが、これは正常動作ですので問題ありません。実
際には graphixx.perl, graphics-support.perl が読み込まれます。
また、graphics-support.perl では \includegrahics での画像ファイル
は
GIF,JPEG,PNG,TIFF,PICT,PCX,BMP,SGI,XBM,XWD
をサポートしています。GIF/PNG/JPEG 以外はそのまま張り付けるのでは
なくて netpbm を利用して JPEG に変換してから張り付けるようです。
指定の仕方は通常の EPS の場合と同じですが、拡張子で画像形式を判断
しますので、拡張子まで正しく指定して下さい。なお、上記の画像形式
それぞれでサポートされているの拡張子名は以下の通りです。
.gif, .jpg (または .jpeg), .png, .tiff, .pict, .pcx,
.bmp, .sgi, .xbm, .xwd
[31] マニュアル等には書かれている --image-only という機能は、現在
(98.1 以降) は実際には無効化されています。使用したい場合は、
latex2html の 820 行目付近 (jp1.10beta2 の場合は 850 行目付近) に
ある
&cleanup(1);
を
&cleanup(0);
に直して、
latex2html -debug file.tex
(この後必要なら file/images.tex を編集)
latex2html -debug -images_only file.tex
のようにしてください。なお、-debug を使わないと file/ 内の TMP デ
ィレクトリとデータベースファイルが残りません。
[32] latex2html は epic,eepic には対応していません。よって、epic,
eepic 等で書いた図を latex2html で使用したい場合は、
1. 図だけを取り込んだ LaTeX ファイルを作りそれを dvips -E にかけ
て EPS ファイルにしてしまう
2. その EPS ファイルを includegraphics で取り込む
とするしかないようです。
[33] latex2html は、地の文の数式 ('$' で囲んだもの) を画像にする
際、地の文と baseline が合うように、下に少し空白を付加した画像を
作りそれを、 を使って張りつけることもあるし、
空白を取って
で張りつけることもあるようです
(align="middle" は画像の中央とテキストの baseline が合うようにな
る)。
ところがその align="middle" は Mozilla (1.5) には bug があってう
まく baseline が合うようには表示されないようです。 Netscape 4.8
では正しく表示される、との報告が latex2html-ML にありました。
Firefox にもその問題があったようですが、新しい Firefox では修正さ
れた、という報告も latex2html-ML にはありました。
http://tug.org/pipermail/latex2html/2005-September/003003.html
[34] 数式を \fbox{} で囲んだ場合、latex2html では式番号がそこで変
になります。これは latex2html が \fbox{} 内は触らずにそのまま丸ご
と画像化してしまうためです。例えば
\begin{equation}\label{eq:2}
x^2+y^2=z^2
\end{equation}
\fbox{
\begin{minipage}{0.8\linewidth}
\begin{equation}\label{eq:3}
x^3+y^3=z^3
\end{equation}
\begin{equation}\label{eq:4}
x^4+y^4=z^4
\end{equation}
\end{minipage}
}
\begin{equation}\label{eq:5}
x^5+y^5=z^5
\end{equation}
(\ref{eq:5})(\ref{eq:4})(\ref{eq:3})(\ref{eq:2})
のを latex2html にかけると、その HTML 表示の数式番号は
x^2+y^2=z^2 (1)
x^3+y^3=z^3 (1)
x^4+y^4=z^4 (2)
x^5+y^5=z^5 (2)
のようになり (もちろん本来は (1),(2),(3),(4) の順で式番号がつくべ
きだし LaTeX ではそうなります)、かつ最後の ref の部分は
(4)(3)(2)(1)
のように表示されてしまいます (こちらは合ってます)。
このような場合、\refstepcounter や \addcounter などを使って無理矢
理 equation カウンタを手動で操作する (かつ \fbox{} 内の数式へのリ
ンクは、画像化された \fbox{} 部分の先頭辺りに貼る) という手もあり
ますが、html パッケージの \htmlborder コマンドを使って、\fbox の
代わりに minipage 環境部分に (HTML の table タグの border を利用
して) 外枠を書く、という手があります。
こうすれば \fbox{} 部分がまるごと画像化されることはなくなり、数式
番号やリンクも正常になります。上の例でいえば
\usepackage{html}
を追加して、\fbox{} 部分を以下のように書き直します。
\latexhtml{% ここは LaTeX が認識する (上と同じ)
\fbox{
\begin{minipage}{0.8\linewidth}
\begin{equation}\label{eq:3}
x^3+y^3=z^3
\end{equation}
\begin{equation}\label{eq:4}
x^4+y^4=z^4
\end{equation}
\end{minipage}
}
}{% ここは LaTeX2HTML が認識する
\begin{minipage}{0.8\linewidth}\htmlborder{}
\begin{equation}\label{eq:3}
x^3+y^3=z^3
\end{equation}
\begin{equation}\label{eq:4}
x^4+y^4=z^4
\end{equation}
\end{minipage}
}
\htmlborder{} は minipage 環境などに table タグの外枠を書くコマン
ドで、デフォルトでは "border=1" という属性を table タグにつけます
が、その線の幅を広くしたい場合は、\htmlborder{3} のようにします。
[35] jp1.8 から、HTML 出力の別の漢字コードへの変換をユーザーレベ
ルで可能にし、また jp1.7 では問題があった JIS の LaTeX ファイルの
処理も行なえるようにしました。現在は初期化ファイル
~/.latex2html-init やコマンドラインオプション (jp1.10beta2 の場
合) でそれを切り替えることができます。
jp1.9 からは UTF-8 でも出力できるようにしました。ただし、UTF-8 へ
の漢字フィルタ (nkf (2.X), tcs, iconv 等) が必要ですし、後述する
ように不十分な点もあります。また、jp2.X 系列は漢字コード変換は行
いませんので出力漢字コードの選択はできません。
jp1.10beta1 の場合は、~/.latex2html-init で切り替えることができま
す。この場合は、$charset と $TOHTML の 2 つの変数を設定しますが、
これらは styles/japanese.perl で定義されていますので、その設定の
前に
&do_require_package("japanese");
として styles/japanese.perl を先に読み込んでおく必要があります。
JIS にするには
$charset = "iso-2022-jp";
$TOHTML = "| nkf -j";
EUC-JP にするには
$charset = "EUC-JP";
$TOHTML = "| nkf -e";
Shift_JIS にするには
$charset = "Shift_JIS";
$TOHTML = "| nkf -s";
UTF-8 にするには
$charset = "UTF-8";
$TOHTML = "| nkf -w";
としてください。nkf はパスが通ってなければフルパスで指定して下さ
い。なお、$charset の指定は、現在は上記以外のもの (大文字と小文字
が違っても) ではうまく動作しないので間違えないようにして下さい。
UTF-8 出力 (-w) をサポートしていない nkf を使っている場合は、別な
UTF-8 出力のできる漢字フィルタを指定して下さい。例えば tcs なら
$charset = "UTF-8";
$TOHTML = "| tcs -f ujis t utf";
といった具合です。
出力コード指定を行なうと HTML ファイルの META タグに charset が書
かれますが、これをつけたくない場合は $charset を
$charset = "";
と設定してください。
jp1.10beta2 の場合は、新設のコマンドラインオプション -lang= で切
り替えます。指定できる値は
jis (==> ISO-2022-JP),
euc (==> EUC-JP),
sjis (==> Shift_JIS),
jutf (==> UTF-8),
en (==> english),
no (==> オリジナルの latex2html の状態)
です。または、~/.latex2html-init 内で変数 $REQUIRE_LANGUAGE にこ
れのデフォルト値を
$REQUIRE_LANGUAGE = "jis";
のように設定すれば、-lang=jis と設定した状態になります。
また、jp1.10beta では、JIS の LaTeX ファイルなどを受け付けるよう
にするために texexpand で nkf を通すようにしたので (jp1.10beta1
では常に変換、jp1.10beta2 では -lang で日本語が指定された場合に変
換)、8bit で非日本語の LaTeX ファイルに関しては思わぬ不具合が起こ
る可能性があります。
なお、UTF-8 出力のオプションは、元々 latex2html が持っている utf
オプション (versions/unicode.pl, versions/utf8.pl) との関係付けは
してありませんので、まだ不十分です。unicode オプションや utf8 オ
プション (-html_version=4.0,unicode, -html_version=4.0,unicode,
utf8 など) と同時に使用した場合どのような問題が起こるかについては
詳しくは確認していませんが、少なくとも versions/utf8.perl と同時
に使用した場合は問題が起こり、正しくは変換されません。
[36] amsmath パッケージを取り込んだ場合、equation 環境内に % で始
まるコメントを書くと、画像がうまく変換されない、という問題がある
ようです。jp1.9, jp2.1 以降ではそのバグは修正してあります。
[37] 現在、Red Hat Linux や Fedora Core Linux で使用する rpm パッ
ケージにはデフォルトで日本語用の TeX 環境も含まれていて、その中に
latex2html も以下のものに含まれています。
・tetex-2.0.2-*.src.rpm (source パッケージ)
・tetex-latex-2.0.2-*.i386.rpm (binary パッケージ)
そして、このパッケージに含まれる latex2html はいずれも日本語化パ
ッチが当たっていますが、デフォルトで日本語化機能が有効になってい
るものがあることがわかりました。
・2.0.2-10 以前 (例えば Red Hat 9 用, Fedora Core 1 用):
jp1.4 のパッチが当たっていて、デフォルトは英語
・2.0.2-11 から 2.0.2-15 (例えば Fedora Core 2 用):
jp2.0 のパッチが当たっていて、デフォルトは日本語
・2.0.2-16 以降:
jp2.0 のパッチが当たっていて、デフォルトは英語
これは、非日本語圏のユーザには多少迷惑で、特に Fedora Core 2 用の
パッケージはデフォルトで日本語化機能も有効になっているので、英語
のページなのに日付が和暦になったり、最後のページが「この文書につ
いて」となったりしてしまいます。日本語化機能が無効になっていても
若干迷惑な部分もあり、日本語化パッチの当たったものは 2.0.2-26 以
降の rpm では jlatex2html という別名のコマンドになりました。
Fedora Core 4 ではそのようになっている予定です (Thanks 松浦さん)。
なお、日本語圏のユーザに取っても、実は中途半端な状態で入っている
ようなので、本当に日本語を使えるようにするには色々と設定する必要
があるようです。詳しくは
http://takeno.iee.niit.ac.jp/~shige/TeX/latex2html/
の「注意、その他 (11/03 2004)」の記事をごらん下さい。
[38] jp1.9, jp2.0 以前の日本語化パッチに含まれていた $UNUSEACCENT
の機能は、逆にそれにより問題が出ることがわかりましたし、すでにそ
れは必要ないと思われますので jp1.10beta, jp2.1beta からは削除され
ました。
[39] オリジナルの latex2html に 2 つアクセントに関する問題があり
ます。
・\t{oo} がうまく画像化されない (バグ)
アクセントの中で \t だけは 2 つの文字を引数としますが、 これは
HTML の entity がなく、 よって latex2html は画像化しようとします
(-accent_image がついている時) が、そこにバグがあり、\t{o} として
画像化してしまいます。多少は jp1.10beta, jp2.1beta パッチで対処し
ましたが、\t{} の中に \i や \j が入る場合はうまくいきません (そう
いう場合もありうるそうです)。
・\i,\j にアクセントをつける場合の画像化の問題 (回避策あり)
i,j の上にアクセントをつける場合、LaTeX では通常 \i, \j を使って
上の点を取った物にアクセントをつけます。latex2html でも、HTML
entity がある場合は問題なく働くのですが、HTML entity がない場合に
問題が発生します。
具体的には、\H{\i}, \H{\j} などで問題が起こるのですが、このように
書くと latex2html は \H{i} や \H{j} で、つまり上の点を取らずに画
像化してしまいます。
これもバグだとは思うのですが、\H{\i} の代わりに \H\i (後ろにアル
ファベットが続く場合は \H\i{} とする) と書くと回避されます。とり
あえずはそのように書いて下さい。
i の上にアクセントをつける場合は、\H{i} であろうと \H{\i} であろ
うと常に上の点を取る、という仕様にするなら対処もできるのですが、
今の所簡単な修正を行なう方法は見つかっていませんので、上の方法で
回避して下さい。
[40] 例えば Tgif で書いた EPS 画像などに「白での塗りつぶし」を使
った場合、latex2html がその画像を GIF 化する場合その部分の透明化
に失敗することがあるようです。これは以下のようなことで起こってい
るようです。
1) EPS を GIF に変換する場合、images.tex で LaTeX ファイルと同じ
様式で \includegraphics で取り込んで dvi ==> PS ==> PPM ==> GIF
という変換をする
2) その際、画像の切り出しのために、images.tex で背景を灰色
(#B2B2B2 位の色) に設定する
3) その背景は、EPS ファイルの背景にも及ぶが、Tgif で白での塗りつ
ぶしを行なった部分や図形内等の白い色にはそれが及ばない
4) PPM ==> GIF への変換で ppmtogif の -transparent オプションを使
って透明化を行なうが、その透明色の指定は images.tex 内に書かれ
た灰色ではなく、白 (#FFFFFF) になっている
5) (少なくとも最近の) ppmtogif は、transparent として指定された色
にもっとも近い色を透明色として選ぶので、画像内に白があるとそち
らが透明化の対象になってしまう
PNG の場合は透明色として灰色が選ばれていますが、やはり図形によっ
ては同様のことが起こり得るのではないかと思います (確認はしていま
せん)。
回避策としては、[26] のようにしたりコマンドラインオプションで
"-white -notransparent" として透過画像にしない、という手もありま
すが、おかしくなる画像だけ手動で GIF 画像にしてやる、という手もあ
ります。詳しくは、
http://takeno.iee.niit.ac.jp/~shige/TeX/latex2html/
の「注意、その他 (12/14 2004; no.3)」の記事をごらん下さい。
[41] (j)report スタイルで chapter の下に section を作った場合、そ
れを latex2html にかけると chapter は