Html2dvi

[English]
*** Ver0.6k およびそれ以前のものに不要な空白が紛れ込んでいました。***
*** Ver0.7 より複数のファイルを一括して処理できるようになりました。***
*** Ver0.7 はバグだらけでしたので、0.7a以降をお使い下さい。 ***

1. 使用の前に

Html2dvi は HTML ファイルを TeX ファイルに変換し、 さらに tex プログラムを呼出し dvi ファイルを作成し、必要ならプレビューアを 起動する perl のスクリプトです。 画像は単に文字列[img]もしくは ALTで指定された文字列を 出力します。文字データをより読みやすい形に変換して、 画面上で読むためのツールです。

  1. スクリプトの最初の部分で、perl 実行ファイル、 TeX 実行ファイル、 日本語使用の有無、日本語コード変換ツール(およびオプション)、プレビューア名 などを指定する場所があります。まず、その部分を自分の環境に合わせてください。 日本語関係のコマンドは Ascii 版を前提に記述しています。 日本語化されていない perl で、日本語を含んだ文書を扱うときは、 $perl_is_japanized = 0;として下さい(デフォルトでは 1 になっている はずです)。さもないと、文字化けがおこることがあります。 ただし、この場合、異常に長い行を含むファイルを処理できません。
  2. スクリプト自身が日本語文字を含んでいますので、必要に応じてコードを 変換して下さい。
  3. また chmod +x html2dvi とやって、スクリプトを実行可能にしておいて ください。スクリプト1つで実行できますので、これをパスの通った場所に おいておけばすぐに使えます。
  4. 単に html2dviでヘルプを表示します。
  5. html2dvi [オプションたち] ファイル名」 で拡張子を .tex に変えたファイルを作り、 TeX にかけます。ファイル名は他ディレクトリのファイルを 指定しても構いません。その場合でも TeX ファイルはカレント・ディレクトリに 作られます。すでに同名の TeX ファイルがある場合は、そのファイルの 拡張子を .bak につけ変えます。
  6. dvi ファイル作成後、自動的にプレビューアを起動するには、-v オプションを用います。

2. 出力の調整

縦横のサイズの指定は、単に A4, B5 の指定だけなら、実行時に、それぞれ -a4オプション・-b5オプションで指定することができます。 縦240cmのサイズを指定する-longオプションもあります。 もっと細かいサイズ指定や、行間隔、フォントの大きさなどは カレント・ディレクトリのスタイル・ファイル (デフォールトでは html2dvi.st)に記述する ことにより、指定することができます。カレント・ディレクトリに存在する スタイル・ファイルを使用したくない時は、-fオプションを用います。 また、他のファイルを用いたい時はそのファイル名を-fxxxxxxx のように -fに続けて記述します。

-flip を用いると、Html2dvi は文中に「 'xyz' 」だとか「 "xyz" 」の ような表現があった場合、これを `xyz' とか ``xyz'' のように変換しようとします。これはうまくいくときもあれば、失敗するときもあります。小説などを読むときに 使います。

3. Tableの処理

テーブル関係のオプション
オプション 説明
-omittable すべてのテーブルは省略され、かわりに [table] という文字列が 出力されます。
-notable テーブル関係のタグがすべて無視されます。各セルごとにひとつ(または それ以上の)段落を作ります。
その際、表のセンタリングがあってもセンタリングは 無視されます。
-nofold 各セルの内容を1行に表示し、改行を無視します。各コラムは自然な 幅をもち、右寄せ・センタリングなども有効になります。
このファイルで、上のオプションを試してみて下さい。

4. 1行が長いHTMLファイル

世の中には、異常に長い1行をもつ HTML ファイルがあります。おそらく ワープロなどが出力したものでしょう。これをそのまま TeX ファイルに変換すると TeXの能力を越えてしまいます。そこで、html2dvi は ", "(コンマ・プラス・ スペース)という組合せを見つけると、それが行末でない限り、その直後に 改行を挿入します。また、日本語の "。"(句点)のあとにも同様に 改行を挿入し、1行があまり長くならないようにしています。もちろん そのような箇所がなければ、長い行が残ってしまいます。その場合は 手作業で修正して下さい。また、以上の理由により、スクリプト中に 日本語(。)が記述されています。必要に応じてコードを変換してお使い下さい。 なお、1でも記しましたが、スクリプトの最初で $perl_is_japanized = 0; とすると、句点での改行を実行しません。これは、用いる perl が日本語に 対応していない場合の誤動作を防ぐときに用います。

5. その他の制限

上記の制限の他にも、いろいろ制限事項(バグともいう)があります。 いくつか例をあげます。

6. 変換の方針

まず、ファイルを最後まで調べて、テーブルのサイズとキャプションを調べます。 それらのデータを記憶し、もう一度ファイルを先頭から読んで行きます。 テーブルのキャプション以外は、各タグをその順に TeX のコマンド列に変換して 出力します。タグでないものは特殊文字をのぞき、ほとんどそのままファイルに 出力します。というわけですので、メモリー不足になるようなことはほとんど 起きないはずです。




Perl のページに戻る