数字の先頭のゼロを取り除くにはどうすればいいですか?

数字の先頭のゼロを取り除くにはどうすればいいですか?

ユーザー入力 (数値パラメータ) の先頭のゼロをチェックして削除しようとしています。このようなコマンドはLaTeX2e、またはいずれかのエンジン ( pdftexxetex) で提供されているのでしょうか。

答え1

\number

egregのコメント-2147483647 から 2147483647 の範囲の整数に対する最も単純な解は次のようになります。

\number000123⌴
\number-000456⌴

結果: 123 と -456

でマークされたスペースは、数字の解析を終了し、通常のテキストで数字が続く場合の事故を防ぎます。

\csnameこのソリューションは拡張可能であり、たとえば、、\label内で使用できます。\typeout

パッケージbigintcalc

このパッケージは、任意の大きさの整数から先頭のゼロを削除するための拡張可能なメソッドを提供します。ドキュメントから:

\bigintcalcNum {⟨x⟩}

マクロは\bigintcalcNum引数を、不要な先頭のゼロや符号のない正規化された整数に変換します。結果は正規表現と一致します。

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

例:

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

結果: 123456789123456789123456789 および -123456789123456789123456789

マクロは拡張可能で、パッケージは多くの TeX フレーバー (LaTeX、プレーン TeX、iniTeX など) で使用できます。

パッケージsiunitx

数値を印刷する場合、パッケージにはsiunitx数値をフォーマットするための多くのオプションが用意されています。デフォルトでは、先頭のゼロは削除されます。

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

結果: 123; -456

関連情報