Como se livrar dos zeros à esquerda de um número?

Como se livrar dos zeros à esquerda de um número?

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 \bigintcalcNumconverte 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 siunitxoferece 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

informação relacionada