siunitx 中存在未知问题

siunitx 中存在未知问题

我正在尝试在一段文字中使用英寸标记(双撇号);过去,我曾这样做过

4 $''$ \times 6 $''$

但出于某种原因,当该行是分项列表中的项目时,它不起作用。我现在正在试验 siunitx 包,但现在出现了一个新问题。这个 MOLMWE(或多或少最小工作示例)

\documentclass{article}
\usepackage{siunitx}
\usepackage[LY1]{fontenc}
\usepackage{fontspec}
\usepackage{xltxtra}

\setromanfont[Numbers=OldStyle]{Linux Libertine O}

\sisetup{detect-all = true}
\DeclareSIUnit[number-unit-product = {}]{\inchQ}{\prime\prime}

\begin{document}

\begin{itemize}

\item \SI{4 \times 6}{\inchQ} index cards

\end{itemize}

\end{document}

产生错误的结果;我想附加图片,但我没有足够的声誉来获得该权限。如果您仅从代码中就能发现问题,那么问题是什么?我该如何修复?

PS 至于 MOLMWE:我加入了可能无关的材料,因为我不确定它是否相关,所以决定谨慎行事。

答案1

我会在这里使用 UTF 字符,而不是\prime\prime(最好使用siunitx' 默认设置,{}^{\prime\prime}无论如何'')。这样,字形就会从与数字相同的字体中获取。

代码

\documentclass{article}
\usepackage{fontspec}
\usepackage{siunitx}
\setromanfont[Numbers=OldStyle]{Linux Libertine O}
\sisetup{
  detect-all = true,
  text-arcsecond=″,
  text-arcminute=′,
  math-arcsecond=″,
  math-arcminute=′,
}
\DeclareSIUnit[number-unit-product={}]\inchQ{\SIUnitSymbolArcsecond}
\DeclareSIUnit[number-unit-product={}]\footQ{\SIUnitSymbolArcminute}
\begin{document}
\begin{itemize}
  \item Arcseconds
  \begin{itemize}
    \item \SI{4 x 6}{\arcsecond}
    \item $\SI{4 x 6}{\arcsecond}$
  \end{itemize}
  \item Inches
  \begin{itemize}
    \item \SI{4 x 6}{\inchQ}
    \item $\SI{4 x 6}{\inchQ}$
  \end{itemize}
\end{itemize}
\end{document}

输出

在此处输入图片描述

相关内容