日本語の文書にてlatex2htmlを使用しようと考えています。文字化けの問題が、解決できません。
よろしくお願い致します。
OSはopen suse11.4 (x86_64)を用いています。
tex環境はhttp://www.tug.org/texlive/
からdownloadしたtexliveに追加日本語patchを当てています。土村さんのHP
http://tutimura.ath.cx/ptexlive/?tlptexlive%A5%EA%A5%DD%A5%B8%A5%C8%A5%EA
を参考にさせて頂きました。ここまで、日本語環境はpxdviを含め問題なく使えていると思います。
さて、latex2htmlですが竹野さんのweb
http://takeno.iee.niit.ac.jp/~shige/TeX/latex2html/
より latex2html-2008.tar.gz とl2h-2002-2-1+jp2.0.patch.gz
を用いています。
文字化けの問題はencodingのためと考え、
patchを当てて生成されたjapanese.perl
のファイルのencodingをutf-8に置き換えるとともに
内容の一部を修正しています。
修正したのち#./configure -> #make
-> #make installを経てlatex2html
をinstallしています。
下記がjapanese.perlの修正部分です。
$japanese_encoding = 'utf_8';
#$charset = $CHARSET = 'Shift_JIS';
#$charset = $CHARSET = 'EUC-JP';
$charset = $CHARSET = 'UTF-8' ;
以上、よろしくお願い致します。
> より latex2html-2008.tar.gz とl2h-2002-2-1+jp2.0.patch.gz
??? latex2html-2002-2-1 の patch を何故 latex2html-2008 に適用するのでしょうか。
に、latex2html-2008 向けの patch がありますね。
http://takeno.iee.niit.ac.jp/~shige/TeX/latex2html/current/data/README.patch-jp-pre-20110708
には、jp1.X patch を適用して nkf を UTF-8 向けに設定するための説明が書かれて
いますが、これを試しても化けるでしょうか。
# 手元の環境(Debian sid + texlive-2011)で試しましたが化けていないHTML を作成
# できるようです。
ありがとうございます.
再度検討してみましたが,解決ができません.
http://takeno.iee.niit.ac.jp/~shige/TeX/latex2html/current/l2h-current.html
から
latex2html-2008.tar.gz
とl2h-2K8-jp20110708.tar.gz
を取得しました.まず,netpbmのversionは
%pnmcrop -version
pnmcrop: Using libnetpbm from Netpbm Version: Netpbm 10.35.80
pnmcrop: BSD defined
pnmcrop: RGB_ENV='RGBDEF'
pnmcrop: RGBENV= 'RGBDEF' (env vbl is unset)
と確認できます.さらにファイルの解答の後,
%patch -p1 < l2h-2K8-jp2.1b1.13.patch
%./configure --prefix=/usr/local --with-kanji=utf8
%make
を行います.この結果確かに,japanese.perlはutf-8に置き換わり
中身も
# $ISO_LANGUAGE = 'JA';
$charset = $CHARSET = 'UTF-8';
$japanese_encoding = 'UTF-8';
のようになりました. この後
#make install
によって
Done. Have a lot of fun with LaTeX2HTML!
とめでたくおわりとなったと思ったのですが.....
大変,心苦しいのですが
texファイル.dviファイル,htmlファイルを送付致します.よろしくお願い致します.
再度検討してみましたが,解決ができません.
http://takeno.iee.niit.ac.jp/~shige/TeX/latex2html/current/l2h-current.html
から
latex2html-2008.tar.gz
とl2h-2K8-jp20110708.tar.gz
を取得しました.まず,netpbmのversionは
%pnmcrop -version
pnmcrop: Using libnetpbm from Netpbm Version: Netpbm 10.35.80
pnmcrop: BSD defined
pnmcrop: RGB_ENV='RGBDEF'
pnmcrop: RGBENV= 'RGBDEF' (env vbl is unset)
と確認できます.さらにファイルの解答の後,
%patch -p1 < l2h-2K8-jp2.1b1.13.patch
%./configure --prefix=/usr/local --with-kanji=utf8
%make
を行います.この結果確かに,japanese.perlはutf-8に置き換わり
中身も
# $ISO_LANGUAGE = 'JA';
$charset = $CHARSET = 'UTF-8';
$japanese_encoding = 'UTF-8';
のようになりました. この後
#make install
によって
Done. Have a lot of fun with LaTeX2HTML!
とめでたくおわりとなったと思ったのですが.....
大変,心苦しいのですが
texファイル.dviファイル,htmlファイルを送付致します.よろしくお願い致します.
以下の通りにやってみて下さい。途中でエラーが出た場合は省略せずにここに引用して
下さい。
カレントディレクトリにソースと patch の tarball があるとして、
tar xf latex2html-2008.tar.gz
tar xf l2h-2K8-jp20110708.tar.gz
cd latex2html-2008
patch -p1 < l2h-2K8-jp1.10b2.13.patch
# patch に -l (--ignore-whitespace) を付ける必要はないはずです。まさか l と 1 と
# 間違えちゃいない……と思いますが。
ここまで終わったところで、prefs.pm 中の
# $prefs{'TONATIVE'} = "|$nkf -s";
# $prefs{'FROMNATIVE'} = "$nkf -e";
を
$prefs{'TONATIVE'} = "|$nkf -w";
$prefs{'FROMNATIVE'} = "$nkf -e";
と修正してから configure → make。
configure のオプションはそちらの環境によって変わるでしょうけれど、たとえば、
./configure --prefix=/usr/local --with-texpath=/usr/local/texlive/texmf-local/tex/latex/latex2html
のようにすればいいんでしょう。
以上、この通りにやってみて、駄目だったらどこでどのようなメッセージが出たか
書いて下さい。ちなみに、UTF-8 ベースで使用する場合でも、ソースや patch の
文字コードを変える必要はないはずです(というか、場所によっては変えてはダメ)。
うーん。うちの環境ではこの v.tex から問題なく HTML 化できているようなんですが。
ちなみにうちの現在の環境は
(1) Debian GNU/Linux (sid) + TeX Live 2011
(2) TeX Live 日本語 patch は適用してあるが、普段は p2011 内より 2011 (元の TeX Live) の
バイナリを優先するように path を設定・使用している
(3) l2h-2K8-jp2.1b1.13.patch を適用後、configure 時に--with-kanji=utf8 オプションを付与
(4) ~/.latex2html-init は latex2html に添付される dot.latex2html-init をそのままで。
です。(2) が関係しているかと思って、p2011 を優先するようにして make し直してみま
したけれど、結果は変わりませんね。
# TeX / LaTeX とは関係ない話ですが、ひょっとしてお手元のブラウザの文字コード設定
# が UTF-8 以外になっていたりはしないでしょうか。添付されていた v.tar.gz でもそう
# なっていますが、latex2html で生成された HTML document 内では charset を明示
# していないので、ブラウザの default の文字コードが UTF-8 以外になっていると
# それが原因で化けるかもしれませんが。
遅くまでご検討ありがとうございます。
まだ解決には至りません。
ファイル v2.tar.gzを添付致します。
ファイルの中でinstall-log-jan06-2012
はすべてのlogを保存しました。
install時にはerrorはありませんでしたがlatexhtml
実行時にerrorを生じます.そのlogもそこに入っています。 jp1からjp2に変えたためでしょうか?
当初、もっとも疑ったのは、ご指摘のとおりブラウザの
encodingでした。それも検討してみています。
しかしながら、今回はhtmlファイルもできていないようです。
大変お手数ですが、よろしくお願い致します。
まだ解決には至りません。
ファイル v2.tar.gzを添付致します。
ファイルの中でinstall-log-jan06-2012
はすべてのlogを保存しました。
install時にはerrorはありませんでしたがlatexhtml
実行時にerrorを生じます.そのlogもそこに入っています。 jp1からjp2に変えたためでしょうか?
当初、もっとも疑ったのは、ご指摘のとおりブラウザの
encodingでした。それも検討してみています。
しかしながら、今回はhtmlファイルもできていないようです。
大変お手数ですが、よろしくお願い致します。
~/.latex2html-init 中に、以下の行を追加して下さい。
$REQUIRE_Xlanguage= "jutf";
ただし、こちらの環境では l2h-2K8-jp2.1b1.13.patch 適用で問題なく変換できることを
確認していますので、切り替えた方が早いかもしれません。
l2h-2K8-jp2.1b1.13.patch を適用して make install するまでの log と、
platex → latex2html するまでの log、生成ファイルを tar したものを
添付します。なお、 l2h-2K8-jp2.1b1.13.patch 適用 の場合は、
上記 ~/.latex2html-init 中への "$REQUIRE..." の追記は不要です。
そうですよね.jarticleとarticleの差はその程度のものと
思ってきました.
articleとjarticleで,今日再checkしてみました.しかし,やはりarticleの文書でコンパイルすると文字化けが生じ,ブラウザのエンコーディングの調整でもうまく行きません.
改めて,logを含めテストの結果を送付させてください.
articleの環境でコンパイルした結果は文字化けをしている
と思います.
思ってきました.
articleとjarticleで,今日再checkしてみました.しかし,やはりarticleの文書でコンパイルすると文字化けが生じ,ブラウザのエンコーディングの調整でもうまく行きません.
改めて,logを含めテストの結果を送付させてください.
articleの環境でコンパイルした結果は文字化けをしている
と思います.
この場合、見るべきなのは生成された HTML ファイルの方ですね。
双方のファイルを比較すると、article の方から生成した HTML ファイル
の方には、charset を指定する META タグ:
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">
が入っていません。META タグでの charset 指定が存在しない場合に文字化け
を起こすかどうか、は、ブラウザの仕様によって変わってくると思います。
# こちらの手元のブラウザ…… Google Chrome とか w3m とか……では化けない
# んですが、化ける場合もあるでしょうね。
META タグを付与させるのを強制するのには、~/.latex2html-init 中に、
$charset = "UTF-8";
と明示しておく必要があるようです。
いや、そういう問題じゃないんでしょう。
HTML ブラウザが HTML document の文字コードを検出するのは、
(1) HTTP ヘッダを見る
(2) document 中に META タグの文字コード宣言があればそれを見る
(3) (1) (2) の双方がなければ自分で判断する
という順番になっている、はずです。この場合は HTTP サーバを介さずに
ブラウズしているんでしょうから (1) はないわけですね。で、
\documentclass に article を設定 → 文字化け
\documentclass に jarticle を設定 → 文字化けしない
と書かれているんだから、質問者の環境では (2) は機能していて、(3) の
段階で、UTF-8 エンコードの document のブラウズがうまくいかない
(ブラウザの default の文字コード設定の問題なのか、仕様なのか、
それ以外の何かなのか、それは分かりませんが)、という状態なんでしょう。
ですから、質問者の言うところの「文字化け」は、META タグでの
文字コード宣言を強制することで解決されるべきなんだろう、と、判断した
のですが。
# 以上、ほとんど TeX/LaTeX とは関係ない話でアレなんですが。
いろいろありがとうございました. 当方,自宅PC
はopen SUSE12.1 でlinux のkernelは3.1.0-1.2です. 私は基本的に新しいものが好きです.使用しているブラウザはfirefoxとkonquerorでkonqueror はKDE 4.7.2に用いられているものでした.これらでは字が化けています.
試しに,article環境でコンパイルしてできたhtmlファイルに
META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
を入れてみると,字は化けずに表示されることが確かめられました.
最後に皆様,TeX以外のことも含め,いろいろありがとございました.余談ですが, internetを通して,いろいろ学べることは素晴らしいと思います.
はopen SUSE12.1 でlinux のkernelは3.1.0-1.2です. 私は基本的に新しいものが好きです.使用しているブラウザはfirefoxとkonquerorでkonqueror はKDE 4.7.2に用いられているものでした.これらでは字が化けています.
試しに,article環境でコンパイルしてできたhtmlファイルに
META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"
を入れてみると,字は化けずに表示されることが確かめられました.
最後に皆様,TeX以外のことも含め,いろいろありがとございました.余談ですが, internetを通して,いろいろ学べることは素晴らしいと思います.
だいぶ前の記事ですし (普段ここは見てません)、「最後に」と書かれているので、
書くこともないのでしょうが、たまたま latex2html の日本語化に関する議論を見
つけましたので、パッチ作成者として少し補足しておきます。
README.tech.jp にも書いてありますが、latex2html の日本語化は、jaritcle,
jsarticle などの日本語用の文書クラスを指定した場合か、jp1.10 系統の強制
的な日本語指定 ($REQUIRE_LANGUAGE や latex2html の -lang オプ
ション) のときのみ機能することになっていて (japanese.perl が読み込まれる)、逆
に article が指定された文書に対しては日本語化の機能がオフになります
(japanese.perl は読み込まれない)。
これは、主に、CJK パッケージを利用する日本語文書作成者のためと、英文の
LaTeX 文書から英語の形式の HTML を生成したい人のためにそのようになって
います。CJK パッケージにはオリジナルの latex2html が日本語化パッチとは別に
対応しているので、日本語化パッチをオフにするようにしてあります。また、英文につい
ては、英語用に別に日本語化されていない latex2html をインストールしないで済
むように日本語化パッチをオフにするようにしています。その切替えを、デフォルトでは
「日本語クラスファイルを指定しているかどうかで判断する」としているわけです。
日本語文書を platex (または NTT jTeX) で処理する人は、通常は日本語文
書スタイルを使うでしょうから、上のようにしてあります。よって、article スタイルの場合
には、言語を示す META タグも付きませんし、ナビゲーションメニューも日本語にな
りませんし、最後の「この文書について」もオリジナルの「About this document」
になります。
手動で META タグを入れるのも解決策の一つですが、それだと日本語化はされて
いませんので、article スタイルのまま日本語化したいのであれば、UTF-8 の場合は、
多分 -lang=jutf というオプションをつけて実行するのが一番楽でしょう (jp1.10系
の場合)。
書くこともないのでしょうが、たまたま latex2html の日本語化に関する議論を見
つけましたので、パッチ作成者として少し補足しておきます。
README.tech.jp にも書いてありますが、latex2html の日本語化は、jaritcle,
jsarticle などの日本語用の文書クラスを指定した場合か、jp1.10 系統の強制
的な日本語指定 ($REQUIRE_LANGUAGE や latex2html の -lang オプ
ション) のときのみ機能することになっていて (japanese.perl が読み込まれる)、逆
に article が指定された文書に対しては日本語化の機能がオフになります
(japanese.perl は読み込まれない)。
これは、主に、CJK パッケージを利用する日本語文書作成者のためと、英文の
LaTeX 文書から英語の形式の HTML を生成したい人のためにそのようになって
います。CJK パッケージにはオリジナルの latex2html が日本語化パッチとは別に
対応しているので、日本語化パッチをオフにするようにしてあります。また、英文につい
ては、英語用に別に日本語化されていない latex2html をインストールしないで済
むように日本語化パッチをオフにするようにしています。その切替えを、デフォルトでは
「日本語クラスファイルを指定しているかどうかで判断する」としているわけです。
日本語文書を platex (または NTT jTeX) で処理する人は、通常は日本語文
書スタイルを使うでしょうから、上のようにしてあります。よって、article スタイルの場合
には、言語を示す META タグも付きませんし、ナビゲーションメニューも日本語にな
りませんし、最後の「この文書について」もオリジナルの「About this document」
になります。
手動で META タグを入れるのも解決策の一つですが、それだと日本語化はされて
いませんので、article スタイルのまま日本語化したいのであれば、UTF-8 の場合は、
多分 -lang=jutf というオプションをつけて実行するのが一番楽でしょう (jp1.10系
の場合)。