July 24, 2005
[TeX関連] ユーザ専用の TeX 環境を独自に構築
Linux 上の TeX 環境で多書体を扱う方法ではみかちゃんを使用する方法について丁寧に書かれています.このようなカスタマイズの手順は大抵の場合,/usr/share/texmf 以下を直接書き換えていますが,共用のマシンなどを利用していて書き換えられない場合もあるでしょう.
そんな時は,環境変数を操作して独自の TeX 環境を構築することができます.例えば以下のように.
export TEXINPUTS=".:$HOME/.texmf//:" export CMAPINPUTS=".:/usr/share/ghostscript/Resource/CMap" export TTFONTS=".:$HOME/.texmf/fonts/truetype//:" export VFFONTS=".:$HOME/.texmf/fonts/vf//:" export TFMFONTS=".:$HOME/.texmf/fonts/tfm//:" export DVIPDFMINPUTS=".:$HOME/.texmf/{dvipdfm,dvips}//:"
このような記述を .bashrc 等に書いておくと,/usr/share/texmf/ 以下ではなく ~/.texmf 以下に各種ファイルを配置することができます.
環境変数の末尾にコロンを付けているのは,/usr/share/texmf/web2c/texmf.cnf のデフォルト値が後に続いていることを示すためです.コロンがないと,デフォルトで入っているスタイルファイルを見つけられず,以下のようなエラーが出ました.
$ export TEXINPUTS=.:${HOME}/.texmf// $ platex fuga.tex This is pTeX, Version 3.14159-p3.1.5 (euc) (Web2C 7.4.5) (./fuga.tex pLaTeX2e <2005/01/04>+0 (based on LaTeX2e <2001/06/01> patch level 0) ! LaTeX Error: File `jarticle.cls' not found. Type X to quit or <RETURN> to proceed, or enter new name. (Default extension: cls) Enter file name: ^D (snip)
そして,末尾にコロンを付けた場合です.
$ export TEXINPUTS=.:${HOME}/.texmf//: $ platex fuga.tex This is pTeX, Version 3.14159-p3.1.5 (euc) (Web2C 7.4.5) (./fuga.tex pLaTeX2e <2005/01/04>+0 (based on LaTeX2e <2001/06/01> patch level 0) (/usr/share/texmf/ptex/platex/base/jarticle.cls Document Class: jarticle 2002/04/09 v1.4 Standard pLaTeX class (/usr/share/texmf/ptex/platex/base/jsize10.clo)) (./fuga.aux) [1] (./fuga.aux) ) Output written on fuga.dvi (1 page, 216 bytes). Transcript written on fuga.log. $
なお,環境変数はこれが全てではありません./usr/share/texmf/web2c/texmf.cnf にいろいろ書いてあるので,必要に応じて追加する必要があります.
July 22, 2005
[プログラミング] configure for Qt Application
Qt や KDE アプリケーションは moc ファイルを使用するため,automake が出力した Makefile.in をそのまま使用してもコンパイルが成功しません.
The Makefile.am Howto に示されている手順に従って Makefile.am を書いたのち,kdesdk パッケージ内の am_edit という Perl スクリプト(私の環境では /usr/kde/3.4/share/apps/kapptemplate/admin/am_edit にありました)を実行する必要があります.例えば,src/Makefile.in を変更するのであれば,次のように入力します.
% /path/to/am_edit --path=/path/to/am_edit src/Makefile.in
[プログラミング] aclocal と Autoconf Macro Archive
autoconf を実行するために必要な aclocal.m4 を作成するかですが,aclocal を用います.
aclocal は configure.in で参照されているマクロの定義部分を抜き出して aclocal.m4 を生成するためのツールです.
デフォルトのマクロ定義は autoconf に付属しています(/usr/share/aclocal 等にある .m4 ファイルです).しかし,そうでないマクロは,それぞれのパッケージに付属しているか,あるいは Autoconf Macro Archive(Gentoo では sys-devel/autoconf-archive)パッケージに入っています.
このようなパッケージをインストールすると,マクロ定義の入った .m4 ファイルが大量にインストールされます.あとは,この定義を aclocal.m4 に取り込めば,autoconf を実行して configure を生成することができるようになります.
[プログラミング] autoconf の仕組み
GNU autoconf は,マクロプロセッサ GNU m4 を用いて,configure.in ファイルのマクロを展開してシェルスクリプトを作成するようです.
例えば,configure.in に書いたマクロ "AC_PROG_CC" は,autoconf を実行することで "checking for gcc..." を実行する一連のシェルスクリプトに展開されます.
そのマクロ定義本体は configure.in と共にある aclocal.m4 や acinclude.m4 に入っているわけです.
July 19, 2005
[Linux] fstab-sync
hal の設定ファイルを探してみると,/usr/share/hal/fdi 以下にありました.このディレクトリ以下のファイルをいろいろいじることで,設定を変更できそうです.
手始めにマウントポイントの変更から./usr/share/hal/fdi/90defaultpolicy/storage-policy.fdi を編集します.
<merge key="storage.policy.default.mount_root" type="string">/media</merge>
強調箇所を変更すれば OK のようです.
さらに,CD ドライブの場合に iocharset=euc-jp を自動的に付加するには,CF-R3にFedora Core 3をインストールした事例 を参考にして,
<merge key="storage.policy.mount_option.iocharset=euc-jp" type="bool">true</merge>
を <match key="storage.drive_type" string="cdrom"> 〜 </match> の間に付けます.
設定ファイルを変更したら,hald を再起動します.
July 16, 2005
[映画] Star Wars: Episode III -Revenge of the Sith
Star Wars: Episode III -Revenge of the Sith を観てきました.
ついになっちゃいましたよ.Anakin Skywalker が Darth Vader に...
面白かったと思います.おかげでいろいろと謎も解けました.
July 10, 2005
[Linux] X.Org 6.8.99.14 on i945G Chipset
X.Org の開発版(Release 6.8.99.x)では,i810_drv.o が Intel i945G をサポートしています.
というわけで試してみました.まずは i945G であることを確認.
$ lspci 0000:00:02.0 VGA compatible controller: Intel Corporation 945G Integrated Graphics Controller (rev 02)
さて,xorg.conf の編集です.
Section "Device" Identifier "i945G" Driver "i810" EndSection Section "Monitor" Identifier "LCD-A171GS" Option "DPMS" EndSection Section "Screen" Identifier "Screen0" Device "i945G" Monitor "LCD-A171GS" DefaultDepth 24 SubSection "Display" Depth 24 Modes "1280x1024" EndSubsection EndSection
まずはドライバに何もオプションを与えず,デフォルトで試します.
... 結果は惨敗.
This is a pre-release version of the The X.Org Foundation X11. It is not supported in any way. (snipped) X Window System Version 6.8.99.14 Release Date: 03 July 2005 + cvs X Protocol Version 11, Revision 0, Release 6.8.99.14 (snipped) (EE) end of block range 0x20cf < begin 0x20d0 (EE) end of block range 0x20cf < begin 0x20d0 (1600x1200,LCD-A171GS) mode clock 234MHz exceeds DDC maximum 140MHz *** glibc detected *** double free or corruption (fasttop): 0x08215e70 *** XIO: fatal IO error 104 (Connection reset by peer) on X server ":0.0" after 0 requests (0 known processed) with 0 events remaining.
気になる glibc detected
のエラーがありますが,開発版の X.Org なので無視します.
LCD-A171GS は 1280x1024 が最高なのですが,1600x1200 で起動しようとしています.DDC が報告するピクセルクロックを越えているのでエラーになっています.
DDC が報告する最高解像度を越える理由がわかりませんが,とりあえず以下のようにして DDC を無効にします.
Section "Device" Identifier "i945G" Driver "i810" Option "DDC" "false" EndSection
そうすると,今度は自前で Modeline を書くなりして Mode "1280x1024" を定義しないといけません.しかし,これがまた面倒です.何かいい方法はないものでしょうか.
Section "Monitor" Identifier "LCD-A171GS" HorizSync 30-100 VertRefresh 60-75 Option "DPMS" EndSection
HorizSync と VertRefresh の範囲を勘で設定して,起動することができました.きっとモニタは大丈夫でしょう.しかし,フォントが小さくなっています.察するに,DPI の設定が変なようです.というわけでさらに修正.
Section "Monitor" Identifier "LCD-A171GS" HorizSync 30-100 VertRefresh 60-75 Option "DPMS" DisplaySize 340 270 EndSection
これでめでたく i945G の上で X.Org が動作しました.ただし... DRI が今のところ動いていません.
$ glxinfo name of display: :0.0 display: :0 screen: 0 direct rendering: No (snipped)
July 4, 2005
[雑記] Logitech MX-518 Gaming-Grade Optical Mouse
注文していた Logitech MX-518 Gaming-Grade Optical Mouse が,2005 年 7 月 2 日に届きました.3 年目にしてようやくマウスの交換です.
使ってみた感想は以下のような感じです.
- マウスがパッドの上を滑らかに動くようになった.
- どんなに速くマウスを動かしてもカーソルが正しく移動する.
- 8 ボタンある.
なんせ前に使っていたマウスが 3 年前の Microsoft Wheel Mouse Optical (Bulk) だったもんで,新マウスとのあまりの性能差に感動してしまいました.
8 ボタンもあると,残りの 5 つに何を割り当てようか悩むわけですが,とりあえず Counter-Strike: Source 向けの設定をちょこちょことしておきました.
ところで,今まで使っていたマウスは,コーティング加工された木の机では動かなかったんですが,MX-518 は動きました.