2007年12月26日水曜日

TeX — upLaTeX のインストール

upLaTeX をインストールしてみた.
僕が現在 MacOS X で使っている日本語 TeX の構成は teTeX-3.0/ASCII pTeX-3.1.8.1.
場所は/usr/local/teTeX/
まずは,このディレクトリの名前を変えて退避させておく.
 sudo mv /usr/local/teTeX /usr/local/teTeX-stable
 また,自分のホームに.texmf-config,.texmf-var などのディレクトリがあれば,それも名前を変えて退避させておく.
 mv ~/.texmf-var ~/.texmf-var-stable
 mv ~/.texmf-config ~/.texmf-config-stable

 upLaTeX のインストール後は,upLaTeX のディレクトリと teTeX-stable を適宜切替えて使えるようにしよう.

以下の記述において,$TEXMF=/usr/local/teTeX/share/texmf である.

■ インストール
 インストールしたのは uptex-0.19.
 まずuptex-0.19.tar.gz(patch本体), uptex_font-0.19.tar.gz(フォントのバイナリー)をダウンロード.
 インストールの手順は,先の uptex-0.19.tar.gz を展開して得られる 00readme_jis.txt に書かれている.特段トラブルもなくインストールは完了した.以下,その手順.

■必要なファイルの準備
uptex-0.19.tar.gz(patch本体)
uptex_font-0.19.tar.gz(フォントのバイナリー)
ptetex3-20071214.tar.gz
tetex-src-3.0.tar.gz
tetex-texmf-3.0po.tar.gz
cm-super.zip
cbfonts.zip
unicode.zip

