天地有情

[TeX4ht] TeX4ht --- LaTeX ソースから HTML などを直接出力する変換ツール ~初歩の初歩~

TeX4ht --- LaTeX ソースから HTML などを直接出力する変換ツール ~初歩の初歩~

§1 はじめに

TeX4ht は LaTeX ソースから HTML,XHTML などを直接出力する変換ツールです.
概要を理解するために, 先ずは tex4htk-w32.txt を一読して下さい.
(C:\w32tex\share\texmf-dist\doc\tex4ht\win32\tex4htk-w32.txt)

LaTeX ファイルを 軽快にブラウズできるように,HTMLファイルに変換してくれるのが,TeX4ht です.
同様の機能をもつ LaTeX2HTML を使う人も多いようですが,Windows用 LaTeX2HTML は,インストールや設定が
比較的に面倒な上,私の場合,うまく出来ませんでした.TeX4ht の方は,W32TeX 主宰の角藤さんのおかげで,
簡単に動かすことができました.本編は,この TeX4ht について説明します.

1.1 インストール

(1)jtex-w32.tar.xz(NTT-jTeX,) と tex4htk-w32.tar.xz が必要ですが,W32TeX の"フルインストール"が
   してあれば既に含まれています.

(2)Windows 用の ImageMagic をインストールし,PATH を通しておいて下さい.
   自分のものは,C:\Program Files\ImageMagick-6.9.1-Q16 となっていました.

(3)Windows 用 Ghostscript が使える状態にし,gswin32c.exe に PATH を通しておいて下さい.
   自分のものは,C:\gs\gs9.16 となっていました.

1.2 インストール後の作業

TeX4ht に画像処理アプリケーションを認識させるため,次の設定をします.

C:\w32tex\share\texmf-dist\tex4ht\base\win32 にある tex4ht.env をエディタで開き,

187行目あたりの
Gconvert -trim +repage -density 110x110 -transparent "#FFFFFF" zz%%4.ps %%3

を見つけだし,次の部分を追記します.

G C:\Program Files\ImageMagick-6.9.1-Q16\convert -trim +repage -density 110x110 -transparent "#FFFFFF" zz%%4.ps %%3

フルパスを指定するのは, convert.exe というプログラムが他にあるかも知れないので,それと混同させないための処置です.

※ tex4htk-w32.tar.xz が更新されると,追記した部分がクリアされるものと考え,
 自分の場合は,修正後の ex4ht.env を texmf-local 側にも置きました.即ち,
 C:\w32tex\share\texmf-local\tex4ht\base\win32\ex4ht.env

 また,-density 110x110 の箇所を画像化される文字サイズを大きくするため,-density 150x150 のようにすることも
 可能です.この数字は 1インチ当たりの ピクセル数です.状況に応じて適宜変えてみてください.

1.3 マニュアル

纏まったものが有りません.前述の tex4htk-w32.txt を参考にしてください.


§2 TeX4ht の実行方法

2つの方法が用意されています.
クラスファイルやパッケージは必ず[欧文用]のものを使用することが重要です.欧文用のものに関しては,
大抵のものについては 4ht ファイルが用意されているようです.また、日本語はデフォルトで [Shift_JIS]
となりますので、必ず同梱している jp.cfg を読み込むようにします.実行方法は次のようになります.

2.1 方法 1
    \usepackage[jp,...]{tex4ht}
    としておいて,コマンドラインにおいて
    
    ht jlatex foo
    
    のようにします.このようにオプション付きで tex4ht.sty を読むときは,htjlatex を使ってはいけません.


2.2 方法 2
    \usepackage{tex4ht} あるいは \usepackage{tex4ht}なし
    にしておいて,コマンドラインにおいて
    
    htjlatex foo "jp,..."
    
    のようにします.

どちらを使っても構いませんが,htjlatex の方がオプションでいろいろ指定できるという利点はあります.
元の foo.tex の置いてある所に沢山の中間ファイルが生成されるので、専用のフォルダーを作ってその中で実行する
のがよいです.生成された同名の HTMLファイル foo.html をクリックすれば HTMLファイルがブラウザに表示されます.

注意:
本編では,[方法 2]を使って実行することにします.後ほどのサンプルで示します.

§3 実行時のオプションについて

htjlatex のオプションは3個あり2重 引用符で囲みます.

htjlatex foo "option1" "option2" "option3"

例: htjlatex foo "jp,2" "" " -p"

■ option1:

W32TeX では、日本語設定ファイル "jp.cfg" の中で HTML が選択されており, "jp"と指定することが必須です.
なお,オリジナルの jp.cfg の所在は C:\w32tex\share\texmf-dist\tex\generic\tex4ht にあります.
自分独自の設定をするときは,このオリジナルの "jp.cfg" コピーして書き換える必要があります.
後ほどのサンプルで示します.

"jp,2"のように数字のオプションを付加するとリンク付きの目次を付けてくれます.この数はリンクの深さを表します.

"0 "の時は,目次なしです.
"1 "の時は,f00.tex 全体が一つの HTML ファイルとして出力され,目次はその先頭に入ります.
"2 "の時は,第1レベルで目次のみが作られ,第2レベルで section 毎(設定によっては章等)に独立したファイル
   が作られ subsection 以下は全てそのファイルに入ります.
"3 "の時は第2レベルでは,subsection 以下はリンクが張られるだけで,第3レベルで全てが表示されます.

