2008/12/26

a2ps で作ったpsファイルを AcrobatDistiller でPDF化する(英語のみ)


1. english 環境で a2ps を実行する。
csh なら
$ eng a2ps ....
とやればOK


2. できた ps ファイルを編集。

/reentrant の定義後半 (153〜171行目)
163行目に dup を、167行目に pop を追加。(赤字部分)


...
currentdict /FontInfo known {
FontInfo

dup /UnderlinePosition known {
dup /UnderlinePosition get
0 exch FontMatrix transform exch pop
/UnderlinePosition exch def
} if

dup /UnderlineThickness known {
dup /UnderlineThickness get
0 exch FontMatrix transform exch pop
/UnderlineThickness exch def
} if
pop
} if
currentdict
end
} bind def
...

意味:
前のままだと、dup \UnderlineThickness known { ... } if で
{...}内を実行したときと、しなかったときで、スタックに積まれている要素が違ってきてしまっていた。{...}内を実行している分には何の支障もないが、実行しないと余分な要素がスタックに残ってしまう。ということで、{...}内を通るときも1つ残しておいて、出たらpopするようにしました。


意味的には以下のようにしてもOKかな。
ま、一つ上のifと同じようにしておいた方がきれいな気がするけど。

dup /UnderlineThickness known {
/UnderlineThickness get
0 exch FontMatrix transform exch pop
/UnderlineThickness exch def
} { pop } ifelse
参考ページ:
PostScript command summary
How to edit postscript
(日本語)
Postscript実習マニュアル (PDF・日本語)

2008/12/15

xdvi がアボートして落ちる

$ xdvi paper
kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 1+0/600 --dpi 600 min10
mktexpk: don't know how to create bitmap font for min10.
kpathsea: Appending font creation commands to missfont.log.
xdvi: Error: Can't find font min10; using cmr10 instead. Expect ugly output.
xdvi-xaw3d.bin 22.84.10 j1.35 (Xaw toolkit): events.c:4144: Shouldn't happen: Segmentation fault - trying to clean up and aborting ...
アボート (coreを出力しました)

となってしまう。。。
フォント関係の何かがたりないのだろうけど、何がたりないのかがわからない。
似たような環境で、ちゃんと動いている環境と比べると、
/usr/share/texmf/fonts/vf/ptex/min10.vf
がないのが原因らしい。
てか、/usr/share/texmf/fonts/vf/ptex/ 以下にあるファイルが少なすぎ。。。

で、足りなかったのは、jvf という日本語仮想フォントのパッケージでした。
ってことで、下記を実行したら、解決しました。

# apt-get install jvf


追記:

てか、英語の文章のはずなのに、なぜに日本語フォントが必要なのだろう?
と思って調べてみたら、1つピリオド「.」が全角のピリオド「.」になってました。。。
気づいてよかった〜。

2008/11/11

[Linux] アプリケーションウィンドウや入力カーソルの下に表示される[ATOK]を非表示にする。

ほとんどここに書いてあるのをそのままできました。
http://support.justsystems.com/faq/1032/app/servlet/qadoc?QID=037494

# wget http://www3.justsystem.co.jp/download/atok/ut/lin/iiimf_status_hide.gz
# gunzip iiimf_status_hide.gz
# mv iiimf_status_hide /opt/atokx3/sample
# chmod 755 /opt/atokx3/sample/iiimf_status_hide

user でlogin
$ /opt/atokx3/sample/iiimf_status_hide
で無事[ATOK]が非表示になります。


自動的にするには
/etc/X11/xinit/xinitrc.d/iiimf というファイルを作る
中身:/opt/atokx3/sample/iiimf_status_hide

# chmod 755 /etc/X11/xinit/xinitrc.d/iiimf
とすればOK。Xを再起動させれば確認できます。

[Linux] emacs で ATOK X3 を使うための設定

ATOK X3 + Vine 4.2 + emacs 21 という環境です。

参考URL
http://d.hatena.ne.jp/a10i/searchdiary?word=%A5%DE%A5%A6%A5%F3%A5%C8
http://itline.jp/~svx/diary/?date=20071219

1. Mule-UCS を入れる。emacs 21 を使っているので。
# apt-get install Mule-UCS

