숫자에서 앞에 오는 0을 제거하는 방법은 무엇입니까?

숫자에서 앞에 오는 0을 제거하는 방법은 무엇입니까?

앞에 0이 있는지 사용자 입력(숫자 매개변수)을 확인하고 제거하려고 합니다. 그러한 명령이 에서 제공되는지 LaTeX2e, 아니면 엔진( pdftex, ) 중 하나에서 제공되는지 궁금합니다 xetex.

답변1

\number

egreg를 참조하세요.논평, -2147483647에서 2147483647 범위의 정수에 대한 가장 간단한 솔루션은 다음과 같습니다.

\number000123⌴
\number-000456⌴

결과: 123 및 -456

로 표시된 공백은 숫자 분석을 종료하고 일반 텍스트에서 숫자가 뒤따를 경우 사고를 방지합니다.

이 솔루션은 확장 가능하며 예를 들어 \csname, \label, 내부에서 사용할 수 있습니다.\typeout

패키지bigintcalc

이 패키지는 임의의 큰 정수에서 선행 0을 제거하기 위한 확장 가능한 방법을 제공합니다. 문서에서:

\bigintcalcNum {⟨x⟩}

매크로는 \bigintcalcNum불필요한 선행 0이나 부호 없이 해당 인수를 정규화된 정수로 변환합니다. 결과는 정규식과 일치합니다.

0|-?[1-9][0-9]*

예:

\usepackage{bigintcalc}% plain TeX: \input bigintcalc.sty
...
\bigintcalcNum{000123456789123456789123456789}
\bigintcalcNum{-000123456789123456789123456789}

결과: 123456789123456789123456789 및 -123456789123456789123456789

매크로는 확장 가능하며 패키지는 다양한 TeX 버전(LaTeX, 일반 TeX, iniTeX 등)과 함께 사용할 수 있습니다.

패키지siunitx

숫자를 인쇄하려는 경우 패키지는 siunitx숫자 형식을 지정하는 다양한 옵션을 제공합니다. 기본적으로 선행 0은 제거됩니다.

\documentclass{article}
\usepackage{siunitx}
\begin{document}
\num{000123}; \num{-000456}
\end{document}

결과: 123; -456

관련 정보