Akita National College of Technology Yamamoto's Laboratory
ホーム研究内容コンピューター講義ノート学内限定
 
設定
 
latex2html
 
 
 
 
 
コンピューターLaTeX → latex2html

latex2html

目次

  1. インストール
  2. コマンド
  3. 設定ファイルの変更
  4. cssを使う
  5. プログラムソースリストの記述
  6. 図を表示するときの注意
  7. 数式を書くときの注意
  8. 式などが表示(変換)できないとき
  9. \cfracの問題

インストール

日本語を使うためには、新潟工科大学の 竹野 さんの README に書かれている通りにインストールすればよい。私の場合、インストール先は、/usr/local/share とした。問題無く使えている。

コマンド

latex2htmlのコマンドについては、yasufumi.hagaさん??の Latex2htmlに関する情報に詳しく書かれています。

\htmladdnormallink{テキスト}{URL}
latex2htmlで処理すると、テキストにリンクが設定 される。LaTeXでは、単にテキストの部分が書かれるだけでほかに影響は ない。
\htmladdnormallinkfoot{テキスト}{URL}
latex2htmlで処理すると、テキストにリンクが設定 される。LaTeXでは、URLが脚注に書かれる。
\begin{rawhtml} html文書 \end{rawhtml}
latex2htmlでは、html文章がそのまま書かれる。 LaTeXには影響なし。
\begin{htmlonly} LaTeX文書 \end{htmlonly}
latex2htmlのみ反映され、LaTeXは無視する。
\begin{latexonly} LaTeX文書 \end{latexonly}
LaTeXのみ反映され、latex2htmlは無視する。

環境の開始コマンド(\begin{????})の行の後にはなにも書いてはいけない。終了 コマンド(\end{????})は行頭に書く。

設定ファイルの変更

デフォルトの設定でも問題ないが、自分の好みのHTMLファイルを作ることが できる。以下のファイル


/usr/local/share/lib/latex2html/dot.latex2html-init

を自分のホームディレクトリーにコピーしてそれ を編集すればよい。当然、ホームディレクトリーでのファイル名は、


.latex2html-init

である。

cssを使う

latex2htmlが作るスタイルシートのリンクは、ファイル名.cssのようになる。 ソースを見ると次のようになっている。


<LINK REL="STYLESHEET" HREF="nonlinear_eq_prog.css">

このリンク先を変えれば、お望みのスタイルシー トが使える。latex2htmlが作ったすべてのHTMLファイルを一つずつ変換するのは 大変である。物理のかぎしっぽ (崎間公久さん)のシェルスクリプト htmltex-arrange を使わせてもらっている。

プログラムソースリストの記述

lgrind

インストール

ソースリストの整形にlgrindを使っている場合、late2htmlを通すためには、 lgrind.perlが必要である。これをみつけるのは大変だったが、アメリカのサイトにあった。 以下のようにして、インストールした。

  1. まずは、アメリカの検索サイト、たとえばyahoo等で、 lgrind.perlを捜す。多分、ヒットすると思うので、それをダウンロードする。
  2. 次に、ダウンロードしたしたファイルを所定の場所に移動させる。
  3. # mv lgrind.perl /usr/local/share/lib/latex2html/styles/
    

使い方

プリアンブルに、

\usepackage{lgrind}
と記述されていれば、通常のLaTeX2HTMLと同じ。

問題点

私にとって、最も大きな問題点は、行番号が表示されないことである。そのため、今はもっぱら listings を使っている。

listings

listings.perl が無いので、listings を使った LaTeX 文書を HTML にするときには工夫が必要である。以下、2通りの方法を示すが、verbatimfiles を使うのがおすすめ。

verbatimfiles を使う方法

lstinputlisting で外部からソースファイルを取り込んで、処理している場合に使える方法である。verbatimfiles を使って、ソースファイルを verbtim 環境で出力する。まずは、プリアンブルに


\usepackage{html, listings, jlisting}

と書く。次に、行番号付きで出力したければ、


