来自布局包装手册(第 3 和 4 页):
The textwidth is \printinunitsof{pt}\prntlen{\textwidth} which is also \printinunitsof{in}\prntlen{\textwidth} or \printinunitsof{mm}\prntlen{\textwidth}.
打印出来:
文本宽度为 433.62pt,也就是 6.00117in 或 152.39821mm。
但是 1 英寸 = 25.4 毫米,所以 6.00117 英寸应该等于 152.429718 毫米。我在目前正在准备的一份文件中也注意到了这种不准确性。
手册示例中提供的小数位数似乎意味着精度很高,但实践似乎表明并非如此。
我是不是看错了/做错了什么?
如果没有,打印的长度有多准确?
答案1
中的浮点计算layouts
基于 TeX 的维度算法,并不十分准确。
使用 的浮点模块可以获得更好的结果expl3
。仍然不能精确到小数点后五位,但比 的较粗略结果要好得多layouts
。
\documentclass{article}
\usepackage{layouts}
\usepackage{xparse}
\ExplSyntaxOn
\RenewDocumentCommand{\prntlen}{m}
{
\dim_to_decimal_in_unit:nn { #1 } { 1\use:c {l@yunits} } \, \use:c{l@yunits}
}
\ExplSyntaxOff
\setlength{\textwidth}{6in}
\begin{document}
The textwidth is \printinunitsof{pt}\prntlen{\textwidth}
which is also \printinunitsof{in}\prntlen{\textwidth} or
\printinunitsof{mm}\prntlen{\textwidth}.
\end{document}