2010年2月25日木曜日

ATOK のヘルプが表示されない

ヘルプが表示できません。 ATOKプロパティで見ると、ヘルプブラウザの設定が /usr/dt/bin/sdtwebclient になっています。 個人の設定ファイルは ${HOME}/.iiim/le/atokx2/users/`whoami`/atokx2.aen で、 システムの設定ファイルは /usr/share/iiim/le/atokx2/original/atokx2.aen ですね。

ヘルプブラウザを /usr/bin/firefox に変更すると、 無事にヘルプを参照できるようになりました。

2010年2月24日水曜日

ATOK の同音語の使い分け情報が縦に表示される

ATOK には、同音語の使い分け情報を表示してくれる機能があります。 たとえば「あんごう」を入力すると、「暗号」と「暗合」の使い方の違いを示してくれる、 結構便利な機能です。
ところが、OpenSolaris で使用するとこの情報が縦に表示されて、 かなり読みにくいのです。

横向きの三角形が表示されている候補を選択していると、 同音語の使い分け情報が表示されます。

別の場所で使用中の Nevada ビルドでは、候補と同じように横書きで表示されています。 どうしてこうなっちゃったのでしょうね。

2010年2月23日火曜日

CUPS のテストプリントで豆腐が印刷される件

CUPS のテストプリントで豆腐が印刷される件について、軽く調べてみた。

印刷データを生成するのは、 /usr/sbin/cupsd から起動される /usr/lib/cups/cgi-bin/printers.cgi

Printer Test Page の元ネタは /usr/share/cups/data/testprint。 どのような形式か調べていないけど、 表示されている内容や図が実際に印刷されているものと一致している。

$ cat /usr/share/cups/data/testprint
#CUPS-BANNER
Show printer-name printer-info printer-location printer-make-and-model printer-driver-name printer-driver-version paper-size imageable-area
Header Printer Test Page
Footer Printer Test Page
Notice This test page was produced by CUPS 1.4.2.
Image images/cups.png
Image images/color-wheel.png

/usr/share/locale/ja/cups_ja.po を参照しているのだけれど、 このファイルは壊れている。 行の先頭の引用符が、二カ所抜けている。

$ diff -u /usr/share/locale/ja/cups_ja.po{.orig,}
--- /usr/share/locale/ja/cups_ja.po.orig 水 12月  2 16:26:40 2009
+++ /usr/share/locale/ja/cups_ja.po 火  2月 23 16:40:26 2010
@@ -4391,7 +4391,7 @@
 "  -p filename.ppd  Set PPD file\n"
 "  -t title         Set title\n"
 msgstr ""
-使い方: cupsfilter -m mime/type [ options ] filename\n"
+"使い方: cupsfilter -m mime/type [ options ] filename\n"
 "\n"
 "Options:\n"
 "\n"
@@ -4436,7 +4436,7 @@
 "    -v                   Be slightly verbose\n"
 "    -vv                  Be very verbose\n"
 msgstr ""
-使い方: cupstestppd [オプション] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n"
+"使い方: cupstestppd [オプション] filename1.ppd[.gz] [... filenameN.ppd[.gz]]\n"
 "       program | cupstestppd [オプション] -\n"
 "\n"
 "オプション:\n"

/usr/lib/locale/ja.UTF8/ja.UTF8.so.3/usr/lib/locale/ja.UTF8/LC_MESSAGES/SUNW_OST_OSLIB.mo といった 誤ったパスを参照している。

/usr/lib/cups/filter/bannertops/usr/lib/cups/filter/pstops/usr/lib/cups/filter/pstoraster/usr/bin/gs/usr/lib/cups/backend/hal/usr/lib/cups/filter/rastertogutenprint.5.2 といったプログラムが起動されていく。

/usr/lib/cups/filter/bannertops/usr/lib/cups/filter/pstops/usr/lib/cups/filter/pstoraster/usr/lib/cups/filter/rastertogutenprint.5.2/usr/lib/locale/ja.UTF-8/ja.UTF-8.so.3 を読み込む。 これもまた誤ったパス。

