名前: しっぽ愛好家 日時: 2003-02-02 17:16:33 IPアドレス: 211.4.33.*
>>16073 過去にも話題になっていましたが, amsmath パッケージは,自らが提供するディスプレイ数式環境や 行列の類の環境の中で \@ifnextchar を再定義し, \\[<skip>](<skip> は寸法)と \\<改行><文字 [ で始まる数式> を 区別できるようにしています. %%% LaTeX のオリジナルの \@ifnextchar が行っている %%% ``空白文字をスキップする'' という処理を取り止めているのです. しかし,数式で用いるフォントの一部は ``オンデマンド'' でロードされる 機構を導入しているため,数式中でも各種 fd ファイルが読み込まれます. 一方,fd ファイルの冒頭には一般的に \ProvidesFile{<encoding><family>.fd}[<date> <version> <additional info>] のように \ProvidesFile が置かれていますが, このオプション部分の処理には,もちろん,\@ifnextchar が用いられます. そして, ・\@ifnextchar が ``空白文字のスキップ'' を取り止めているように 再定義されている. ・fd ファイル内の \ProvideFile のオプション部分を \ProvidesFile{...} [...] のように改行してから記述している. という 2 つの条件が揃っているときにその fd ファイルが読み込まれると, \ProvidesFile のオプションがオプションとして扱われなくなり, 実際に出力されてしまう,というわけです. %%% SHIMA さんが挙げてくださった例では,ファイル ueuf.fd の %%% \ProvidesFile のオプション文字列が現れていると思うのですが(*). %%% %%% (*) 私の手元にあるのはバージョンが違うかなにかで, %%% %%% オプション文字列が異なっているので,断言できません. ただ,数式で使用するフォントのロードは, 最初にロードする必要があるときに行われますので, SHIMA さんの例であっても Let $\mathfrak{g}$ be a semi-simple Lie algebra and ... \begin{equation} \begin{matrix} \mathfrak g &=&\mathfrak k&\oplus&\mathfrak p\\ &\theta:&+1&&-1 \end{matrix} \end{equation} のように,最初に \mathfrak が用いられた箇所が ``LaTeX のオリジナルの \@ifnextchar が用いられているような箇所'' であれば (少なくとも ueuf.fd の読み込みに関する)問題は生じないわけです.
この書き込みへの返事: