pdftk

風邪ひきで、ミサを休む。どうもよろしくない。

まあせっかく部屋にいるので、先日書き忘れたことをメモしておくことにする。

PDF ファイルには、パスワードをかけて内容を保護したり、コピーや印刷を禁止したりする保護機能がある。まあこれは万全なものではなくて、たとえば強引に PostScript に変換すると印刷できるようになってしまったりすることもあるし、PDFCrackなんていうソフトも存在する位なので、まあそういう程度のものだと思っておいた方がいいのだけど、それでも、コピペと印刷の抑制ができると便利なケースはままある。

このような PDF の保護設定を Linux 上で行う場合に便利なのがpdftkというツールキットである。pdftk は PDF に関わる様々な操作(切り分けや結合などから、ここで話すようなパスワード設定まで)をコマンドラインで行えるツールなのだけど、たとえば、

pdftk filename1.pdf output filename2.pdf owner_pw password
とすると、filename1.pdf にパスワード password を設定した filename2.pdf を出力する。filename2.pdf に対する保護の度合いに関しては結構細かく制御できるのだけど、default ではコピーも印刷も禁止なので、今回の僕の場合はこれで OK である。興味のある方は上記リンク先などを御参照されたい。

pTeXLive 完全使用可

昨日書いた pTeXLive だが、最新版のptexlive-20100711.tar.gzでも問題なくコンパイル可能であった。しおりの文字化けは、

\AtBeginDvi{\special{pdf:tounicode EUC-UCS2}}
をプリアンブルに書いておくことで解消される(ということは内部処理は EUC なのかしらん?)。

かくして、ようやっと不自由の(今のところ)ない TeX 環境が手に入った。まあほとんどの皆さんは今どき TeX なんてあまり使わないのかもしれないけれど、僕はやはり文書、特に PDF 文書を書くときには TeX が欲しくなるのだ……これは決して懐古趣味ではないと思うのだけど。ということで、期間限定で「『誰も教えてくれない聖書の読み方』新共同訳ガイド」を公開する。

pTeXLive インストール完了

ようやく babel 込みでpTeXLiveが使えるようになった。備忘録としてインストールプロセスをメモしておく。

まず TeXLive をインストールする。pTeXLive の最新版では目下 TeXLive の 2009 年度版をフォローしているので、まずはCTAN の historicからtexlive2009-20091107.iso.xzを取得する。unxz などで解凍した ISO image を、

mount -o loop ./texlive2009-20091107.iso /media/cdrom
などとして mount し、/media/cdrom 内で、
install-tl
を実行し、I を入力することでインストールが行われる。

インストールが終わったら、たとえば /tmp/ptexlive のように作業用のディレクトリを用意し、そこに以下のアーカイブを用意する:

ptexlive-20100322.tar.gz と eptex-100420.tar.bz2 を展開したら、

patch -p0 < ./eptex-100420-patch1.diff
として eptex-100420 に patch を適用する。適用後、
cp ./eptex-100420/6babel.sh ./ptexlive-20100322
として、babel の make に必要なスクリプトをコピーしておく。

次に pTeXLive のコンパイル設定を行う。

cp ./ptexlive-20100322/ptexlive.sample ./ptexlive.cfg
としておいてから、./ptexlive.cfg の編集を行う。僕の場合は:
### "ptexlive.sample"
### 推奨設定は先頭にまとめてあります。
### それ以外はコメントにしてあります。
### シェルスクリプトと同じで # 以降はコメントです。
### common.sh で自動判別している設定もあります。
### "../ptexlive.cfg" というファイルを作って、必要なものを書き写して下さい。
### "./ptexlive.cfg" や "../ptexlive.cfg.host名" でもかまいません。
### version 2010/ 3/22

### (必須・変更不可) ベースとなる TeX Live のバージョン
TEXLIVE_VERSION=2009

### (必須) mount した TeX Live 2009 DVD のディレクトリを指定
#ISO_DIR=/media/TeXLive2009
#ISO_DIR=/Volumes/TeXLive2009
ISO_DIR=/media/cdrom

### (任意) インストールした TeX Live 2009 のディレクトリを指定
# TEXLIVE_DIR=/usr/local/texlive/2009
# TEXLIVE_DIR=$ISO_DIR

### (任意) インストールする ptexlive のディレクトリを指定
# PREFIX=/usr/local/texlive/p2009

