ようこそゲストさん

Kerosoft : Modus Operandi

2009/06/30(Tue) UTF-8なTeX環境の構築 [Linux編]

はてブ情報 はてブに登録 はてブ数 2009/06/30 16:42 Software::Linux
最近ちょっとTeXを使う機会ができたので、インストールしてみるかということになったのだけど、日本語対応のTeX環境というのは意外に作るのが難しい。
いや、多くの方々の尽力によって簡単になっているものの、たくさんパッチやら設定ファイルやらの書き換えで初心者には敷居が高いという状況であろうか。少なくともMicrosoft Officeのように、「買ってきて、CD突っ込んで、インストールを押して待っていればよい」なんてことはない。

というわけで、今回はLinuxで比較的簡単にUTF-8なtexファイルをコンパイルできる環境を作る方法を紹介。
ちなみにWindowsでTeX環境を作る話はこちら

パッケージ入手

古くからTeX環境を使っていらっしゃる方なら、「TeXといえばEUC-JPだろ」という意見でしょう。
が、昨今FedoraのようにデフォルトロケールがUTF-8なLinuxも登場し、Windowsとの親和性も考えると*1EUC-JPに縛る必要はないと考えています。というか、逆にメモ帳なんかで開けないので不便です。*2

ここではptetex3という非常に便利なパッケージ化してくださったものを使うことにします。
実はこのパッケージのREADMEに十分過ぎるほどの説明があるのですが、「まずそこまでたどり着かない人」のために書いておきます。

まずは、ここから最新の"ptetex3-???????.tar.gz"を入手。
執筆時点では、2009/06/10版が最新のようですね。

次に、RINGサーバーからtetex-src-3.0.tar.gztetex-texmf-3.0po.tar.gzを入手。

全て同じ場所にダウンロードし、ptetex3だけ解凍します。
$ wget http://tutimura.ath.cx/~nob/tex/ptetex/ptetex3/ptetex3-20090610.tar.gz
$ wget http://www.ring.gr.jp/pub/text/CTAN/obsolete/systems/unix/teTeX/3.0/distrib/tetex-src-3.0.tar.gz
$ wget http://www.ring.gr.jp/pub/text/CTAN/obsolete/systems/unix/teTeX/3.0/distrib/tetex-texmf-3.0po.tar.gz
$ tar zxf ptetex3-20090610.tar.gz

*1 : 私はWindowsでもTeX環境を持っておきたかったが、フロントエンドのTeXMakerがJISかSJISかUTF-8しか読めなかった。

*2 : EUC-JP対応のエディタはいくつかインストールしてるけどね……

インストール

次に解凍されたディレクトリに移動し、設定ファイルをいじります。
$ cd ptetex3-20090610
$ cp my_option.sample my_option
$ vi my_option
とりあえず以下の3行の先頭の#を消して保存します。
KANJI_CODE=UTF8
XDVI=echo
PXDVI=echo
(ユーザー領域にインストールする場合は、"PREFIX=/home/kero/applications"等という行を足す)

後はコンパイルするだけ。
$ make

(システム領域にインストールする場合)
$ sudo make install
(ユーザー領域にインストールする場合)
$ make install
最後にパスを設定します。
Bシェルなら~/.bashrcの最後にでも
export PATH=/usr/local/teTeX/bin:$PATH
等と足します。
私は、/home/kero/applicationsにインストールしたので、"export PATH=/home/kero/applications/bin:$PATH"となります。
(Cシェルならexport文ではなくsetenvを使って~/.cshrcにでも書いてください。)

テスト

$ . ~/.bashrc
とやって~/.bashrcをリロードするか、端末を開き直すかして、このように起動できればOKです。
$ ptex
This is pTeX, Version 3.141592-p3.1.10 (utf8.euc) (Web2C 7.5.4)
 **
Ctrl+Dを打てば終了できます。

フロントエンドの導入

TeXMakerという大変便利なTeXフロントエンドがあるので、これを導入しましょう。
ダウンロードページから、"static i586 binary RPM package"をダウンロードします。(Debian/Ubuntu系の場合はDEB package)
Fedoraの場合はyumを使うという手もあるのですが、執筆現在、1.8.1しかリポジトリにないので、最新版を入れてしまいましょう。
$ wget http://www.xm1math.net/texmaker/texmaker-1.9.2-xm1.i586.rpm
$ sudo rpm -ivh texmaker-1.9.2-xm1.i586.rpm
これでOKです。
$ texmaker &
とやれば起動できるでしょう。

TeXMakerの設定

まだ設定かよ~と思われるかもしれませんが、これで最後です。
コマンドを毎回打たずに楽にコンパイルできるようにTeXMakerを設定します。

私の設定例。