/usr/share/locale/ja/cups_ja.po を修正し、 ja.UTF-8ja.UTF8 を捏造しても、 豆腐は解消しなかった。

/usr/share/locale/ja/cups_ja.po を変更すると 印刷されるテストページの内容が変わる。

特に困っていないのでここまで。

2010年2月22日月曜日

印刷の設定

以前から Gutenprint を自前でコンパイルして使用していました。 b127 で Gutenprint がリポジトリに追加されましたので、 こちらに切り替えることにします。 OpenSolaris は今日更新したので b133。 プリンタは昨年春先に量販店で購入した Canon PIXUS iP4600。 購入理由は、店頭にあって、そこそこ安かったから。

準備

現状の関連ファイルは ZFS の snapshot で保存し、万が一に備えます。
$ pfexec zfs snapshot rpool/ROOT/opensolaris-8@20100222-pre-rm-gutenprint
$ pfexec zfs snapshot rpool/export/opt@20100222-pre-rm-gutenprint

削除

CUPS の管理用のWebインタフェースで見るとこんな感じ。「システム」->「システム管理」->「Print Manager」を使わないのは、特に意味はないと主張しておきます。

プリンタを選択すると詳細が出てきます。

以前は Gutenprint を明示的に指定できるような箇所があったように記憶しているのですが、 インタフェースが変わったせいか今はそれを見つけられません。 今使っている設定を削除し、Gutenprint を入れ直すことにします。
削除は「管理」から「プリンターの削除」を選択。


寂しい画面です。

自分で Gutenprint を導入したときに、 DESTDIR= で gutenprint-dist を指定してイメージを保存しておいたので、 それを参照して削除するファイルを決定。 
/etc/cups/command.types は、 システム標準のものと有意な差がなかったので、更新しませんでした。 従って戻す必要なし。

導入

パッケージマネージャーを使用して、Gutenprint を導入します。 Gutenprint を検索すると、 SUNWgutenprint と print/filter/gutenprint の二つが表示されます。 メイリングリストによると、b133 でパッケージの命名規則が変わったようで、 後者が新しい規則によるもののようです。 選択して「インストール/更新」。
CUPS の管理画面より、「新しいプリンターの検索」

なぜかプリンターが二回表示されています。 大事なことだからでしょうか… ともかく、最初のもので追加。

正しいドライバを見つけてきたようです。 ただ、名前としては「_series」はよけいだと思うので削除。「続ける」。

メーカーが選択されていないので、「Canon」を選択。「続ける」。

「Canon PIXMA iP4600 - CUPS+Gutenprint v5.2.4 (en)」を選択。 「Simplified」との差は知りません。「プリンターの追加」。

「プリンターオプションの設定」画面に遷移しました。 Media Source は度々問題になっているのですが、とりあえずは放置。

とりあえずテストページを印刷してみます。

予定通り、プリンターがエラーになりました。 手差しで給紙されることを要求しているようです。 やはり、「Media Source」の 「Automatic Papter Source Switching」はうまく動いていないようです。
仕方ないので「Cassette」に変更。 無事、テストページは印刷されました。

余談

ところで、以前の OpenSolaris に載っていたCUPS 1.3.x と、 b133 に載っている CUPS 1.4.2 では、 テストページが変わっています。 以前のは情報量が多い感じで、新しいのはすっきりとしています。 あと、新しい方では文字化けではないかと思われる豆腐が印刷されているのが気になります。

2010年2月19日金曜日

ntp を設定した

NICT、日本標準時のNTPサーバーをJPIXに設置 を読んだ。 ふと見ると、机の上に置いてある電波時計の時間とパネル上に表示されている時間が二分ずれていた。 いけませんね…

ということで ntp を設定。

まずは設定ファイルを確認。雛形はありますが、ntp.conf 自体は存在せず。

$ ls -l /etc/inet/ntp.*
-rw-r--r--   1 root     sys         4427 10月 23 17:48 /etc/inet/ntp.client
-rw-r--r--   1 root     sys         4856 10月 23 17:48 /etc/inet/ntp.server

そこで、ntp.clientntp.conf に複写し、編集。

$ pfexec cp /etc/inet/ntp.{client,conf}
$ pfexec vi /etc/inet/ntp.conf
$ diff /etc/inet/ntp.{client,conf}
51c51,52
< server server_name iburst
---
> #server server_name iburst
> server ntp.nict.jp iburst

そして、サービスを起動。ついでに動作していることを確認。

$ svcadm enable ntp
$ svcs ntp
STATE          STIME    FMRI
online         13:45:04 svc:/network/ntp:default
$ ps -fe | grep ntp
    root  5159     1   0 13:45:04 ?           0:00 /usr/lib/inet/ntpd -p /var/run/ntp.pid -g

数分後には、無事時計が同期されました。めでたし。

2010年2月17日水曜日

フォントを編集

準備

fontforge は OpenSolaris のパッケージリポジトリに入っていないようなので、 自分でバイナリを構築します。関係者の方々に感謝!!
http://fontforge.sourceforge.net/ より、fontforge のソースコードを入手。 適切な場所に展開し、構成、構築、インストール。(実際にはインストールする前に動作確認をしますが…)
$ bzip2 -d -c fontforge_full-20090923.tar.bz2 | gtar xf -
$ cd fontforge-20090923
$ ./configure --prefix=${PATH_TO_DESTDIR}
$ gmake
$ gmake install
OpenSolaris snv_132 ja_JP.UTF-8 環境では入力方式との絡みで落ちるので、 シェルスクリプトをかませて起動するようにします。
LC_CTYPE=C exec PATH_TO_DESTDIR/bin/fontforge "$@"

編集

システム標準の日本語系フォントは /usr/share/fonts/TrueType/ipafont/ にあります。
$ ls /usr/share/fonts/TrueType/ipafont/
fonts.dir    ipag.otf     ipagp.otf    ipam.otf     ipamp.otf
fonts.scale  ipag.ttf     ipagp.ttf    ipam.ttf     ipamp.ttf
一般ユーザの権限で fontforge を実行し、ゴシックフォントを編集します。
$ fontforge /usr/share/fonts/TrueType/ipafont/ipag.ttf
 

このウィンドウは自動的に閉じるようです。


警告メッセージのようですが無視します。


このウィンドウで編集したい文字を探し、その文字をダブルクリックします。


このウィンドウで編集するわけですね


レイヤーを操作するのでしょうか。使ったことがありません。


道具箱と呼んでいいのでしょうか。何をするかここで決めます。

編集方法は体で覚えるしかないのですが、微調整は数字を直接入力しました。 道具箱で矢印を選び、エディタ上で点を選択して右クリック。 メニューから「情報を得る…」を選択。

「同じ輪郭上の前の点」「同じ輪郭上の次の点」などを使用して前後の点の位置を確認し、 「基点(B)」の数値二つを編集します。
曲線部分の曲がり具合を微調整するには、「前の制御点」「次の制御点」の数値を変えます。

保存

できあがったフォントを保存する前には、フォントの名前を変更します。 「エレメント」->「フォント情報」で設定します。

「名前」では、「フォント名(N)」、「ファミリー名(F)」、「表示用の名前(S)」を変更します。

「TTF名」では、 「日本語」の「ファミリー」、「日本語」の「UniqueID」、「日本語」の「フルネーム」、 「英語(アメリカ)」の「UniqueID」を変更します。
そして「OK」。
「ファイル」->「ファイル名を指定して保存」。
続いて、「ファイル」->「フォントを出力」。

「TrueType」を指定し、「Validate Before Saving」を解除します。 どこかに問題があるようで、検証を行うとフォントを出力できません。
出力したフォントは ${HOME}/.fonts に置くと、使うことができます。 「システム」->「設定」->「外観の設定」->「フォント」の選択肢に出てくるようになります。 また OpenOffice でも選択できるようになります。

余談

入力方式がらみで落ちたときに生成される core ファイルの情報。
$ pstack core
core 'core' of 3979: ./fontforge
 fe325005 _lwp_kill (1, 6, 8045e0c, fe2cbbde) + 15
 fe2cbbea raise    (6, febc5bb4, 4000140, c8) + 22
 feba9c0e myerrorhandler (83b4090, 8045f44, 20, fe6f159e) + ca
 fe6f1696 _XError  (83b4090, 8046024, 20, fe6d514e) + 106
 fe6d5541 _XReply  (83b4090, 8046024, 0, 1) + 401
 fe6daede XSync    (83b4090, 0) + 72
 fdd56686 JcxsoS_SendProc (dacdc60) + 3e
 fdd565f4 JcxsoS_PushMessage (dacdc60, dc81ee0) + 5c
 fdd5408e SocmnS_SendToAtokAuxd (844b030, dad3d08, 1, 5c, 5, dad4828) + 2f6
 fdd52779 SocmnS_Draw (dad3d08, 80461d0, 0, fdea1a11) + 131
 fdea1a65 IIimpAuxDraw (8652f80, 8659428, 0, fde9ead1) + 61
 fde9f933 IMProcessIncomingEvent (8652f80, 86590c8, 4000140, 0) + e73
 fde9fb5d IMChangeFocus (8652f80, 0, df6f898, fde93f30) + a1
 fde93f5b _Ximp_Local_UnSetFocus (8652f80, fde91fe4, fde920d4, fded0b10) + 37
 fde95ad0 SWITCH_DestroyIC (8652f80, 4000140, fdeb0888, 8652f80) + 5c
 fdeb1262 DestroyIC (8652f80, dcafb10, dcafb10, fe70fada) + 52
 fe70faf1 XDestroyIC (8652f80, febd91f8, 8046718, febb2253, 4, 8046690) + 21
 febb22a7 dispatchEvent (83b4090, 8046740, 80467b8, febb2f9f) + c87
 febb2fb4 GXDrawEventLoop (8440520, 1, 0, feb5f935) + 4c
 feb5f968 GDrawEventLoop (0, 0, 0, 9, 0, feffb2e0) + 40
 0819cfe9 main     (1, 80478bc, 80478c4, 81b0ec0, 0, 0) + c91
 0807eb7f _start   (1, 80479ec, 0, 8047a04, 8047a33, 8047a61) + 83

余談その弐

最初、fontforge を試したときにうまく動かなかったので、 Windows 7 と Ubuntu も試してみました。
当然、Windows 7 は OpenSolaris 上の VirturlBox で動かします。 Windows 7 の標準のフォントエディタを起動してみると、 残念、ビットマップフォントしか編集できないみたい? ちょっと弄って見ましたが、早々に諦め。
続いて Ubuntu。こちらも OpenSolaris 上の VirturlBox で動かします。 標準では fontforge は入っていないのですが、 apt-get でさくっとインストールできました。 感謝感謝。 OpenSolaris で使用しているフォントと同系統のものもあります。
$ ls /usr/share/fonts/truetype/ttf-ipamonafont
ipag-mona.ttf ipagp-mona.ttf ipagui-mona.ttf ipam-mona.ttf ipamp-mona.ttf
フォントの字形の編集は(試行錯誤しつつも)問題なく終了。 OpenSolaris 上に持って行き、 ${HOME}/.fonts に置いて、 OpenOffice.org から参照でき、印刷できることも確認。 すべてがうまくいっていると思っていました。
ところが、ふと見ると、デスクトップのパネルのフォントがみすぼらしいことに気づきました。 よくわからないままいろいろなものを見ていると、 gnome-terminal のフォントも変ですし、 FireFox も変です。
試しに字形を変更した文字を表示させてみると、変更されていました。 OpenOffice.org 内だけで有効だと思っていたのですが、 なぜかデスクトップ全体に有効になっていたようです。 「システム」->「設定」->「外観の設定」->「フォント」では設定を変更していないのになぜ…
仕方がないので、OpenOffice.org で使う作業が終わった後、 ${HOME}/.fonts を別の名前に変更してログインし直し。 とりあえずの問題は解決しましたが、なぜこうなったのかは今も謎です。
ちなみに、今は OpenSolaris のフォントを編集し、 ${HOME}/.fonts に起きっぱなしにしています。 元々同じフォントなので、パネルとかに使われても見た目には問題ありません。 ただ、時々編集した文字を表示させて確認していますが、 今のところその文字は編集されていない標準的な字形で表示されています。

2010年2月15日月曜日

明朝フォントがない!!

fontforge でフォントの情報を見ようと思って /usr/share/fonts/TrueType/ipafont を探ったところ、 明朝フォントが見あたりません。 以前、OpenOffice で名刺を作ったとき、その過程で明朝フォントは試しましたし、 見た目も明朝体で表示されたことは記憶にありますから、 どうも変です。 対象のファイルは ipam.ttfipamp.ttf なのですが、 そのフォント名にも記憶があります。

ただ、そのときは Ubuntu から フォントを持ってきたりしていたので、 それが使われていたと言われると、否定はできません。 また、fonts.dir の内容を記憶しているだけかもしれません。

念のため、現在のもの以外の起動環境を片っ端からマウントして調べてみましたが、 ここだというものが見あたりません。

$ pfexec zfs set mountpoint=/mnt rpool/ROOT/opensolaris-3
$ pfexec zfs mount rpool/ROOT/opensolaris-3
$ ls /mnt/usr/share/fonts/TrueType/ipafont
$ pfexec zfs umount /mnt
$ pfexec zfs set mountpoint=/ rpool/ROOT/opensolaris-3

とは言っても、 /usr/share/fonts 自体が存在しない起動環境がいくつもありましたから、 調べ方を間違えている可能性はかなりあります。

これではらちがあかないので、パッケージマネージャーで font を検索してみたところ、 明朝フォントがインストールされていないとでました。 とりあえずの問題はそれをインストールして終わり。

今ひとつ釈然としませんが、これ以上の追求はやめておきます。

2010年2月12日金曜日

VirtualBox で音が鳴らないのですが…

