                        Texinfo tools for Win32
                    --- texinfotools-w32.tar.gz ---

[1] 始めに

texinfo-4.8 中で，Win32 環境でも有用と思われる部分をパッケージに
しました。 Texinfo 用インデックス作成プログラム texindex.exe は
森下 お代官様 ＭａＮＭＯＳ さんによるパッチ(texindex-japanese-patch)
によって Shift JIS コード用に日本語化してあります。SJIS の場合にバグ
がありましたので訂正しています。また makeinfo.exe も Shit JIS コード
用に日本語化したつもりです。適切に作成された foo.txi を Shit JIS
コードに変換すれば makeinfo foo.txi によって Info files を作成できる
と思います。 しかし makeinfo.exe は emacs buffer 内で Info ファイルを
作成する場合よりもエラーチェックが厳しいのでご注意下さい。
--force オプションでエラーや warning があっても出力するようになります。
また，makeinfo.exe は --html オプションにより HTML を出力することも
できます。日本語の場合も HTML を作成できると思います。ただし入出力は
Shift JIS コードです。出力は JIS に変換したほうが良いでしょう。
(例: makeinfo -o - --html --ifinfo foo.txi | nkf -j >foo.html)
日本語の場合，@setfilename の次の行に @documentlanguage ja と記述して
おくと良いでしょう。こうしておくと html は <html lang="ja"> で始まります。
直接 HTML を記述するには

@ifhtml
@html
<center>
<h1>TeX の使用法</h1><h3>--- An introduction ---</h3>
</center>
@end html
@end ifhtml

のようにします。

シェルスクリプト texi2dvi は，web2c-7.3.7-w32.tar.gz または
web2c-7.3.11-w32.tar.gz に同梱してある Korn shell sh.exe および
Cygnus GNU-Win32 の bash で動作すると思います。TEMP 環境変数が必須ですが，
Cygnus bash の場合にも TEMP=//c/tmp などとしてはだめで，TEMP=c:/tmp
などとしなければいけません。 TEMP=c:\tmp は OK です。TEMP=//c/tmp として
いけない理由は， ptex //c/tmp/foo.txi などとできないからです。
TEMP=c:\tmp などの場合にはスクリプトの中で必要に応じて \ を / に変換して
います。texi2dvi はいろいろな GNU tools を呼び出すので，GNU tools を
インストールしていないと使用できません。texi2dvi が使用する TeX コマンドは
ptex をデフォルトにしていますが，環境変数 TEX で変更できます。その他に
ついてはスクリプト自身を参照して下さい。 GNU tools をインストールして
いない場合には，シェルスクリプト texi2dvi を実行できませんが，ptex や
texindex を適切に実行すると同じことが実現できます。

ptex foo.txi
texindex foo.??
ptex foo.txi
ptex foo.txi

などとすればよいでしょう。完了していない旨のメッセージが出るようなら，
適当にコマンドを繰り返して下さい。シェルスクリプト texi2dvi は必要な
回数を自動判断するので，便利です。
texinfo.tex (2002-11-05.11) は，pdfTeX に対応していますが (0.13d 以下
及び 0.14a 以上の両方に対応)，pTeX と NTT-jTeX にも対応させています。
pTeX あるいは NTT-jTeX でない場合にはオリジナルと全く同じ振る舞いをし
ます。

Info ファイル作成用の makeinfo.exe は 通常の日本語 Texinfo ソースを
処理するとき，改行位置を見つけられないことがごく稀にあるかもしれません。
この場合には不要な空行がいくつか連続して出力されるようです。このような
ことはめったにありませんが，このような確率をゼロに近づけるには，ソース
において (1)日本語句読点の直後，(2)日本語とアスキー文字単語の境界
で適当に改行しておけば良いようです。欧文には必ずスペースがあるので，
改行位置をほぼ 100 % で決定できるのですが，日本語の場合はちょっとだけ
むずかしい点があるのです。
簡単な禁則処理を施してありますが，完全ではないと思われます。
Info ファイル作成時に --em20 オプションを付けると、オフセット計算に
バイト数ではなくて、文字数を使うようになります。 Meadow で読む Info
ファイルの場合は --em20 オプションを付けてみて下さい。

[2] サンプル

yatexj          : 広瀬さんの yatexj.txi から makeinfo で作成したもの。
                  Meadow ではなくて、Mule for Win32 用です。
yaexj.html      : 広瀬さんの yatexj.txi から makeinfo で作成したもの。
texinfo.pdf     : texinfo.txi から pdfTeX-1.00b で作成したもの。


