如何以比例点显示尺寸值

如何以比例点显示尺寸值

TeX 在内部以缩放点为单位存储尺寸,但操作\the会扩展为以点为单位的相应值。我们能否避免转换并获取更精确的“原始”值?

答案1

$ tex \\relax
This is TeX, Version 3.14159265 (TeX Live 2014) (preloaded format=tex)

*
(Please type a command or say `\end')
*\dimen0=3.5in

*\showthe\dimen0
> 252.94499pt.
<*> \showthe\dimen0

? 

*\count0=\dimen0

*\showthe\count0
> 16577003.
<*> \showthe\count0

dimen 值只是解释为的整数值,sp因此您可以执行上述操作(尽管实际上我认为 tex 显示的分数值并没有精度损失pt,它总是显示足够的小数位来确定精确的值sp

答案2

要按单位打印长度sp,定义

\newcommand\lengthinsp[1]{\number\dimexpr#1\relax sp}

这将接受\lengthinsp{\parindent}(带有寄存器)甚至\lengthinsp{3.5in}

例子:

\documentclass{article}

\newcommand\lengthinsp[1]{\number\dimexpr#1\relax sp}

\begin{document}

\lengthinsp{\parindent}

\lengthinsp{3.5in}

\end{document}

在此处输入图片描述

这是完全可扩展的。如果你不想依赖 e-TeX,则需要一个不可扩展的版本:

\makeatletter
\newcommand{\lengthinsp}[1]{%
  \begingroup
  \dimen@=#1\relax
  \number\dimen@ sp%
  \endgroup
}
\makeatother

相关内容