考虑以下 MNWE:
\documentclass{article}
%%% start code I can't touch
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{charter} % Serif: Bitstream Charter
\usepackage[varqu,varl]{inconsolata} % Monospaced: Inconsolata
%%% stop code I can't touch
\usepackage{siunitx}
\begin{document}
The offset is $V_{io}=\pm$\SI{1}{\micro\volt} for $R_G$ around \SI{1}{\kilo\ohm}.
\end{document}
这将无法编译(原版 Ubuntu 14.04,TeXLive 2013),并出现错误:
! Package textcomp Error: Symbol \textohm not provided by
(textcomp) font family bch in TS1 encoding.
(textcomp) Default family used instead.
现在,如果我注释掉\usepackage{charter}
它,它就可以工作,如果我注释掉该包将会编译,尽管单元中的inconsolata
希腊字母是错误的。mu
不幸的是,我无法更改任何一个包......
环顾四周,我发现使用(我找不到问答了,抱歉)
\usepackage[valuemode=math,unitmode=math]{siunitx}
使事情得到编译,但同样,“µV”具有数学运算......
(顺便说一句,这会给出一个弃用警告;但是按照手册中所述进行更改会出现“未找到选项”错误...... valuemode
)value-mode
考虑到我无法触及的“固定”部分(来自本地模板),我该如何解决这个问题?
答案1
好吧,显然我在发布它之后就找到了我认为的解决方法。以下这个答案并调整符号名称(这让我很困惑...这是答案中的拼写错误还是真的\upOmega
改为\Upomega
和\textOhm
改为\textohm
?)我可以添加:
\usepackage{textcomp}
\renewcommand{\textmu}{\ensuremath{\upmu}}
\renewcommand{\textohm}{\ensuremath{\Upomega}}
...一切似乎都有效(到目前为止)。但我仍然认为应该有一种更干净的方法。