updmap + cmsuperで話題になったLatin Modernの問題ですが,スレッドを分けました。
ここでの問題は,Latin Modernと非ラテン文字言語を併用すると,非ラテン文字言語のフォントが探せなくなるという現象です。
具体的にはLatin Modernのスタイルファイル(lmodern.sty)の定義方法の問題で,renewcommandでComputer Modern(cmr)を単純にlmrで置き換えてしまうため,非ラテン文字の定義まで影響を及ぼして,存在しないフォント(例えばOT2lmrなど)を探してしまい処理に失敗するというものです。
この問題はすでに2年ほど前に稲垣さんから報告をいただき,またギリシャ文字(Cbフォント)キリル文字(LHフォント)の対応方法も検討いただきました。
最初の報告
http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/46444.html
対応マクロ
http://www2.tba.t-com.ne.jp/ing/babel.html
あれから時間が経ちましたので,対応状況を最新版で再確認しました。
まず,Latin Modernとcbfonts(ギリシャ語)の併用についてはcbfontsの最新版(2008.1)で(つまりcbfonts側
で)対応されました。具体的には稲垣さんの方法と同様,lgrcmr.fdなどのフォント定義ファイルを作り実フォントへ対応関係を作る方法です。最新版ではロマン,サンセリフ,タイプライタ体に加えてアウトラインフォント用も提供され,またサイズもType1フォントの充実に合わせて5〜17ptまで定義されています。
CTAN/fonts/greek/cbfonts
キリル文字(ロシア語など)については今のところ対応マクロを探すことが出来ていません。こちらは従来通り稲垣さんのマクロで対応可能です。LHフォントはデザインとしてはcmフォントに合わせて作られているので,むしろcm-superを使う方がよいということでしょうか。
cbfontsについてはメンテナーのベッカーリさんがLMとの併用でも問題なしと判断したのかも知れません。また本来はLatin Modern側で対処すべき(と思われる)問題をフォローしている点でも親切です。
ギリシャ文字,キリル文字以外の非ラテン文字パッケージでも同様の問題は起こると思われます。それぞれ対応マクロを作ってやるか,あるいはLatin Modernはラテン文字専用と割り切って使うべきかも知れません。
もし他のパッケージと併用された方がいらっしゃいましたらご報告歓迎いたします。
その他何かありましたらコメントいただければ幸いです。
(すみません,再投稿となりました)
すみません,追加情報です。
現在のパッケージの最新版は
Babel v3.8l (2008.7) CTAN/macros/latex/required/babel
cbfonts (2008.1) CTAN/fonts/greek/cbfonts
LHfont (2006.6) CTAN/fonts/cyrillic/lh/
Latin Modern 1.106 (2008.1) CTAN/fonts/lm
になります。すべてCTANから入手できます(ringミラーはZIPファイルあり)。
LaTeXのバージョンはLaTeX2e <2005/12/01>を要求されるので,teTeX3(ptetex3)ではLatin Modernのフォントが探せなかったりしますので,テストされる方はご注意下さい。
#フォント名がcork-lmr10などからec-lmr10などへ指定方法が変わったため
最新版のW32TeX,ptexlive等では問題ないと思います。
Babelの最新版も言語間の命令競合などで若干問題があるようです。こちらも追って報告したいと思っています。
現在のパッケージの最新版は
Babel v3.8l (2008.7) CTAN/macros/latex/required/babel
cbfonts (2008.1) CTAN/fonts/greek/cbfonts
LHfont (2006.6) CTAN/fonts/cyrillic/lh/
Latin Modern 1.106 (2008.1) CTAN/fonts/lm
になります。すべてCTANから入手できます(ringミラーはZIPファイルあり)。
LaTeXのバージョンはLaTeX2e <2005/12/01>を要求されるので,teTeX3(ptetex3)ではLatin Modernのフォントが探せなかったりしますので,テストされる方はご注意下さい。
#フォント名がcork-lmr10などからec-lmr10などへ指定方法が変わったため
最新版のW32TeX,ptexlive等では問題ないと思います。
Babelの最新版も言語間の命令競合などで若干問題があるようです。こちらも追って報告したいと思っています。
すみません。しつこいようですが、「本来は Latin Modern 側で対応すべき」と「思う」根拠が今一つ把握できていません。もう少し詳しく述べて頂けると有り難いのですが。
ほとんどのフォントパッケージは自分が提供するエンコーディング以外についてのフォールバック処理は行っていないのはご存知だと思います。例えば、txfonts を読んでエンコーディングを LGR や T3 に切り替えると、「予想通り」無効な設定になります。ここで何か有効なフォントにフォールバックすべきと考える人は少ないと思います。
だとすると lmodern の何が特別なのかということがポイントになると思います。また、対応すべきなのは T2A や LGR といった「メジャー」なものだけに限るのか、それとも TS3 や T2D といったマイナーなエンコーディングも含むのかにも興味があります。