Essa questãoexplica a diferença entre \over
e \frac
e parece que os membros mais experientes concordam unanimemente que isso \over
é inferior (se não algo para ser totalmente lamentado); no entanto, o exemplo de egreg, embora ilustrativo de um problema potencial, não é suficiente para me impedir da praticidade de \over
.
Acabei de descobrir esse comando e ainda não o implementei em lugar nenhum, mas encontro um fascínio substancial na praticidade de não ter que usar delimitadores em todos os lugares (especialmente porque faço uma extensa codificação por cores de expressões, o que também multiplica os delimitadores).
Confio na experiência desta comunidade, mas gostaria, se possível, de entender que tipo depráticoquestões que corro o risco de encontrar ao usar ocasionalmente \over
ao lidar com expressões simples?
Porquepráticoé subjetivo, tentarei ilustrar a medida pretendida com o exemplo de egreg: ele ilustrou a diferença na tradução entre:
\[
\fam0 a \over b
\]
e
\[
\frac{\fam0 a}{b}
\]
Para meus propósitos, caso tal problema surja, ele será facilmente resolvido usando \frac
e assim, embora este exemplo ilustre umdeficiência e \over
a necessidade de algo mais robusto, não me ilustra nenhuma razão para evitar \over
quando produz o resultado desejado.
Responder1
EmO ajuste do TeX de 2014(TUGboat, Volume 35 (2014), No. 1), que discute todas as alterações feitas no TeX com base nos comentários recebidos nos anos 2008–2013 (todas as alterações = uma única alteração:veja esta pergunta), Donald Knuth responde a uma pergunta sobre \over
versus \frac
e semelhante:
Perguntas e respostas Barbara [Beeton] também me pediu para responder a três perguntas, que ela disse “continuam aparecendo em vários fóruns”, para que ela pudesse indicar as respostas às pessoas se essas perguntas surgissem novamente.
[…]
(2) Se você estivesse projetando o TeX hoje, você ainda usaria
\over
and friends, em vez de algo como\frac{...}{...}
, quando este último evitaria a necessidade de\mathchoice
and\mathpalette
?Esta pergunta, de
tex.stackexchange.com
, também citada na página 151 de [O TeXbook]:
\mathchoice
é um pouco caro em termos de tempo e espaço, e você só deve usá-lo quando estiver disposto a pagar o preço.E bem, acho que essa citação implica minha resposta. Pois eu estava claramente disposto a pagar o preço em 1982, por isso estou certamente disposto a pagar zero hoje!
Suponho que existam algumas pessoas no mundo que preferem expressões como 'soma(2, 3)' a '2 + 3'; mas certamente não estou entre eles. Desde que o TeX nasceu, fico enormemente satisfeito com a capacidade de escrever '
2\over3
' ou 'n\choose k
' ou 'p\atop q
' ou ···, em vez de ser forçado a escrever algo como 'frac{2}{3}
' que teria desviado minha atenção da tarefa em mão.O questionador parece querer impor encargos a todos os usuários, e não às costas de alguns macrodesenvolvedores.
Se você olhar a definição de LaTeX \frac
(você pode invocar texdoc source2e
para lê-la), verá que é:
(Você também pode encontrar esta definição
\def\frac#1#2{{\begingroup#1\endgroup\over#2}}
em texmf-dist/source/latex/base/ltmath.dtx
, ou com \show
, ou qualquer outra coisa.)
Portanto, sempre que você digita \frac{a}{b}
um documento, é exatamente como se você tivesse digitado:
{\begingroup a \endgroup\over b}
Não há nada mais, ou mágico, em usar \frac
. E se em um determinado contexto (típico) os \begingroup
e \endgroup
não forem necessários (ou seja, a mesma saída é produzida sem eles), você pode eliminá-los, e da mesma forma para os colchetes externos, de modo que seria equivalente a escrever a \over b
nesse caso.
Então, no que diz respeito à sua pergunta:
Para meus propósitos, caso tal problema surja, ele será facilmente resolvido usando
\frac
e assim, embora este exemplo ilustre umdeficiênciae\over
a necessidade de algo mais robusto, não me ilustra nenhuma razão para evitar\over
quando produz o resultado desejado.
simplesmente não há diferença prática do tipo que você está procurando: quando \over
produz o resultado desejado, eles são equivalentes; o único ponto de uso \frac
é que às vezes eles não são equivalentes e \over
podem fornecer resultados indesejados.
Então, para resumir: sua escolha se resume em duas opções:
Você gosta da
\frac
sintaxe. Em seguida, use-o e parabenize-se por não precisar se preocupar em obter acidentalmente a saída errada e em ser "consistente" com as convenções de sintaxe detalhadas do LaTeX.Você gosta da
\over
sintaxe. Em seguida, use-o e parabenize-se pela sintaxe mais simples (preferida por Knuth também), e se você acidentalmente obtiver a saída errada, apenas observe e corrija, dizendo a si mesmo que não é grande coisa.
Quando você pede “consequências práticas” e diz que
não consigo imaginar um contexto onde o uso
\over
causaria um problema que não poderia ser resolvido apenas usando\frac
para aquela instância
Não sei que tipo de resposta você está procurando, porque não existe tal contexto,por definição(de \frac
): se em algum contexto \over
fornecer a saída errada, você sempre poderá corrigi-la adicionando colchetes ou grupos e, de fato, usando \frac
. É para isso que serve.
Responder2
Não há vantagens em usar \over
um documento LaTeX.
Um dos principais objetivos do LaTeX é fornecer uma sintaxe consistente para uma marcação baseada em tex, com argumentos obrigatórios em argumentos {}
opcionais em []
etc. Usando pausas completamente.\rule{2pt}{3pt}
\hrule width 2pt height 3pt
\over
Se você usar \over
com amsmath
carregado você receberá o aviso
Package amsmath Warning: Foreign command \over;
(amsmath) \frac or \genfrac should be used instead
(amsmath) on input line 6.
Em muitos aspectos, é uma pena que seja apenas um aviso e não um erro, nós e a AMS simplesmente não fomos corajosos o suficiente na época :-)
Praticamente falando, é claro que dentro do TeX \over
funcionará na maioria dos casos, a menos que algum pacote seja mais corajoso e o indefina, porém o fato de não obedecer às mesmas regras de sintaxe tem um custo, principalmente no TeX para html e outros conversores. Sem usar um mecanismo de execução TeX completo é muito difícil saber quais são os argumentos \over
e isso complica o trabalho dos conversores que podem não suportá-lo ou apenas suportar casos simples.
Se você acha que a \over
sintaxe é mais simples, responda à seguinte pergunta antes de executar o exemplo.
Qual é a fração em cada um desses casos?
\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}