2. IIIMECF 0.75 を入れる
http://www.meadowy.org/~kawabata/iiimecf/
# apt-get remove IIIMECF (入っていれば。apt で入る 0.6 ではうまくいかないので、以下のように手動で入れる)
# wget http://www.meadowy.org/~kawabata/iiimecf/IIIMECF-0.75.tar.gz
# tar xvzf IIIMECF-0.75.tar.gz
# cd iiimecf
# eamcs -q --no-site-file -batch -l iiimecf-comp.el
# mkdir /usr/share/emacs/site-lisp/iiimecf
# cp lisp/* /usr/share/emacs/site-lisp/iiimecf/

3. iiimd の設定
/etc/iiim/iiimd.xml.conf

<listen type="tcp">
<hostname>localhost</hostname>
<port>9010</port>
</listen>

のコメントを外す

4. iiimd の起動(起動時に自動的に起動させるには下記参照)
# iiimd

9010でlistenしているか確認
# netstat -an | grep 9010
tcp 0 0 127.0.0.1:9010 0.0.0.0:* LISTEN

5. 辞書ファイル用(?)のディレクトリを作っておく
# mkdir -p /var/lib/iiim/le/atokx3

6. .emacs.el の設定。各ユーザで。
$ cp /etc/skel/.emacs.el ~/. (今ある.emacs.el が atokx3 に対応していない場合。適宜設定をマージする)

.emacs.el をエディタで開いて、382行目あたり

(setq iiimcf-server-control-hostlist '("localhost"))

(setq iiimcf-server-control-hostlist '("tcp:localhost:9010"))
とする。
変更前のでも大丈夫なはずなのだけど、きちんとパースしてくれないっぽいので……
参考:http://itline.jp/~svx/diary/?date=20071219

これで、emacs を起動して、C-\ とすれば、ATOKを使えるようになりました。

7. iiimd を自動的に起動させるには
/etc/rc.d/rc.local の最後あたりに以下を追加(これでいいのか……?

iiimd

2008/11/06

[emacs] サブディレクトリを全てload-pathに追加

~/lib/emacs/ 以下にあるサブディレクトリを全てload-path に追加する。

ここを参考にしました。
http://lists.sourceforge.jp/mailman/archives/macemacsjp-users/2006-March/001038.html


以下を、~/.emacs.my.el か ~/.emacs.el あたりに追加。
(let ((dir (expand-file-name "~/lib/emacs")))
(if (member dir load-path) nil
(setq load-path (cons dir load-path))
(let ((default-directory dir))
(load (expand-file-name "subdirs.el") t t t))))

~/lib/emacs/subdirs.el の中身は以下の通り
(if (fboundp 'normal-top-level-add-subdirs-to-load-path)
(normal-top-level-add-subdirs-to-load-path))

[Linux] ATOK X3 + Vine 4.2

ATOK X3 for Linux をVine Linux 4.2 に入れました。

いくつか情報がweb上で見つけることができましたが、はまったところもあるので、書いておきます。
ちなみに、2008年11月10日現在では、Vine 用のパッチは必要ありませんでした。(apt-get update && apt-get upgrade をやってあれば)

注:# ならroot シェルで、$ なら各ユーザのシェルでコマンドを入れる


1. CTRL+ALT+[F2]

2. CD を入れてインストール
# mount /dev/cdrom /mnt/cdrom (どっかに mount されていれば不要)
# cd /mnt/cdrom
# ./setupatok.sh

Do you want to delete above packages? と聞かれるので、 iim-xxxx だけなら、 yes

3. gtk.immodules の更新
# mv /etc/gtk-2.0/i386/gtk.immodules /etc/gtk-2.0/i386/gtk.immodules.BAK
# gtk-query-immodules-2.0 > /etc/gtk-2.0/i386/gtk.immodules

4. libstdc++.so.6 をインストール
# apt-get install libstdc++34

5.Shift + space でONになるように
/etc/iiim/js_triggerkeys.conf
「Shift+space no」 を 「Shift+space yes」 に変更

6. 一応再起動
# reboot

7. user で login。ATOK X3 を使うように設定
$ setime atok3

私は、homeをnet mount しているので、ATOKがインストールされていないマシン上では別のIMEを使うように .cshrc を変更 しました。

これで、無事ATOK X3が使えるようになりました。
でも、emacs で使うにはまだまだ設定が必要なので、それは次回。