### (任意) 作業用ディレクトリを指定
# TMP_PREFIX=/dev/shm/ptexlive2009
# TMP_PREFIX=`pwd`/build

### (任意) make font でフォント検索するディレクトリを追加指定
# EXTRA_CMAP="/usr/local/cmap;/c/program files/cmap"
# EXTRA_TRUETYPE="/usr/local/ttf;/c/program files/truetype"
# EXTRA_OPENTYPE="/usr/local/otf;/c/program files/opentype"
EXTRA_TRUETYPE="/usr/share/fonts/truetype"
EXTRA_OPENTYPE="/usr/share/fonts/opentype"

### (任意) configure 時にキャッシュを用いる(高速化されるが実験的)
conf_option -C

### (任意) make 中に最大 N 個のプロセスを起動する(高速化)
### N は (コア数+1) にするのがよいらしい
# make_option -j 2 # for single core
make_option -j 3 # for 2 core
# make_option -j 5 # for 4 core
# make_option -j # unlimit

### (任意) configure に使うシェルを指定
export CONFIG_SHELL="/bin/bash"

### 余分にコンパイルするツールを指定する
### texdoc コマンドには luatex が必要
conf_option --enable-luatex

conf_option --enable-xetex
conf_option --enable-xdv2pdf
conf_option --enable-xdvipdfmx

conf_option --enable-dialog
conf_option --enable-pdfopen
conf_option --enable-ps2eps
conf_option --enable-psutils
conf_option --enable-t1utils
conf_option --enable-tpic2pdftex
conf_option --enable-vlna
# conf_option --enable-xindy

conf_option --enable-afm2pl
conf_option --enable-bibtex8
conf_option --enable-cjkutils
conf_option --enable-detex
conf_option --enable-devnag
conf_option --enable-dtl
conf_option --enable-dvi2tty
conf_option --enable-dvidvi
conf_option --enable-dviljk
conf_option --enable-dvipng
conf_option --enable-dvipos
conf_option --enable-lacheck
conf_option --enable-lcdf-typetools
conf_option --enable-musixflx
conf_option --enable-seetexk
conf_option --enable-tex4htk
conf_option --enable-ttf2pk
conf_option --enable-ttfdump

# ---------------------------------------------------------

### 既にライブラリが存在すれば、それを使う(高度な知識が必要)
# conf_option --with-system-zlib
# conf_option --with-system-libpng # using system-zlib
# conf_option --with-system-freetype2 # using system-zlib
# conf_option --with-system-gd # using system-libpng, system-freetype2
# conf_option --with-system-t1lib
# conf_option --with-system-freetype
# conf_option --with-system-xpdf

### libpng 1.4.0 以降は使えないので注意。

### OS 付属の freetype2 は pxdvi の縦書きに必要な otvalid モジュールが
### 無効になっていることが多いので注意。

### また '--with-system-gd' を指定すると '--with-system-libpng' と
### '--with-system-freetype2' も指定したことになる。

### kanji <=> unicode 変換に iconv を使う
conf_option --enable-kanji-iconv

### strip する(デバッグ情報を消して実行ファイルを小さくする)
STRIP=yes

### xdvi のツールキットを指定する
###(ディフォルトは自動選択、motif が最良の選択肢)
conf_option --with-xdvi-x-toolkit=motif
# conf_option --with-xdvi-x-toolkit=xaw
# conf_option --with-xdvi-x-toolkit=xaw3d
# conf_option --with-xdvi-x-toolkit=neXtaw

### X 環境がない場合
# conf_option --without-x
# conf_option --disable-xdvik
# conf_option --disable-pxdvik

### make (font|fonty|test) で xdvi と pxdvi を除外する
XDVI=echo

### make test で ps2pdf を除外する
PSPDF=echo

### ptex/platex コマンドの入出力文字コードを指定(ディフォルトは UTF8)
### nkf で自動変換するので、気にする必要はない
### 'UTF8' は ptexenc の独自拡張
KANJI_CODE=UTF8
# KANJI_CODE=EUC
# KANJI_CODE=SJIS
# KANJI_CODE=JIS
(以下変更なし)
xindy はコンパイル上の問題があるという話があるので外したが、コンパイルしても問題ない、かもしれない。他は個々の環境に合わせて適宜調整する必要があるだろう。

ここまで準備ができたら、ptexlive-20100322 内で、

$ make all0
$ ./6babel.sh
$ make otf
$ make fonty
$ make test
と make を行い、問題がないようなら su → make install でインストール完了である。

この手順でインストールできる pTeXLive は、最新版のひとつ前の version なのだが、やはり babel が使えないと困るので、現状ではこの手順でインストールを行っている。しかし…… ptetex3 のときと違って、dvipdfmx で作成した PDF の index が文字化けするんだなあ。さすがにここまでトレースする気力も時間もないので、今回は仕方ないということでこのまま使っているのだが。まあでも、とにかく babel 込みで pLaTeX が使えるだけでも有り難いので、まあこれはこれでいいことにしているのだった。

【追記】
上のコンパイルで唯一外している xindy だが、あの後何度かコンパイルを試みているが一度も成功していない。依存関係がある clisp 周辺はパッケージを入れてコンパイルを試みたのだが、残念ながら結果は変わらない。→解決済み。『xindy の make 可能に』(2010年11月3日)を御参照のこと。

驚愕の事実

僕が大学院生の頃、先にブログで書いた某国立研究所からお誘い頂いて、そこに就職することになったのだが、教授に呼ばれて、

「Thomas 君なあ、君、阪大辞めてもらわなあかんのや」
「へ?どういうことですか?」

就職を控えているときにとんでもないことを言い出す教授に、僕は全身粟立つ思いで聞き返すと、

「そらそうや。大学院生しながら研究員はでけへんやろ」
「はあ……しかし、そうなると、学位は?」
「アホやな君は。君はもう単位とか問題ないから、2年の猶予期間内に学位を取れればオッケーなんや。もう公聴会も済んだしな」
「なるほど。ということは、どうすればいいんでしょうかね」
「まあ、退学届を出してもらう、ということになるんかな」

ということで、学生課に相談に行ったのだが、

「……なるほど。では、来月末日付の退学届を出していただくということになります」
「わかりました」
「つきましては」

と言うと、その事務方の人はこう続けたのだった。

「学費をお払いいただけますか」
「?僕は学費免除なんですが」
「ええ。でも前期の途中で退学ということですから、この期の学費はお支払いいただくことになるんですよ」
「……ひょっとして、学費を納入しないと退学できない、と?」
「そういうことです」

えーそんなー、と思いつつも、泣く泣く金を都合して学費を払い、領収書のコピーを添付して退学届を出し、この年の6月末に阪大院を退学、7月の頭から就職、そして9月の末に学位を授与されたのだった。

で……それ以来、僕は最終学歴には「単位取得退学」と書くことにしていた。それで今まで何も問題は起こらなかったのだ。しかし、今回、前の blog に書いた経歴の書類と一緒に、院の修了証明書が必要になって、僕の場合は「単位取得退学証明」だろう、ということで、その旨阪大に書状を出して、証明書の発行をお願いしていたのだが、先程阪大学生部から電話がかかってきた。

「あのー、Thomas さんは課程博士を授与されていますよねえ」
「ええ」
「ということはですね、博士課程の単位取得退学証明はできないんですよ」
「……え?ということは、どうすれば?」
「Thomas さんの場合はですねえ、博士課程修了ということになるんですよぉ」
「……え?では、単位取得退学じゃない?」
「ええ、修了です」

驚愕の事実!僕の最終学歴は、実は「博士課程修了」だったのだ!今まで散々、

「いやー僕の最終学歴は『退学』でしてねえ……ヘヘヘ」

とネタにしてきたのに!もうネタにはできないのか?いやそれ以前に、修了だったら学費返してよぉ!あれ納めるの大変だったんだからさぁ!……しかし、学位を授与されて、今迄何をしていたのやら……

Profile

T.T.Ueda
Tamotsu Thomas UEDA

茨城県水戸市生まれ。

横山大観がかつて学んだ小学校から、旧水戸城址にある中学、高校と進学。この頃から音楽を趣味とするようになる。大学は、学部→修士→博士の各課程に在籍し、某省傘下の研究所に就職、その2ヵ月後に学位を授与される(こういう経緯ですが最終学歴は博士課程「修了」です)。職場の隣の小学校で起こった惨劇は未だに心に深く傷を残している。

その後某自動車関連会社の研究法人で国の研究プロジェクトに参画、プロジェクト終了後は数年の彷徨を経て、某所で教育関連業務に従事。

New Entries

Comment

Categories

Archives(902)

Link

Search

Free

e-mail address:
e-mail address

Counter

11663163