Re: 文中での分数表記法の変更

名前: misc
日時: 2004-04-13 23:41:31
IPアドレス: 210.230.18.*

>>28084 >どちらのケースでも、数式モード外で使うと、エラーも警告もなしに >斜線だけが出力される(分母、分子が無視される)ようです 実は,LaTeX2.09(あるいは plain TeX)では,あの定義でも問題ありません. # ただし,/\kern-.15em となっているべき箇所が /kern-.15em と # なっていたので,その点も修正します. LaTeX2e の場合,最も簡単に補正するには, \def\FRAC#1#2{% \leavevmode \ensuremath{\kern.1em \raise.5ex\hbox{\the\scriptfont0 #1}% \kern-.1em/\kern-.15em \lower.25ex\hbox{\the\scriptfont0 #2}}} のように \ensuremath を補うとよいでしょう. # 以下,余談です. この問題は,\textfont0,\scriptfont0 etc. の数式フォントは, LaTeX2e では 現在の文字サイズにおいて数式が用いられた際に設定される ということによります. # LaTeX2.09 などでは,文字サイズ変更用のマクロ自身に数式フォントの # 設定処理が含まれています(そのため,{\Large\boldmath $...$} は # 意図どおりに処理されても {\boldmath\Large $...$} では \boldmath が # 無視される,ということが起こりました). 実際,\ensuremath を補う前の定義を用いたとしても, $a$ \FRAC{1}{2} のように \FRAC の前に数式が入っていると,\FRAC の時点では 現在のサイズでの \scriptfont0 が設定済みとなり,分母・分子も 出力されます. しかし,さらに \normalsize $a$ \FRAC{1}{2} {\LARGE \FRAC{1}{2}} としてみると,\LARGE を適用した \FRAC の分母・分子の文字サイズは \normalsize の場合のままになります(これも結局,数式用フォントが “\LARGE 用”に更新されていない,ということによります). 以上のことをふまえると,数式モードそのものにしなくても 数式用フォントの更新のみを行えば充分とわかり,\FRAC を次のように 変更することができます. \makeatletter \def\FRAC#1#2{% \leavevmode \kern.1em \raise.5ex\hbox{\check@mathfonts \the\scriptfont0 #1}% % ↑\check@mathfonts を追加 \kern-.1em/\kern-.15em \lower.25ex\hbox{\the\scriptfont0 #2}} \makeatother # ここで追加した \check@mathfonts は,LaTeX2e が数式の開始時に # 強制的に実行することにしているマクロです. # LaTeX2e における \LaTeX の定義にも \check@mathfonts が # 明示的に書き込まれていますが,それも数式フォントの初期化の # タイミングの問題によります(この場合には \sf@size を利用する # 都合ですが…).

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます)