Почему мы использовали \number в Latex?

Почему мы использовали \number в Latex?

Вот мой код:

\documentclass{article}

\makeatletter
\def\Printdimen#1#2{\strip@pt \dimexpr #2 *65526 /\number\dimexpr 1#1}
\makeatother

\begin{document}

\Printdimen{mm}{\hsize} mm
\end{document}

решение1

Макросу \strip@ptтребуется, чтобы после него был регистр измерения; он удалит последний ptпосле извлеченного значения.

В e-TeX \dimexprведет себя как «неименованный» регистр измерения, поэтому он хорош после \strip@pt. Согласно правилам синтаксиса \dimexpr, измерение (неявное или явное) внутри него может сопровождаться *или /для обозначения умножения или (округленного) деления. Однако множитель/делительдолженбыть целым числом.

Так что \dimexpr 3pt/2это справедливо, но \dimexpr3pt/1.5не так.

Регистр измерения, появляющийся в контексте, где TeX ожидает целое число, будет приведен к нему с использованием значения в масштабированных точках; 65536 масштабированных точек составляют 1 пункт, что является причиной множителя 65536.

Таким образом, это \numberне является действительно необходимым и

\makeatletter
\def\Printdimen#1#2{\strip@pt\dimexpr (#2) * 65536 / \dimexpr 1#1\relax\relax}
\makeatother

тоже хорошо. Лучше добавить два, \relaxкоторые заканчивают \dimexprвыражение.

Связанный контент