Como o LaTeX renderiza um \div?

Como o LaTeX renderiza um \div?

Esta é uma pergunta complementar a esta:Como posso obter um símbolo de “dividir por” com \usepackage{physics}?Na pergunta referenciada, o OP perguntou como \undefredefinir o arquivo \div. Quero reinventar a roda e ver oexato"código-fonte" o que é usado para renderizar \divem primeiro lugar. Mas onde posso encontrá-lo?

Aqui está um MNWE:

\documentclass{article}
\begin{document}
What is the \emph{exact} ``source code'' of
\ttfamily\textbackslash div\normalfont, and
where do I find it? Whatever it is, it renders
this: $\div$. I want to use it as a 
starting-point to \ttfamily\textbackslash
def \normalfont my own variant 
\ttfamily\textbackslash mydiv\normalfont.
\end{document}

Pergunta bônus: como escrevo \ttfamily \textbackslash(o MNWE acima me avisa sobre "formatos de fonte não disponíveis").

Responder1

Supondo que TeX Live em um sistema Unix com bash, abra uma janela de terminal e digite

texdef -t latex div

e retorno. Você obterá as seguintes informações:

> texdef -t latex div

\div:
\mathchar"2204


\the\div:
8708

isso não é realmente tão interessante, talvez, para onão conhecedores. A mesma informação seria emitida fazendo \show\divuma sessão interativa ou digitando

\texttt{\meaning\div}

em um documento e digitá-lo.

No entanto, sendo \divum símbolo matemático central, a definição real pode ser encontrada em fontmath.ltx; tipo

grep '\\div\b' $(kpsewhich fontmath.ltx)

e o terminal irá imprimir

\DeclareMathSymbol{\div}{\mathbin}{symbols}{"04}

que é de fato a definição que o kernel do LaTeX faz \div.

Você encontra todas as principais definições de símbolos matemáticos fazendo algo como

less $(kpsewhich fontmath.ltx)

Responder2

O OP afirma que “Quero reinventar a roda…”

Eu observaria que, para fazer sua versão pessoal de \div, não é necessário necessariamente saber a formulação exata do original. Em particular, o código

\let\svdiv\div
\def\div{...\svdiv...}

permitirá que um novo \divseja definido em termos do original. Além disso, no caso de \div, como Joseph observou em um comentário, \show\divrevela a definição como \mathchar"2204uma indicação de que não há “código”por si sópara o sinal de divisão, mas apenas aponta para um slot de glifo da própria fonte (slot 4 da fonte do símbolo matemático).

\documentclass{article}
\usepackage{stackengine}
\begin{document}
Here is the new \textbackslash div:
\let\svdiv\div
\def\div{\mathbin{\ensurestackMath{\stackinset{c}{.002ex}{c}{-.06ex}{\circ}{\svdiv}}}}
$A \div B$
\end{document}

insira a descrição da imagem aqui

Se não se deseja redefinir o original, mas apenas definir \mydivem termos do original, então isto:

\documentclass{article}
\usepackage{stackengine}
\begin{document}
Here is \textbackslash mydiv:
\def\mydiv{\mathbin{\ensurestackMath{\stackinset{c}{.002ex}{c}{-.06ex}{\circ}{\div}}}}
$A \mydiv B$
\end{document}

informação relacionada