如何用 skip/rubber/glue 解析长度?

如何用 skip/rubber/glue 解析长度?

其他人询问获取数字形式的长度;那里的解决方案(使用\strip@pt删除单位,或使用\number转换为整数单位sp)对于常规长度有效,但对于带有跳过/粘合的长度无效(如什么是胶水拉伸?)。

例如,以下

\documentclass{article}
\begin{document}
\newlength\testlength
\setlength\testlength{10pt plus 2pt minus 1pt}
length: \the\testlength\par
\textbackslash strip@pt: \csname strip@pt\endcsname\testlength\par
\textbackslash number: \number\testlength\par
\end{document}

印刷:

length: 10.0pt plus 2.0pt minus 1.0pt
\strip@pt: 10 plus 2.0pt minus 1.0pt
\number: 655360

答案1

更新:随后的搜索发现了线索回答到 ”TeX 无穷数的数学描述?“ 和 ”以任意单位显示橡胶长度“。 下列

\documentclass{article}
\begin{document}
\newlength\testlength
\setlength\testlength{10pt plus 2pt minus 1pt}
length: \the\testlength\par
\textbackslash dimexpr: \the\dimexpr\testlength\par
\textbackslash gluestretch: \the\gluestretch\testlength\par
\textbackslash gluestretchorder: \the\gluestretchorder\testlength\par
\textbackslash glueshrink: \the\glueshrink\testlength\par
\textbackslash glueshrinkorder: \the\glueshrinkorder\testlength\par
\end{document}

印刷:

length: 10.0pt plus 2.0pt minus 1.0pt
\dimexpr: 10.0pt
\gluestretch: 2.0pt
\gluestretchorder: 0
\glueshrink: 1.0pt
\glueshrinkorder: 0

相关内容