2nd-source

2nd-source は、通常の ptexlive の tar 玉ではなく、 コンパイル済パッケージ製作を意識した配布形態です。 http://tutimura.ath.cx/~nob/tex/ptexlive/2nd-source/ で配布しています。

通常の tar 玉の問題点

通常の ptetex3/ptexlive は、make すると裏でスクリプトがいろいろと実行されます。 単なる実行ファイル生成だけでなく、環境検査やフォント検索も行います。 通常の ./configure && make するタイプのソフトとは毛色が違います。

環境検査などのお陰で、単に make したいユーザにとっては便利になってますが、 コンパイル済パッケージ作成には余計な動作となっていることでしょう。 また、元々 teTeX / TeX Live のパッケージがある場合、それらと共存ができず、 新たな独立したパッケージとしなければなりません。 このことが海外にも通用するパッケージ作成の足かせとなっていました。

配布形態のバリエーション

そこで、パッケージ製作を前提とした配布形態を設けることにしました。 名付けて 2nd-source です。やはりソースコードによる配布です。 通常の ptexlive がパッチ類をそのまま含むのに対し、 2nd-source ではパッチ類を一度展開してひとつに再構成しました。

ptexlive-src-20YYMMDD.patch.gz    (1.5MB)
ptexlive-texmf-20YYMMDD.tar.gz.gz (1.1MB)

ptexlive-src-20YYMMDD.patch.gz は、TeX Live へのパッチになっており、 TeX Live のコンパイル済パッケージを作れる環境であれば、 パッチを1つ追加するだけで ptexlive 相当のパッケージになります。 ptexlive-texmf-20YYMMDD.tar.gz.gz は $TEXMF に展開する、 追加のマクロ・仮想フォント類です。

ptexlive-texmf は gzip で二重に圧縮しています。 これは圧縮すると 11MB → 4.6MB → 1.1MB と2段階目に 1/4 のサイズになるからです。 展開には次の2通りの方法のどちらかが便利だと思います。

  1. 前もって "gzip -d ptexlive-texmf-20YYMMDD.tar.gz.gz" で 一段階展開しておいてから、 通常の "tar xzvf ptexlive-texmf-20YYMMDD.tar.gz" で展開する。
  2. "zcat ptexlive-texmf-20YYMMDD.tar.gz.gz | tar xzvf -" で展開する。

    RPM のソースパッケージでは、収録される tar 玉はもう一度 gzip 圧縮されるので、 1. のように展開しておいても不利にはなりません。 3段階目の gzip 圧縮ではサイズはほとんど変化しないので、 2. のようにしてもサイズでのメリットはありませんが、 更新作業は少なくて済みます。

通常の tar 玉との違い

  • コンパイル方法が違います。 TeX Live のやりかたに従って、./Build スクリプトを用いることになります。*1
  • md5(sum), patch などの外部コマンドが不要です。
  • 日本語対応版は pdvips, pxdvi に固定です。
  • 同じコマンド名で日本語対応版を上書きすることを極力やめます。
  • フォントの自動検索がなくなります。
  • ドキュメントはなるべく UTF-8 に変換しています。
  • オリジナルのコマンドの拡張やバグフィックスなんかも (日本語に無関係ならば)削除します。 ebb-artbox patch がこれに該当します。
  • セキュリティーバグの修正も削除します。

    ptetex3 でも 2nd-source を細々と作っていました。 この時はセキュリティーバグの修正を含めていましたが、 ptexlive では、純粋に pTeX 対応だけに絞ることにしました。 teTeX と異なり TeX Live は1〜2年で更新され、 このようなバグ修正も取り込まれているので、 方針を変更することにしました。

  • 収録物に関して
    • UTF package, Babel 対応が入っています。
    • OTF package ははずしています。追加することは困難です。
    • nkf を同梱していません。
    • updmap のみ、オリジナルのコマンド名のままで日本語パッチが当たっています。
    • ofm2opl あたりをオリジナルのものに戻しました。 このためこの環境で UTF/OTF package を自力で生成するのは困難です。 UTF package は生成済フォントを配布しているので影響はないでしょうが、 OTF package には影響があります。
  • 構成物の一部であるパッチ類が更新された場合、 2nd-source は直接は更新を反映できず、 通常の配布物から再生成しなければなりません。 そのため、更新頻度や信頼性は若干劣るかもしれません。

設定

./configure に増えるオプションは以下の通りです。

--without-pdvipsk
--without-pxdvik
--without-ptex
--without-ptexenc

make install 後の設定は以下のとおりです。

  • $TEXMF/web2c/texmf.cnf の最終行にシステムの nfk のパスを書きます。
    % for ptex filter
    PTEX_IN_FILTER = /usr/bin/nkf -w
  • pxdvi で使う日本語フォントを設定します。 $TEXMF/fonts/truetype/ あるいは $TEXMF/fonts/opentype/ 以下にある ttf/ttc/otf フォントから、明朝・ゴシックひとつずつ選んで、 $TEXMF/xdvi/pxdvi.cfg の中ほどに書きます。
    % Japanese
    replace Ryumin-Light           ipam.ttf
    replace GothicBBB-Medium       ipag.ttf

*1 もちろん ./configure && make も可能です。ちなみに ./Build ではソースのある場所とは異なるところで make を行っています。

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-07-08 (火) 02:21:44 (5771d)