¿Consecuencias prácticas del uso de \over frente a \frac?

¿Consecuencias prácticas del uso de \over frente a \frac?

Esta preguntaexplica la diferencia entre \overy \fracy parece como si los miembros más experimentados estuvieran de acuerdo unánimemente en que \overes 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 \overcuando 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 \fracy, aunque este ejemplo ilustra undefecto y \overla necesidad de algo más sólido, no me ilustra ninguna razón para evitarlo \overcuando 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 \overversus \fracy 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 \overy friends, en lugar de algo como \frac{...}{...}, cuando este último evitaría la necesidad de \mathchoicey \mathpalette?

Esta pregunta, de tex.stackexchange.com, también citada de la página 151 de [El libro de texto]:

\mathchoiceEs 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 source2epara leerla), verá que es:

definición de <code>\frac</code>

(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) \begingroupy \endgroupno 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 ben ese caso.

En cuanto a tu pregunta:

Para mis propósitos, si surgiera un problema de este tipo, se resolvería fácilmente usando \fracy, aunque este ejemplo ilustra undefectoy \overla necesidad de algo más sólido, no me ilustra ninguna razón para evitarlo \overcuando produce el resultado deseado.

simplemente no existe una diferencia práctica del tipo que está buscando: cuando \overproduce el resultado deseado, son equivalentes; El único punto de su uso \fraces que a veces no son equivalentes y \overpueden generar resultados no deseados.

Entonces, para resumir: su elección se reduce a dos opciones:

  1. Te gusta la \fracsintaxis. 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.

  2. Te gusta la \oversintaxis. 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 \overcausaría un problema que no podría resolverse simplemente usando \fracpara 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 \overse 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 \overen 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 \overlo rompe por completo.

Si usas \overcon amsmathcargado 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 \overfuncionará 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 \overy, por lo tanto, complica el trabajo de los convertidores que pueden no admitirlo en absoluto o solo admitir casos simples.

Si cree que la \oversintaxis 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}

información relacionada