Sobre o uso da barra para denotar divisão no modo matemático

Sobre o uso da barra para denotar divisão no modo matemático

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 xem 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 xcomo 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{/} 2sairia

uma metade

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 2Fsã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).

informação relacionada