
Estoy tratando de verificar la entrada del usuario (un parámetro numérico) en busca de ceros a la izquierda y eliminarlos. Me pregunto si dicho comando lo proporciona LaTeX2e
o uno de los motores ( pdftex
, xetex
).
Respuesta1
\number
Ver egregcomentario, para obtener la solución más simple para números enteros en el rango -2147483647 a 2147483647:
\number000123⌴
\number-000456⌴
Resultado: 123 y -456
El espacio marcado con ⌴
finaliza el análisis del número y evita accidentes si los dígitos siguen en el texto normal.
Esta solución es ampliable y se puede utilizar dentro de \csname
, \label
, \typeout
, por ejemplo.
Paquetebigintcalc
Este paquete proporciona un método ampliable para eliminar ceros a la izquierda de números enteros arbitrariamente grandes. De la documentación:
\bigintcalcNum {⟨x⟩}
Macro
\bigintcalcNum
convierte su argumento en un número entero normalizado sin ceros ni signos innecesarios. El resultado coincide con la expresión regular:0|-?[1-9][0-9]*
Ejemplo:
\usepackage{bigintcalc}% plain TeX: \input bigintcalc.sty
...
\bigintcalcNum{000123456789123456789123456789}
\bigintcalcNum{-000123456789123456789123456789}
Resultado: 123456789123456789123456789 y -123456789123456789123456789
La macro es ampliable, el paquete se puede utilizar con muchas versiones de TeX (LaTeX, Plain TeX, iniTeX, ...)
Paquetesiunitx
Si el número va a imprimirse, el paquete siunitx
ofrece muchas opciones para formatear el número. De forma predeterminada, se eliminan los ceros a la izquierda:
\documentclass{article}
\usepackage{siunitx}
\begin{document}
\num{000123}; \num{-000456}
\end{document}
Resultado: 123; -456