読者です 読者をやめる 読者になる 読者になる

TenForward

技術ブログ。はてなダイアリーから移転しました

Plamo-5.0 の LaTeX パッケージ作成ハマリ道

こじまさんの玩式草子─ソフトウェアとたわむれる日々 第21回 64ビット化への遠い道程[その3] 勝手に連動企画.:-)

Plamo-4.73 までは teTeX 用の日本語版パッチ集である ptetex のパッケージが準備されていました.個人的にはコレで困っていませんし,そのまま Plamo-5.0 でも使っても良かったのですが,既に開発も終わっているものですし,今は teTeX でなく TeX Live の世の中のようですから,texlive のパッケージを作ってみようと思いました.

ここで現状を把握するために色々調べてみました.私がググって得た知識ですので,間違いがあるかもしれません (あったら教えて).

原時点で日本語の情報として一番ひっかかるのは ptexlive の情報です.これはややこしいのですが,TeX Live 2009 に当てるパッチ集です.ptexlive のバージョンが 2010 で始まっているのでややこしいのですが.

現在,TeXLive は TeXLive 2010 というバージョン (?) になっているようです.TeX Live 2010 では関係者のご尽力でかなり ptetex の機能がマージされているようで pTeX や jsclasses なんかは収録済みになっています.

他に ptexlive のどのバージョン相当になるのか不明ですが,定番の奥村先生の書籍付録の CD からインストールするパターンも多そうです.

Plamo Linux のパッケージとして考えた場合,選択肢としては

  • ptexlive2010 環境 (TeX Live 2009 + ptexlive)
  • TeX Live 2010 環境 (ptexlive のパッチはなし)

のどちらかとなるでしょう.

当初は TeX Live 2010 のパッケージ作成を試み,その後やっぱやーめた,と ptexlive 2010 のパッケージを作りました.(^_^;)

というわけで,かなり時間がかかりました.

ptexlive-2010 (TeX Live 2009) パッケージ

現在の Plamo-5.0 ツリーの標準の LaTeX 環境はこちらです.TeX Live 2009 のソースを取得し,それをインストールした上に ptexlive の追加のファイルがインストールされた状態で,つまりは ptexlive をインストールしたものと同じ状態をパッケージしたつもりです.(今見たら ptexlive はバージョン上がってますね...)

ただし,

  • インストールディレクトリが /opt/texlive/2009 以下です.Plamo-4.7 時代 ptetex が /opt 以下にインストールされていたため,それに合わせました.
  • パスとかは /etc/profile.d 以下にファイルを置いてあるので,インストールした人はパスが通るようになっています.
  • なるべくシステム上に存在するライブラリで使えるものはそちらを使うようにしています.

ほとんどテストしていないので不具合は多いかと思います.

ptexlive 自体は,一旦 iso イメージから TeX Live をインストールした後に実行するようなっていますが,実際に処理を見ていると,iso から入れたファイルも再度ソースから make していたりしてる気がしますので,PlamoBuild スクリプトを見ると分かりますが,ソースを必要な所に置いて展開した後は ptexlive のインストールスクリプトをなぞるように make を実行して,インストールし,インストール後の処理をするようにしています.

TeX Live 2010 パッケージ作成

(TeX Live 2010 はパッケージを作り直したので,以下は現状と若干違います.2009 がメインツリー,2010 が contrib というのは変わりません.書きました→Plamo-5.0 の LaTeX パッケージ作成ハマり道 (2) - TenForwardの日記)

「新しいバージョンだから最新だ」という単純な理由で,最初は TeX Live 2010 のパッケージを作り始めました.オリジナルの配布が iso イメージでの配布で,そこからインストールするという話しかひっかからないので,ソース配布を取得してパッケージするにはかなりハマりました.

ハマりポイントは

  • 世の中の情報は iso からのインストールで /usr/local/texlive/2010 以下にインストールする情報しかない.
  • TeX Live がマルチプラットフォームでの動作を考えてインストールされるので,実際の実行ファイル等が置かれる階層が深く,それがデフォルトで考えられている場所からズレると動かない.
    • 最初はバイナリが bin/x86_64-gnu-linux-gnu/ 以下に入るのが何か美しくないような気がして (x86_64 で動くのは分かってるんだし),無理矢理 bin 直下にバイナリを置こうと思ったのが間違いでした.^^;

という所です.主に場所だけの問題で,TeX Live 本体のビルドは実はそんなに難しくありません.

Slackware 用のパッケージのスクリプトなんかを見ながらなんとかパッケージを作ったのが,現在は

以下に置いてある 3 つのファイルです.パッケージファイルを見るとわかるように beta1 の位置づけにしてあります.

Slackware 用のビルドスクリプト

なんかにあったりしますので,ご自分でパッケージ作りたい方は参考になるかと (私のはほぼここのパクリ).

パッケージの中身

ちょっと今現物を見てない状態で書いているので間違いがあるかもしれませんが,この texlive-2010 パッケージ群は

  • 基本的には TeX Live 2010 そのまま.
    • 一部,ptexlive2010 のパッチを当ててやろうという努力の結果 updmap(-sys) 辺りだけにパッチが当たっているかも.
  • /usr/share/texmf 以下にインストールされる.
  • texmf-dist は /usr/share/texmf-dist 以下.

という中途半端な状態です.なぜ中途半端かというと,この後 TeXLive 2009 + ptexlive2010 のパッケージ作成に方針転換したためです.インストールした状態で使えると思いますが,updmap 等のコマンドはちゃんと動くかわかりません.

方針転換の理由

理由とか書くとおおげさで,単なる気まぐれな所が大きいのですが,やっぱり ptexlive にしようと思ったのは以下の理由です.

  • やっぱり情報が多い方が良い.
  • pTeX がマージされてるとは言え,以前の ptetex と同じコマンドがないなど,全く同じルーチンで文書作成が出来ない.
    • xdvi の日本語対応されたものがありません.xdvi は開いたファイルが更新されたら,自動的に再読み込みします.
    • クラスファイルも一部入ってないものがある (otf.sty).
    • updmap(-sys) の KanjiMap 拡張が入っていない.こちらに慣れている私は「違う」と言われるとどうやってフォントとかの設定して良いか分かりません (^_^;)
  • 前述の xdvi の問題は,実は PDF ファイルで確認するという事にすれば解決可能です.どうせ最終的には PDF にするのですし.evince であればファイルが変われば再読み込みしてくれます.ただ,パッケージ作成時点では evince が Plamo-5.0 にはありませんでした.(2011/04/27追記: 今は私が evince パッケージ作って追加しました :-)
おまけ

TeX Live 2010 のパッケージは /opt/texlive/2010 に入る形で再度作り直してみようかと思ってる今日この頃です.時間があればですが.

以上のような,全く理解が足りないヤツが作ったパッケージですので,良く揉んで頂く事を期待しています (TeX に限らず他のパッケージもですが :-).出来ればもっと分かった人がメンテナとして颯爽と現れてくれたらいいなあ.:-)

続編 もご参照ください.