Esta preguntaexplica la diferencia entre \over
y \frac
y parece como si los miembros más experimentados estuvieran de acuerdo unánimemente en que \over
es inferior (si no algo de lo que lamentarse); sin embargo, el ejemplo de egreg, si bien ilustra un problema potencial, no es suficiente para disuadirme de la practicidad de \over
.
Acabo de descubrir este comando y aún no lo he implementado en ninguna parte, pero encuentro un atractivo sustancial en la practicidad de no tener que usar delimitadores en todas partes (especialmente porque hago una codificación de colores extensa de expresiones, que también multiplica los delimitadores).
Confío en la experiencia de esta comunidad, pero me gustaría, si es posible, entender qué tipo depráctico¿Problemas que corro el riesgo de encontrar con el uso ocasional \over
cuando trato con expresiones simples?
Porqueprácticoes subjetivo, intentaré ilustrar la medida prevista con el ejemplo de egreg: él ilustró la diferencia en la representación entre:
\[
\fam0 a \over b
\]
y
\[
\frac{\fam0 a}{b}
\]
Para mis propósitos, si surgiera un problema de este tipo, se resolvería fácilmente usando \frac
y, aunque este ejemplo ilustra undefecto y \over
la necesidad de algo más sólido, no me ilustra ninguna razón para evitarlo \over
cuando produce el resultado deseado.
Respuesta1
EnLa puesta a punto de TeX de 2014(TUGboat, Volumen 35 (2014), No. 1), que analiza todos los cambios realizados en TeX según los comentarios recibidos en los años 2008-2013 (todos los cambios = un solo cambio:ver esta pregunta), Donald Knuth responde a una pregunta sobre \over
versus \frac
y similares:
Preguntas y respuestas Barbara [Beeton] también me pidió que respondiera tres preguntas, que, según dijo, “siguen apareciendo en varios foros”, para poder indicarle a la gente las respuestas si esas preguntas vuelven a surgir.
[…]
(2) Si estuvieras diseñando TeX hoy, ¿seguirías usando
\over
y friends, en lugar de algo como\frac{...}{...}
, cuando este último evitaría la necesidad de\mathchoice
y\mathpalette
?Esta pregunta, de
tex.stackexchange.com
, también citada de la página 151 de [El libro de texto]:
\mathchoice
Es algo costoso en términos de tiempo y espacio, y debes usarlo sólo cuando estés dispuesto a pagar el precio.Y bueno, supongo que esa cita implica mi respuesta. Porque estaba claramente dispuesto a pagar el precio en 1982, ¡así que ciertamente estoy dispuesto a pagar cero hoy!
Supongo que hay algunas personas en el mundo que prefieren expresiones como 'suma(2, 3)' a '2 + 3'; pero ciertamente no estoy entre ellos. Desde que nació TeX, me ha complacido enormemente poder escribir '
2\over3
' o 'n\choose k
' o 'p\atop q
' o ···, en lugar de verme obligado a escribir algo como 'frac{2}{3}
' que habría distraído mi atención de la tarea en cuestión. mano.El autor de la pregunta parece querer imponer cargas a todos los usuarios, en lugar de a unos pocos macrodesarrolladores.
Si observa la definición de LaTeX \frac
(puede invocarla texdoc source2e
para leerla), verá que es:
(También puedes encontrar esta definición
\def\frac#1#2{{\begingroup#1\endgroup\over#2}}
en texmf-dist/source/latex/base/ltmath.dtx
, o con \show
, o lo que sea.)
Entonces, cada vez que escribes \frac{a}{b}
un documento, es exactamente como si hubieras escrito:
{\begingroup a \endgroup\over b}
No hay nada más, ni mágico, en usar \frac
. Y si en un contexto dado (típico) \begingroup
y \endgroup
no son necesarios (es decir, se produce el mismo resultado sin ellos), puede eliminarlos, y de manera similar para las llaves exteriores, de modo que sería equivalente a escribir a \over b
en ese caso.
En cuanto a tu pregunta:
Para mis propósitos, si surgiera un problema de este tipo, se resolvería fácilmente usando
\frac
y, aunque este ejemplo ilustra undefectoy\over
la necesidad de algo más sólido, no me ilustra ninguna razón para evitarlo\over
cuando produce el resultado deseado.
simplemente no existe una diferencia práctica del tipo que está buscando: cuando \over
produce el resultado deseado, son equivalentes; El único punto de su uso \frac
es que a veces no son equivalentes y \over
pueden generar resultados no deseados.
Entonces, para resumir: su elección se reduce a dos opciones:
Te gusta la
\frac
sintaxis. Luego úselo y felicítese por no tener que preocuparse por obtener accidentalmente una salida incorrecta y por ser "consistente" con las detalladas convenciones de sintaxis de LaTeX.Te gusta la
\over
sintaxis. Luego úselo y felicítese por la sintaxis más simple (la preferida de Knuth también), y si alguna vez accidentalmente obtiene un resultado incorrecto, simplemente obsérvelo y corríjalo, diciéndose a sí mismo que no es gran cosa.
Cuando pides “consecuencias prácticas” y dices que
No puedo imaginar un contexto donde el uso
\over
causaría un problema que no podría resolverse simplemente usando\frac
para esa instancia
No sé qué tipo de respuesta estás buscando, porque no existe tal contexto,por definición(de \frac
): si en algún contexto \over
se obtiene un resultado incorrecto, siempre puedes solucionarlo agregando llaves o grupos y, de hecho, usando \frac
. Para eso es.
Respuesta2
No hay ventajas al utilizarlo \over
en un documento LaTeX.
Un objetivo principal de LaTeX es brindar una sintaxis consistente para un marcado basado en tex, con argumentos obligatorios y {}
opcionales, []
etc., por lo que \rule{2pt}{3pt}
no \hrule width 2pt height 3pt
. El uso \over
lo rompe por completo.
Si usas \over
con amsmath
cargado obtendrás la advertencia
Package amsmath Warning: Foreign command \over;
(amsmath) \frac or \genfrac should be used instead
(amsmath) on input line 6.
En muchos sentidos, es una pena que sea sólo una advertencia y no un error, ni nosotros ni el AMS fuimos lo suficientemente valientes en ese momento :-)
En términos prácticos, por supuesto, TeX \over
funcionará en la mayoría de los casos, a menos que algún paquete se vuelva más valiente y no esté definido; sin embargo, el hecho de que no obedezca las mismas reglas de sintaxis tiene un costo, especialmente en TeX a html y otros convertidores. Sin utilizar un motor de ejecución TeX completo, es bastante difícil saber cuáles son los argumentos \over
y, por lo tanto, complica el trabajo de los convertidores que pueden no admitirlo en absoluto o solo admitir casos simples.
Si cree que la \over
sintaxis es más sencilla, responda la siguiente pregunta antes de ejecutar el ejemplo.
¿Cuál es la fracción en cada uno de estos 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}