
Estou tentando verificar a entrada do usuário (um parâmetro numérico) em busca de zeros à esquerda e removê-los. Gostaria de saber se tal comando é fornecido por LaTeX2e
, ou por um dos motores ( pdftex
, xetex
).
Responder1
\number
Veja egreg'sComente, para a solução mais simples para números inteiros no intervalo -2147483647 a 2147483647:
\number000123⌴
\number-000456⌴
Resultado: 123 e -456
O espaço marcado com ⌴
encerra a análise do número e evita acidentes se os dígitos vierem a seguir no texto normal.
Esta solução é expansível e pode ser usada dentro de \csname
, \label
, \typeout
, por exemplo.
Pacotebigintcalc
Este pacote fornece um método expansível para remover zeros à esquerda de números inteiros arbitrariamente grandes. Da documentação:
\bigintcalcNum {⟨x⟩}
A macro
\bigintcalcNum
converte seu argumento em um número inteiro normalizado sem zeros ou sinais desnecessários. O resultado corresponde à expressão regular:0|-?[1-9][0-9]*
Exemplo:
\usepackage{bigintcalc}% plain TeX: \input bigintcalc.sty
...
\bigintcalcNum{000123456789123456789123456789}
\bigintcalcNum{-000123456789123456789123456789}
Resultado: 123456789123456789123456789 e -123456789123456789123456789
A macro é expansível, o pacote pode ser usado com vários sabores de TeX (LaTeX, TeX simples, iniTeX, ...)
Pacotesiunitx
Se o número for impresso, o pacote siunitx
oferece muitas opções para formatar o número. Por padrão, os zeros à esquerda são removidos:
\documentclass{article}
\usepackage{siunitx}
\begin{document}
\num{000123}; \num{-000456}
\end{document}
Resultado: 123; -456