この質問\over
はとの違いを説明しており\frac
、経験豊富なメンバーのほとんどが は劣っている(まったく残念なことではないにしても)ことに全員一致で同意しているようです\over
。ただし、egreg の例は潜在的な問題を示しているものの、 の実用性を思いとどまらせるには十分ではありません\over
。
私はこのコマンドを発見したばかりで、まだどこにも実装していませんが、どこでも区切り文字を使用する必要がないという実用性に大きな魅力を感じています (特に、式を広範囲に色分けしているため、区切り文字も増えます)。
私はこのコミュニティの経験を信じていますが、可能であれば、どのような実用的\over
簡単な式を扱うときに、を時々使用することで遭遇するリスクのある問題は何ですか?
なぜなら実用的主観的なものなので、私はegregの例を使って意図した測定を説明してみたいと思います。彼は次の表現の違いを説明しました:
\[
\fam0 a \over b
\]
そして
\[
\frac{\fam0 a}{b}
\]
私の目的上、このような問題が発生した場合、およびを使用することで簡単に解決できます\frac
。この例では、欠点 より堅牢なものが必要であることは明らかですが、望ましい出力が得られる場合に\over
それを避ける理由は私にはわかりません。\over
答え1
で2014 年の TeX チューンナップ(TUGboat、第35巻(2014年)、第1号)では、2008年から2013年にかけて寄せられたコメントに基づいてTeXに加えられたすべての変更について説明しています(すべての変更 = 単一の変更:この質問を見る\over
)、ドナルド・クヌースは、対と類似のものについての質問に答えています\frac
。
質問と回答 バーバラ・ビートン氏はまた、私に3つの質問に答えるように頼みました。彼女によると、これらの質問は「さまざまなフォーラムで頻繁に出題される」とのことで、再び同じ質問が出されたときに人々に答えを教えることができるとのことでした。
[…]
(2) もしあなたが今日TeXを設計するとしたら、やの必要性を回避する の
\over
ようなものよりも、 や の仲間を 使い続けるでしょうか?\frac{...}{...}
\mathchoice
\mathpalette
この質問は、
tex.stackexchange.com
[TeXbook について]:
\mathchoice
時間とスペースの面で多少コストがかかるため、そのコストを支払ってもよい場合にのみ使用してください。まあ、この引用文が私の答えを暗示していると思います。1982 年に私は明らかに代償を払うつもりだったのですから、今日は絶対にゼロを払うつもりです!
世の中には「2 + 3」よりも「sum(2, 3)」のような表現を好む人もいると思いますが、私はもちろんその一人ではありません。TeX が誕生して以来、私は「
2\over3
」や「n\choose k
」や「p\atop q
」や··· と書けることに非常に満足しており、「」のような書き方を強いられると、frac{2}{3}
目の前の作業から注意が逸れてしまいます。質問者は、少数のマクロ開発者に負担をかけるのではなく、すべてのユーザーに負担をかけたいと考えているようです。
LaTeX の定義\frac
(呼び出すtexdoc source2e
と読み取れます) を見ると、次のようになっていることがわかります。
(この定義も参照してください
\def\frac#1#2{{\begingroup#1\endgroup\over#2}}
でtexmf-dist/source/latex/base/ltmath.dtx
、または とともに\show
、あるいは何でも。
したがって、\frac{a}{b}
文書に入力するときは常に、次のように入力した場合とまったく同じになります。
{\begingroup a \endgroup\over b}
を使用することで、それ以上の、あるいは魔法のようなことは何もありません\frac
。また、特定の(一般的な)コンテキストで\begingroup
と が\endgroup
必要ない場合(つまり、それらがなくても同じ出力が生成される場合)、それらを削除できます。外側の中括弧についても同様です。その場合、次のように記述するのと同等になりますa \over b
。
あなたの質問に関しては、次のようになります:
私の目的上、このような問題が発生した場合、およびを使用することで簡単に解決できます
\frac
。この例では、欠点より堅牢なものが必要であることは明らかですが、望ましい出力が得られる場合に\over
それを避ける理由は私にはわかりません。\over
あなたが探している種類の実際的な違いは単にありません。 が\over
目的の出力を生成する場合、それらは同等です。 を使用する唯一の点は、\frac
それらが同等ではなく、\over
望ましくない出力を生成する可能性があるということです。
まとめると、選択肢は次の 2 つに絞られます。
構文が気に入ったら
\frac
、それを使用して、誤って間違った出力を取得する心配がないこと、および冗長な LaTeX 構文規則に「一貫している」ことを自画自賛してください。構文が気に入ったら
\over
、それを使用して、よりシンプルな構文 (Knuth も好む) を自分で褒めてあげてください。そして、誤って間違った出力が得られた場合は、それに気づいて修正し、大したことではないと自分に言い聞かせてください。
「実際的な結果」を求めて、
を使用すると、そのインスタンスで
\over
を使用するだけでは解決できない問題が発生する状況を想像できません。\frac
あなたがどのような答えを求めているのか分かりません。そのような文脈は存在しないからです。定義により(の\frac
): 何らかのコンテキストで が\over
間違った出力を返す場合は、中括弧またはグループを追加したり、 を使用したりすることでいつでも修正できます\frac
。 はそのためにあるのです。
答え2
\over
LaTeX 文書で使用することには利点はありません。
{}
LaTeX の主な目的は、Tex ベースのマークアップに、必須の引数やオプションの引数[]
など、\rule{2pt}{3pt}
一貫した構文を提供することです\hrule width 2pt height 3pt
。 を使用すると、\over
それが完全に壊れます。
\over
loadedを使用するとamsmath
警告が表示されます
Package amsmath Warning: Foreign command \over;
(amsmath) \frac or \genfrac should be used instead
(amsmath) on input line 6.
多くの点で、これはエラーではなく警告に過ぎないというのは残念なことです。私たちと AMS は当時、十分な勇気を持っていなかったのです :-)
実際\over
には、一部のパッケージが大胆になって定義解除しない限り、TeX 内ではほとんどの場合に動作しますが、同じ構文規則に従わないという事実は、特に TeX から HTML やその他のコンバーターではコストがかかります。完全な TeX 実行エンジンを使用しないと、引数が何であるかを知るのは非常に難しく\over
、そのため、まったくサポートしていないか、単純なケースのみをサポートしているコンバーターの作業が複雑になります。
構文がもっと簡単だと思う場合は\over
、例を実行する前に次の質問に答えてください。
これらのそれぞれの場合の割合はいくらでしょうか?
\documentclass{article}
\begin{document}
$ 1 + \begingroup a \over b \endgroup + 2$
$ 1 + \bgroup a \over b \egroup + 2$
$ 1 + { a \over b \egroup + 2$
$ 1 + \bgroup a \over b } + 2$
\end{document}