■インストール
以下の記述において $WORK はユーザーの作業用ディレクトリを指す.また,ダウンロードしたファイルは全て $WORK にあり,以下の作業は $WORK の中にいる状態で始めるものとする.
ptetex3-20071214.tar.gz
uptex-0.19.tar.gz
 → 2つとも作業用ディレクトリ $WORK に展開
  ↓ $ tar zxvf ptetex3-20071214.tar.gz
  ↓ $ tar zxvf uptex-0.19.tar.gz
 → $WORK/uptex-0.19/patchの中身を移動
  ↓ $ mv uptex-0.19/patch/* ptetex3-20071214/.
 → my_option を編集
  ↓ $ cd ptetex3-20071214
  ↓ $ mv my_option.sample my_option
  ↓ $ vi my_option
  ↓ “35Gx”と打ち,35行目を有効化〔漢字コードをSJISに〕
  ↓ “:wq”と打ち,エディタを保存終了
 → コンパイルしてインストール
  ↓ $ unset TEXMFCNF
  ↓ $ ./0uptex.sh
  ↓ $ make font
  ↓ $ sudo make install

■ 動作確認
 サンプルは aozora-utarticle-utf8.texuptex-0.19.tar.gzに同梱)
 $ uplatex aozora-utarticle-utf8.tex # dviファイルが生成
  ⇒ コンパイル成功.
  ⇒ Mxdvi では日本語が表示されない.
  ⇒ xdvi では正常に表示される.
 $ dvips aozora-utarticle-utf8.dvi
  ⇒ コンパイル成功.
  ⇒ gv では表示が乱れる.
    なお,横書(aozora-ujarticle-utf8.tex)の方は正常に表示された.
 $ dvipdfmx aozora-utarticle-utf8.dvi
  ⇒ 以下の警告が出るものの通る.
   ** CMap has higher supplement number than CIDFont: GothicBBB-Medium
   ** Some chracters may not be displayed or printed.
   ** CMap has higher supplement number than CIDFont: Ryumin-Light
   ** Some chracters may not be displayed or printed.
  ⇒ Acrobat Reader で正常に閲覧可.


uptex-0.18/font/map/for_dvipdfmx を uptex-dvipdfmx.map と変名し,
$TEXMF/fonts/map/dvipdfm の下にコピー

以下2つの中身は同じ
/usr/lib/X11/fonts/TTF
/usr/X11R6/lib/X11/fonts/TTF

■ ・・・・
UniJIS-UTF16-H などの CMap ファイルが
 /usr/local/share/ghostscript/8.53/Resource/CMap       ・・・(A)
の中に無かったので,TeX Wiki: OTF の 導きにより
 ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe/
から aj16.tar.Z 頂戴し,展開したファイルを上記のディレクトリ CMap 内に格納.
 《補足》このサイトには ag15.tar.Z, ac15.tar.Z, ak12.tar.Z など,中国語や韓国語の CMap ファイルも置いてある.いずれ使う機会があれば参考に.

 “aj16”にはなんとなく見覚えがあるので調べてみると,やはりあった.内山氏の方法で teTeX/pTeX をインストールするとき,dvipdfmx の導入段階で使ったファイルだった.
 このときは,$TEXMF/dvipdfm/CMap の中に入れよとの指示だったのでそうしたが,uplatex のパッケージでは,CMap ファイルが (A) の中にあることを前提に,このディレクトリへのシンボリックリンクを ghostscript という名で $TEXMF/fonts/cmap の中に置いている.それで UniJIS-UTF16-H などが行方不明になった訳か.

 やはり CMap ファイルは ghostscript サイドで管理するのが妥当だなと思う.そこで,teTeX-stable の方も $TEXMF/dvipdfm/CMap の中へ直に CMap ファイルを置くのは止める事にしよう.リンクで対応すべし《宿題》.




README
insomnia: upTeX/upLaTeX 0.10 インストール

% ディレクトリ $PREFIX/share/texmf/dvipdfm 内の dvipdfmx.cfg を編集し,
% 最後の行に f otf-hiragino.map f hiraginox.map を追加
 cd $PREFIX/share/texmf/dvipdfm
 cp dvipdfmx.cfg dvipdfmx.cfg.org
 $PREFIX/share/texmf/dvipdfm/dvipdfmx.cfg

 サンプルに aozora-ujarticle-utf8.texuptex-0.18.tar.gzに同梱)を用いてコンパイルしてみる.
  $ uplatex aozora-ujarticle-utf8.tex
  $ dvips aozora-ujarticle-utf8.dvi
  $ dvipdfmx aozora-ujarticle-utf8.dvi

【試行1】まず,insomnia に書かれている方法を試してみた.

 % cd $HOME/src/uptex-0.18/font/map
 % cp for_dvipdfmx uptex-dvipdfmx.map
 % cp for_dvips uptex-dvips.map
 % sudo mkdir $PREFIX/share/texmf/fonts/map/dvips/uptex
 % sudo cp *.map $PREFIX/share/texmf/fonts/map/dvips/uptex/.
 % sudo mktexlsr
 % sudo updmap --nomkmap --enable KanjiMap=uptex-dvipdfmx.map
 % sudo updmap --nomkmap --enable KanjiMap=uptex-dvips.map
 % sudo updmap

 《動作チェック》
 $ uplatex aozora-ujarticle-utf8.tex
  ⇒成功.しかし Mxdvi では日本語が表示されない.
 $ dvips aozora-ujarticle-utf8.dvi
  ⇒成功.しかし gv ではエラーが発生して表示できない.
 $ dvipdfmx aozora-ujarticle-utf8.dvi
  ⇒以下の警告が出るものの通る.できた PDF は Acrobat Reader で閲覧可.
   CMap has higher supplement number than CIDFont: GothicBBB-Medium
   Some chracters may not be displayed or printed.
   CMap has higher supplement number than CIDFont: Ryumin-Light
   Some chracters may not be displayed or printed.

 《原因調査》
cat uptex-dvipdfmx.map
$ cat uptex-dvipdfmx.map
urml UniJIS-UTF16-H !Ryumin-Light
urmlv UniJIS-UTF16-V !Ryumin-Light
ugbm UniJIS-UTF16-H !GothicBBB-Medium
ugbmv UniJIS-UTF16-V !GothicBBB-Medium

uprml-h UniJIS-UTF16-H !Ryumin-Light
uprml-v UniJIS-UTF16-V !Ryumin-Light
upgbm-h UniJIS-UTF16-H !GothicBBB-Medium
upgbm-v UniJIS-UTF16-V !GothicBBB-Medium
uprml-hq UniJIS-UCS2-H !Ryumin-Light
upgbm-hq UniJIS-UCS2-H !GothicBBB-Medium

upstsl-h UniGB-UTF16-H !STSong-Light
upstsl-v UniGB-UTF16-V !STSong-Light
upstht-h UniGB-UTF16-H !STHeiti-Regular
upstht-v UniGB-UTF16-V !STHeiti-Regular
upmsl-h UniCNS-UTF16-H !MSung-Light
upmsl-v UniCNS-UTF16-V !MSung-Light
upmhm-h UniCNS-UTF16-H !MHei-Medium
upmhm-v UniCNS-UTF16-V !MHei-Medium
uphysmjm-h UniKS-UTF16-H !HYSMyeongJo-Medium
uphysmjm-v UniKS-UTF16-V !HYSMyeongJo-Medium
uphygt-h UniKS-UTF16-H !HYGoThic-Medium
uphygt-v UniKS-UTF16-V !HYGoThic-Medium






■ Mac で ps2pdf を使うときの CIDFmap 設定例
  →~taiji at gyve
■ 複数の TrueTypeフォントを切替えて使う方法
  →ワープロユーザーのためのLaTeX入門 by 大友康寛(「LaTeX組版ハンドブック」の著者)

2007年12月25日火曜日

TeX — 日本語名のファイルを扱いたい

 巷では,TeX 文書のソースファイル名を日本語にするなんてことは余り推奨されていない.しかしそれはあくまで TeX 自体と OS の技術的都合から派生する問題である.エンドユーザーにとっては,ファイルの名前は日本語にしておいた方が圧倒的に管理しやすい.日本語ならファイル名が短くても内容を的確に表現することができるし,検索もしやすい(*1).だからユーザーにとっては日本語ファイル名を使う方が生産的であり,望ましい.そこで,僕は Mac OS9 や Windows で TeX を使うときは実際そのようにしている.

 ところが,MacOS X になってから日本語のファイル名が使えなくなってしまった.具体的には,TeX のソースファイルの中で ¥includegraphic¥input などのコマンドにより外部ファイルを読込む場合,ファイル名やパス名に日本語が入っているとファイルが見つけられず,コンパイルができない.

 その理由は,Mac OS X が複数の文字コードを状況によって使い分けていることにある.OS X はファイル名を UTF-8 で管理しているが,テキストファイルの中身は Shift JIS になっている.
 例として,次の記述:
 ¥input{漢字.tex}
を含む,Shift JIS でエンコードされたソースを Shift JIS ベースの TeX コンパイラにかけた場合について考えよう.

 ファイル名 “漢字.tex” は Shift JIS によって
  8A BF 8E 9A 2E 74 65 78 
   (16進表記;下線部が「漢字」に相当)
とエンコードされているので,コンパイラはこのデータ列をOS X に渡してファイルを開くようリクエストする.ところが OS X は “漢字.tex” という名前を UTF-8 で
  E6 BC A2 E5 92 97 2E 74 65 78 
   (16進表記;下線部が「漢字」に相当)
とエンコードし,このデータ列を名前として登録しているから,両者が一致せず,ファイルは存在しないものと見なされてしまう.

 コンパイルの最中に外部ファイルを読込む必要が生じたとき,ファイルの名前がコンパイラ内部で UTF-8 形式になっていれば,問題は解決する.したがって, UTF-8 で内部処理が行える TeX コンパイラがあれば良い.そこで,そのようなブツが存在するのか探索した.調査の結果はTeX — utf-8 への対応にまとめた通りである.

 ここでは,各プログラムが本懸案の打開策となり得るかどうか整理しておこう(pTeX の Unicode 化に向けた動きのコンセプトからは大きく逸脱した用途ではあるけれども).

■ pteTeX3
 platex のオプション -kanji=UTF8 を指定すると,UTF-8 形式のソースがコンパイルできる.内部では UTF-8 を EUC に変換してから組版を行う.したがって,ここで意図する目的には使用できない.

■ XeTeX
 もともと Mac OS X 用に開発された UTF-8 ベースの TeXシステム.日本語も一応扱えるようだが,日本語の組版ルールをよく知っているわけではない等,扱いは不完全で,現状ではまだまともではない模様。よって見送る.

■ Utf82TeX
 本家の説明に「Utf82TeX は,UTF-8 文字テキストを pTeX で利用可能な形式に変換するプログラム」とある.プリプロセッサ的な役割を果たすという事であろうか.組版を行うのが pTeX なのであれば,やはりここで考えている目的には使えない.

■ upLaTeX
 本家の冒頭に「ASCII pTeX の内部コードを Unicode にする実験」とある.少し分かり難い表現だが,説明を読むと,UTF-8 形式のソースをそのまま内部処理して組版を行えるということのようだ.ビンゴ! これこそ探し求めていたものに他ならない.

 それでは早速 upLaTeX をインストールしてみよう.その記録は次項で.

(*1)
 英語だと,まず名前を付ける時点で無駄な時間を要してしまう.内容を的確に表す英語名を付けるにはそれなりの素養が必要だ.いい名前が思い浮かばない時はあきらめてつい適当な名前をつけてしまうが,これだと後日そのファイル名を見ても中身が何なのかさっぱり分からない.逆に,ファイルを検索するときには,適切な名前が付いていないファイルが候補に挙がらなくなってしまう.あれこれと検索語を変えて見つかるまで探し続けざるを得ない.さらに,もしその時付けた英語名にスペルミスでもあろうものなら,検索しても絶対に引っかからない.膨大なファイルの中から目的のファイルが見つけられないときのストレスと無駄な時間は仕事にとって大きな損失だ.だからファイル名は日本語に限る.
さらに,日本語なら一瞥するだけで名前の意味を了解できるが,英語だと文字をある程度読まなければならない.これは漢字が表意文字であることから来る大きなメリットだ.

2007年12月22日土曜日

TeX — utf-8 への対応

ptetex3
土村氏が2006/05/24 以降の ptetex3 でUTF-8への対応を試みている.→UTF-8対応(2)
これに関する奥村氏のコメント:
UTF-8への移行
EUC-JPからUTF-8への移行をためらう最大の原因は,pTeXが未対応なためであった。ところがptetexでptex -utf8,platex-utf8のコマンドができたので,(ほとんど)ためらう理由はなくなった。Mac OS XのターミナルをUTF-8にし,Linuxでもexport LANG=ja_JP.utf8し,.emacs.elもeuc-jpをすべてutf-8に変換した。


このパッケージは,utf-8 のコードを読込んで内部で EUC に変換する方法をとっている.従って,¥input{<file_name>}などのファイル名も EUC にしたあとでファイルを読込もうとするから,ファイル名が一致せず読込めない.

Utf82TeX

XeTeX
 →TeX wikiに解説あり.

upLaTeX
ASCII pTeXの内部コードをUnicodeにする実験.

Doc. Labo
Iimori's home page
MacOS X WorkShop の使い方

【参考記事】
\と¥の区別 backslash と円マークを表す内部コードがエンコーディングによってどう違うかを一覧表にしてまとめてある.

terminal — 日本語表示

Mac OS Xではファイル名はUTF-8、Unixに由来する部分では日本語EUC、従来のMac OSに由来する部分ではShift-JISと、複数の文字コードが混在して使用されている。〔出典:Mac OS X ターミナルでの日本語の扱いについて

ls コマンドにはオプション -v を付加する.
~/.bashrcなどの初期実行ファイルに
 alias ls='ls -v'
と書いておけば楽.

~/.inputrcに以下の記述を追加.
 set meta-flag on
 set convert-meta off
 set input-meta on
 set output-meta on


~/.bashrcに以下の記述を追加
 export LANG=ja_JP.UTF-8 # ←ここは en_US.UTF-8 でもよい
 export LESSCHARSET=utf-8


引用元:
古橋貞之の日記:開発環境としてのMac OS Xカスタマイズ
 Terminal の他,iTerm,SSHKeychain 等の記述もある
groundwalker.com:Terminalの日本語環境設定

plist の編集

Mac OS X:プロパティリスト(.plist)を上手に編集する方法
 /Developer/Applications/Property List Editor をつかう
 Terminal 上で pico などのエディタを使う
 エンコーディングを UTF-8 で開けばテキストエディットなどでも編集可.

plist の内容は defaults コマンドで閲覧・編集できる.
以下,Studio OneRoadの記事を引用.
OS X の Terminal から
 defaults write com.apple.Terminal TerminalOpaqueness .7
とすると、
 ~/Library/Preferences/com.apple.Terminal.plist

 TerminalOpaqueness
 .7
という行が追加される。

2007年12月21日金曜日

OS X に ApplWindow の代替品はないのか?

OS X は開いたフォルダへのアクセスがし難くてしようがない.Finder のウィンドウメニューへアクセスするにはふた手間かけなければいけないから面倒だ.また,F9 や F10 の機能は確かに面白いが,フォルダの数が増えてくるとアクセシビリティが悪くなる.

OS 9 には ApplWindow というアプリがあって,ホットスポット(事前に登録した画面上の場所;左下角,右側など)にマウスをもっていくだけで開いているフォルダの一覧を表示させることができたが,OS X 版はないようだ.

そこで代替品を探すことに.

■ Quicksilver

ランチャーとして一番もてはやされているのはどうやらこのアプリらしい.

BLACKTREE 本家サイト
オープンソースになった.色々いじってる人もでてきた→Cleaning up Quicksilver

「マイコミジャーナル:クリエーターのためのライフハック」の解説記事
(24) コマンドランチャーだけではもったいない強力フリーウェア
(25) キーボードとマウス操作を駆使してさらに便利に活用しよう
(26) プラグインでカスタマイズ、自分だけのQuickSilverを作ろう

「Macの手書き説明書」の解説記事
ブログ「J.S. Mach」の紹介記事
kei3.jp | head -n 10 diaryの紹介記事
Quicksilver で日本語入力を可能にする Automator ワークフロー

確かに作者のコンセプトはすばらしく,さまざまな可能性を持っていることは間違いないと思う.しかし,日本語に対応していないため,日本語名のフォルダを一発で引き出す事ができない.残念ながらこれでは困る.

■ DragThing
 →The official Drag Thing Home Page

■ 机の隅つつき
 →隅つつきページ

「関心空間」の口コミ

■ ASM
 →vercruesse|de

遂に見つけた! これこそ僕が欲しかった機能を具現化したものだ!!

教えてくれたのはHoshi's Mac OS X Page Thanks!

メニューバーの右端に,起動中のアプリケーションをリストアップしたプルダウンメニューが追加される.各アプリのウィンドウもサブメニューとして表示され,任意のウィンドウへ楽々移動できる.こりゃ嬉しい(^_^)
特別機能のClassicウィンドウモードをオンにすると,Finder のウィンドウかデスクトップをクリックすると,Finder で開いている全てのウィンドウが表示される.やっぱりこっちの方が使いやすいや.なぜこれがOS Xの標準ではないのか……極めて不思議.


参考記事
私のランチャーの使い方について
Mac買ったらすぐにいれるフリーソフトウェア まとめ:ランチャ

2007年12月19日水曜日

引っ越して来ました

楽天ブログは過去記事の閲覧機能が余りにもチープなので,こっちに移行することに決定!
やっぱり google が提供するサービスは情報の管理がしやすくていいや.
あっちに書き貯めた記事も,ちまちまとこっちに転記してゆくことにしよう…

2007年12月18日火曜日

TeX Tools for mi の副作用

 OS X Tiger で TeX 文書を作成するにあたり,mi と TeX Tools for mi を使う事にしたのだが,ある時突然,妙な事が起こるようになってしまった.

 TeX Tools for mi は自動的に Terminal のシェルを立ち上げて platex コマンドを実行するが,その際シェルに与えられた設定(ウィンドウの色と透明度や実行するコマンド)がいつのまにか Terminal のディフォルトになってしまったのだ.ウィンドウの色や透明度の設定は Terminal の「ウィンドウ設定」で元に戻す事ができたが,新しいシェルを起動した時に自動実行されるコマンド群の設定が削除できない.つまり,シェルを起動するたびに,とある TeX のソースが一々コンパイルされるという大変馬鹿げた状況が回避できなくなってしまったのだ.

 .bash_profile や .bashrc など,シェルが起動される度に呼ばれるファイルをチェックしてみたが,別段変更された形跡はない.また,Terminal のメニューから設定できる項目をいくら探してもそれらしいものは見当たらない.TeX Tools for mi 側の設定ファイルを削除してみたりもしたが,無駄だった.
 原因が分からないまま,Terminal を起動するたびに platex が実行される間抜けな状況に甘んじる日々が一週間程も続いた頃,ようやく原因が分かった.~/Library/Preferences の下にある Terminal の設定ファイル com.apple.Terminal.plist が,TeX Tools for mi によって書き換えられていたのだ.

 この事は,'*.plist' の中身が defaults というコマンドで編集できるという情報を得た結果,分かった.Terminal で
  defaults read com.apple.Terminal
を実行すると,com.apple.Terminal.plist に設定されているパラメータが一覧できる.その中に,ExecutionString というキーがあって,そこにシェルを起動した際実行されるコマンドのリストが設定されていたのだ.そこで,
  defaults delete com.apple.Terminal ExecutionString
を実行して,このキーを削除したところ,問題が解決された.めでたしめでたし.

なお,この問題は mi + Terminal 以外の場合にも発生する模様.例えば ここ.他に,2ch でも同様のトラブルで困った,という投稿有り.

ブックマーク
TeX on Mac OS X:GNU Stow を使って teTeX + pTeX をインストールする手順
このページの存在を知っていれば,TeX のインストールがもっと楽になっていただろう…(涙

2007年10月22日月曜日

terminal — 印刷(Things To Do)

$HOME/canon/cndrvcups-capt-1.50/ppd/CNCUPSLBP3000CAPTJ.ppd
の中身の一部を
/private/etc/cups/ppd/LBP3300.ppd
にコピーして両面印刷などの詳細設定が可能になるか確認してみる

2007年10月18日木曜日

TeX — xdvi のインストール (3) 裏話

 またもや愚痴.
 xdvi が動くようになるまでにはさんざん苦労させられ,時間を浪費する羽目になった.くたびれ損のまま終わるのも癪なので,その顛末を記しておく(書いたら書いたでまた余計な時間を使ってしまうことになるが).後日役に立てば儲けモノ.

■ xdvik-22.40v のケース

 初めて xdvi のインストールを試みた際に freetype の件でつまずいてしまったが,ログを残さなかったので何が悪かったのか今となっては調べようがない.そこで,まずは freetype を使わない設定でインストールしてみようと考えた.
 freetype を使わない場合の選択肢としては,代わりに VFlib を使うか(こちらが本来の仕様)あるいはどちらも使わず PK フォントで行くか,の2つがある.そこで,まずはライブラリを必要としない「PK フォントによる表示」の設定でコンパイルしてみる事にした.この場合,configure のオプションには
   --without-vflib
を指定すればよい(xdvik-22.40v-j1.17.patch の中身参照).
 このコンパイルは成功したが,できた xdvi を使って日本語フォントを含む dvi ファイルを開いてみると,xdvi が PK フォントを作るために呼んだ外部コマンドがうまく動作しない.フォントマップの設定が誤っているのだと思うが,しばし取り組んでみたものの上手くいかないので深追いをやめる.

 次は VFlib を使う設定で再インストールしてみることに.そのためには VFlib をまずインストールしなければならない.VFlib には2と3があり,最新版はそれぞれ VFlib2-2.25.6,VFlib3-3.6.11 である.
 まずは VFlib2-2.25.6 のインストールを試みるが,configure の段階でいきなりコケる.マシンタイプ powerpc-apple-darwin8.0 が理解できないようだ.configure の中身を眺め回した結果,マシンタイプは configure.guess で調べていることが判明.さらに,このプログラムは Free Software Foundation のフリーウェアだと分かる.どうやらインストール向け汎用ソフトらしい.
 そこで,xdvik-22.40v の作業用ディレクトリを覗いてみると,ここにもあった.しかもこっちの方がバージョンが上.ということで,xdvik-22.40v に付属の configure.guess をコピーして使ってみたところ,上手くいった.
 ところが,再び別のエラーでコンパイルが止まる.今度は configure.sub というアプリケーションがひっかかっていた.これも configure.guess と同じく汎用ソフトらしいので同様に対処.この結果,./configure は通るようになった.
 しかし,結局 make には失敗.
  fman.c:483: error: invalid storage class for function 'ReturnCache'
というエラーが出てコンパイルできない.

 あきらめて VFlib3-3.6.11 にトライしてみるが,こちらもやはり configure できなかったので,configure.guessconfigure.sub を上位バージョンに置き換えて再度以下の様に configure
   ./configure --with-kpathsea \
    --with-kpathsea-includedir=/usr/local/teTeX/include \
    --with-kpathsea-libdir=/usr/local/teTeX/lib
 これで configure は無事通ったが,make の方は
  /usr/bin/ld: can't locate file for: -lintl
なるエラーでコンパイルに失敗する.intlfind してみるがなにも見つからず.ここで頓挫.

 VFlib の configure で最初にコケた時点から,他の人はちゃんとインストールできたのか気になって色々検索していたが「あらかじめインストールしておく」程度の記述が散見される程度(例えば iTeX : ISSP TeX Distributuion Packagemakelog/pLaTeX).皆何のトラブルも無くインストールできているらしい.
 しかし変だ. VFlib3-3.6.11 に添付されている configure.guess が Mac に対応していない事を誰も書いていないのはなぜなのか.「あらかじめインストール」した人はどうやってコンパイルに成功したというのか.そもそも,VFlib の本家サイトが消失しているというのが解せない.

 しつこく検索していたところ,2ch の UNIX 板(過去ログ)に以下の記述を発見.
   67 名前:名無しさん@お腹いっぱい。 :02/10/16 11:22
    >>57 >>61-62
    METAFONTとかVFLIBとかもうobsoleteなんだけど
    そういう最新(?)情報って少なかったりするからねえ。

 何だって? 2002年の時点で obsolete だというのか? VFlib の機能はどこに吸収あるいは代替されたというのだろう.訳が分からない.「最新(?)情報が少ない」というよりも,久しぶりに UNIX に触れた僕にとっては「皆無」である.情報が離散していて時系列も無茶苦茶なので(日付の無いページが多いのは非常に困り者だ)後追いする方は大変なのだ.オープンソースが持つ最大の欠点にまたもや振り回された.

 とにかく,これ以上 VFlib にかかずらわるのはやめた方が良さそうだ.という訳で,freetype を使う設定で xdvi をコンパイルすることにした.
 ただし,TeXのインストール ー PukiWiki には,“Mac OS X 10.3 の場合,必ず OS 付属の X11 に同梱されている freetype を使うようにしなければならない”といった意味の記述があるので(でないと,日本語が表示されないらしい),/usr/X11R6/ の下にある freetype を使ってコンパイルする方針で行く.

 しかし,

./configure --prefix=/usr/local/teTeX --disable-multiplatform
--enable-freetype --with-xdvi-x-toolkit=xaw3d



22.84.8
./configure --prefix=/usr/local/teTeX \
--enable-freetype --disable-multiplatform \
--mandir='${prefix}/man' --with-xdvi-x-toolkit=xaw3d

2007年10月17日水曜日

TeX — xdvi のインストール (2) 再挑戦

xdvi のインストールに再挑戦した.以下そのメモ.

まずは内山氏のページに書かれている xdvik-22.40v のインストールから.〔最終的には最新版の xdvik-22.84.12 にしたい.〕

■ 必要ファイルの準備
xdvik-22.40v.tar.gz
CTAN にはすでに xdvik-22.40v が存在しないのでよそを探す.NetBSD においてあるソースファイルの中に発見.拝領する.
ちなみに FileWatcher で xdvik を探すと細かいバージョンがうじゃうじゃ出てくる.xdvik-22.40y1 などもここで入手できそう.
xdvik-22.40v-j1.17.patch.gz
日本語パッチは土村氏のxdvi 日本語化・機能拡張パッチのページから入手.
w3c-libwww-5.4.0.patch
あと,libwwwにあてるパッチ w3c-libwww-5.4.0.patch が必要とのことなので,もらっておく.

■ xdvik-22.40v 単独でインストール(試行)
 日本語パッチをあてずに,英語版が正しく導入できるかまずはテスト.
 なお,以下の記述において $HOME はユーザーのホームディレクトリを指す.また,ダウンロードしたファイルは全て $HOME にあり,以下の作業は $HOME から始めるものとする.

◆xdvik-22.40v の解凍
xdvik-22.40v.tar.gz
w3c-libwww-5.4.0.patch
 → tar.gzを作業用ディレクトリ $HOME/src/ に展開
  ↓ tar zxvf xdvik-22.40v.tar.gz -C ./src
 → $HOME/src の下に生成される xdvik-22.40v/libs/libwww でパッチあて
  ↓ cd ./src/xdvik-22.40v/libs/libwww
  ↓ patch -p1 < ../../../../w3c-libwww-5.4.0.patch
 → $HOME/src/xdvik-22.40v でコンパイル
  ↓ cd ../..
  ↓ ./configure --disable-multiplatform \
     --mandir='${prefix}/share/man' --with-x-toolkit=xaw3d
  ↓ make 2>&1 | tee make.log
 → 生成バイナリのインストール(make installはしない)
  ↓ sudo cp xdvi.bin /usr/local/teTeX/bin/xdvi
  ↓ sudo cp -r texmf /usr/local/teTeX/share/texmf/xdvi
  ↓ sudo updmap
  ↓ sudo mktexlsr
  ↓ sudo texconfig conf

■ 動作確認
 X11 を起動し,コマンドラインから xdvi を入力するとファイル入力画面が開く.ここで英字のみの dvi ファイルを選択して開くと,dvi ファイルが正しく表示された.成功.
 ただし,ウィンドウの大きさを変える右下角のつまみが画面からはみ出ていて触れない.メニューバーから「ウィンドウ」>「拡大/縮小」を実行するとウィンドウがリサイズされるので,とりあえずはこれでしのぐ事に.
 あと,表示画面が貧弱(gv と比べ大きく見劣りする).--with-x-toolkit=xaw3d を指定したのに反映されていないような気がする.しかし今まで X11 を使った事が無いので,なんとも判断できない.

■ xdvik-22.40v を日本語化してインストール
 xdvik-22.40v のインストールおよび動作の確認ができたので,今度は日本語パッチをあててインストールしてみる.
 一旦,$HOME/src/xdvik-22.40v を全て削除し,$HOME から改めて以下の作業を実行.


xdvik-22.40v.tar.gz
w3c-libwww-5.4.0.patch
xdvik-22.40v-j1.17.patch.gz
 → tar.gzを作業用ディレクトリ $HOME/src/ に展開
  ↓ tar zxvf xdvik-22.40v.tar.gz -C ./src
 → $HOME/src の下に生成される xdvik-22.40v/libs/libwww でパッチあて
  ↓ cd ./src/xdvik-22.40v/libs/libwww
  ↓ patch -p1 < ../../../../w3c-libwww-5.4.0.patch
 → $HOME/src/xdvik-22.40v でパッチあて
  ↓ cd ../..
  ↓ gunzip -c ../../xdvik-22.40v-j1.17.patch.gz | patch -p1
 → $HOME/src/xdvik-22.40v でコンパイル
  ↓ ./configure --disable-multiplatform --with-vflib=vf2ft \
     --mandir='${prefix}/man' --with-x-toolkit=xaw3d
  ↓ make 2>&1 | tee make.log
 → 生成バイナリのインストール(make installはしない
  ↓ cd texk/xdvik /* ←この行は重要 */
  ↓ sudo make install
  ↓ sudo cp xdvi.bin /usr/local/teTeX/bin/xdvi
  ↓ sudo cp -r texmf /usr/local/teTeX/share/texmf/xdvi
  ↓ sudo updmap
  ↓ sudo mktexlsr
  ↓ sudo texconfig conf


【補足】
TeXのインストール ー PukiWiki には,“Mac OS X 10.3 の場合,必ず OS 付属の X11 に同梱されている freetype を使うようにしなければならない”といった意味の記述がある.でないと,日本語が表示されないらしい.


【以下書きかけ】

ディレクトリ
  /usr/local/teTeX/share/texmf/fonts/opentype
を作成し,そこで以下のコマンドを実行し,otf フォントへのシンボリックリンクを作成.

sudo ln -s "$(grep -l HiraMinPro-W3 /System/Library/Fonts/*.otf)" HiraMinPro-W3.otf
sudo ln -s "$(grep -l HiraMinPro-W6 /System/Library/Fonts/*.otf)" HiraMinPro-W6.otf
sudo ln -s "$(grep -l HiraKakuPro-W3 /System/Library/Fonts/*.otf)" HiraKakuPro-W3.otf
sudo ln -s "$(grep -l HiraKakuPro-W6 /System/Library/Fonts/*.otf)" HiraKakuPro-W6.otf
sudo ln -s "$(grep -l HiraMaruPro-W4 /System/Library/Fonts/*.otf)" HiraMaruPro-W4.otf
sudo ln -s "$(grep -l HiraKakuStd-W8 /System/Library/Fonts/*.otf)" HiraKakuStd-W8.otf


# --with-vflib=vf2ft
min /usr/local/teTeX/share/texmf/fonts/opentype/HiraMinPro-W3.otf
nmin /usr/local/teTeX/share/texmf/fonts/opentype/HiraMinPro-W3.otf
goth /usr/local/teTeX/share/texmf/fonts/opentype/HiraKakuPro-W6.otf
tmin /usr/local/teTeX/share/texmf/fonts/opentype/HiraMinPro-W3.otf
tgoth /usr/local/teTeX/share/texmf/fonts/opentype/HiraKakuPro-W6.otf
ngoth /usr/local/teTeX/share/texmf/fonts/opentype/HiraKakuPro-W6.otf
jis /usr/local/teTeX/share/texmf/fonts/opentype/HiraMinPro-W3.otf
jisg /usr/local/teTeX/share/texmf/fonts/opentype/HiraKakuPro-W6.otf
# dm /usr/local/teTeX/share/texmf/fonts/opentype/HiraMinPro-W3.otf # not checked
# dg /usr/local/teTeX/share/texmf/fonts/opentype/HiraKakuPro-W6.otf # not checked
mgoth /usr/local/teTeX/share/texmf/fonts/opentype/HiraMaruPro-W4.otf
fmin /usr/local/teTeX/share/texmf/fonts/opentype/HiraMinPro-W6.otf
fgoth /usr/local/teTeX/share/texmf/fonts/opentype/HiraKakuPro-W8.otf


xdvik-22.84.8
./configure --prefix=/usr/local/teTeX \
--disable-multiplatform --mandir='${prefix}/man' --enable-freetype --with-xdvi-x-toolkit=xaw3d

2007年10月11日木曜日

TeX — xdvi のインストール (1)ミスって大損害

 この長文はほとんど愚痴です.読む価値はありません.ただし,最後のパラグラフには重要な情報が書かれていると思います.

 xdvik をインストールしてみたが失敗に終わった.
 もともと xdvik のインストールには難しいところがある.xdvik は他のアプリケーションに比べて更新頻度が高く,xdvik-22.15,22.40,そして 22.8x(x=1〜4)と多数のバージョンがあるし,また日本語パッチも本家への追従と独自の改変が重ねられているのでリリースが沢山ある.ところが,選択の参考になる記事や適用例がちっとも見つからない.

 内山氏のページには 22.40 のインストール方法が記載されているが,リンクの張られた先に既にそのバージョンはない.旧バージョンを置いてないのは新バージョンの使用を強く推奨しているためなんじゃなかろうか,という印象を受けてしまったので,22.40 の探索をやめて最新版をインストールする方針に決定.
 そこで上記リンク先から最新版の xdvik-22.84.12.tar.gz を拾い,それに対応する日本語パッチ xdvik-22.84.12-j1.34.patch.gz を探し出して拝領.

 ただし,この組み合わせをインストールした紹介例がネット上に見当たらず,Mac OS X で何の改変もなしに動くのかさっぱり判断できないので,内山氏らの書いた 22.40 のインストール方法を参考にしながらダメモトでやってみる.

 で結果は失敗.コンパイルはきちんと完了し,X11 上で xdvik を起動することはできたものの,ファイルを読み込むと何も表示されずにアプリケーションが終了してしまう.フォントの設定が悪いのだろうか.
 そこで日本語パッチをあてるのをやめ,xdvik-22.84.12 のまま再コンパイルしてみるが,できたアプリで英語の dvi ファイルを開いてみてもやっぱりダメ.
 configure する際与えるパラメータを変えてみたり,cnf ファイルをいじってみたりしたが,ダメなものはダメだった.

 何が悪いのかといろいろググッているうちにエラい事を発見.内山氏は xdvi のインストールに先立って FreeType をインストールするよう指示しているが,別のページ(PukiWiki)によると,Mac OS X 10.3 の場合、必ず OS 付属の X11 に同梱されている freetype を使うようにしなければならないらしい.う〜む.内山氏のページは OS X 10.2 を対象に書かれているので,おそらく PukiWiki の記述の方が新しいのだろう.OS X 10.4 の場合どうすべきなのかは検索しても見当たらないが,10.3 に準ずると考えるのが妥当ではないか.

 ということで,自分でインストールした FreeType 関連のファイルをあわてて /usr から別の場所に非難させ,改めて xdvik をコンパイルしてみたが結果はやはりバツ.

 しかたがないので一旦 xdvik の導入を保留にし,内山氏の Mxdvi のインストールを先に片付けることにした.ところが,それこそ解説のページや添付のReadme 1st に「書いてある通りにやってみた」のだが動かない.Mac OS X Tiger で Mxdvi を使えている例がちゃんとあるので,こちら側の問題であることは間違いなさそうだが,何度も文書を読み返し,何度もやり直してみたものの,結局どこに落ち度があるのか見つけられなかった.「書いてある通りにやってみたけど動きません」的な質問を作者にぶつける訳にもいかないし,困った…

 dvi の viewer が無いのはかなり不便だが,もう一手間かけて pdf までもっていけば何とかなると考え,インストールを一旦中止し,実際に TeX で文書を作成する作業に戻ることにした. ところが!いつの間にか platex が正常に動かなくなっているではないか! 今まで見た事も無いエラーでコンパイルが中止されてしまう.

 「xdvik の作業中に手順を誤ると $TEXMF/web2c/texmf.cnfが上書きされてしまう」とあちこちにいてあったので,「あれ?間違えた覚えはないけども,多分原因はこれだな」と思い,念のためにとっておいたtexmf.cnfのバックアップをリストアした.ところが,それでも platex が動かない!

 mktexlsr を実行してみたが結果は同じ事.platex が吐くエラーメッセージを見ると,どこかの設定ファイルが致命的に書き換えられているようだが,こうなるともう僕のスキルでは原因の突き止めようがない.よしんば書き換えられた設定ファイルが探し出せたとしても,その中身をどのように修正すればよいか皆目見当がつかないだろう.

 それならば teTeX と pTeX をコンパイルし直した方が早い.そう判断して,まず teTeX を再インストールしたのだが,sudo make install が正常終了しなくなったではないか!(泣)tcfmgr.mapfmtutil.cnf が見つからないと言われる.よく調べてみると,fmtutil を実行する時点でパスがきちんと通っていないことが判明.そんなこと言われても,$prefix はデフォルトを使っているから,configure するときオプションにパスを指定する必要などないし,実際最初コンパイルしたときはそれでうまく行っている.一体なにが最初にインストールしたときと違っているというのか.

 これ以上踏ん張ってもラチがあかないと判断し,ディレクトリ teTeXsrc をばっさり削除して一からインストールしなおす.ところが,やはり fmtutil.cnf が見つからず sudo make install が異常終了.嗚呼 orz.このパラグラフの作業を3回ほど繰り返すも,結果はやっぱり orz.相変わらず,tcfmgr.mapfmtutil.cnf が見つからないと言われる.いつどこでパスの設定がおかしくなっているのかさっぱり分からない.

 teTeXsrc を削除して一からインストールしているのにうまくいかないなんて,『あり得ないことが起こっている』としか言いようが無いではないか.
 こうなったらヤケクソである.OS X 10.4 を再インストールだ.なんでそこまで遡らなきゃならんのだ!と毒づきながら,OS を入れ直し,Developer Tools を入れ直し,X11 を入れ直し,そのあとようやく祈る思いで teTeX をコンパイルしてインストール.で結果は,やっぱり sudo make install が異常終了.嗚呼あぁぁぁぁ! もう泣きそうである.

 やはり make する時点でパスの設定がおかしくなっているという問題に正面から取り組まざるを得ないようだ.嫌だけど.

 気を取り直して make ファイルの中身など色々眺めているときに,ふと環境変数はどうなっているのかと思い,set コマンドを実行したところ,
  TEXMFCNF=/usr/local/teTeX/share/texmf
という結果が目に入る.あれ? 何故この変数だけ残っているのだろうか.Makefile の中には他にも色々変数が定義されていたはずなのに,TEXMFCNF だけ値が残っているなんておかしい.

 新しいシェルを起動してもTEXMFCNFにはこの値が残っている.
 ターミナルを再起動してもTEXMFCNFにはこの値が残っている.
 何とマックを再起動してもTEXMFCNFにはこの値が残っている.
 ありえん./etc/profile.bash_profile.bashrc のどれにもそんな事は書いてないし,make も実行していないのに値が入っているなんてありえん.これは一体どういう事なのか.

頭を疑問符で一杯にしながらさらにネットを徘徊しているうちに,とんでもない情報を発見.田中氏によると,なんと Mac OS X では Finder から起動するアプリケーションに渡す環境変数は ~/.MacOSX/environment.plist というファイルに記述することになっており,なんとそこで設定した環境変数は Mac OS X 全体で有効になるというのだ! それは知らなんだ.

 つまりこれは Terminal で bash を使う立場からすれば,/etc/profile.bash_profile.bashrc の他にも環境変数を設定する場所があるという事ではないか.
 なんてこったい.Mxdvi をインストールするとき, ~/.MacOSX/environment.plist を作って
   <key>TEXMFCNF</key>
   <string>/usr/local/teTeX/share/texmf</string>

と書いたではないか.ここでの設定がずっとついて回っていたのだ.どうりで何をやっても TEXMFCNF の値が消えない訳だ.てっきり environment.plist は Mxdvi に固有のファイルだと思い込んでいたが,とんでもない勘違いだったのか.

 そこで,environment.plist をブッ殺してから Mac を再起動し,teTeX のインストール作業をやってみたところ,遂に!コンパイルに成功した!!!! ここに辿り着くまでの道のりの如何に長かったことか.心底くたびれた.

 しかし,それにしても,だ.~/.MacOSX/environment.plist
  TEXMFCNF=/usr/local/teTeX/share/texmf
と値を設定したせいで,teTeX がコンパイルできなくなるなんて,ヒドいですよ内山さ〜んと思いながら改めて readme 1st.rtf を眺めて驚いた.
  TEXMFCNF=/usr/local/share/texmf/web2c
となるようにしろと書いてあるではないか.これはつまり texmf ではなくtexmf/web2c を指定しろと言う事だ.

 それで思い出した.僕の場合,$prefix=/usr/local/teTeX だから,
  TEXMFCNF=/usr/local/teTeX/share/texmf/web2c
と書くべきであり,実際,最初はそう書いて Mxdvi を動作させてみたのに動かなかったのだ.それで試しに /web2c を消し,
  TEXMFCNF=/usr/local/teTeX/share/texmf
としてみたが,やはり動作しなかったので「あかんわ」と諦め,/web2c を削ったまんまの状態で Mxdvi に拘るのをやめてしまった.元に戻す「一手」を省略したばっかりに,TEXMFCNF にはずっと誤った値が入ったままとなって teTeX のコンパイルに支障を来すことになり,その結果とてつもない時間の損失が生じる羽目になったのである.

 実は Mxdvi の動作確認を行う時点で,僕は ~/.MacOSX/environment.plist を Mxdvi に固有のファイルと思い込んでしまった(そりゃ少しは変だなと思いましたよ.こんなグローバルな名前でいいのかって).だから environment.plist に加えた変更は Mxdvi を再起動すれば反映されると思った.しかし実際は,environment.plist の変更を有効にするためには Mac を再起動しなければならない.この事を知らなかったために,「Mxdvi が動作しない」と判断してしまい,下手に environment.plist をいじり, TeX 全体に悪影響を及ぼす罠を自分で仕込んでしまう結果になったのである.

 そりゃ,自分の稚拙な判断で勝手にファイルを書き換えたんだから自分の責任ですよ.だけど,environment.plist の変更を有効にするためには Mac を再起動しなければならない というのは OS X ユーザーの「常識」に迄は達していないと思うので,やっぱり Mxdvi の ReadMe にはきちんと書いておいて欲しいですよね,内山先生.これって贅沢ですか?

2007年10月9日火曜日

TeX — Ghostscript と gv のインストール

  MacOS X — TeX のインストールで platex, dvips, dvipdfmx が一通り動くようになった.図の無い文書ならこれで十分だが,eps 形式の図を取り込んだ文書を作るためにはさらに ghostscript が必要となる.

 また PSTricks や xypic を使って図を組み込む場合,dvi → pdf の直接変換では図が上手く表示されないので,dvi → ps → pdf の手順を踏まなければならない.そこで ghostscript に付いてくる ps2pdf14(ps → pdf)も要る.

ということで,ghostscript と使い勝手の良いヴィューワの gv をインストールする.

■ ghostscript 8.53 のインストール
 インストールは作者不明のGhostscript のインストール(Mac OS X 10.4 Tiger)によった.最新版は 8.54 だが,上記の記事が 8.53 を対象に書かれているので,安全のため 8.53 を選択することにした.

なお,以下の記述において $HOME はユーザーのホームディレクトリを指す.また,ダウンロードしたファイルは全て $HOME にあり,以下の作業は $HOME から始めるものとする.

◆プログラムとフォントのインストール
ghostscript-8.53.tar.gz
zlib-1.2.3.tar.gz
ghostscript-fonts-other-6.0.tar.gz (←実際のリンクは ftp://)
ghostscript-fonts-std-8.11.tar.gz (←実際のリンクは ftp://)
 → 4つとも作業用ディレクトリ $HOME/src/ に展開
  ↓ tar zxvf ghostscript-8.53.tar.gz -C ./src
  ↓ tar zxvf zlib-1.2.3.tar.gz -C ./src
  ↓ tar zxvf ghostscript-fonts-other-6.0.tar.gz -C ./src
  ↓ tar zxvf ghostscript-fonts-std-8.11.tar.gz -C ./src
 → その下に生成される ghostscript-8.53/zlib を差替え
  ↓ cd ./src/ghostscript-8.53
  ↓ rm -r zlib
  ↓ mv ../zlib-1.2.3 ./zlib
 → $HOME/src/ghostscript-8.53 でコンパイルし,インストール
  ↓ ./configure
  ↓ make 2>&1 | tee make.log
  ↓ sudo make install 2>&1 | tee make-install.log
 → フォントを移動
  ↓ cd $HOME/src
  ↓ sudo mv fonts /usr/local/share/ghostscript/.
◆URW フォント置き換え
geturw.sh (←フォントをダウンロードするためのシェルスクリプト)
 → 正しいフォントを落として元のファイルを上書き
  ↓ mkdir $HOME/src/urw
  ↓ cd $HOME/src/urw
  ↓ sh $HOME/geturw.sh
  ↓ sudo mv *.pfb /usr/local/share/ghostscript/fonts/.
◆ヒラギノフォントの登録
必要ファイルなし
 → ヒラギノフォントへのリンクを作成
  ↓ sudo mkdir /usr/local/share/ghostscript/8.53/Resource/CIDFont
  ↓ cd /usr/local/share/ghostscript/8.53/Resource/CIDFont
  ↓ sudo ln -s "$(grep -l HiraMinPro-W3 /System/Library/Fonts/*.otf)" \
    HiraMinPro-W3
  ↓ sudo ln -s "$(grep -l HiraMinPro-W6 /System/Library/Fonts/*.otf)" \
     HiraMinPro-W6
  ↓ sudo ln -s "$(grep -l HiraKakuPro-W3 /System/Library/Fonts/*.otf)" \
    HiraKakuPro-W3
  ↓ sudo ln -s "$(grep -l HiraKakuPro-W6 /System/Library/Fonts/*.otf)" \
    HiraKakuPro-W6
  ↓ sudo ln -s "$(grep -l HiraMaruPro-W4 /System/Library/Fonts/*.otf)" \
    HiraMaruPro-W4
  ↓ sudo ln -s "$(grep -l HiraKakuStd-W8 /System/Library/Fonts/*.otf)" \
    HiraKakuStd-W8
◆リュウミンライトと中ゴシックBBBをヒラギノで代替
必要ファイルなし
 → cidfmapに情報を追加
  ↓ sudo vi /usr/local/share/ghostscript/8.53/lib/cidfmap
  ↓ Goと打ち,最終行に以下の6行を追加
     /Ryumin-Light /HiraMinPro-W3 ;
     /Ryumin-Regular /HiraMinPro-W6 ;
     /FutoMinA101-Bold /HiraKakuStd-W8 ;
     /GothicBBB-Medium /HiraKakuPro-W3 ;
     /FutoGoB101-Bold /HiraKakuPro-W6 ;
     /Jun101-Light /HiraMaruPro-W4 ;
  ↓ [esc]:wqと打ち,エディタを保存終了
◆その他の日本語フォントを設定
Font.tar.bz2
 → $HOME/src の下に展開.
  ↓ cd $HOME
  ↓ tar jxvf Font.tar.bz2 -C ./src
 → src の下に生成されたフォントを所定位置に移動
  ↓ sudo mv ./src/Font /usr/local/share/ghostscript/8.53/Resource/.

◆動作確認
dvipsの動作確認をしたとき作ったファイル jclasses.ps をPDFファイルに変換してみる.
   ps2pdf14 jclasses.ps jclasses.pdf
少し時間がかかるが,何も表示されずにコマンドプロンプトが帰ってくれば成功.jclasses.pdfが出来ている.


■ gv 3.6.1 のインストール(要 libXaw3d-1.5 ライブラリ)
 gv のインストールは 内山氏の書いた方法作者不明のページの記述を総合して行った.
〔理由〕一度内山氏の書いた方法に従って gv のインストールを試みたが,gv のコンパイルにおいて,
  sudo make install
が失敗に終わり,実行ファイル gv が生成されなかったため.

なお,インストールしたバージョンは作者不明のページに記述のある gv-3.6.1

gv-3.6.1.tar.gz
 → 作業用ディレクトリ $HOME/src/ に展開
  ↓ cd
  ↓ tar zxvf gv-3.6.1.tar.gz -C ./src
  ↓ cd ./src/gv-3.6.1
  ↓ xmkmf -a (←これは必要ないと思われる)
 → gv-3.6.1/src/setenv.cの修正
  ↓ vi ./src/setenv.c
  ↓ 100Giconst[spc][esc]と打ち,100行目を次のように変更.
      変更前: char *name;
    ⇒ 変更後: const char *name;
  ↓ 42Gcwconst[esc]と打ち,42行目を次のように変更.
      変更前: register char *name, *value;
    ⇒ 変更後: const char *name, *value;
  ↓ [esc]:wqと打ち,エディタを保存終了
 → $HOME/src/gv-3.6.1 でコンパイルし,インストール
  ↓ ./configure
  ↓ make
  ↓ sudo make install

◆動作確認
 Finder から X11 を起動する.dvipsの動作確認をしたとき作ったファイル jclasses.ps のあるディレクトリに移動して
   gv jclasses.ps
を実行.gv のウィンドウが開き,1ページ目が正しく表示されればインストール成功(ただし,表示に必要なフォントを内部で準備するため,ページが表示されるまでには多少時間を要する).

TeX — TeX, dvipsk, dvipdfmx のインストール

 内山氏の記述に従って teTeX,pTeX,dvipsk,dvipdfmx をインストールした.以下にその際の記録をまとめておく.
 なお,TeXのインストール先はデフォルト $PREFIX=/usr/local/teTeX とする.また,$HOME はユーザーのホームディレクトリを指し,ダウンロードしたアーカイブファイルはすべてこの中においてあるものとする.

■ teTeXのインストール
tetex-texmf-3.0.tar.gz
 → $PREFIX/share/texmf-dist に展開
tetex-texmfsrc-3.0.tar.gz
 → $PREFIX/share/texmf-dist に展開
tetex-src-3.0.tar.gz
 → 作業用ディレクトリ $HOME/src/ に展開
 → $HOME/src/tetex-src-3.0/ でコンパイルし,インストール
  ↓ ./configure --disable-multiplatform --without-xdvik --without-oxdvik
  ↓ make 2>&1 | tee make.log
  ↓ sudo make install 2>&1 | tee make-install.log
 → 環境変数の内容を確認
  ↓ texconfig conf

■ pTeX のインストール(要 mktemp コマンド)
ptex-texmf-2.3.tar.gz
 → $PREFIX/share/texmf に展開
ptex-src-3.1.8.1.tar.gz
 → 作業用ディレクトリ $HOME/src/tetex-src-3.0/texk/web2c に展開
 → その下に生成される/ptex-src-3.1.8.1 でコンパイルし,インストール
  ↓ ./configure sjis
  ↓ make
  ↓ sudo make install

◆動作確認
 ここまできたら,
  platex jclasses.dtx
を実行してインストールが正常に行われたか確認してみる.
--------------------------ここから---
*******************
* Checksum passed *
*******************
) [59] (./jclasses.aux)

LaTeX Font Warning: Some font shapes were not available, defaults substituted.

)
(see the transcript file for additional information)
Output written on jclasses.dvi (59 pages, 198104 bytes).
Transcript written on jclasses.log.

--------------------------ここまで---
と表示されてコンパイルが終了すればOK.jclasses.dvi が生成されているはず.フォントに関する警告が出るが,これは問題ない.
 なお,この時点ではまだ jclasses.dvi の中身を見ることはできない.

■ dvipsk の日本語化とインストール
dvipsk-jpatch-p1.7.tar.gz
 → 作業用ディレクトリ $HOME/src/teTeX-src-3.0/texk/dvipsk に展開
 → ここでパッチをあてる
  ↓ patch -p1 < dvipsk-p1.7.patch
 → ここでコンパイルし,インストール
  ↓ ./configure --prefix=/usr/local/teTeX --disable-multiplatform
  ↓ make
  ↓ sudo make install
 → フォントマップをアップデート
 ↓ sudo updmap
