* 概要 [#k9afcc07]
ソースコードなどをフォーマットに従って整形・キーワード強調などし、見やすい形で [[PostScript]] ファイルに変換してくれるツール。紙配布するときに使うと良い。

Cygwin で日本語を正常に出力するためには自分で日本語化を施してコンパイルする必要がある。

* 日本語化 (Cygwin) [#df62a090]
** 参考・関連文献 [#ef7cc96c]
- [[ハングアップの日々 (2004/05):http://homepage3.nifty.com/k-takata/diary/2004-05.html]]
-- a2ps 関連記事を参考にした
-- 一部は転載
- [[unnonouno a2ps から ps2pdf まで:http://d.hatena.ne.jp/u-no/20060822]]

** 必要なパッケージの取得 [#s3383e63]
- configure で怒られたら入れる。大体 Cygwin のインストーラで取得可能なはず。
-- Utils::patch, Web::wget
-- Devel::flex (configure で止まる)
-- Devel::gettext-devel (make が ja.gmo の生成で止まる), Devel::automake など

** ${PATH}に関して注意 [#q59c53c5]
- find, patch などのツールをまちがって Windows から呼び出さないよう注意 (Cygwin)
-- .bash_profile で${PATH}の頭に Cygwin の /bin, /usr/bin, /usr/local/bin を追加してしまえばいい

** ダウンロードとコンパイル [#y8bda6bf]
- Cygwin で Text::a2ps のソースをインストール

- ソースを解凍し a2ps-4.13-1.patch をあてる
 /usr/src% tar xzvf a2ps-4.13.tar.gz
 /usr/src% patch -p0 < a2ps-4.13-1.patch
 patching file a2ps-4.13/CYGWIN-PATCHES/a2ps.README
 patching file a2ps-4.13/CYGWIN-PATCHES/setup.hint
 patching file a2ps-4.13/lib/path-concat.c
 patching file a2ps-4.13/sheets/csharp.ssh
 patching file a2ps-4.13/sheets/sheets.map

- または、添付されているシェルスクリプト a2ps-4.13-1.sh を使う
-- まず関数 prep() に間違い?があるので修正。71行目の最後に\を追加する
 prep() {
   (cd ${topdir} && \
   tar xv${opt_decomp}f ${src_orig_pkg} ; \
   cd ${topdir} && \
   patch -p0 < ${src_patch} \
   && mkdirs )
 }
-- 実行
 /usr/src% ./a2ps-4.13-1.sh prep

- [[GNU a2psの日本語NLSデータを作ろう:http://www.on.cs.keio.ac.jp/~yasu/jp_a2ps.html]]
-- http://www.on.cs.keio.ac.jp/~yasu/linux/GNU/a2ps-4.13-ja_nls.patch をダウンロードして
 /usr/src% wget http://www.on.cs.keio.ac.jp/~yasu/linux/GNU/a2ps-4.13-ja_nls.patch
 /usr/src% patch -p0 < a2ps-4.13-ja_nls.patch
-- src/buffer.c の 43 行が変な文字なのでパッチはバイナリとして扱った方が良い
- [[ハングアップの日々 (2004/05):http://homepage3.nifty.com/k-takata/diary/2004-05.html]]
-- http://homepage3.nifty.com/k-takata/diary/a2ps-4.13-kt.patch をダウンロードして
 /usr/src% http://homepage3.nifty.com/k-takata/diary/a2ps-4.13-kt.patch
 /usr/src% patch -p0 < a2ps-4.13-kt.patch

- これは必要ないっぽい
 /usr/src% cd a2ps-4.13
 /usr/src% touch `find $PWD`
 /usr/src% cd ../

- おまじないをしてから configure
 /usr/src% touch `find $PWD/a2ps-4.13/man/*.1`
 /usr/src% ./a2ps-4.13-1.sh conf

- make, strip and install
 /usr/src% ./a2ps-4.13-1.sh build
 /usr/src% strip a2ps-4.13/src/a2ps.exe
 /usr/src% strip a2ps-4.13/contrib/fixnt.exe
 /usr/src% cd a2ps-4.13
 /usr/src% make install
-- 以下でもOK?
 /usr/src% ./a2ps-4.13-1.sh install

* 文字列部分を固定幅フォントにする prologue [#jea72d62]
[[color2.pro:http://homepage3.nifty.com/k-takata/diary/color2.pro]] を /usr/share/a2ps/ps/へ

* Cygwin JE の nkf をインストールする [#m74aefea]
- 文字コード変換のため nkf を用意する
- Cygwin の setup.exe で http://cygwin-je.sourceforge.jp/cygwin_je/ を追加して選択する
- Utils::nkf (アルファベット順じゃなくて、ずっと下の方にある) をインストール
 nkf -e hogehoge.ml > hogehoge.euc.ml; a2ps hogehoge.euc.ml --prologue=color2 -M A4dj -o a.ps.ps

* 一緒に印刷される情報のカスタマイズ [#a7d469b6]
- /etc/a2ps.cfg の Options で設定可能
- オプションで使えるエスケープ
-- http://www.infres.enst.fr/~demaille/a2ps/doc-4.12/a2ps_3.html#SEC34
-- %D や $D では [[MANPAGE of strftime:http://www.linux.or.jp/JM/html/LDP_man-pages/man3/strftime.3.html]] にあるフォーマットが使える
- 例
 Options: --header=
 Options: --left-title='#?2||$D{%F} $D{%T}|'
 Options: --left-footer=#?l!%D{%F}!#?v|%D{%F}|%s./%s#|!
 Options: --right-footer='#?l!%s./%s#!#?v|%s./%s#|%D{%F}|!'

* 印刷 [#p0277519]
- これはうまく行かない場合あり
 % a2ps test.cpp --printer="FX\ DocuPrint\ C3250"
- 以下を実行して test.ps を GSView で印刷
 % a2ps test.cpp -o test.ps
- lpr

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS