みしょのねこごや

Diary - 2009年5月

Gnome / Debian lennyで,dual display環境を構築する。

大学で使うcomputerに,Windows VISTAとDebian lenny(5.0.1)をインストールした。

Computerなんてのは大体においてdual head (dual display)でないと役に立たないので,今回もdual headを構築しようと試みた。(だってLaTeXで文章を書くときにいちいちpreview画面を見るのにwindow切り替えなきゃいけないとか耐えられなくない?)

Windowsの方は,いつものように画面の設定みたいなところで3分でできたのだけど,Gnome/Debianの方は何をやっていいのかさっぱりわからず,結局3日間を要してしまった。これもすべてWeb上にまともな情報がないのが問題なので,この俺様が後の人々のために書き残しておくことにする。

ちなみに僕はこれまでずっとLinuxはCUIでしか使ったことがなかったので,gnomeを自分で設定するのは初めてです。GUIめんどくさいね。Windows/Cygwinでいいじゃん的な何か。


環境
OS
Debian Lenny (i386) / Gnome 2.22.3
Graphic Card
ATI Radeon HD2600
Package管理
apt-get
操作する人
みしょ。LinuxのCUIは使えるけれどもGnomeの設定は初めて。
精神
  • 多分Debianじゃなくても,他の大抵のLinuxでうまくいくと思う。
  • 多分Radeon HD2600じゃなくても,他の大抵のGraphic boardでうまくいくと思う。
  • 基本的には,/etc/X11/xorg.confを編集すればよい。
  • でもそこに何を書いたらよいのか分からない。Google検索してxorg.confの実例を見ても何がなんだかわからない。だから基本的には自動で設定してもらう。
  • xrandrと仲良くなろう。
  • 困ったらGoogleよりもman!! Google検索してもあまりいい情報はないです。
注意
  • /etc/X11/xorg.confはback upを取りまくっておくように!User homeにsudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.`date +%m%d-%H%M%S`; sudo vi /etc/X11/xorg.confみたいなscriptを書いてからやるとよさげ。
  • 余計なpackageをinstallしたり,無駄にKernelの更新とかをしたりしない。最小限の努力で。
予備知識
  • Gnomeを終了して,Single User Mode (runlevel 1,つまりいわゆるrootのCUI)に入るには,suしてtelinit 1すればよい。そこでexitすれば,またrunlevel 5に戻る。
  • xorg.confの設定を間違えて,Gnomeが(っていうかXが)起動しなくなった場合は,runlevel 3 (CUI)に入るが,その場合も慌てず騒がずxorg.confを修正してからgnomeを起動すればよい。Gnomeを起動するscriptはいつものようにinit.dあたりにあるので,/etc/init.d/gdm startみたいにすればgnomeが起動する。
  • Gnome起動中にCTRL+ALT+BackSpaceを押すと,gnomeが強制再起動する。
手順(1) Deviceを自動認識させる

まず最初に/etc/X11/xorg.confのbackupを作成すること。

で,次に,Xにdeviceとかを自動で認識させて,自動でxorg.confを生成してもらう。これはXorg -configureで出来るのだけど,そのためにはXを一度終了しなければならないので,一旦runlevel 1に入って作業する。

この設定の副作用として,keyboardが英語配列設定になってしまう虞がある。その場合は頑張ってxorg.confのkeyboardのところを再設定してください。お手本は次のとおり。

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
        Option      "XkbModel"    "jp106" # ← これと
        Option      "XkbLayout"   "jp"    # ← これを設定すればよい。
EndSection

そんでGnomeに戻る。

手順(2) とりあえずxrandrしてみる

Gnomeに戻ったら,端末からxrandrとかしていろいろと遊んでみる。例えば僕の環境では

[20:33:37:misho] ~:> xrandr
Screen 0: minimum 320 x 200, current 1900 x 1024, maximum 1900 x 1024
DVI-I_1/digital disconnected
DVI-I_1/analog connected 1280x1024+0+0 338mm x 270mm
   1280x1024      60.0*+   75.0
   1024x768       75.1     70.1     60.0
   800x600        72.2     75.0     60.0
TV_7PIN_DIN disconnected
DVI-I_2/digital disconnected
DVI-I_2/analog connected 1024x768+1280+0 300mm x 230mm
   1024x768       74.9*    75.0     60.0
   800x600        72.2     75.0     60.3
   640x480        75.0

みたいなことになる(一部略)。この出力結果から

  • 2つのdisplayはそれぞれDVI-I_1/analogDVI-I_2/analogにつながっている。
  • 大きさは1280x1024と1024x768なので,横に並べると2304x1024になるのに,Screenのmaximumが1900x1024となっているのでScreenを拡大する必要がある。

ということがわかる。

手順(3) xorg.confを編集する - Screenの拡大

Screen maximumの拡大は,xorg.confのうちのSection "Screen"SubSection "Display"のところにVirtualを追加すればよい。

Section "Screen"
	Identifier "Screen0"
	Device     "Card0"
	Monitor    "Monitor0"
	Monitor    "Monitor1"
	SubSection "Display"
		Viewport   0 0
		Depth     1
		Virtual 2304 1024 # ← こんなかんじ
	EndSubSection
 (以下略)
手順(4) xrandrで遊んでみる