〔注〕内山氏の記述には赤字の部分が無いが,これを実行しないとうまく動作しないのではないかと思う.
〔2007/10/10追記〕
 後日再インストールした際には,configure しなくてもコンパイルできた.前やったときは make install の段階でエラーが出たと記憶しているのだが.何故?

◆動作確認
  dvips jclasses.dvi
を実行すると(先に jclasses.dtxをコンパイルして出来たファイル),
-------------------------------ここから---
This is dvips(k) p1.7 Copyright 2005 ASCII Corp.(www-ptex@ascii.co.jp)
based on dvips(k) 5.95a Copyright 2005 Radical Eye Software (www.radicaleye.com)
' TeX output 2007.09.25:0710' -> jclasses.ps
<tex.pro><texps.pro>. <cmsl10.pfb><cmsl9.pfb><cmbxti10.pfb><cmti10.pfb>
<cmsy10.pfb><cmmi9.pfb><cmss10.pfb><cmbx12.pfb><cmtt10.pfb><cmr9.pfb>
<cmsltt10.pfb><cmss9.pfb><cmsy9.pfb><cmtt9.pfb><cmcsc10.pfb><cmmi10.pfb>
<cmr7.pfb><cmr10.pfb><cmbx10.pfb><cmmi12.pfb><cmr12.pfb><cmr17.pfb>[1] [2]
[3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19]
[20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34]
[35] [36] [37] [38] [39] [40] [41] [42] [43] [44] [45] [46] [47] [48] [49]
[50] [51] [52] [53] [54] [55] [56] [57] [58] [59]

-------------------------------ここまで---
となればOK.実際には初めてこの命令を実行すると,フォントが作成されるのでもっと色々なメッセージが表示されるし,コンパイルにかかる時間も長い.
 コンパイルが成功すれば,jclasses.ps が生成する.このファイルをダブルクリックすると,MacOS X 添付けの "プレビュー" が起動し,内部で pdf に変換したものを表示してくれるので,正しくコンパイルされているか確認すると良い.ただし,日本語は文字化けする.これは "プレビュー" の仕様(理由は誰かが書いていたが,URLを失念した).

■dvipdfmx のインストール
dvipdfmx-20070518.tar.gz
 → 作業用ディレクトリ $HOME/src/tetex-src-3.0/texk に展開
 → その下に生成される /dvipdfmx-20070518 でコンパイルし,インストール
  ↓ ./configure --prefix=/usr/local/teTeX
  ↓ make
  ↓ sudo make install
aj16.tar.Z
 → 任意の作業用ディレクトリに展開
 → その下に生成される /CMap$PREFIX/share/texmf/dvipdfm の下に移動
 → mktexlsr を実行
 → $PREFIX/share/texmf/dvipdfm/cid-x.map に以下の記述を追加する.
$PREFIX/share/texmf/fonts/map/dvipdfm/cid-x.map の誤り.[2010/04/12追記]
  <cid-x.map>の中身
   rml H Ryumin-Light
   gbm H GothicBBB-Medium
   rmlv V Ryumin-Light
   gbmv V GothicBBB-Medium
〔注〕内山氏の記述では
 $PREFIX/share/texmf/fonts/map/dvipdfm/cid-x.map
を作成せよとあるが,これは dvipdfmx-20050821 をインストールする場合の話.
 今回インストールした dvipdfmx-20070518 では,最初から$PREFIX/share/texmf/dvipdfm の中に cid-x.map が存在しているので,そのファイルにデータを追記する.$PREFIX/share/texmf/fonts/map/dvipdfm/cid-x.mapを作成する必要は無い.

 上記の記述は誤り.
/CMapcid-x.map の置き場所は異なる.
   前者は $PREFIX/share/texmf/dvipdfm
   後者は $PREFIX/share/texmf/fonts/map/dvipdfm/cid-x.map
である.

◆動作確認
  dvipdfmx jclasses.dvi
を実行すると(先に jclasses.dtxをコンパイルして出来たファイル),
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーここからーーー
jclasses.dvi -> jclasses.pdf
[1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16][17][18][19][20][21]
[22][23][24][25][26][27][28][29][30][31][32][33][34][35][36][37][38][39][40]
[41][42][43][44][45][46][47][48][49][50][51][52][53][54][55][56][57][58][59]
198136 bytes written

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーここまでーーー
となればOK.'jclasses.pdf' が生成する.このファイルは "プレビュー" か Acrobat Reader で閲覧可.

〔注〕この時点では,eps ファイルを図として取り込んだファイルを pdf に変換すると Warning が出る.出来た pdf ファイルでは図の部分が空白になる.この問題は Ghostscript をインストールすれば解決するはず.その証拠に,dvips で作成した .ps ファイルを "プレビュー" で開くと,日本語は文字化けするが図はきちんと表示される.

若干問題点は残るが,インストール自体は完了.つぎは Ghostscript と gv をインストールしよう.

2007年10月8日月曜日

terminal — 覚え書き

◆rootアカウントの有効化(2007/10/06追加)
Netinfo マネージャを起動し、「ドメイン」メニューから「セキュリテイ」-「ルートユーザを有効」を選択し、rootアカウントを有効にする必要がある。(出典:田中俊光氏の覚書き)

◆シェルの登録場所
/etc/shells
---------------------------------------------<contents>
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
/bin/zsh

---------------------------------------------<contents>


◆bashの設定ファイル(出典:Cyberam

/etc/profile
 ログイン時にだけ実行されるシステム全体の設が記述されたスクリプトファイル。
~/.bash_profile
 ログイン時にだけ実行されるスクリプトファイル。
~/.bashrc
 bashの起動時に実行されるスクリプトファイル。起動される度に実行される。
~/.bash_logout
 bashをログアウトするときに実行されるスクリプトファイル。
~/.bash_history
 コマンド履歴が保存されており、環境変数HISTSIZEの値を変更することで保存するコマンド履歴数を変更できる。
ログアウトの度にコマンド履歴をリセットしたいのであれば~/.bash_logoutに"rm -f $HOME/.bash_history"を記述する。

また~/.bash_profileなどのスクリプトの内容を適用するためにログアウトし直すのは面倒なので
 #source ~/.bash_profile
を実行することですぐに設定を有効にできる。



◆tcsh の設定ファイル(出典:UNIXの部屋 検索: ~/.tcshrc
~/.tcshrc
ログイン時に自動的に読まれる。
このファイルが無かった場合、~/.cshrc が読まれる。tcsh を使っている場合、初期設定を書くには、大別して3つのやり方がある。

1) 絶対に tcsh しか使わないなら、全てのシェル変数、環境変数、alias、complete などの設定を~/.tcshrc に書けばよい。

2) たまに csh を使うなら、csh・tcsh 共用の設定 (tcsh の内部コマンドである complete などを除いたもの) を ~/.cshrc に書いて、その中で
if ( ${?tcsh} ) then
endif

を書き、この if 文の中に tcsh 専用の設定を書けばよい。

3) あるいは、~/.cshrc に csh・tcsh 共用の設定を書き、~/.tcshrc に tcsh 専用の設定を書いて、~/.tcshrc の最後に
source ~/.cshrc
としてもよい。どの方法を取るかは好みの問題。


Terminal を走らせると、/etc/profile~/.bash_profile が 実行されるが、/etc/bashrc~/.bashrc は実行されない。 それに対し、X11からxtermを走らせると、 /etc/profile~/.bash_profile は実行されないが、 /etc/bashrc~/.bashrcが実行される。

そこで、Terminal, xterm, どちらを走らせても、 PATH と DISPLAYの環境変数が設定されるように、 共通の設定は ~/.bashrc にまとめ、 ~/.bash_profileからは~/.bashrc を実行する。

Linux全般編 シェルの基本操作法(後編3:シェル変数と環境変数)より抜粋・改変

シェル変数:現在実行中のシェルのみで有効
環境変数:シェルから実行したコマンドにも引き継がれる

bashでは,シェル変数と環境変数はほとんど同列の扱い
シェル変数をエクスポートすると環境変数になる

tcshでは,シェル変数と環境変数を別の変数として扱う
変数に値を設定するコマンドも異なる

●bashの場合

シェル変数varに値「example」を設定
  $ var=example
このシェル変数を環境変数に
  $ export var
シェル変数varを参照するには${var}と記述.
シェル変数varの削除(設定値ではなく,変数自体を削除)
  $ unset var

現在設定されているシェル変数の一覧を出力
  $ set
特定のシェル変数varの設定値だけを出力(「$」を忘れない)
  $ echo $var

設定されている環境変数の一覧
  $ printenv
特定の環境変数varの設定値を出力
  $ printenv var

●tcshの場合

シェル変数varに値「example」を設定
  % set var = example
シェル変数varの削除(設定値ではなく,変数自体を削除)
  % unset var
環境変数VARを削除
  % unsetenv VAR
現在設定されているシェル変数の一覧を出力
  % set

環境変数VARに値「example」を設定
  % setenv VAR example
設定されている環境変数の一覧
  % printenv
特定の環境変数varの設定値を出力
  % printenv var



■リンク
Linux コマンド入門
bashとシェルスクリプトの基礎

2007年10月2日火曜日

TeX — 本体インストール後の不具合調整など

Mac OS X Tiger にインストールした TeX と Ghostscript の動作確認をしてみて気づいた不具合とその解決方法について.

