En el modo matemático en línea, tiendo a usar la barra literal (es decir, /
) para indicar división. Sin embargo, a diferencia de los operadores binarios comunes [ + - \times \div
], /
se trata como un objeto matemático ordinario. Esto puede resultar fácilmente en un espaciado horizontal inconsistente (asimétrico), por ejemplo cuando /
está precedido por una variable y seguido por una función, como en el siguiente ejemplo:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\noindent
\(\tan x = \sin x / \cos x\)
\end{document}
Producción:
Por supuesto, puedo corregir el espaciado horizontal convirtiéndome \cos x
en un objeto matemático ordinario:
\(\tan x = \sin x / {\cos x}\)
Producción:
Alternativamente, puedo hacer que /
funcione como un operador binario similar a [ + - \times \div
]:
\(\tan x = \sin x \mathbin{/} \cos x\)
Producción:
Ahora tengo curiosidad: ¿cuál de las dos soluciones anteriores debería preferirse? ¿O hay incluso uno mejor?
Respuesta1
Definitivamente deberías preferir la versión \sin x / {\cos x}
con espacios pequeños, o \sin x / \!\cos x
como sugiere egreg. Del TeXbook, página 132:
TeX no la trata
/
como una operación binaria, aunque una barra diagonal significa división (lo que califica como una operación binaria desde el punto de vista matemático). La razón es que los impresores tradicionalmente ponen espacio adicional alrededor de los símbolos+
,−
y*
, pero no alrededor/
.
Knuth continúa, explicando que 1 \mathbin{/} 2
saldría
Cuál está mal; por lo que TeX
/
lo considera un símbolo ordinario.
Y de la página 170:
En la fórmula
$n/\log n$
, TeX inserta automáticamente un espacio fino no deseado antes de\log
, ya que la barra diagonal se trata como un símbolo ordinario y dado que normalmente es deseable un espacio fino entre un símbolo ordinario y un operador como\log
.
Respuesta2
En su caso utiliza /
como operador binario: \mathbin{/}
:
$a \mathbin{/} b$
Como abreviatura, se podría definir un comando para que actúe como una barra diagonal como operador binario:
\mathchardef\mslash="202F
$a \mslash b$
O el símbolo /
se puede cambiar globalmente para que actúe como operador binario:
\mathcode`\/="202F
$a / b$
El número inicial es la clase, 0x200 es el operador binario. Los dos últimos dígitos del número hexadecimal 2F
son el código de carácter de /
.
Respuesta3
Hay tres paquetes LaTeX que parecen ayudar:xfrac,agradablefracy posiblemente)factor(que nunca he visto por última vez; hay una referencia a él en la entrada del catálogo de nicefrac). Tenga en cuenta que xfrac es un paquete codificado en LaTeX-3.
Es posible que nada de eso ayude, pero preferiría usar un paquete probado que jugar con el funcionamiento interno del modo matemático (que generalmente me hace sentir un poco enfermo).