换行 Siunitx 的 \num 宏

换行 Siunitx 的 \num 宏

建议使用什么方法让内联数字换行跨越行边界?我希望宏\num可以解决这个问题,但事实并非如此:

在此处输入图片描述

代码:

\documentclass{article}
\usepackage{showframe}
\usepackage{siunitx}

\begin{document}
XXX is a transcendental number which has an approximate value of 
\num{0.425185173296160641}\dots.
\end{document}

答案1

以下示例通过在 中偷偷夹带换行惩罚来允许数字组之间换行。此外,从文本模式中删除group-separator周围的数字,否则惩罚不会在不可破坏的框内产生影响。\hbox

\documentclass{article}
\usepackage{showframe}
\usepackage{siunitx}

\newcommand*{\linewrapnum}[2][]{%
  \begingroup
    \num[#1,%
      mode=text,
      group-separator=\linebreak[1]\thinspace
    ]{#2}%
    \setbox0=\lastbox
    \unhbox0\relax
  \endgroup
}

\begin{document}
XXX is a transcendental number which has an approximate value of
\linewrapnum{0.425185173296160641}\dots
\end{document}

结果

相关内容