¿Por qué usamos \number en Latex?

¿Por qué usamos \number en Latex?

Aquí está mi 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}

Respuesta1

La macro \strip@ptnecesita un registro de dimensiones; eliminará el final ptdespués del valor extraído.

En e-TeX, \dimexprse comporta como un registro de dimensión "sin nombre", por lo que es bueno después de \strip@pt. De acuerdo con las reglas de sintaxis de \dimexpr, una dimensión (implícita o explícita) dentro de ella puede ir seguida de *o /para denotar multiplicación o división (redondeada). Sin embargo el multiplicador/divisordebeser un número entero.

Así \dimexpr 3pt/2es válido, pero \dimexpr3pt/1.5no lo es.

Un registro de dimensión que aparece en un contexto donde TeX espera que un número entero sea forzado a acceder a él utilizando el valor en puntos escalados; 65536 puntos escalados son 1 punto, que es el motivo del multiplicador 65536.

Por lo tanto, \numberno es realmente necesario y

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

es bueno también. Es mejor agregar los dos \relaxque terminan la \dimexprexpresión.

información relacionada