なお,\documentclass に article を使った場合は目次は生成されません.
各レベルでは[next][previous][up]などで 相互リンクします.

■ option2:

通常の使用では,"option2" を必要とすることはほとんどありません.

■ option3:

通常の使用では,"option3" を必要とすることはほとんどありませんが,画像変換をスキップする "option3"は有用
かもしれません.使用法は htjlatex filename "jp,2" "" " -p" で,-p の前に半角空白が必要です.

§4 HTMLを編集するための TeX4ht コマンド

TeX4ht には,HTMLに変換した後,再びレイアウトを整えたり,リンク を設定したりするためのコマンドが幾つか
用意されています.

4.1 ハイパーテキスト埋め込み用コード: \HCode{...}

   \HCode{...}を使えば,{...}の中にどんな HTML タグでも書き込めます.幾つかの例を挙げておきます.
   例: (1) \def\htbf#1{\HCode{<strong>}#1\HCode{</strong>}}
      (2) \def\htvskip{\HCode{<p />}}
      (3) \def\htpar{\HCode{<br />}}
      (4) \HCode{<hr width="50\%" size=5 color="blue">}
      (5) \HCode{<center>}
      (6) \HCode{</center>}

4.2 HTML用の文字生成: \Hchar{...}

   \HChar{..}は 1 文字だけの HTML コードを書き出すコマンドです.
   HTML内では例えば "<" や ">" を使いたくても、タグと見なされて表示されません.
   そのとき HTMLでは、"<"とか">"と記します.
   \HChar{..}はこれと同じ番号を入れることにより、一文字だけの HTMLコードを書き出します.
   例:
\HChar{32} → "スペース"
\HChar{36} → "$"
\HChar{37} → "%"
\HChar{38} → "&"
\HChar{60} → "<"
\HChar{62} → ">"
\HChar{63} → "?"
\HChar{126}→ "~"
\HChar{165}→ "\"

4.3 外部画像の貼り付け: \Picture[alt]{file-name attributes}

   外部画像ファイルを表示したいときに使います. [alt] は、画像ファイルが見つからないときに表示する
   代替テキストであり,無くてもかま いません.

§5 サンプル

5.1 「sample4ht」ディレクトリの作成

作業用として,Desktop上に 「sample4ht」ディレクトリを作成します.この中に次を配置します.

・コンソールコマンド ----- cmd.exe ショートカット
・環境ファイル ----------- jp.cfg
・LaTeX ソースファイル --- main.tex
・利用する画像ファイル --- pic.png

4ht01.png


なお,main.tex をコンパイルすると main.css, main0x.png, main.html が生成されます.
この他に多数の中間ファイルが出来ますが削除してあります.コンパイルに関しては後述します.


5.2 jp.cfg の作成

C:\w32tex\share\texmf-dist\tex\generic\tex4ht にあるオリジナルの "jp.cfg" コピーして
次のような独自の jp.cfg を 作成します.

4ht02.png


【説明】
オリジナルの "jp.cfg" に対して 4行目~9行目 (CSS)を追加してあります.
それ以外(1,2,3,10行目)は決まり文句です.

1行目:HTML が選択されている.
2行目:文字コードは Shift_JIS が使われる.
5行目:body 本文背景はカラーを指定.
6行目:font "MS P ゴシック"を指定.
7行目:メインエリアを設定している.

5.3 main.tex の作成

4ht03AA.png
4ht03BB.png


5.4 コンパイル

Desktop上の 「sample4ht」ディレクトリ内で cmd.exe を起動させ,次のコマンドを実行します.

 htjlatex main.tex "jp"

この結果, main.html が生成されます.これをクリックするとブラウザが立ち上がり,表示されます.

なお,画像仕様に変更がなければ,2回目以降のコンパイルは -p オプションを付けると処理が速くなります.

 htjlatex main.tex "jp" "" " -p"

4ht04.png

§6 幾つかの"小技"

私のPC(Windows7)で経験したことを書き留めておきます.適用したバージョン番号などにより,一部ことなる
場合があるかも知れません.ご了承下さい.

(1)ボールド体の出力
   \textbf{...}, {\bf ...}, {\em ...} は無視されます.
   代わりに \def\htbf#1{\HCode{}#1\HCode{}} を定義して,\htbf{...} を使います.

(2)数式関係
   ・$ ... $ は使わず
    代わりに \(......\) を使います.

   ・$$ ... $$ は使わず
    代わりに \[......\] を使います.

   ・amsmath パッケージ は使わず
    代わりに LaTeX標準の equnarray環境 を使います.(\begin{eqnarray}~\end{eqnarray})

(3)図表のキャプション
   \usepackage{captdef} を登録し,
   \figcaption{...} あるいは \tabcaption{...} を使います.

(4)空行の作成
   \bigskip, \medskip, \smallskip は無視されます.
   代わりに \def\htvskip{\HCode{

}} を定義して,\htvskip を使います.


■ 参考サイト

LaTeX をウエッブに載せよう
(http://osksn2.hep.sci.osaka-u.ac.jp/~naga/miscellaneous/tex4ht/tex4ht-howto.html#tex4ht-howtose3.html)
注意:2003年7月に作成されており,現在ではコマンドの一部が変更されている箇所もあります.

スポンサーサイト
  1. 2015/08/11(火) 10:55:12|
  2. TeX4ht