我可以在 siunitx 中使用 nicefrac 吗?

我可以在 siunitx 中使用 nicefrac 吗?

我怀疑答案是直接的“否”,但我不敢冒险……我有一张时间段(分钟和小时)表,其中几个时间段涉及分数 1/2。我通常使用包\SI中的宏siunitx来表示数字和单位,因为它在数字和单位之间提供了很好的间距。我可以使用 0.5 而不是分数 1/2,但在这个特定情况下,分数在美学和风格上更令人愉悦。我尝试在宏\nicefrac{1}{2}的第一个括号内使用宏\SI{*number*}{*unit*},但似乎不起作用。还有其他方法可以实现相同的目标吗?

MWE如下:

\documentclass[a4paper,11pt]{scrreprt}
\usepackage[english]{babel} 
\usepackage{siunitx}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{nicefrac}

\begin{document}
A nice fraction: 2\nicefrac{1}{2}.

Some time periods:

\SI{1}{\minute}

\SI{5}{\minute}

\SI{2}{\hour}

The above all works fine.

% This, however, does not:

% \SI{2\nicefrac{1}{2}}{\minute}

\end{document}

答案1

如果你想要做一些超出内部理解的事情siunitx,你可以关闭解析器

\SI[parse-numbers = false]{2\nicefrac{1}{2}}{\minute}

答案2

选项fraction-function=\nicefracoption 可以做到这一点,但是您还需要加载包nicefrac并进行设置quotient-mode = fraction

\documentclass{standalone}

\usepackage{nicefrac}
\usepackage{siunitx}

\sisetup{
    quotient-mode = fraction,
    fraction-function=\nicefrac
}

\begin{document}
    \nicefrac{1}{3} \num{1/3}
\end{document}

截屏

相关内容