このページの内容は以前の LaTeX2HTML (latex2html-2K.1beta 以前) に関する情報です (最終更新日 04/04 2002)。 このページは今後更新の予定はありません。 新しい情報については 現在の LaTeX2HTML のページをご覧下さい。
目次へ戻るLaTeX2HTML は LaTeX のソースファイルを WWW page 形式のファイル (html) に自動変換してくれるソフトです。次のような特徴があります。
なお、FreeBSD の方も既に pLaTeX (2.1.10) の環境に移行しているのですが、
jlatex (2.09-j1.7e) と LaTeX2HTML 97.1 も残してあります。
また、以下の記述は、主に 99.1 以降の物に関するものです。
私が現在使用している ~/.latex2html-init を紹介します。なお、これは latex2html をインストールしたディレクトリにある dot.latex2html-init をコピーして、それを編集して作成します。
dot.latex2html-init に対する差分ファイル l2h-init-991.diff (2040 Byte)
やっていることは次の通りです。
現在、latex2html のリリース版は latex2html 99.1 で止まっていますが、 α版、β版は latex2html-99.2alpha, latex2html-2K.1beta として出てい ます。07/03 2001 現在の最新版は latex2html-2K.1beta です。
これらのバージョンでは、インストールがかなり整備され (configure base)、 また、99.1 ではそのまま通らず、latex2html 用に修正が必要だったような LaTeX のファイルも通るようになっていたり、いくつかのパッケージが新たに サポートされていたり、と機能はかなり上がっているようです。
ただし、日本語化パッチは、武藤@Debian プロジェクト さんの作られた 99.1 用のものしかないようですので、 私はそれを現在 99.2alpha, 2K.1beta 用に修正して使っています。 特に新たな機能は付け加えてはおらず、 単にパッチが当たるようにしただけなので何ですが、 2K.1beta 用のものを公開することにしました。
目次へ戻る使用法等についてはドキュメントをご覧ください。 また、パッチの変更箇所等については「更新履歴」を ご覧下さい。
目次へ戻るlatex2html 2K.1beta 本体 (latex2html-2K.1beta.tar.gz) は、 国内では以下の場所などにあるようです。
latex2html の最新版、以前の版等は 「latex2html 本体」にも置いてあります。 また、「Revision に関する追加パッチ」 もご覧下さい。
目次へ戻る
latex2html-158-fix1.patch (1250 Byte) (11/30 2001 更新)展開したディレクトリでまずはこちらを
% patch -p0 < ../latex2html-158-fix1.patch
のように当ててから日本語化パッチ当ての作業を行なって下さい。
pstoimg-111-fix1.patch (1461 Byte) (12/04 2001 更新)展開したディレクトリでまずはこちらを
% patch -p0 < ../pstoimg-111-fix1.patch
のように当ててから日本語化パッチ当ての作業を行なって下さい。
本パッチは無保証です。しかし色々な不具合は、対応できるものは行う 予定ですので、不具合の報告、意見などは歓迎します。 報告等は メールで お願い致します。
配付ライセンスは、武藤@Debian プロジェクト さんによる 99.1 用の パッチ同様、オリジナルの LaTeX2HTML のライセンスに従うものとしたいと 思います。
目次へ戻るlatex2html 97.1 の頃より武藤@Debian プロジェクト さんの日本語化 パッチをありがたく使わせて頂いています。また、色々な助言を頂いたり、 今回のパッチの公開にも快く応じて頂きました。 この場を借りてお礼申し上げます。どうもありがとうございました。
高久 雅生 (masao@ulis.ac.jp) さんから footnote の文字化けの修正と jsarticle, jsbook スタイルへの対応に関するパッチを頂きました。 どうもありがとうございました。
児玉@神戸高専 (kdm@kobe-kosen.ac.jp) さんから j-article, j-report に対する不具合の報告と jbook, j-book, ascmac スタイルへの対応に関するパッチを頂きました。 どうもありがとうございました。
kawafuji@msk.minolta.co.jp さんから latex2html-2K.1beta の revision に関する不具合の報告と 自作のスタイルファイルに関する不具合の報告を頂きました。 どうもありがとうございました。
山縣@ぶらっとホーム (yamagata@plathome.co.jp) さんから latex2html-2002 に対する日本語化パッチの報告とその不具合に対するパッチ、 および Red Hat Linux での日本語化パッチの採用の報告を頂きました。 どうもありがとうございました。
目次へ戻る
早速、山縣@ぶらっとホーム (yamagata@plathome.co.jp) さんから、 latex2html-2002にも 日本語化パッチ (l2h-2K1b+jp1.4.patch.gz) は実質的には問題なく当たる (失敗するのはバージョン等の部分だけ) だとの 報告がありました。 よって、多分それでそのまま使えると思います。 なお、そのバージョン部分に対する修正パッチも紹介いただきました。 以下をご覧下さい。
早いうちに latex2html-2002 用のパッチの作成作業を行ないたいと思います。また、2K.1beta 用の日本語化パッチが Red Hat Linux でも採用されることに なるそうです (by 山縣さん)。
いつのまにか以下の 2 つが出ていました。
なお、latex2html-2K.1beta の最終版 (だと思います) は、latex2html.pin の revision は 1.62 のままですが、 インストールスクリプトや HTML 3.0, 4.0 用の定義ファイルなどに少し 変更が見られます。
latex2html-2002は、 さらにもう少し色々手が入っているようなので、 2K.1beta 用の日本語化パッチはそのままは当たらない可能性があります (まだチェックしてません)。
少し気がついたことをあげます。
"a", ``a''
のような書き方がありますが (もちろん LaTeX での表示が異なりますが)、
latex2html は、通常これらを
"a", "a"
のようには変換はしないようです (日本語パッチの問題ではなく、
オリジナルの latex2html の仕様のようです)。
\begin
" のような文字列を
出力するマクロを
\newcommand{\macroA}{\texttt{\symbol{"5C}begin}}
のように書いたのですが、これはこのままでは latex2html には通らず、
例えば \usepackage{html} を使って
\newcommand{\macroA}{\latexhtml{\texttt{\symbol{"5C}begin}}
{\verb+\begin+}}
のようにしてやっとうまくいきました。latex2html-2K.1beta の最新の revision 1.62 が出ました。 1.61 から 1.62 への変更は verbatim 環境 (verbatim* 環境) に 対する修正が主で、多分日本語化パッチも revision 1.61 の時と 同程度に問題無く使うことはできると思います。
以前このページ、 あるいは日本語化パッチ付属のドキュメントで
現在の latex2html-2K.1beta の最新の revision は 1.61 ですが、 これには現在の日本語化パッチは対応していません。といったアナウンスをしていましたが、たいしたことはないようで 一応この日本語化パッチを使うことはできるようです。
パッチ当ての際にエラーが出て latex2html.pin.rej が生成されます。 その中身を見てもらえば分かりますが、これは latex2html の バージョン表示に関する部分でたいした実害はなく (最終ページの「この文書について」の表示に多少影響があります) そのまま configure, make, (make check), make install しても ちゃんと動くようです。
もちろん、latex2html.pin.rej を見ながら latex2html.pin を 修正してもらった方がいいのですが (^^;
欧文アクセントの問題をとりあえず解決したもの (version 1.4) を 公開します。いくつかこれに関することをあげておきます。
通常のブラウザでは日本語と欧文アクセントを使った HTML 特殊文字 (ö など) は同居できず表示されません (ブラウザによっては 文字化けが起こります)。 このパッチではその欧文アクセントはすべて画像化できるようにしました。 元々の latex2html は
欧文のみからなる文書をアクセントを HTML 特殊文字にするように latex2html で変換したい場合は、l2hconf.pm の $TITLES_LANGUAGE を "english" と設定すれば OK です。 よって欧文を使う可能性がある環境では、そのように設定した l2hconf.pm を別に用意して、環境変数 L2HCONFIG で それを切り替えて latex2html を使うと良いでしょう。
アクセントをイメージ化する場合、$ACCENT_IMAGES は textrm と 設定するのが一般的なようです。よって
latex2html -accent_images textrm file.tex
のように起動すれば良いでしょう。
'i' または 'j' にアクセントを付ける場合、LaTeX では上の点を取ってから アクセントをつけることがあります。 その場合 LaTeX では例えば "\'\i" と書いても "\'{\i}" と書いても同じことですが、 latex2html ではこれが違っていて (^^; 後者は "\'i" と同じことになってしまいます。よって前者を使用するようにして下さい。 特に "\'" をマクロにしている場合は注意が必要です。
latex2html では、LaTeX ではサポートされていない丸が上に付くアクセント (オングストロームのような) もサポートされています。 LaTeX で使う場合は、例えば u の上に丸を付ける場合は
\accent23u
のように書きます。しかし、これを
\accent23{u}
と書くと LaTeX ではアクセントにならず丸と u が左右に分かれます。
画像化されたアクセント文字と両脇の文字との間隔は あまり適切ではありません。 本来は文字毎に適切な間隔を考えて画像ファイルを作るべきなのですが、 多少の調整がされているものの不十分なようです。
またアクセント文字を画像化すると、見た目が固定されてしまいますので ブラウザ側のフォントの設定によっては見苦しいものになってしまう 可能性があります。 $ACCENT_IMAGES を設定しなければ (-accent_images を使わない) アクセント記号は付きません (画像化もされません) ので、 どちらか好きな方を適宜お選び下さい。
自分で作成したスタイルファイルなどを \usepackage{} などで 取り込んでいる場合、latex2html がそれを読み込んでくれず マクロの展開が行なわれない、ということがあるようです (by kawafuji@msk.minolta.co.jp さん)。
本来はそのスタイルファイルに対応した perl スクリプトを作るべき なのでしょうが、私はそのような場合スタイルファイルを .tex の形式の ファイルにして \input で読み込むようにしています。 なお、その場合 '@' で始まるマクロ名は使えなくなりますので、 '@' を適当に 'MY' などに変えるといいでしょう。 また、下にも書きましたが \gdef などはうまく展開されません。
ascmac スタイルにも対応 (by 児玉さん) したパッチ (version 1.3b) を公開します。
jbook, j-book スタイルにも対応 (by 児玉さん) したパッチ (version 1.3) を公開します。
再び kawafuji@msk.minolta.co.jp さんから頂いたご報告ですが、 上においた latex2html-2K.1beta revision 1.47 ですが、 これは新しい netpbm (version 9.14 以降) に対処がなされていおらず、 その組合せで使うと画像部分に太線が現われるようです。 そのためのパッチを用意しました。 しかし、できれば revision 1.58 以降の latex2html-2K.1beta を 使われることをお勧めします。
なお、新しい netpbm を使う場合、version 9.14 以降が推奨されています (特に 9.11 以前は不可) ので version を確認して下さい。
また、下の latex2html-2K.1beta の revision 1.58, 1.59 の問題ですが、現在 (12/04 2001) の最新のもの (revision 1.60) では修正されたようですのでそれに関するパッチは不要です。
再び kawafuji@msk.minolta.co.jp さんから頂いたご報告ですが、 下の revision の問題ですが、良く調べると latex2html 1.58, 1.59 には 数式のイメージ化に関する問題があるようで、これは latex2html-ml でも 報告されています。 ([l2h] Math mode broken?)
まだ対処はなされていないようなので、とりあえず問題部分だけを 1.57 の コードに戻すパッチを作成しました。 一時しのぎですが、とりあえずはなんとかなっているようです。 そのうちに本家も修正されると思いますが、 そうなったらまたここで報告したいと思います。
なお、revision 1.57 以前のものは問題ないようです。
kawafuji@msk.minolta.co.jp さんから、パッチ当ての時に多少失敗する、 という報告を頂きました。調べてみると、latex2html-2K.1beta には 同じアーカイブファイル名で多少 revision の違うものがあることが 分かりました (ベータ版のせいでしょうか)。 こちらで作成したのはかなり古いもの (latex2html revision 1.47) を使用していますので、 それに起因してパッチ当てに失敗する部分があるようです。
ただし、作成される .rej ファイルを見ると分かりますが、 今の所それは perl ファイルのコメント部分だけで、 それ無視して先に進んでも一応ちゃんと動くものができるようですので、 そのようにやってみてください。 もちろん、 多少手が入っているのでそれによる不具合が出る可能性はありますが、 現在のところ、latex2html の revision 1.59 のものまでは 日本語パッチは正常に使えそうです。 もし不具合が出るようでしたら こちらに御連絡下さい。
なお、latex2html revision 1.56 (pstoimg revision 1.15) のものは、 pstoimg 辺りに問題があり、make test に失敗しました。 新しいものを使うなら pstoimg revision 1.16 以降が含まれるもの (多分 latex2html revision 1.57 以降のものが含まれているもの) に変えた方が良さそうです。
こちらで確認した所では latex2html-2K.1beta.tar.gz のサイズは
なお、中には latex2html の revision が 1.57 で pstoimg の revision が 1.15 であるものもあるように聞いています (Linux 用の .rpm にあるらしいですが確認していません) ので ご注意下さい。
ver.1.2b のパッチでは make check で j-article のところで引っかかる、 という報告を児玉@神戸高専 (kdm@kobe-kosen.ac.jp) さんから頂きました。 j-article, j-report に関する関数名の変更は武藤さんのパッチに対して 私が行なった部分ですが、あまり良く考えていませんでした。 パッチを更新して (version 1.2c) latex2html は通るようにしてみましたが、こちらには NTT jTeX の環境が無く 詳しいことはよくわからないため、うまくいっているのかよくわかりません。 何か気がついたことがありましたら ご連絡下さい。
すみません、慌てて作業したため 1.2b のパッチのファイル名を 間違えていました。 しばらくダウンロードに失敗したと思いますが、 今度は大丈夫だと思います。 大変失礼いたしました。
高久さん (masao@ulis.ac.jp) から、footnote の文字化けの修正と jsarticle, jsbook スタイルへの対応に関するパッチを頂き、 それを取り入れた新たなパッチを作成しました (version 1.2b)。 また、ドキュメントには以下の注意点なども書き加えました。
なお、わずかな期間だけ置いていた version 1.2 (l2h-2K1b+jp1.2.patch.gz) を持って行かれた方がいるかも知れませんが、 ここに含まれている styles/jsbook.perl は不正ですので、 version 1.2b に含まれる styles/jsbook.perl に置き換えて下さい。
\includegraphics{} に画像ファイルを回転させるオプション angle があります。例えば縦になっている画像ファイルを 横にするのに使いますが、しかし これを使うと LaTeX2HTML では画像が抜け落ちてしまいます。 latex2html-ML でもかなり昔から (LaTeX2.09 の頃から) 報告されている事例のようです。
原因は dvips の -E オプションがこの angle 命令をサポートしていない ことによるようです。 よって angle 命令を取り出して image.tex では angle を使わず pstoimg の -flip オプション (あるいは新規のオプションを作る) に渡すことで pstoimg 内部で回転する、 というのが真っ当な解決策のように思いますが LaTeX2HTML の本家でも特に対応は取っていないようです。
現状での対処法としては例えば次のような 2 通りがあります。
\htmlimage{flip=[flip]}
のようにします。この [flip] には
また、この場合 angle は latex2html にかけるときは 取らないといけないので \latexhtml 命令などで分岐する必要があります。 よって例えば次のようにすることになります。
\begin{figure}[h]
\latexhtml{\includegraphics[angle=270]{hoge.eps}}%
{\htmlimage{flip=r270}\includegraphics{hoge.eps}}
\end{figure}
なお、\htmlimage{} は figure 環境 (または equation 環境) 内でないと
効かないようですので注意して下さい。
以下の修正を取り入れた新たなパッチを作成しました (version 1.1)。 また、ドキュメントには以下の注意点なども書き加えました。
\caption
, \section
に数式を入れる場合は
注意が必要です。
\caption
\caption
の数式は、例えば \sin, \cos のような
マクロのように .aux ファイル内で展開されてしまうものがあります。
このようなものに対しては正しく図番号を割り当てられません。よって、
\caption{$\protect\sin\theta+\protect\cos\theta$}
のように \protect
をつけて展開を抑制する必要があります。
これは、\section
などでも同様ですが、
\section
にはまた別の問題があります。
\section
\section
の文字列は、各ページ上部にリンク先の
タイトルとして使われますが、そこに数式があるとその部分だけ
抜けてしまいます。
\usepackage{html}
として、
\section{\latexhtml{$\sin x$}{sin x} の微分}
のようにするといいでしょう。
なお、\latexhtml{#1}{#2}
は
#1
= latex が解釈する部分 (=\latex{}
)
#2
= latex2html が解釈する部分 (=\html{}
)
psfrag への対応は、現在の latex2html-2K.1beta ではおおむね
うまくいっているようです。
ただし、
latex2html-ML での報告 (2000. Apr)
にもあるように、\psfrag
コマンドで
オプション引数を使う場合は lib/styles/psfrag.perl の
psfragstar # {} # {}
psfrag # {} # {}
の部分を
psfragstar # {} # [] # [] # [] # [] # {}
psfrag # {} # [] # [] # [] # [] # {}
に変えないと pstoimg でエラーになります。
多分これは本家のバージョンアップで fix されると思いますが、
現在のバージョンへの日本語パッチを更新する際は下の問題同様
取り入れたいと思います。
なお、図の端の方の文字を \psfrag
で置き換えると
latex2html では切れることがあるようですのでご注意下さい
(参考: 図 1の cosθ のθが
欠けている)。
LaTeX では、位置を左寄せ、右寄せ、中央寄せにするときは、 flushleft 環境、flushright 環境、center 環境を使うやり方と \raggedright, \raggedleft, \centering の宣言を使うやり方がありますが、 宣言を使う方は LaTeX の出力と LaTeX2HTML の出力で 異なる結果になる場合があるようですので、宣言の方は使わないように するのがいいようです。
LaTeX では、別の宣言が現われると前の宣言がクリアされるようなのですが、 LaTeX2HTML では、前の宣言をひきずってしまい、前の宣言の入れ子として、 現在の宣言を使用します。例えば
\begin{document}
\raggedleft これは右
\raggedright これは左
\centering これは真ん中
\end{document}
という LaTeX の file を LaTeX2HTML は
<DIV ALIGN="RIGHT">これは右
</DIV>
<P>
<DIV ALIGN="RIGHT">これは左
</DIV>
<P>
<DIV ALIGN="RIGHT">
<DIV ALIGN="CENTER">これは真ん中
</DIV></DIV>
のように変換してしまいます。
まず、
Warning: No implementation found for option: `fleqn'
for `jarticle' package
と出る問題ですが、これは lib/styles/jarticle.perl の問題と分かりました。
その jarticle.perl の中にある do_article_... という名前の関数を
do_jarticle_... という名前に書き換えれば直ります。
そして、fleqn を documentclass で指定しても数式が中央揃えになってしまう、 という問題は、lib/versions/html3_2.pl, lib/versions/html4_0.pl を 書き換えれば対処可能であることが分かりました。いずれの file も sub do_env_displaymath{} の中の最後の方に、
join('',"<BR>\n<DIV$math_class>\n"
...
join('',"<BR><P></P>\n<DIV$math_class>",$_
のような行が 2 箇所ありますが、その $math_class を $halign に書き換えて
join('',"<BR>\n<DIV$halign>\n"
...
join('',"<BR><P></P>\n<DIV$halign>",$_
のようにすれば OK のようです。
以上のものは、日本語パッチの更新の時に反映させようと考えています。
以前大学の紀要に書いた文書を、latex2html にかけて 多少手作業で修正したもの (扉のページの部分) を現在 私の WWW page に 載せていますが、これにかけるとき、 あるいはその後で気がついたことを上げます。
\newcommand{\Tatsu}[1]{\mbox{\rm #1}}
のようなマクロを作って使っていたのですが、これはうまくいかず、
\newcommand{\Tatsu}[1]{{\rm #1}}
としないと latex2html ではうまく展開されませんでした。
\documentclass[fleqn]{jarticle}
のようにして、左揃えにしていることが多いのですが、
デフォルトの中央揃えになってしまうようです。
latex2html にかけると
Warning: No implementation found for option: `fleqn'
for `jarticle' package
のようなメッセージが出ますのでサポートされていないのかも知れません。
まだまともに調べてはいません。
Unknown commands: gdef
\gdef や \xdef などのやっかいな命令もサポートされていないかも
知れません (未確認)。実際うまく展開されませんでした。
以上のことに関して、もし何かご存知でしたら教えてください。
下に書いた問題ですが、環境変数 L2HCONFIG で l2hconf.pm が 切り替えられるので、現在は専用の latex2html ではなくて ラッパースクリプトを使ってその環境変数を利用するようにしています。 (cf. Re: [l2h] date format for each language (latex2html-ml))
sub japanese_today { local($today) = &get_date(); $today =~ s|(\d+)/0?(\d+)/(\d+)|$3年 $Month[$1] $2日|; join('',$today,$_[0]); }
($user, &get_date($format,$order));
を次のように変える:
($user, &do_cmd_today());
ただ、いずれにしてもあまり綺麗な対応ではないので、日本語パッチの方に そのような方法を反映させるかは今のところ未定です。
日本語パッチのドキュメントにも 書きましたが、現在の版の latex2html は -image_type で GIF か PNG かを 選べるようになっているにもかかわらず、 アイコンボタンの画像形式はそれに対応していません。
どうも、latex2html は、オプション指定や初期化ファイルによる オプションの変更の指定と、その後の処理がうまく分離できていないようで、 それが原因だと思われます。
そして、同じような問題として、言語の問題があります。 日本語化パッチを当てた場合、デフォルトでは日本語のページが作られますが、 初期化ファイル ~/.latex2html-init で
$default_language = "english";
$TITLES_LANGUAGE = "english";
のように書いておくと、ほぼ英語のページが作られます。
初期化ファイルは -init オプションで切り替えられますので、
これを使えば複数の言語に対応できるのですが、
残念ながらページの一番下につけられる日付がうまくいきません。
現在の latex2html は日付も各国語に対応させるようなコードが ほぼ入っているのですが、上にも書いたオプション変更の指定と 処理の分離ができていないために、その部分がうまく働きません (うまく働くように修正できません)。
初期化ファイルを読み込んだり、オプションを指定したりする箇所では、 他の作業をしないようにして、全部の変数が揃った所で作業を始める、 といったように latex2html を全面的に書き直さないと (書き直してもらわないと) これらの問題は解決しないように思います。
よって今の所、これらの解決策は、それぞれ専用の latex2html を作るしか ありません (^^;
数式を画像化したファイルを作成するのに、latex2html-99.2 以降は /tmp に /l2hXXXX (XXXX はプロセス番号を使っているようなので 毎回違います) という作業ディレクトリを作って、 そちらに一時ファイルを置くようです。 通常は latex2html の作業が終了するとそのディレクトリも消されるのですが、 -debug オプションをつけて latex2html を実行した場合はそのディレクトリは 消されずに残ったままになるようです。
知らずに何度も -debug オプションを実行していると /tmp を 使い尽くしてしまう可能性がありますので気をつけてください。 (私もやってしまいました (^^;)
現在は私は latex2html-2K.1beta に 武藤@Debian プロジェクト さんの 作られた日本語化パッチ (99.1 用のもの) を修正して当てて使っています。 これに関する詳しいことは こちらをご覧ください。 また、2K.1beta に関する情報は、 そのパッチの ドキュメントを ご覧ください。
下に書いた、新しい netpbm による不具合の件ですが、更に新しい netpbm (netpbm 9.12 以降) を使って LaTeX2HTML をインストール し直すといいようです。latex2html-ml の以下の記事、 およびその周辺の記事をご覧下さい。
また、fbox に関しても、以下のような記事がありました。 良くは読んでいませんが、下の問題と関係あるかも知れません。現在の LaTeX2HTML (99.1) は、数式などのイメージを GIF で作るか PNG で作るか選べるようになっています。 しかし、PNG の transparent にはまだブラウザの方が対応していない ものも多いようで (例えば Netscape 4.X)、 また、LaTeX2HTML もそれをうまく使えているのかは確認できていません。 (詳しくは こちら をご覧下さい)
もしかしたら fj.comp.texhax に投稿した 記事 (Subject: Re: equations in latex2html) の 1) で述べているような対処を取る必要があるかも知れません。
この件に関して何かご存知の方は情報を頂けるとありがたいです。
Netpbm は、長くメンテナンスされていませんでしたが、最近 新しい版である netpbm-9.X が出て来ました。ここには pnmtopng も 含まれていて、最近の FreeBSD の ports もこれを使用しているよう ですが、この中の pnmcrop の仕様が古いもの (netpbm-1-Mar-1994) とは変わってしまったため、数式や fbox で囲んだテキストの左や 下などに太い線が残る、という不具合があることが fj.comp.texhax で 報告されました。LaTeX2HTML メーリングリストでも同様の報告が あるようです。
対処法は、pstoimg に手を入れて pnmcrop の作業部分を書き換える ことです。 以下にその fj の記事とそれに対するフォローなどを置いておきます。