基本的にパスが通ってるのでフルパスで書かなくてもいいと思いますが、システム領域にインストールされた方は、/home/kero/applications/binを/usr/local/teTeX/binに読み替える必要があります。
ポイントは、
  • LaTeXに、platexを指定し、-kanji=utf8 をつける
  • DVIビューアはxdvi*3ではなく、pxdviを使う
  • DVIpdfmはdvipdfmではなくdvipdfmxを使う
  • エディタのエンコードをUTF-8にする
位でしょうか。(Bibtexは使ってないので、もしかしたらjbibtexを使った方がいいかも)

こうすることにより、F1キーを押すだけで、texからpdfに出力してくれます。便利です♪

*3 : 日本語扱えない

追記 2010/02/09

この設定をした頃はBibtexを使ってなかったので書いていないが、参考文献に日本語が含まれる場合、ノーマルの設定だとうまくコンパイル出来ない。
.texファイルがUTF-8なんだから、.bibファイルもUTF-8にそろえた方が無難って事で、
  • Bibtexのオプションに-kanji=utf8をつける
  • Bibtexの%.aux%に変更
を追加。auxを削ったのは、何故かついてるとうまくコンパイル出来なかったから。
参考になった記事や興味深かった記事は、他の人も見つけやすいようにリンクはてブしていただけると助かります…。 コメントも歓迎です。

名前:  非公開コメント   

  • TB-URL  http://mo.kerosoft.com/0130/tb/

2009/06/30(Tue) デュアルブートにおけるNTLDR is missingのチェックポイント

はてブ情報 はてブに登録 はてブ数 2009/06/30 15:55 Software::Windows
別にある特定の機種に限った話ではないが、Windowsユーザであれば、NTLDR is missingというエラーは比較的見る機会の多いエラーだと思う。
というわけで、今回はこのTips。

はじめに

シングルブートならXPのセットアップCDでブートし、回復コンソールに入ってfixmbr, fixbootと打つのが常套手段であろう。(VistaならGUI画面からブート領域の修復だかを行うだけと、お手軽である)
が、デュアルブート(マルチプルブート)環境の場合は、「Windowsは入っているけどNTLDRはMBRに置いていない」ということもあろう。私もLinuxとデュアルブートにするため、先にXPを入れ、後からFedoraを突っ込み、MBRにはgrub2が鎮座している。
このような場合に、単純にfixmbrを行うとNTLDRのMBRに書き換わり、とりあえずXPは起動できるもののLinuxが起動できなくなるという弊害がある。
こういう場合はどうするか。

基本的には

MBRに鎮座しているブートローダーを設定をいじる。
NTLDRからWindowsとLinuxに分岐しているならWindows側のboot.ini(XPまで)やbcdedit(Vista)辺りであるし、grubやliloを使っているならLinux側の設定ファイルを設定し直せばよい。
これを行う際には各種Live Linuxがお手軽なので、安価なUSBメモリ等に放り込んでおいて損はないだろう。

が、今回私が遭遇したケースはちょっと違った。

ことのあらまし

元々FMV-BIBLO LOOX U50WN2を2台、Windows+Linuxのデュアルブート環境を整備していて、とりあえず1台完成させた。
後はパーティションごとバックアップして2台目に書き戻せばよいや~と思い、True Image等でバックアップを取り、Disk Suiteでパーティションサイズを同じように切り、True Imageで戻したのはいいが、XP側がNTLDR is missingで立ち上がらないという状況だったのである。

2台の設定を見比べてみたところで
  • grubのmenu.confも全く同一
  • ntldrやNTDETECT.COMなどのmd5sumは同じ
  • fdiskで見るBoot flagは両方同一
という状況。
2台目の方でもLinuxはきちんと動作する。

Partition table entries are not in disk order

しかし、気になったのが2台目でfdiskを起動し、pコマンドで一覧を表示したときの↑のエラーらしきコマンド。
訳せば、「パーティションテーブルのエントリがディスク順ではない」ということだが、確かにSTARTがsector1のパーティションがsda3にいる時点でおかしい。
なるほど、これでNTLDRを見に行くパーティションを混乱しているのか……。

Partition table entries are not in disk orderの直し方

Linux(LiveCDでもよい)で起動して、以下のようにやればよい。
# fdisk /dev/sda
Command (m for help): x

Expert command (m for help): f
Expert commandにおけるfとは、"fix partition order"であるので、まさにこれの修復のことである。
この後、wコマンドで保存し、再起動すれば、無事NTLDRの位置を認識し、起動することができた。
たぶん、インストールシーケンス外でパーティションをぐちゃぐちゃいじってると、このようにパーティションオーダとディスクオーダに差異ができることがあるのだろう。
参考になった記事や興味深かった記事は、他の人も見つけやすいようにリンクはてブしていただけると助かります…。 コメントも歓迎です。

名前:  非公開コメント   

  • TB-URL  http://mo.kerosoft.com/0129/tb/