我在 OSX Lion 上使用 MacTeX 2011 发行版(安装了所有更新),我从siunitx
包中收到一个奇怪的错误,而这在 Snow Leopard 上的 MacTex 2010 中并没有发生过。
举一个简单的例子
\documentclass{article}
\usepackage{siunitx}
\sisetup{mode=text,per-mode=symbol,input-symbols={\pi\cdot}}
\begin{document}
\SI{2 \pi \cdot 10}{\kilo\hertz}
\end{document}
将无法排版并出现错误Missing $ inserted.
,而将\SI
命令更改为
\SI{2 \pi \cdot 1}{\kilo\hertz}
将会被排版且没有错误。
有人能解释一下为什么siunitx
无法正确解析第一个命令吗?
答案1
如果强制使用文本模式进行输出,则需要确保为需要它的符号选择数学模式。正如 egreg 指出的那样,一种选择是关闭解析器并允许数字中的任何数学模式材料。另一种方法要求您为每个数学模式符号创建一个合适的包装器:
\documentclass{article}
\usepackage{siunitx}
\sisetup{mode=text,per-mode=symbol,input-symbols=\mypi\mycdot}
\protected\def\mypi{\ensuremath{\pi}}
\protected\def\mycdot{\ensuremath{\cdot}}
\begin{document}
\SI{2 \mypi \mycdot 10}{\kilo\hertz}
\end{document}
答案2
您必须关闭第一个参数中的数字解析:
\SI[parse-numbers=false]{2\pi\cdot10}{\kilo\hertz}
文档第 22 页。