XeLaTeX 和 mathspec 下带有 siunitx 的角度(度)符号

XeLaTeX 和 mathspec 下带有 siunitx 的角度(度)符号

请考虑以下示例:

\documentclass{article}
\usepackage{mathspec}
\usepackage{siunitx}

\begin{document}
\ang{30}, \SI{20}{\celsius}
\end{document}

使用 XeLaTex 进行编译,我得到:

缺少学位

角度缺少度数符号。使用包fontspec代替mathspec它可以正常工作(但我需要mathspec)。

有什么解决办法吗?

答案1

\documentclass{article}
\usepackage{mathspec}
\usepackage{textcomp}
\usepackage{siunitx}

\sisetup{math-degree=\mbox{\textdegree},text-degree=\textdegree}
\sisetup{math-celsius=\mbox{\textdegree}C,text-celsius=\textdegree C}

\begin{document}
\ang{30}, \SI{20}{\celsius}
\end{document}

在此处输入图片描述

答案2

您可以使用正确的 Unicode 字符:

\documentclass{article}
\usepackage{amsmath}
\usepackage{mathspec}
\usepackage{siunitx}

\sisetup{
  text-degree=°,
  math-degree=\textup{°},
  text-celsius=℃,
  math-celsius=\textup{℃},
}

\begin{document}
\ang{30}, \SI{20}{\celsius}
\end{document}

在此处输入图片描述

对于siunitx版本 3 来说,它变得更加简单:

\documentclass{article}
\usepackage{amsmath}
\usepackage{mathspec}
\usepackage{siunitx}

\DeclareSIUnit{\degreeCelsius}{\textup{℃}}

\begin{document}

\ang{30}, \SI{20}{\degreeCelsius}

\end{document}

相关内容