No modo matemático em linha, costumo usar a barra literal (ou seja, /
) para denotar divisão. Ao contrário dos operadores binários comuns, [ + - \times \div
], /
é tratado como um objeto matemático comum. Isto pode facilmente resultar em espaçamento horizontal inconsistente (assimétrico), por exemplo, quando /
é precedido por uma variável e sucedido por uma função, como no exemplo a seguir:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\noindent
\(\tan x = \sin x / \cos x\)
\end{document}
Saída:
Claro, posso corrigir o espaçamento horizontal transformando-o \cos x
em um objeto matemático comum:
\(\tan x = \sin x / {\cos x}\)
Saída:
Alternativamente, posso fazer /
funcionar como um operador binário semelhante a [ + - \times \div
]:
\(\tan x = \sin x \mathbin{/} \cos x\)
Saída:
Agora estou curioso: qual das duas soluções alternativas acima deve ser preferida? Ou existe ainda melhor?
Responder1
Definitivamente, você deve preferir a versão \sin x / {\cos x}
com espaços pequenos, ou \sin x / \!\cos x
como sugere o egreg. Do TeXbook, página 132:
O TeX não trata
/
como uma operação binária, embora uma barra signifique divisão (que se qualifica como uma operação binária por motivos matemáticos). A razão é que as impressoras tradicionalmente colocam espaço extra ao redor dos símbolos+
,−
, e*
, mas não ao redor/
.
Knuth continua, explicando que isso 1 \mathbin{/} 2
sairia
o que está errado; então o TeX considera
/
um símbolo comum.
E da página 170:
Na fórmula
$n/\log n$
, o TeX insere automaticamente um espaço fino indesejado antes de\log
, uma vez que a barra é tratada como um símbolo comum e um espaço fino geralmente é desejável entre um símbolo comum e um operador como\log
.
Responder2
No seu caso você usa /
como operador binário \mathbin{/}
::
$a \mathbin{/} b$
Como abreviatura, um comando pode ser definido para atuar como uma barra como um operador binário:
\mathchardef\mslash="202F
$a \mslash b$
Ou o símbolo /
pode ser alterado globalmente para atuar como operador binário:
\mathcode`\/="202F
$a / b$
O número inicial é a classe, 0x200 é o operador binário. Os dois últimos dígitos do número hexadecimal 2F
são o código do caractere /
.
Responder3
Existem três pacotes LaTeX que parecem ajudar:xfrac,NiceFrace possivelmente)fator(que nunca vi; há uma referência a ele na entrada do catálogo do nicefrac). Observe que xfrac é um pacote codificado em LaTeX-3.
É possível que nada disso ajude, mas eu preferiria usar um pacote testado e comprovado do que mexer no funcionamento interno do modo matemático (o que geralmente me faz sentir um pouco doente).