いろいろとやってごらん。例をいくつか挙げておく。困ったらman xrandr

[20:41:37:misho] ~:> xrandr --output "DVI-I_2/analog" --mode 1024x768
[20:48:47:misho] ~:> xrandr --output "DVI-I_2/analog" --mode 800x600
[20:48:52:misho] ~:> xrandr --output "DVI-I_2/analog" --off
[20:48:59:misho] ~:> xrandr --output "DVI-I_2/analog" --mode 1024x768
[20:48:59:misho] ~:> xrandr --output "DVI-I_2/analog" --right-of "DVI-I_1/analog" # これでたぶんdual displayになる
[20:48:59:misho] ~:> xrandr --output "DVI-I_2/analog" --left-of "DVI-I_1/analog" # これでもdual display
[20:48:59:misho] ~:> xrandr --output "DVI-I_2/analog" --above "DVI-I_1/analog" # 上下に並ぶdual display

xrandr: screen cannot be larger than 1900x1900とか言われたら,さっきの手順(3)の設定が間違ってるに違いない。

手順(4) xorg.confを編集する - Device, Monitor, Screen

で,まぁ手順(3)のcommandsのうち下の方の3つを実行すればdual displayになるのだけど,しかしその設定はlog offすると元に戻ってしまう。変更を恒久的にするには,xorg.confを手動で設定しなければならない。

(自動で設定する方法があってもいいとは思うのだけど,見つけられなかった。)

次に,xorg.confの本丸の編集を行う。とは言ってもそれほど難しい作業ではない。Graphic Boardがdeviceで,displayがmonitorだということを念頭において,望むような設定を構築する。

つまり,deviceは1つで,それに2つのmonitorを繋いで,その2つのmonitorを1つのscreen上に並べればよいのだ。

困ったらman xorg.conf!!

そして僕の設定は次のようになった。

Section "ServerLayout"
        Identifier     "X.org Configured"
        Screen      0  "Screen0" 0 0           # Screenは1つ
        InputDevice    "Mouse0" "CorePointer" 
        InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "Files"
(省略)
EndSection

Section "Module"
(省略)
EndSection

Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
        Option      "XkbModel"    "jp106"
        Option      "XkbLayout"   "jp"
EndSection

Section "InputDevice"
(省略)
EndSection

Section "Monitor"
        Identifier   "Monitor0"       # 自分のわかりやすい名前でよい
        VendorName   "Monitor Vendor" # よく分からないけど設定不要?
        ModelName    "Monitor Model"  # よく分からないけど設定不要?
EndSection

Section "Monitor"
        Identifier   "Monitor1"
        Option       "RightOf" "Monitor0"  # ← Key point!!
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
EndSection

Section "Device"
        Identifier  "Card0"         # このあたりはXが自動で認識した。
        Driver      "radeonhd"
        VendorName  "ATI Technologies Inc"
        BoardName   "Unknown Board"
        BusID       "PCI:1:0:0"
# Optionでmonitorを設定する。"monitor-" の後に,さっきxrandrで調べた接続情報を書く。その後に識別子。
        Option      "monitor-DVI-I_1/analog" "Monitor0"
        Option      "monitor-DVI-I_2/analog" "Monitor1"
EndSection

Section "Screen"              # Screenは1つ
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0" # Monitorは2つ
        Monitor    "Monitor1"
        SubSection "Display"
                Viewport   0 0
                Depth     24
                Virtual 2304 1024
        EndSubSection
EndSection

まぁざっとこんな感じ。Key pointは,xorg -configurexrandrを使うこと。あとmanをよむこと!!

たぶんこのあたりの設定が一番Linuxの面倒なとこなんだとおもう。頑張ってください。

PowerPointに数式を埋め込むための最良の方法,或いはPOORMAN's TeXpoint

PowerPointに数式を埋め込む,とは,これまでの長年の課題であった。もちろん「数式」というのは,定義に立ち戻って考えると,まず第一にTeXのあの形式で書くものであり,また第二にTeXのあの(そこそこ)流麗な形で表示されるものである。故に「数式エディタ」などは使えないし,あるいは画像として取り込むのでは編集できないという致命的な欠陥を抱えてしまうことになる。

そして,これまではTeXpointというsharewareを,$30を払って使う,というのが標準的な方法だった。もちろん$30というのは払えない額ではない,というか正直なところ安いと思うのだけれど,しかし何となく買う気が起きずにここまできた。


前置きが長くなったのでとっとと結論を言うと,

蝶々というのがめちゃくちゃ使いやすそうだよ!!!

ということだ。他にもtakatexIguanaTexpptTeXなどを試してみたけど,一度作った数式をすぐに編集できるという点で,蝶々が優れていると思う。

でもWindowsのPowerPoint2007専用だから,古い時代の人たちはあきらめてね!!!!

ちなみに古い時代の人たち(笑)には,もちろんTeXpointを買うのも良いけれども,pptTeXもお薦めしておく。実は最初は,pptTeXの方がversion upに積極的かな,と思ってpptTeXを使おうかと思ったのだけど,どうやら作者がJobsの軍門に下ったようなので……。(まぁ僕も実はMacの軍門に下ったのですが。)Macにはkeynoteがあるからねぇ。

っていうか正直,蝶々が圧倒的すぎたよ。