| Hisashi Morita ( @ 2007-04-01 00:50:00 |
[Debian][LaTeX] OTF Debian package
LaTeXでOpenTypeフォントを使うためのOTFパッケージのDebianパ ッケージを作ってみた。まだ怪しいけれど、一応インストールできて動作する。これがう まくいけば、新しいホスト上に編集制作環境を作るのが楽になるはず。
http://www.kt.rim.or.jp/~hisashim/tmp/o tf_1.2.8-1+0custom1.dsc
http://www.kt.rim.or.jp/~hisashim/tmp/o tf_1.2.8-1+0custom1.tar.gz
容量がいっぱいなのでソースだけ。後で消す。消した(2007-06)。今後はこちらで: http://workbook.svn.sourceforge.net/vie wvc/workbook/vendor/otf/
----
Debianパッケージの作り方は、要するにこういう仕組みになっているらしい:オリ ジナルのソースに次の3つのファイルを追加してdebuild等で処理すると、パッケ ージが出来上がる。
それぞれ普通のソフトウェアで言うREADME、ChangeLog、Makefil e に相当するものらしい。守るべき規則や支援ツールが大量にあるので圧倒されて訳が分か らなくなりがちだけど、どうやら基本はこれだけらしいことが分かった。
煩雑なところは、最初にdh_makeに準備をしてもらえば楽ができる。
おおまかな手順:
注意点:
Debianのパッケージシステムはコンベンションが膨大にあるので、できるところま でやったうえで詳しい人に聞くのがよさそう。
----
vfdata-otfの使い方
-- インストール
-- 設定
-- テスト (OpenTypeフォントなしで可能なテスト)
-- テスト (OpenTypeフォントを埋め込む)
注意点:
----
Todo:
資料:
LaTeXでOpenTypeフォントを使うためのOTFパッケージのDebianパ
http://www.kt.rim.or.jp/~hisashim/tmp/o
http://www.kt.rim.or.jp/~hisashim/tmp/o
容量がいっぱいなのでソースだけ。
----
Debianパッケージの作り方は、要するにこういう仕組みになっているらしい:オリ
- debian/control : パッケージ情報が記述されたファイル(依存関係など)
- debian/changelog : パッケージの変更履歴
- debian/rules : インストール等の具体的な処理が記述されたスクリプト
それぞれ普通のソフトウェアで言うREADME、ChangeLog、Makefil
煩雑なところは、最初にdh_makeに準備をしてもらえば楽ができる。
おおまかな手順:
- パッケージ対象のソースツリーを用意する(foo-1.0/とする)
- foo-1.0内でdh_make
foo-1.0と実行すると、debian/ディレクトリをはじめ、各種制御ファイルの雛型をよろしく用意してくれる
- foo-1.0/debian/controlにパッケージ名や依存関係などを書く
- foo-1.0/debian/changelogに変更履歴を書く
- foo-1.0/debian/rulesのinstallターゲットにインストール
時の処理を書く
- その他の制御ファイルを編集したり、不要なものは削除したりする(例えば必要なディレ
クトリをdebian/dirsに書くなど)
- debuildその他のパッケージ構築ツールを実行する。うまくいけばパッケージが出
来ているはず
- テストして不具合を直す。以下繰り返し
注意点:
- 実際の作業には、build-essentialsをはじめパッケージング用のツール
がいろいろ必要なので、あらかじめインストールしておく。 - 似たようなパッケージのソースパッケージを参考にすると楽(% sudo apt-get source baz)。今回は香田さんのvfdata-morisawa5を参考に見よう見真似で
書いてみたら、パッケージのビルドに成功するところまでは割とすんなりできた。 - パッケージはOSに変更を加えるのでテストが大変だけど、上川さん作のpbuilde
rを使うとかなり楽ができる。pbuilderは、chrootされたテスト環境の用 意からそこでのパッケージのビルドまで、ほとんどの作業を自動化してくれる。sudo pbuilder build foo*.dsc として、あとは待つだけ。素晴らしい。 - 正規のパッケージではないなどの理由で署名を省略したいときは、debuildに-u
s -ucオプションを付ける。dpkg-buildpackage(1)参照。 - base systemを準備するときに1箇所でもダウンロードに失敗するとそこで全体が失敗す
るので、--mirrorオプションでミラーを一箇所に指定する。 % sudo pbuilder create --mirror http://example.com/pub/linux/debian/debian
Debianのパッケージシステムはコンベンションが膨大にあるので、できるところま
----
vfdata-otfの使い方
-- インストール
% sudo dpkg -i vfdata-otf*.deb % sudo $EDITOR /etc/apt/sources.list % diff -u /etc/apt/sources.list.bak /etc/apt/sources.list -deb http://example.org/pub/linux/debian/debian sarge main +deb http://example.org/pub/linux/debian/debian sarge main contrib non-free % sudo apt-get update && sudo apt-get install cmap-adobe-japan1
-- 設定
% sudo $EDITOR /etc/texmf/texmf.d/50dvipdfmx.cnf % diff -u /etc/texmf/texmf.d/50dvipdfmx.cnf.bak /etc/texmf/texmf.d/50dvipdfmx.cnf %% READ /usr/share/doc/dvipdfmx/README.Debian for details: -% CMAPINPUTS = .;/usr/share/fonts/cmap/adobe-gb1//;/usr/share/fonts/cmap/adobe-cns1//;/usr/share/fonts/cmap/gs-cjk-resource// +CMAPINPUTS = .;/usr/share/fonts/cmap/adobe-japan1//;/usr/share/fonts/cmap/adobe-japan2//;/usr/share/fonts/cmap/adobe-gb1//;/usr/share/fonts/cmap/adobe-cns1//;/usr/share/fonts/cmap/gs-cjk-resource//
-- テスト (OpenTypeフォントなしで可能なテスト)
% $EDITOR test.tex % cat test.tex\documentclass{jbook} \usepackage{otf} \begin{document} OpenTypeフォントを使うためのOTFパッケージのテストです。 \end{document}% sudo $EDITOR /etc/texmf/dvipdfm/my-pseudo-otf.map % cat /etc/texmf/dvipdfm/my-pseudo-otf.map% Non-embedding font map, which works without actual font data. % Source: http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?OTF rml H Ryumin-Light rmlv V Ryumin-Light gbm H GothicBBB-Medium gbmv V GothicBBB-Medium hminr-h H Ryumin-Light hminr-v V Ryumin-Light otf-ujmr-h UniJIS-UTF16-H Ryumin-Light otf-ujmr-v UniJIS-UTF16-V Ryumin-Light otf-cjmr-h Adobe-Japan1-6 Ryumin-Light otf-cjmr-v Identity-V Ryumin-Light hgothr-h H GothicBBB-Medium hgothr-v V GothicBBB-Medium otf-ujgr-h UniJIS-UTF16-H GothicBBB-Medium otf-ujgr-v UniJIS-UTF16-V GothicBBB-Medium otf-cjgr-h Adobe-Japan1-6 GothicBBB-Medium otf-cjgr-v Identity-V GothicBBB-Medium% sudo mktexlsr % platex test.tex % dvipdfmx -f my-pseudo-otf test.dvi % acroread test.pdf &
-- テスト (OpenTypeフォントを埋め込む)
% sudo mkdir /usr/share/fonts/opentype % sudo cp HiraMinPro-W3.otf /usr/share/fonts/opentype .... % sudo ln -s /usr/share/fonts/opentype /usr/share/texmf/fonts/opentype % sudo ln -s /usr/share/texmf/fonts/ /usr/share/texmf/dvipdfm/fonts % sudo mktexlsr % kpsewhich -format "opentype fonts" HiraMinPro-W3 % dvipdfmx -f hiraginox test.dvi
注意点:
- dvipdfmxは/usr/share/texmf/fonts/を見ないらしい。
/usr/share/texmf/dvipdfm/以下なら認識するようなので(k psewhich -progname dvipdfm -show-path "opentype fonts"すると末尾が//になっている)、適当な名前でsymlinkしてmkt exlsrする。その後kpsewhichで確認。 - sargeの古いkpsewhichは"opentype fonts"というformatを認識しないので、新しいものをインストールするか、
"other binary files"で調べる。
----
Todo:
- Warningをなんとかする
W: otf source: out-of-date-standards-version 3.6.1 (current is 3.7.2) W: otf source: native-package-with-dash-version
すいません。
そもそもsargeじゃなくetchにすべきだったかも。
2つめのはorig.tar.gzを用意すれば消えそうだけど、そんな理由でオリジナルをrepackするのは気が進まない。
あと野良パッケージのお作法が分からない。パッケージ名とかバージョン番号とか。 - オリジナルからのパッケージ作成
Debianのtetexに含まれるovp2ovfが新しすぎて、齋藤さんが配布しているオリジナルのOTFパッケージからはOFMを生成できない(1.1ならOKだけど 2.0ではNG)。 Bug#229184: tetex-bin: ovp2ovf does not work at all
http://www.mail-archive.com/debian-tetex-maint@lists.debian.org/msg05574.html
今は生成済みのVF/TFM/OFMが含まれている角藤版ディストリビューションをもとにして回避している。 - install/remove/purgeする前後の状態を比較したい
何かあるはずなんだけどうまい方法が分からない。今はディレクトリを指定してdiffを手で実行している。 - パッケージのビルドに時間がかかる
ソースツリーに大量のVF/TFM/OFMが含まれるので、gzip圧縮に十数分かかる。コンパイルする訳でもないのに。でもこれはどうにもならないかも。
資料:
http://www.debian.org/doc/debian-policy/
http://debian.or.jp/Documents.obsoleted/Documents_ja/debian-policy/
やまだあきら著、鵜飼文敏監修『入門Debianパッケージ』(技術評論社、2006)
http://psitau.at.infoseek.co.jp/otf.html
http://www.fsci.fuk.kindai.ac.jp/%7Ekakuto/win32-ptex/web2c75.html
http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?OTF
http://packages.debian.org/unstable/tex/vfdata-morisawa5