これは Windows 7 の話だったりします。
解決策は簡単。 realtek.comからドライバ(AC'97 Audio Codecs) をダウンロードして、Windows 7 側にインストールすれば解決。 あとは、VirtualBox の「設定」で設定。

元ネタはこちら

「アプリケーション」メニューの開き方

Alt-F1。以上。

私の基本方針の一つに、鍵盤でできることは鍵盤で、があります。 Nevada を使っていたときは、Ctrl-ESC に割り当てていて、 便利に使っていました。これは、Windows と同じですね。
OpenSolaris に移行してからこの割り当てがわからなくなって困っていました。 たまたま読んだ記事 Linux 高速化のための5つのヒント(1) に「Alt+F2、Run Command クイックランチャー」とあったので試して納得。 ついでに Alt+F1 を試して万歳! でした。 ちなみに、Alt+F4 とか Alt+F9 などは常用しているので、 なぜ Alt+F1 に気づかなかったのは謎です。

2010年2月9日火曜日

名刺を作ってみた

なんとなく個人用の名刺を作りたくなりました。 もちろん、OpenSolaris 上で、OpenOffice.org を使用します。 印刷用の用紙は市販のもので、今回はコクヨのものを使用しました。
OpenOffice.org で「ファイル」->「新規作成」->「名刺」と進めば 既製の雛形を利用して極めて簡単に作成できるのですが、 残念なことに私の望む書式の雛形はありません。 となれば自分で雛形を作るしかないということで、ささっと検索。
むぅ、どうも思うようなページに辿り着けません。 それではと「openoffice how to create business card template」で検索してみたところ、 How are business card templates created? でラベルとして作る方法を紹介していました。 「名刺」の機能はウィザードっぽいものが出てきて格好いいのですが、 それをあきらめさえすれば「ラベル」で良さそうです。
ということで、以下は私の個人的な名刺の作り方。

雛形を作る

「ファイル」->「新規作成」->「ラベル」で「ラベル書き」ウィンドウが表示されます。

下の書式区画で用紙の製造元や種類を選択できるのですが、 私が買ってきた用紙にぴったりのものはここになかったので、 「書式」タブで印字位置などを設定します。

「保存」ボタンを押すと、「ラベル書きの書式を保存」ダイアログが表示されて、 製造元と種類を設定できます。

「オプション」タブでは、「ページ全体」を選択し、「内容を同期させる」を有効にします。

「新ドキュメント」ボタンを押すと Writer ウィンドウと、 「ラベル書きを同期させる」というボタンがおかれた小さなウィンドウが開きます。


「書式」->「ページ」でページスタイルを指定します。

「ページ」タブで用紙サイズと余白を指定します。 用紙サイズは買ってきた用紙にあわせて A4。 余白は、用紙の説明書に記載された数値に左と上をあわせます。 「右」と「下」は小さな値に。「右」と「下」の値を正確な数字に合わせると、 ページから溢れるようです。

そして「OK」。

各区画が上下に二分割されていますので、左上隅の区画の内側をクリックして、 Enter を数回押して区画を広げ、「ラベル書きを同期させる」ボタンをクリックします。

ここからの作業は、左上隅の区画だけを対象とします。
最初に、名前のための枠を配置します。 区画内をクリックし、カーソルを左上隅に移動した後、メニューより「挿入」->「枠」。

「種類」タブでいくつか設定。 「幅」で「割合」を有効にし、「80%」を指定します。 「高さ」も「割合」を有効にし、「12%」を指定します。 「位置区画」では、「横」は「中央」「段落範囲」、 「縦」は「最上部から」「0.9cm」「ページのテキスト範囲」。

「オプション」タブで、「位置」と「サイズ」を保護します。

そして「OK」。
「外枠」タブで、「線」の「スタイル」を「-なし-」にします。

そして「OK」。
枠の中をクリックし、フォント名を「IPAゴシック」、フォントサイズを「16」に設定します。
続いて、肩書きのための枠を配置します。 区画内をクリックし、カーソルを左上隅に移動した後、メニューより「挿入」->「枠」。 幅の割合は同じく80%、高さは6%、横は「中央」段落範囲」で、 縦は「最上部から」「1.8cm」「ページのテキスト範囲」。 フォント名を「IPAゴシック」、フォントサイズを「8」に設定します。
さらに続いて、連絡先のための枠を配置します。 区画内をクリックし、カーソルを左上隅に移動した後、メニューより「挿入」->「枠」。 幅の割合は同じく80%、高さは34%、横は「中央」段落範囲」で、 縦は「最上部から」「2.75cm」「ページのテキスト範囲」。 フォント名を「IPAゴシック」、フォントサイズを「8」に設定します。 「書式」->「配置」->「右揃え」を設定します。

連絡先のための枠の中に表を作成します。 枠の中をクリックし、メニューから「挿入」->「表」。

「列」を1、「行」を5に設定し、枠を外して「OK」。

挿入した表の上三行を選択し、フォント名を「Courier」に変更します。
「ラベルを同期させる」ボタンをクリックし、雛形の完成です。

できあがった雛形は、「ファイル」->「ドキュメントテンプレート」->「保存」から保存します。

雛形を使って名刺を作る

さて、「ファイル」->「新規作成」->「テンプレートとドキュメント」で新たにファイルを作成します。

リンクを更新するか尋ねてきますので「はい」。

作った雛形と同じものが出てきます。

左上隅の区画に、氏名(読み)、肩書き、連絡先を入力します。

そして「ラベル書きを同期させる」をクリック。

そして印刷

試し刷りは前面カセットから給紙、本番は後ろ側のトレイから専用の用紙を給紙。 私の環境では、なぜか OpenOffice.org の印刷ウィンドウの「プロパティー」から「Cassette」を指定してもそれが有効になりません。
「書式」->「ページ」の「ページ」タブの「給紙方法」で「Cassette」を指定すると、 前面のカセットから給紙されるようになりました。 本番の印刷では、ここで「Rear tray」を指定するわけです。