README.notice.jp: LaTeX2HTML に関する一般的な注意
Shigeharu TAKENO
■一般的な注意
いくつか LaTeX2HTML に関する一般的な注意を述べます。
なお、ここにある情報は、主に
http://takeno.iee.niit.ac.jp/~shige/TeX/latex2html/l2h-notice.html
に書いたものから取り上げたもの (2002 年から 2006 年までのもの) で、
やや古いものも含まれます。ここに書いた以外の注意や新しい情報につ
いては、上記ページ (特に 2007 年以降のもの)、あるいは latex2html
の日本語化のページ
http://takeno.iee.niit.ac.jp/~shige/TeX/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}
のようにするといいようです。
なおこの問題は、latex2html-2017.2 では解消されています。
[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)」にあるように、latex2html にある程
度のパッチを当てれば可能ですが、デフォルトではすべての画像を JPEG
にする機能はありません。また、JPEG にする場合は、latex2html に付
属するアイコン画像も JPEG 画像に変換する必要があります。
[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 から変更したい
場合は、以下のようにする方法があるようです (by 児玉@神戸高専さん)。
1) .latex2html-init 内で、生成する HTML ファイル名を変更する関数
custom_title_hook を再定義し、$HTML_FILE_NAME という変数の値を
ファイル名にするようにする
2) LaTeX ファイルの方では、 \usepackage{html} の元で
\HTMLsetenv{HTML_FILE_NAME}{Value} というマクロを用いて、その変
数値を必要なところ (section 等の直前) で随時書き換える
3) latex2html を実行する際に -custom_titles オプションを使用する
なおこの方法の場合、latex2html ではファイル名を 27 文字より長く指
定してしまうと、それを越えた分が切られてしまう仕様になっています
が、その制限を取りたい場合は、latex2html 本体の中で定義されている
関数 make_name() の中の
#ensure no more than 32 characters, including .html extension
$title =~ s/^(.{1,27}).*$/$1/;
の部分をコメントアウトしてください。
[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] HTML 出力の別の漢字コードへの変換は、現在は jp1.10beta では
現在は初期設定ファイル ~/.latex2html-init やコマンドラインオプシ
ョン (jp1.10beta2 以降) でそれを切り替えることができます。
コマンドラインオプション -lang= が出力 HTML ファイルの日本語コー
ドの指定です。詳しくは README.tech.jp を参照してください。
なお、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 用に、latex2html 用
の rpm パッケージが提供されているようですが、以前日本語化パッチが
不必要に当たっていて、非日本語のユーザには多少迷惑になっているこ
とがありました。
現在はそのようなことはないようですが、逆にその rpm パッケージに
latex2html コマンドとは別に「jlatex2html」等の頭に j のついたコマ
ンドや、/usr/share/jlatex2html/ のようなディレクトリが一緒につい
ているものがあるようです (latex2html-2012 や latex2html-2017.2 な
ど)。以前はそれらが日本語化された latex2html だったこともあるよう
ですが、現在それらはどうも日本語化パッチの当たったものではないよ
うです。よって、その「jlatex2html」を使っても日本語化はされません。
[38] $UNUSEACCENT に関する注意 (現在この機能は除去しましたので、
この注意は削除しました)
[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 の場合は透明色として灰色が選ばれていますが、やはり図形によっ
ては同様のことが起こり得るのではないかと思います (確認はしていま
せん)。
回避策としては、transparent の色指定を変えるという手があります。
それは、pstoimg が内部で参照する環境変数 TRANSPARENT_COLOR を指定
することで可能です。例えば以下のようにして、対象となる画像を作り
直せます (file/img.gif がそれだとします):
% mv file/img9.gif .
% setenv TRANSPARENT_COLOR "#b2b2b2"
% latex2html -image_type gif file.tex
(setenv は csh 系のシェルの場合。bash などの sh 系のシェルの場
合は 「TRANSPARENT_COLOR="#b2b2b2"; export TRANSPARENT_COLOR」)
[41] (j)report スタイルで chapter の下に section を作った場合、そ
れを latex2html にかけると chapter は で表示されるが、その下
のレベルであるはずの section も で表示される、という話が
latex2html-ML に出ました。
これは latex2html 内に
%standard_section_headings =
('part' , 'H1' , 'chapter' , 'H1', 'section', 'H1',
'subsection', 'H2' , 'subsubsection', 'H3',
'paragraph', 'H4', 'subparagraph', 'H5'
,%standard_section_headings );
と定義されているからで、これを解消するには、 ~/.latex2html-init
に例えば次のようなものを書くか、またはそれだけを書いた別なファイ
ルを作って、それを "-init_file" オプションで指定すればできるよう
です。
%standard_section_headings =
('part' , 'H1' , 'chapter' , 'H1', 'section', 'H2',
'subsection', 'H3', 'subsubsection', 'H4',
'paragraph', 'H5', 'subparagraph', 'H6' );
[42] Linux では日本語対応の dvips が pdvips になっているので、普
通に latex2html をインストールするとそれが使われずに日本語が文字
化けすることがあるらしいです (Thanks 山本昌志さん)。よって、
jp1.10beta, jp2.1beta ではデフォルトで pdvips があればそれを使う
ように修正しました。
それでもうまくいかない場合は、prefs.pm の $pref{'DVIPS'} のところ
を適切なものに修正してからインストールし直すか、インストールした
後ならば lib/latex2html/l2hconf.pm の $DVIPS の設定を適切なものに
修正してください。
[43] 奥村@三重大 さんの「TeX Q&A 掲示板」
http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/
の 35834 番の記事で、MS-Windows 版の latex2html の変換者名 (ユー
ザ名) に日本語が入っているとそこが文字化けする、という問題とその
対処法が報告されました。perl 5.8.X 用の対処ですが、L2hos/Win32.pm
の user(), fullname() を修正することで対処できるようです。
ユーザ名のカスタマイズに関しては、README.tech.jp の「4. 日付と変
換者について」も参考にしてください。
[44] netpbm-10.19 辺りから ppmquant は perl script に変わっていま
す (pnmquant への wrapper になっていて、pnmquant 自体も
pnmcolormap と pnmremap の wrapper である perl script です)。それ
が原因なのか、pstoimg のデフォルトで設定されている ppmquant の
-floyd オプションを使うと
pnmcolormap: making histogram...
pnmcolormap: 16 colors found
pnmcolormap: Image already has few enough colors (<=256).
Keeping same colors.
pnmremap: 16 colors found in colormap
pnmremap: Out of memory allocating Floyd-Steinberg structures
pnmremap failed, rc=256
のように言われて正常に出力されないことがあるようです。対処法は、
pstoimg に書かれている -floyd オプション (2 箇所) の部分
$reduce_color = "$PPMQUANT -floyd 256";
を、-floyd オプションを取って
$reduce_color = "$PPMQUANT 256";
のように変更するといいようです。jp1.10beta, jp2.1beta では対処済
みです。
[45] 奥村@三重大 さんの「TeX Q&A 掲示版」
http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/
の 37109 番の記事で、latex2html での変換で数式内の日本語の最後が
切れてしまう、という問題が報告されました (by 本田さん)。
これはどうやら最近の日本語版の dvips(k) の問題のようで、角藤さん
により、対処法 (dvips(k) の texk/dvipsk/bbox.c を 1 行修正して再
コンパイルする) が報告されました (37114 番の記事)。これで確かに直
るようです。例えば dvips(k) 5.95a p1.7 などがこれに該当します。
[46] 奥村@三重大 さんの「TeX Q&A 掲示版」
http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/
の 37148 番の記事あたりで気がつきましたが、日本語化されていない
gs (Ghostscript) でも、dvips で日本語をビットマップに展開すること
ができるならば、それで数式部分に日本語が入っている場合も文字化け
せずに変換できます。W32TeX の dvipsv は、dvipsk に VFlib 対応機能
を追加したものだそうで、それがこれに相当します。
逆に、数式部分の日本語が出ない、という問題が、 W32TeX で dvipsk
ではうまくいかないのに dvipsv でうまくいく、という場合は、多分 gs
が日本語化されていない (または設定がうまくいってない) のだろうと
思います。
[47] 奥村@三重大 さんの「TeX Q&A 掲示版」
http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/
の 37151 番の記事で報告されましたが (by 栗山さん)、Vine 版の
latex2html では、バージョンによってどうも wrapper スクリプトの
l2h と、それ用の l2hconf*.pm が合っていないことがあるようで、l2h
は jp1.6 以降用、l2hconf*.pm は j1.6 より前の形のものになっていて
l2h がうまく動かないようになっている場合があったようです。
対処法も上の記事に書かれています (以前のやり方にする方法) ので、
そちらをご覧ください。
[48] \usepackage{amsmath} を使っていると、数式の部分の画像の作ら
れ方がかなり違います。例えば、display 数式環境内の \mbox{文字} の
ような部分も、画像化されずにそのまま文字として出力されます。
これはバグではなく latex2html の仕様で、amsmath や amstex を使っ
ている場合はこんな風になるようです。「LaTeX Web コンパニオン」の
3.3 節にも書かれていますが、いわゆるプロフェッショナルモードでの
数式モードなんだそうです (私にはよくわかりません <(_ _)>)。AMS パ
ッケージを使うということは、たくさん色んな数式が出てくるだろうと
いうことを見越した仕様のようです。
[49] ナビゲーションアイコンボタンの配列を "[Next][Up][Previous]"
から "[Previous][Up][Next]" に変えたい、という話が、奥村@三重大
さんの「TeX Q&A 掲示版」
http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/
にでました (37183 番の記事) が、これは初期設定ファイルの
sub top_navigation_panel{} にある
"$NEXT $UP $PREVIOUS $CONTENTS $INDEX $CUSTOM_BUTTONS" .
"$PREVIOUS $UP $NEXT $CONTENTS $INDEX $CUSTOM_BUTTONS" .
に変えればすみます。もちろん、整合性を取るために、その下の
$NEXT_TITLE と $PREVIOUS_TITLE の入れ換えとか、
sub bot_navigation_panel{} も直した方がいいでしょう。
[50] 奥村@三重大さんの「TeX Q&A 掲示版」
http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/
の 37165,37183 番あたりで、MS-Windows 版の latex2html での初期設
定ファイル (.latex2html-init) の置き場所がわからない、という話が
ありました (by duke さん)。Win32 版では、環境変数 HOME を見ている
ようなので、適当なディレクトリを環境変数 HOME を設定して、そこに
.latex2html-init という名前で置けばいいようです。HOME が設定され
ていない場合はカレントディレクトリを探すようですから、latex2html
を実行するディレクトリを固定するならそのディレクトリに置いておく
という手もあります。
latex2html に dot.latex2html-init というファイルが付属しているの
で、それを名前を変更して使います。jp1.10beta, jp2.1beta にはその
日本語訳を行なって補足を追加したものも付属しています (ただし漢字
コードは EUC-JP)。
[51] Netpbm の 10.30 や 10.31 に含まれる pnmtopng にはバグがあり、
その版の netpbm を使っている場合は latex2html では画像が生成され
ないことがあります。その場合、-debug オプションをつけて
latex2html を実行すると以下のように表示されるでしょう。
ppmquant -floyd 256 img577.png
pnmcolormap: making histogram...
pnmcolormap: Scanning image 0
pnmcolormap: 14 colors so far
pnmcolormap: 14 colors found
pnmcolormap: Image already has few enough colors (<=256).
Keeping same colors.
pnmremap: 14 colors found in colormap
pnmremap failed, rc=13
Segmentation fault
10.32 以降か 10.26 以前あたりの Netpbm を使用してください。
[52] 奥村@三重大さんの「TeX Q&A 掲示版」
http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/
の 42043 番あたりで、"C:\Documents and Settings\hoge\..." のよう
に MS-Windows のパスに空白が含まれるディレクトリで実行したらうま
く動作しないという報告がありました (by takashina さん)。
Unix 由来のソフトの場合は、パスに空白や日本語が含まれていたりする
と問題が起こりがちですが、latex2html も同様のようです。
[53] latex2html 用の makeimage 環境 (latex2html で HTML 化すると
きは、その環境全体を画像化する) で、LaTeX のコメント行として $ が
含まれているとエラーが起きます。例えば以下でも起きます。
\documentclass{jarticle}
\usepackage{html}
\begin{document}
\begin{makeimage}
% $
こんなんどや。
\end{makeimage}
\end{document}
これを latex2html にかけると
*** Error: unclosed math or extra `$', before:
のように言われます。latex2html の、makeimage 環境内でのコメント行
の処理に多分問題があるのだと思いますが、とりあえずはそのようなコ
メント行を makeimage 環境内には入れないようにしてください。
[54] latex2html は pnmtopng などで透明化する場合、色名 'gray85'
のようなものを使う場合がありますが、MS-Windows 上の cygwin 版の
Netpbm を使っている場合、その色名を参照できずに pnmtopng が失敗す
ることがあるようです (latex2html-ML より)。その場合、以下のような
行が表示されるようです。
Converting image #2
pstoimg.bat: Error: "pnmtopng.exe -interlace -trans gray85 <
c:\Temp\l2h1368\p3692.pnm > img1.png" failed: Bad file
descriptor
Error while converting image
手動で pnmtopng を実行すると、/usr/lib/X11/rgb.txt 等がない、とい
う表示がでるそうですが、latex2html の配布物に rgb.txt が含まれて
いますから、それを適当なディレクトリ (/usr/lib/X11 等) にコピーす
る、あるいは pstoimg (pstoimg.bat) に書かれている 'gray85' を RGB
形式の表現 '#d9d9d9' に変える、または環境変数 RGBDEF を設定する
(rgb.txt の置き場所) ことで解消するようです。
[55] latex2html でよくある問題として、変換する数式に黒い下線がつ
いてしまう問題がありますが、その事例の一つとして、その画像部分に
\smash (plain TeX のコマンド) が使われている場合、というものもあ
るようです。
\smash は画像の高さを 0 にするコマンドですが、これにより、画像切
り出しの目印である黒線よりも画像が下にはみだしてしまうことによっ
て、画像の切り出しに失敗して黒線が残ってしまうわけです。
回避策としては、少なくとも latex2html にかけるときは \smash を使
わないように \latexhtml コマンドを使って
\latexhtml{ % LaTeX はこっちを使う
% \smash を使って書いてもいい
}{ % latex2html はこっちを使う
% \smash を使わないで書く
}
のように書き分ける、という手があります。
[56] 奥村@三重大さんの「TeX Q&A 掲示版」
http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/
の 43063 番あたりで、HTML ファイルの上の方に JavaScript の
のような行をつけたいんだけどうまくいかない、という報告がありまし
た (by Ken さん)。確かにそのような行を .latex2html-init の
top_navigation_panel の中に
"" .
のように入れても消されてしまいます。実は latex2html は、内容のな
いタグ (らしきもの) を削除して出力しています。これを行っているの
は text_cleanup() というサブルーチンで、 実際にその中の以下のよう
な部分 (正確にはその最後の行) によって消しているようです。
### DANGEROUS ?? ###
# remove redundant (not
) empty tags, incl. with attributes
s/\n?<([^PD >][^>]*)>\s*<\/\1>//g;
s/\n?<([^PD >][^>]*)>\s*<\/\1>//g;
# remove redundant empty tags (not
or
or | )
s/<\/(TT|[^PTH][A-Z]+)><\1>//g;
s/<([^PD ]+)(\s[^>]*)?>\n*<\/\1>//g;
よって、これをコメントアウトすれば消されなくなるのですが、副作用
が起こることもありうるので、むしろこのパターンにマッチしないよう
にすればいいので、例えば
"" .
のようにスペースを一つ入れるとか、
"" .
のようにコメント記号を入れてしまえば消えなくなります。なお、
"" .
のようなタグ (こんなタグは実在しませんが) の場合は、上の 1 番目と
2 番目の行で消されてしまうので、この場合はスペースを入れて
" " .
としてもその行にマッチしてしまって消されてしまうので、この場合は
"" .
のようにコメント記号のようなものを入れる必要があります。
[57] latex2html は tabbing 環境の処理は苦手で、場合によっては
tabular 環境に変えてくれ、というメッセージが表示されることがあり
ます。それに対する例を上げます。
\begin{tabbing}
1st \= 2nd \= 3rd \= 4th \= 5th \= 6th \kill
\> (1) 1 行入力する (暗黙の getline)\\
\> (2) 現在行が「ア」の行かチェック\\
\> \> (3) 「ア」ならば、その行を保存して\\
\> \> (4) その行が「イ」であるかチェック\\
\> \> \> (5) 「イ」ならば、次の行を取得し
...
\end{tabbing}
のように tabbing 環境で字下げを実現している場合、latex2html にか
ける場合は以下のように修正するといいでしょう。
\usepackage{html}
...
\begin{latexonly}
\begin{tabbing}
1st \= 2nd \= 3rd \= 4th \= 5th \= 6th \kill
\> (1) 1 行入力する (暗黙の getline)\\
\> (2) 現在行が「ア」の行かチェック\\
\> \> (3) 「ア」ならば、その行を保存して\\
\> \> (4) その行が「イ」であるかチェック\\
\> \> \> (5) 「イ」ならば、次の行を取得し
...
\end{tabbing}
\end{latexonly}
\begin{htmlonly}
\begin{tabular}{lllll}
\multicolumn{5}{l}{(1) 1 行入力する (暗黙の getline)}\\
\multicolumn{5}{l}{(2) 現在行が「ア」の行かチェック}\\
& \multicolumn{4}{l}{(3) 「ア」ならば、その行を保存して}\\
& \multicolumn{4}{l}{(4) その行が「イ」であるかチェック}\\
&& \multicolumn{3}{l}{(5) 「イ」ならば、次の行を取得し
...
\end{tabular}
\end{htmlonly}
つまり、LaTeX にかけるとき (latexonly 環境内) はそのまま、
latexh2html にかけるとき (htmlonly 環境内) は、枠線のない tabular
環境と multicolumn の組み合わせで実現させる、のようにします。これ
を latex2html は以下のように展開してくれるようです。
(1) 1 行入力する (暗黙の getline) |
(2) 現在行が「ア」の行かチェック |
|
(3) 「ア」ならば、その行を保存して |
|
(4) その行が「イ」であるかチェック |
|
|
(5) 「イ」ならば、次の行を取得し
...
|
つまり、table タグの colspan を使って、 丁度 table 環境 +
multicolumn に対応することをやってくれています (何もないところは
でスペースを入れてくれています)。
[58] cygwin や Mac OS X などの Shift_JIS 環境の LaTeX の元で
jp2.X パッチを使おうとすると問題があります。
一応、styles/japanese.perl のコードを直して、$charset='Shift_JIS'
にするとそれなりに動くのですが、Shift_JIS の 2Byte 目が '\'
(0x5c) であるような漢字が地の文に含まれると、そこで文字化けが起こ
ったりします。
よって、Shift_JIS 環境では jp1.X パッチを利用してください。この場
合も perl での内部処理は EUC-JP でやらせるために、
$TONATIVE => "|$nkf -s"
$FROMNATIVE => "$nkf -e"
(config/config.pl か prefs.pm) と設定するといいでしょう。これによ
り、画像変換用の LaTeX ファイル (images.tex) は Shift_JIS で出力
され、perl による内部処理は EUC-JP で行われます。なお、この場合は
初期設定ファイル ~/.latex2html-init も EUC-JP の漢字コードにして
おく必要がありますし、styles/japanese.perl の漢字コードは EUC-JP
のまま変換せずに使用します。
jp2.1beta 1.11 からは、Shift_JIS 環境への対応コードは削除して、代
わりに UTF-8 環境への対応を行いました。インストール時に configure
のオプションで --with-kanji=utf8 を指定することで UTF-8 対応にな
ります。しかし、これはまだ試験的なもので、[35] の最後に書いたよう
に latex2html に含まれる unicode 用のコードとの対応は行っていませ
んので副作用が出る可能性があります。
[59] latex2html で HTML 4.01 への対応を指定する場合は、versions
にある html4_01.pl を使えばいいのですが、latex2html では
-html_version 4.01
という指定ができず、その代わりに html4_01.pl と同じ内容の
html4_1.pl というファイルが用意されていて、
-html_version 4.1
と指定することになっています。ただ、このように指定しても、それほ
ど HTML 4 の仕様にはそれほど沿った出力にはならないそうです
(Thanks 鈴見咲君高さん)。
[60] latex2html の出力のナビゲーションパネルに現れる [Next] 等の
アイコンですが、それを自分で作った画像ファイルに置き換えたい場合
は、付属マニュアルにもその説明がありますが、以下のようなファイル
が必要です (GIF の場合。PNG の場合は .png):
・next.gif (次のページへのリンク用)
・next_g.gif (次のページが無い場合のアイコン)
・prev.gif (前のページへのリンク用)
・prev_g.gif (前のページが無い場合のアイコン)
・up.gif (上のページへのリンク用)
・up_g.gif (上のページが無い場合のアイコン)
・contents.gif (目次のページ用のアイコン)
・index.gif (索引のページ用のアイコン)
・image.gif (図のみのページ用のアイコン)
・chdelet.gif (変換できず/せずに削除した場合用のアイコン)
・chdel_r.gif (chdelet.gif と同じものでいい)
"_g" のついているものは、アクティブでなくリンクがつかない方のアイ
コンです。contents 以下は、必要なければ標準のものをそのまま使えば
いいでしょう。
それを適当なところ (例えば /usr/home/hoge/l2h-icons/) に置いて、
それを latex2html が参照するようにしますが、上記以外に必要なアイ
コンをインストール先のディレクトリ (share/lib/latex2html/icons/)
からコピーかリンクする必要があります。
その上で、初期設定ファイル (~/.latex2html-init) に次のようなもの
を入れます。
$LOCAL_ICONS = 1;
$ALTERNATIVE_ICONS = "/usr/home/hoge/l2h-icons"
%iconsizes = (
'up' ,'WIDTH="26" HEIGHT="24"',
'next','WIDTH="37" HEIGHT="24"',
'previous','WIDTH="63" HEIGHT="24"',
'next_group' ,'WIDTH="81" HEIGHT="24"',
'next_inactive' ,'WIDTH="81" HEIGHT="24"',
'previous_group','WIDTH="107" HEIGHT="24"',
'change_begin','WIDTH="104" HEIGHT="24"',
'change_begin_right','WIDTH="104" HEIGHT="24" ALIGN="RIGHT"',
'change_end','WIDTH="104" HEIGHT="24"',
'change_end_right','WIDTH="104" HEIGHT="24" ALIGN="RIGHT"',
'change_delete','WIDTH="109" HEIGHT="24"',
'change_delete_right','WIDTH="109" HEIGHT="24" ALIGN="RIGHT"',
'contents','WIDTH="65" HEIGHT="24"',
'index','WIDTH="43" HEIGHT="24"',
'image','WIDTH="48" HEIGHT="24"'
);
"$ALTERNATIVE_ICONS" には、アイコンファイルのあるディレクトリの絶
対パスを指定し、"WIDTH","HEIGHT" にはそれぞれの画像サイズを設定し
ます。面倒なら設定せずに '' (空文字列) としてもいいでしょう。 "_g"
のアイコンファイルは "_inactive" の設定に対応します。
ナビゲーションパネルの下に現れる "Next: [セクション名]" の "Next:"
の部分も変更したい場合は、 ~/.latex2html-init (の見本) の一番最後
に書かれている &top_navigation_panel() と &bot_navigation_panel()
の該当部分を修正します。
[61] latex2html の日本語化パッチ jp2.1beta を使用し、EUC-JP の
LaTeX ファイルを変換する場合、数式の日本語が上の [46] 以外の理由
で文字化けすることがあります。
jp1.10beta パッチの場合、数式部分の画像化で使用する platex コマン
ドには -kanji オプションをつけて、そこで使用する一時的な LaTeX フ
ァイルと日本語コードが合うようにしていますが、jp2.1beta パッチの
場合は基本的にコード変換は行わないので、platex にも -kanji オプシ
ョンはつけません。
ところが、最近の platex コマンドは、デフォルトは UTF-8 で、EUC-JP
のロケールを使用している場合はそれに合わせて EUC-JP 用に実行して
いものがあります。それは LaTeX ファイルのコードを見ているのではな
く、あくまでロケールの状態を見てそうしているのですが、その切り替
えが latex2html からの内部呼び出しではうまくいかず、EUC-JP 環境で
も UTF-8 の状態で platex 処理をしてしまって化けてしまうようです。
このような場合、初期設定ファイル内に
$LATEX = "$LATEX -kanji=euc";
の行を入れれば、内部呼び出しの platex コマンドに -kanji=euc のオ
プションが毎回つき、この問題が起きなくなります。
ただし、こうすると逆に UTF-8 の変換がうまくいかなくなりますが、
EUC-JP, UTF-8 の両方を処理する必要がある場合は、それぞれ用に別の
初期設定ファイルを用意する必要があるでしょうし、そもそも
jp2.1beta の latex2html も 2 種類インストールする必要があると思い
ます。
[62] 古い日本語化では、初期設定ファイルで top_navigation_panel を
定義していないと、ナビゲーションパネルのアイコンの下に表示される
リンクセクションの前の「Next:」や「Up:」「Previous:」という文字が
表示されない場合がありました (l2h-2K21-jp1.10b1.5,
l2h-2K21-jp2.1b1.5 以前)。
現在の日本語化では、japanese.perl を読むと、そのあたりの設定はま
ず l2hconf.pm で設定されている英語用の設定 (english_titles) をデ
フォルト値とし、その後で日本語用の設定を行うようにしてるので、
top_navigation_panel を定義していなくても「Next:」等が出るように
なっています。
なお、その文字列も変更、あるいは日本語化したい場合は、初期設定フ
ァイルで top_navigation_panel を定義する (サンプルは付属の
dot.latex2html-init にあります) か、または 上の [2] にあるように
$next_name 等を定義することで可能です。
[63] 使用している perl のバージョンによっては、latex2html の実行
時に
Unescaped left brace in regex is deprecated, passed through in
regex;
のようなメッセージが (latex2html のバージョンによっては頻繁に) で
ることがあります。これは、perl の正規表現に関する仕様が perl-5.22
から一部変更になり、brace ({ }) を \ でエスケープしないで正規表現
で使用すると警告を出すようになったことによるものです。LaTeX2HTML
は古い perl (perl4) の時代から作られているため、そのあたりが甘い
部分があり、それでそのような警告が出る部分が残っています。
latex2html-2017 あたりからは、徐々に修正されていますが、まだいく
つかは残っているようです。最新の latex2html (の日本語化版) でその
ような警告が出る場合は連絡していただけばと思いますが、perl-5.26
からは警告ではなく、エラーになることもあるようですので (例えば
perl-5.26 で enumerate package を使っている場合など)、そのような
場合はなるべく新しい版のものをお使いください (Thanks 中林歩さん、
Ernesto Cuadros Vargas さん)。
+=================================================+
竹野茂治 〒945-1195 新潟工科大学 情報電子工学科
shige@iee.niit.ac.jp TEL(&FAX): 0257-22-8161
+=================================================+
|