名前: 山本和義 日時: 2009-03-05 00:14:25 IPアドレス: 218.226.119.*
>>52877 私からも解説をつけておきます.まずは一般論です. %%% 一般論 %%% guishell.exe を用いて W32TeX での多重 texmf tree を実現する(つまり, texmf-local を読めるようにする)には,「guishell が行う挙動」を調べ, 「その対処法を模索する」ことが必要です.以下 guishell.exe ver.1.39.1 で話を します.それより前の ver. については知りません(興味がありません). 「guishell が行う挙動」については,問題解決法を述べるものではないので 別スレッドで置いておきます.これを読めば,guishell で現状の W32TeX を扱う場合 において,多重 texmf tree を実現するための「一つの解」は, 環境変数 TEXMFMAIN を適切に設定しておくこと であることが解ります(ただし,texmf.cnf を「読む」ことは必要です).何をもって 「適切」というのかは,正確には,「texmf.cnf の同名変数に override した際, 思い通りの動作をすること」なのですが,ここでは次のようなコンセプトをとります. 1) 数年前まで行っていた設定がそのまま使えるならばそれがよい 2) dviout の設定で ^T を使った場合の衝突を避けたい 3) 1)2) を重視するので,単純にコピー・ペーストしただけで実現できるような 方法は採用しない(絶対path を記述するようにする) これに従うならば,1世代前の設定方法で TEXMFMAIN=C:/usr/local/share/texmf とだけ設定されていればよいということになります. # 2世代前の TEXMF は,必要の無い限り設定しないこと. # TEXMFCNF は設定してもしなくてもよい(設定者のコンセプトによる). # 要するに,1世代前の TEXMFMAIN & TEXMFCNF の設定なら,ver.1.39.1 にしてさえ # おけば何の問題もなく使えるわけで,現状で快適に使っている人はそのようにして # いるのではないでしょうか.環境変数の設定をまじめに考えているのなら,自然に # できているはずのことだと思います. %%%%%%%%%%%%%% 現状では,TEXMFMAIN の設定方法を全く知らない人も多いようです(正確には10年以上 前から環境変数 TEX... の設定なんて何も知らないという人がたくさんいるのでしょう). そこで,「 難しいことはどうでもいいから答えを教えてくれ」という場合の具体論を 書いておきます.ただし,コピー・ペーストはダメです.path名に関しては各自の環境 に合わせて書き換えてください. %%% 具体論 %%% 1) まず,guishell.exe ver.1.39.1 に upgrade してください.もしもできないという のなら,ここに書いてあることは無視してご自分で方法論を模索してください. 2) 環境変数 TEXMFMAIN を,例えば TEXMFMAIN=C:/usr/local/share/texmf のように設定してください.設定方法は, / を用いて,MAIN の texmf tree への path を1つだけ記述する というものです(現状の W32TeX なら,これでうまくマッチする).つまり, TEXMFMAIN=(/を用いた texmf ディレクトリへの path) とします.ディレクトリセパレータは \ ではなく / が標準です.\ でも同等に 動作するかもしれませんが,積極的な理由( \ でないと不具合が起こるといった理由)が 無い限り / を用いてください. # 「私の場合には具体的にはどのように設定すればいいのですか?」といった質問には # 答えるつもりはありません.つまり,コピー・ペーストですむ答えは用意する # つもりはありません(そのような人には専用のインストーラーが必要なのでしょう). # texmf という名前のディレクトリ(フォルダ)を探して同等になるように設定すれば # たぶん OK です. 3) 環境変数 TEXMF が設定されていたならば,それは削除してください. # 何が何でも設定したいというなら,マニュアル類を読みまくってください. 4) 環境変数 TEXMFCNF については,各自のご判断で設定するかどうかを決めてくだ さい.「よくわかんない」という人は設定の必要はありません.TEXMFMAIN, TEXMF とは 考え方が異なるので設定方法だけ書いておきます.これは,platex.exe 等を実行する 場合に読み込む texmf.cnf の存在するディレクトリの path を / を用いて指定します. 例えば, TEXMFCNF=C:/usr/local/share/texmf/web2c とします.複数の path を記述する場合には ; で区切って指定します.その場合, 複数の texmf.cnf が見つかった場合の動作は単純ではないのでマニュアルをよく読んで 下さい(「解ってないのなら,勝手なことはしない方がよい」ということです). %%%%%%%%%%%%%%
この書き込みへの返事: