Por que usamos \number em Latex?

Por que usamos \number em Latex?

Aqui está o meu código:

\documentclass{article}

\makeatletter
\def\Printdimen#1#2{\strip@pt \dimexpr #2 *65526 /\number\dimexpr 1#1}
\makeatother

\begin{document}

\Printdimen{mm}{\hsize} mm
\end{document}

Responder1

A macro \strip@ptdeseja depois um registro de dimensão; removerá o final ptapós o valor extraído.

No e-TeX, \dimexprele se comporta como um registrador de dimensão “sem nome”, então é bom depois \strip@pt. De acordo com as regras de sintaxe de \dimexpr, uma dimensão (implícita ou explícita) dentro dela pode ser seguida por *ou /para denotar multiplicação ou divisão (arredondada). No entanto, o multiplicador/divisordeveseja um número inteiro.

Então \dimexpr 3pt/2é válido, mas \dimexpr3pt/1.5não é.

Um registro de dimensão que aparece em um contexto onde o TeX espera um número inteiro será forçado a ele usando o valor em pontos escalonados; 65.536 pontos na escala equivalem a 1 ponto, que é a razão do multiplicador 65.536.

Portanto, \numbernão é realmente necessário e

\makeatletter
\def\Printdimen#1#2{\strip@pt\dimexpr (#2) * 65536 / \dimexpr 1#1\relax\relax}
\makeatother

é bom também. É melhor adicionar os dois \relaxque terminam a \dimexprexpressão.

informação relacionada