[3] インストール法

TeX のインストールディレクトリ (デフォルトは c:/usr/local) で
ファイル texinfotools-w32.tar.gz を展開すれば OK です。
c:
cd \usr\local
tar zxvf texinfotools-w32.tar.gz


[4] 簡単な説明

(1) foo.txi からの info file(s) 作成。
    makeinfo foo.txi
    エラーがあったら作成しないが
    makeinfo --error-limit 0 --force foo.txi
    とすると作成する。
    makeinfo --help で使用法を表示する。

(2) foo.txi からの HTML file 作成。
    makeinfo --html foo.txi
    エラーがあったら作成しないが
    makeinfo --html --error-limit 0 --force foo.txi
    とすると作成する。

(3) foo.txi から foo.dvi を作成。
    texi2dvi foo.txi
    これで，ptex.exe での処理，texindex.exe によるインデックス作成を
    自動的に実行する。
    シェルスクリプト texi2dvi が使用できなくても，手動で 
    ptex と texindex を適切に実行すると同じことが実現できる。
    ([1] の最後の部分の記述を参照すること。)

(3) install-info.exe は dir ファイルにエントリを追加するプログラムである。
    dir ファイルは手で編集してもよいが，例えばもし gnus.txi ソースに

    @dircategory News reading system
    @direntry
    * Gnus: (gnus).		The news reader gnus.
    @end direntry

    なる記述があると，これを makeinfo.exe で処理すると作成された
    info ファイルに次のような部分ができる。

    INFO-DIR-SECTION News reading system
    START-INFO-DIR-ENTRY
    * Gnus: (gnus).		The news reader gnus.
    END-INFO-DIR-ENTRY

    この場合，例えば
    install-info --info-file=gnus --info-dir=c:/usr/local/share/mule2/info
    とすると ファイル dir に

    News reading system
    * Gnus: (gnus).		The news reader gnus.

    なるエントリが追加される。

    START-INFO-DIR-ENTRY などのセクションが info ファイルに存在しない場合には
    次のような引数を追加しておくと同じことができる。
    --entry='* Gnus: (gnus).		The news reader gnus.'

    いずれにしても，このようなコマンドを手動で入力するのは現実的ではなくて，
    ファイル dir を編集したほうが早いので，実際には Makefile で info files
    のインストールを自動化するような場合に使用されるものである。

(例.)
#
# a sample of Makefile to install yatexj
#
# yatexj.txi に次のような部分があることを仮定している:
#
# @dircategory LaTeX helpers
# @direntry
# * YaTeX: (yatexj).		YaTeX (野鳥).
# @end direntry
#
#
SHELL=c:/bin/sh
MAKE=make
INFODIR=c:/usr/local/share/mule2/info
SOURCE=yatexj.txi
INFOFILE=yatexj
INFOOPTION=--error-limit 0 --force

install-info: $(INFOFILE)
	cp $(INFOFILE) $(INFODIR)/
	install-info --info-file=$(INFOFILE) --info-dir=$(INFODIR)

$(INFOFILE): $(SOURCE)
	makeinfo $(INFOOPTION) $(SOURCE)


[5] ソース

    ----- UNIX 系 OS 使用者の方へ -----
    このディレクトリにある，texinfo-4.8-j.diff と，オリジナルの
    texinfo-4.8.tar.gz を同じディレクトリに置いておきます。
    tar zxvf texinfo-4.8.tar.gz
    patch -p0 <texinfo-4.8-j.diff
    で日本語対応ソースができます。

    UNIX の場合
    cd texinfo-4.8
    ./configure --disable-nls

    で準備ができます。ただしコンパイルオプション
    ( EUC の場合 -DEUC=1 , SJIS の場合 -DSJIS=1 )
    は手動で Makefile を編集して下さい。

    あるいは configure コマンドの際， shell によって違うでしょうが，
    (export CFLAGS='-g -O2 -DEUC=1' && ./configure --disable-nls)
    とか
    (setenv CFLAGS '-g -O2 -DEUC=1' && ./configure --disable-nls)
    とかすれば手動で Makefile を編集しないでよいでしょう。
    なお、emacs 20 以降のバージョンで日本語 Info を読む場合には
    makeinfo --em20 ... のように makeinfo に --em20 オプションを付けて
    みて下さい。
-----------------------------------------------
A. Kakuto <kakuto@fuk.kindai.ac.jp>