■ ライブラリ(スタイルファイル)の確認
 ほとんどのスタイルファイルは以下の2箇所に置かれている.
   /usr/local/teTeX/share/texmf-dist/tex/latex
   /usr/local/teTeX/share/texmf-dist/tex/generic

 teTeX-3.0/pTeX-3.1.8.1 に同梱されていなかったスタイルファイルを置く場所として
    /usr/local/teTeX/share/texmf-dist/tex/contrib
を作成.とりあえず
   ifsym.sty (v1.2)
   eclbkbox.sty (May 28, 1993)
   jumoline.sty (2001/05/31 v1.2)
をここに入れた.

 僕は Mac OS9,Windows2000,WindowsXP でも TeX を使用しているが,それぞれのマシンによってスタイルファイルのバージョンが異なるというのはあまり気持ちの良いものではない.よって
 【宿題】使用頻度の高いものはバージョンの確認と統一を実施すべし.

■ 奥村氏の jsarticle.cls などの組み込み
奥村氏が作成した新ドキュメントクラスの最新版061106を以下の場所に配置.
   $PREFIX/share/texmf/ptex/platex/jsclasses-061106

■ eps ファイルを含む dvi が dvipdfmx でうまくコンパイルできない
【症状】dvipdfmx を実行すると次のような警告がでる.
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーここからーーー
** WARNING ** No image converter available for converting file "./picture.eps" to PDF format.
** WARNING ** >> Please check if you have 'D' option in config file.
** WARNING ** pdf: image inclusion failed for "picture.eps".
** WARNING ** Failed to read image file: picture.eps
** WARNING ** Interpreting special command PSfile (ps:) failed.
** WARNING ** >> at page="1" position="(336.646, 568.39)" (in PDF)
** WARNING ** >> xxx "PSfile="picture.eps" llx=53 lly=644 urx=218 ury=760 rwi=19"

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーここまでーーー
【対策】警告メッセージに書かれている通り,epsのコンバータが指定されていないことが原因.設定ファイル dvipdfmx.cfg の中で対処法を指示してやれば良い.そこで
   /usr/local/teTeX/share/texmf/dvipdfm/dvipdfmx.cfg
の135行目行頭の%を削除し,次のようにする.
134 %% GhostScript (Unix/Linux):
135 D "gs -q -dNOPAUSE -dBATCH -sPAPERSIZE=a0 -sDEVICE=pdfwrite
  -dCompatibilityLevel=1.3 -dAutoFilterGrayImages=false
  -dGrayImageFilter=/FlateEncode -dAutoFilterColorImages=false
  -dColorImageFilter=/FlateEncode -dUseFlateCompression=true -sOutputFile=%o
  %i -c quit"


■ 奥村氏の jsarticle.cls を使用すると tex ファイルのコンパイルに失敗する
【症状】jis の tfm と mf を作ろうとするが jis が見つからず失敗する(以下のメッセージ参照)
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーここからーーー
kpathsea: Running mktextfm jis
mktextfm: Running mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input jis
This is METAFONT, Version 2.71828 (Web2C 7.5.4)

kpathsea: Running mktexmf jis
! I can't find file `jis'.
<*> \mode:=ljfour; mag:=1; nonstopmode; input jis

Please type another input file name
! Emergency stop.
<*> \mode:=ljfour; mag:=1; nonstopmode; input jis

Transcript written on mfput.log.
grep: jis.log: No such file or directory
mktextfm: `mf-nowin -progname=mf \mode:=ljfour; mag:=1; nonstopmode; input jis' failed to make jis.tfm.
kpathsea: Appending font creation commands to missfont.log.
! Font JY1/mc/m/n/10=jis at 9.60999pt not loadable: Metric (TFM) file not found
.

relax
l.582 \normalsize

?

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーここからーーー
【原因】jsarticle が採用しているフォントメトリックがインストールされていなかったため.奥村氏のpLaTeX2e 新ドキュメントクラスにちゃんと書いてある.良く見ていなかった.

【対策】上記のページから jis-tfm.zipjis-pl.zip を落として解凍し, できたフォルダの名前をそれぞれ jis に変えて
   $PREFIX/share/texmf/fonts/tfm

   $PREFIX/share/texmf/fonts/source
に移動する.ここで $PREFIX は僕の場合,$PREFIX=/usr/local/teTeX

 あと,実際に必要かどうか不明だが(これから調査),アスキーのページから jis.tar.gz を拾ってきて解凍し,フォルダ vf の名前を jis に変えて
   $PREFIX/share/texmf/fonts/vf
の中に移動しておく.

 最後に sudo mktexlsr を実行.これで platex のエラーが出なくなる.

【参考】 jis.tar.gz を解凍すると jis.map というテキストファイルが出来るが,この内容は既に
   $PREFIX/share/texmf/fonts/map/dvips/ptex/psfonts_jp.map
の中に書かれており,この psfonts_jp.map
   $PREFIX/share/texmf/dvips/config/config.ps
の中で読むように指定されている.よって jis.tar.gzREADME.txt に書かれている jis.map 関連の作業を行う必要はない.このあたりは pTeX のバージョンアップに伴い TeX を日本語化する方法が統合されてきたことを反映しているのだろう.

ps2pdf14 で作った pdf のペーパーサイズがおかしい
【症状】A4サイズを指定して作った ps ファイル(gv では正しく表示される)をps2pdf14 で pdf に変換すると,ページの上が切れてしまう.
【対策】とりあえず,ps2pdf14 のオプションに -sPAPERSIZE=a4 を指定することで解決.
 できることなら,これをデフォオルトにしたいが,それには ghostscript を再コンパイルしなければならないのだろうか?《現在調査中》

■ pdf ファイルにフォントが埋め込まれる件
 URL は失念したが,PDF ファイルにはフォントを埋め込まない方が良いという記述があった.フォント著作権の問題も絡んでくると記憶している.背景の把握も含め,PDF 化の際にフォントを埋め込まない方法について調べておくべし.

2007年10月1日月曜日

TeX — 導入・設定関連情報

Mac OS X に LaTeX をインストールする方法は概ね次の7通り(引用元:サイト名不詳・作者不詳
  1. 内山孝憲氏のサイトを参考にソースからmake install(要 Developer Tool)
  2. 土村展之氏のptetex3を使ってインストール(要 Developer Tool)
  3. 小川弘和氏のパッケージをインストール
     teTeX-3.0/ASCII pTeX-3.1.9(Shift_JIS版).縦組用パッケージ(utf.styなど)付き
  4. 桐木紳氏のパッケージをインストール
     パッケージの内訳は不明.情報が記載されていたと思しき旧掲示板は既に無し.
  5. iNOUE Koich!氏のパッケージをインストール
    teTeX-src-3.0/pTeX-3.1.9(バイナリ)
    メタパッケージという概念を用い,更新のあったアーカイブのインストールができる模様
    しかし,ページの情報が多すぎて,僕にはパッケージの内容が良く掴めなかった
  6. EasyPackage でインストール
  7. WorkShop でインストール

<------ '07/09/30 追記 ------
MacWiki のリスト/TeX に入手可能なバイナリパッケージが整理されていた.ここにあがっている pLaTeX Quick に興味アリ.

《4.の補足》
 このパッケージはdmg形式のディスクイメージで供給される.これをダブルクリックしてマウントされる仮想ドライブ内のptex_package_05v2.1.pkg をダブルクリックするとインストーラが起動するので,その指示通りに作業を進めれば良い.なお,パッケージの説明は マウントされた仮想ドライブ内の Read me に書かれている.
 このパッケージをインストールしたとき texmf フォルダの位置は自動的に
  /usr/local/share/texmf
となるので,他のところにインストールしたい人は注意.
                         -------- 追記ここまで ---------->

アスキー日本語TeX(pTeX) pTeX の本家
  pTeXのソース ソースの他,日本語フォントのVFファイルも置いてある

2007年9月30日日曜日

terminal — 関連ページ (2)

MacOS X 10.3 用 OSX 10.4 用パッケージ by 藤原 宏志
ライブラリ、ユーティリティ、X、Emacs、TeX、ghostscript、gnuplot など。たぶんバイナリ
OS X ハッキング!@マイコミジャーナル by 海上忍 
 58) OS X独自のコマンドたち(2)に hdiutil の使用法について記述あり
 他にも MacOS X 関連の記事満載
シェルスクリプト(Bash)入門 by Cyberam Documents Project 
 情報が適切に集約・整理されていて非常に有用。
 リンクを上がるとLinux関連のドキュメントがザクザク
Mac OS by〈不明〉 
 Ghostscript, gnuplot などのインストール方法について
Savannah projectsの公開ファイル置き場 
MacOS X 関連覚え書き by 田中 俊光 
 X11 for Mac OS X、ターミナルでの日本語の扱いについて、など

xdvik 日本語化パッチ整理プロジェクト
xdvi 日本語化・機能拡張パッチ
xdvi-jp-cleanupリリースファイル・リスト

ftp://ftp.berlios.de/pub/cdrecord/ cdrecord
freetype
xdvik-22.84.12
Intel Mac 専用バイナリ置き場 

TeX Wiki 2005年のTeX関連ニュース
TeX Wiki 2006年のTeX関連ニュース

Beginning OS X
MacWiki - TeXShop のインストール