最終更新:2017-01-10 (火) 11:26:08 (673d)

TeX用語集

TeX4ht

TeX4ht は Eitan Gurari 氏が保守・開発している TeX/LaTeX トランスレーターです。有志の皆さんのおかげで日本語 (UTF8, Shift_JIS, EUC_JP, ISO-2022-JP) に対応しています。日本語 TeX にはアスキーの pTeX ではなく、NTT JTeX*1が使われることになります*2

インストール on Arch Linux

TeX Live では ImageMagick を導入するだけで 使用できるようになります。 Linux 系の場合は古くから LaTeX2HTML が愛用されているようですが、私は数式関連の出力結果の出来や、 自分で特に設定することなくさくさく HTML に変換できるところが好きです。

Arch Linux の場合はまず ImageMagick をインストールしておきます。

pacman -S imagemagick

texlive-htmlxml をインストールします。

pacman -S texlive-htmlxml

TeX4ht のホームページ http://tug.org/tex4ht も参照するように。 あとはサンプルの TeX ファイル hoge.tex を作成する。

\documentclass{article}
\usepackage{tex4ht}
\begin{document}
This is a $f(x)=\alpha x^2 + \beta x + \gamma$ sample file.
\end{document}

としておけば、

ht latex hoge

とすることにより hoge.html が作成される。

\usepackage{tex4ht}を記述しなくとも
htlatex hoge

とすることも可能である。 Lynx で見たとしても 画像に ALT 属性がきちんと 付いている(複雑な数式でも昔のアスキーアートのようにかなりがんばっているので みてみるように)ので

This is a f(x) = a x2 + b x + g sample file.

などと表示される。

標準で画像が gif に変換されるので、これは嫌な場合は

#!/bin/sh
latex $1 && latex $1 && latex $1;
tex4ht -g.png $1 && t4ht $1;
exit;

なるスクリプト t4h.sh でも用意しておけば良いでしょう。

macOS とかは。

MacTeX をインストール.

問題点

しかし、変換された HTML ファイルは XHTML にしろ HTML にしろ、日本語部分を囲むタグが異様に増えてしまいます。 生成された HTML のファイルサイズを軽くすることを目的としているならば、次のスクリプトで後処理してください。

#!/usr/local/bin/perl -w
open(OUT, "> temp.html");
while( <> ){
    chomp($_) if /span.*?$/gi ;
    print OUT $_;
}
close(OUT);

open(OUT, "< temp.html");
while( <OUT> ){
    $_ =~ s/<span.*?class=\".*?\">(.*?)<\/span>/$1/gi;
    $_ =~ s/<p\b(.*?)>/\n\n<p $1>/gi;
    print $_;
}
close(OUT);

my $message=`rm temp.html`;

exit;

これはどのように使うかというと、適当なファイル名「postht4」をつけて、適当な場所「/usr/local/bin/」などに実行権限を付与して、次のようにコンソールから実行します。

cat input.html | postht4 > output.html

input.html として与えるファイル名は TeX4ht によって input.tex から生成した HTML ファイルとなります。変換してみると分かりますが、結構容量が変わります。


*1 日本語フォントを 8 ビットのサブセットフォントで扱っているので、欧文フォントと同じように和文フォントも扱うことができる。
*2 pTeX を使って変換する方法もありますが、スマートとは言いがたいようです