\begin{htmlonly}
 \usepackage{verbatimfiles}
 \providecommand{\lstinputlisting}[2][]{\verbatimlisting{#2}}
\end{htmlonly}

と書く。

もし行番号が不要であれば、


\begin{htmlonly}
 \usepackage{verbatimfiles}
 \providecommand{\lstinputlisting}[2][]{\verbatiminput{#2}}
\end{htmlonly}

と書く。

あとは、通常のLaTeX2HTMLと同じ。

図として出力する方法

アメリカのサイトで lstlisting 環境の部分を、図として出力する方法が紹介されていた。以下を .latex2html-init に追加すれば、 その部分が図として出力される。


sub do_env_lstlisting {
   local ($_) = @_;
   my $env_id = ++$global{'max_id'};
   $_ =~ s/\\par/\n\n/g;
   &process_undefined_environment('lstlisting', $env_id, $_);
}

ただし、私の環境では、複数のリストを処理すると変換に失敗することがある。結構それを直すのが面倒くさいので、先に示した verbatimfiles を使っている。

図を表示するときの注意

画像ファイル等を includegraphics を使って読み込んでいる場合、新潟工科大学の 竹野 さんの README に書かれているように、

\includegraphics[keepaspectratio, scale=0.7]{./figure/newton.eps}

としてはならない。相対パス指定の'./'があるとうまく動作しない。これを

\includegraphics[keepaspectratio, scale=0.7]{figure/newton.eps}

とすると問題は解決する。

数式を書くときの注意

数式中のコメント文

この問題は解決しました。対処の方法については、 ここ を見てください。

LaTeXでは、数式中にコメントを入れても、問題なく処理できるが、latex2htmlでは、だめな場合がある。たとえば、次の数式

\begin{equation}
  \begin{aligned}
    \nabla\cdot\vm{D}&=\rho \\
    % -------- int dv --
    \int\nabla\cdot\vm{D}d\vm{V}&=\int\rho d\vm{V}
  \end{aligned}
\end{equation}

を、latex2htmlにかけると

となる。わけの分からない、<tex2htmlcommentmark>が書かれてしまう。これを防ぐためには、数式中にコメントを取り除けばよい。

\begin{equation}
  \begin{aligned}
    \nabla\cdot\vm{D}&=\rho \\
    \int\nabla\cdot\vm{D}d\vm{V}&=\int\rho d\vm{V}
  \end{aligned}
\end{equation}

すると、

となる。これで、問題は無くなるが、数式中にコ メントが書けなくなり、大変不便である。良い解決方法は無いのだろうか?。

問題解決

この問題に関しては、 竹野 さんが、早急に対策を施し、パッチを公開されています。パッチは竹 野さんの LaTeX2HTML (Japanese) の中のamsmath-bug.patchです。これをダウンロー ドして、more_amsmath.perlのあるディレクトリーで、

# patch -p1 < $(patchのあるディレクトリー)/amsmath-bug.patch

とすれば、パッチをあてることができます。これ で、数式中にコメントがあっても、処理できます。竹野さん、ありがとうござい ました。

式などが表示(変換)できないとき

数式中の日本語の問題は解決しまし た。対処の方法については、ここ を見 てください。

latex2htmlがどうしても、図に変換できない場合の苦肉の策を紹介します。 ここで示す方法は、latexで書かれたものはどんなものでも図に変換できるので、 他にも応用できます。ただ、latex2htmlでこのような方法を使うのは、邪道のよ うに思えますが、仕方なしに使っています。私のlatex2html環境の設定に問題が あるのかもしれません。

equation環境の中にもう一つ環境があって、その中に日本語が書かれている 場合、理由は分かりませんが、図に変換できません。たとえば、次の様な場合で す。

\begin{equation*}
 \begin{array}{rrcccccc@{\hspace{5pt}}l}
  \ldelim\{{2}{59pt}[行の交換不可]&
   \ldelim({7}{5pt}[]  
     &1 &0 & \ast & \ast & \ast & \ast &
   \rdelim){7}{5pt}[] \\
   & & 0 &1 & \ast & \ast & \ast & \ast & \\
  \ldelim\{{5}{50pt}[行の交換可]
   & & 0 &0 & \ast & \ast & \ast & \ast & \\
   & & 0 &0 & \ast & \ast & \ast & \ast & \\
   & & 0 &0 & \ast & \ast & \ast & \ast & \\
   & & 0 &0 & \ast & \ast & \ast & \ast & \\
   & &0 &0 & \ast & \ast & \ast & \ast & \\
 \end{array}
\end{equation*}

私は、latexのdviファイルをpdfに変換して、そこから式の部分を切り出して、図に変換しました。そして、それをhtmlのソースに記述しました。実際の手順は以下の通りです。

  1. latexのソースからdviファイルを作成する。
  2. platex hogehoge.tex
    
  3. dviファイルからpdfの作成。ここで、96dpiでつくりました。
  4. dvipdfmx -r 96 hogehoge.dvi
    
  5. 次に、Adobe Readerなどで、必要な部分を切り出します。 切り出した部分は、クリップボードに保存されます。Adobe Readerでファイを 見るときには、133%=96dpi/72dpiとしました。これが、意味が有るかはよく分 からない。
  6. IrfanViewを立ち上げ、クリップボードの図を [ctrl]+vで貼り付ける。そして、画像メニューからシャープを選択 して、絵をはっきりさせた方が良いであろう。
  7. 次に透過GIFで保存する。IrfanViewでの透過GIFの作り 方は、ワニchan「透過GIFを作 りたい」を参考にしてください。
  8. 次に表示(変換)できないlatexのファイルを、問題の部 分をコメントアウトして、latex2htmlでhtmlファイルを作成する。
  9. 出来上がったhtmlファイルを編集して、先ほどの透過 GIFファイルを適当な場所で表示するようにする。たとえば、htmlファイルに次 のように書く。
  10. </br>
    <IMG SRC="../for_html/eq2.gif" 
    STYLE="position:relative; left:150px; padding:20px">
    </br>
    
  11. これで、うまく出来上がっているはずですので、ブラウザで確認する。

問題解決

数式中の日本語の問題に関しては、 竹野 さんが解決方法を示 しています。詳しくは、竹野さんのページの LaTeX2HTML (Japanese) 注意、その他 の(01/11 2005)に書かれています。私が使っているLinuxでは、 dvipsがpdvipsになっているため、それを反映させる必要があるようです。竹野 さんが示された具体的な対処方法は、

  • インストール前なら、 prefs.pm の $pref{'DVIPS'} のところの dvips を pdvips に修正
  • インストール後なら、 lib/latex2html/l2hconf.pm の $DVIPS のところの dvips を pdvips に修正

です。竹野さん、ありがとうございました。

\cfracの問題

\cfracを使うと、以下のように、数式が化けた。

webで調べると、アメリカのサイトに解決方法が書かれていた。amsmath.perlを書き直せば問題は解決するようである。以下のように、cfracの行をコメントアウトし、新たにcfracを書き、genfracを追加する。

#cfrac # <<\\endcfrac>>
cfrac # [] # {} # {}
genfrac # {} # {} # {} # {} # {} # {}

そうすると、以下のようにちゃんと数式が書かれる。


last update:2009/03/03 16:04:33