charter 和 siunitx:字距调整不好,或者微调不符合周围的文本形状。我该怎么办?

charter 和 siunitx:字距调整不好,或者微调不符合周围的文本形状。我该怎么办?

我使用 Charter(附带软件包mathdesign)作为主文本字体。由于 mathdesign 在字距调整方面做得不好(参见 MWE 中的“NOP。”和“DEF。”),我还加载了charter此建议加载了软件包问题

此外,我在文本中用 \micro 前缀表示了不少单位。我希望我的数字和单位与周围的文本形状相同。但是,在加载包时,charter除了 之外mathdesign,mu 也发生了变化。

我能做些什么?

\documentclass{scrreprt}
\usepackage[bitstream-charter]{mathdesign} 
%\usepackage{charter}
\usepackage[detect-all=true]{siunitx} 

\begin{document}
Testing the kerning with two examples: NOP. DEF.

Testing the ``micro'': \SI{1}{\micro\metre} 

\textit{in italic text: \SI{1}{\micro\metre}}

\end{document}

示例 1:siunitx 中的字距调整不佳,但周围环境检测良好

示例 1,siunitx 中的字距调整不佳,但对周围环境的检测良好

示例 2:更好的字距调整,siunitx 中不检测周围环境

示例 2,更好的字距调整,siunitx 中不检测周围环境

答案1

普通的 Charter 字体(字体系列bch,随软件包一起加载charter)不包含直立字体\textmu(这是文本模式下 µ 的名称)。此外,它根本不包含 Ω,因此将从 Computer Modern Roman 中选择。但您可以使用和访问mathdesign软件包提供的字形。另一方面,在数学模式下,您总是需要直立版本,这样就可以使用和。\fontfamily{mdbch}\textmu\textohmmathdesign\muup\Omegaup

因此,下面的操作应该可以满足您的要求,并且如果您选择遵循始终将单位直立的建议,它也可以解决问题:

\documentclass{scrreprt}
\usepackage[bitstream-charter]{mathdesign}
\usepackage{charter}
\usepackage{textcomp}
\usepackage[detect-all=true]{siunitx}
\sisetup{
        math-micro=\muup,
        math-ohm  =\Omegaup,
        text-micro={\fontfamily{mdbch}\textmu},
        text-ohm  ={\fontfamily{mdbch}\textohm}
}
\begin{document}
Testing the kerning with two examples: NOP. DEF.

With font switch: \SI{1}{\micro\metre}, \SI{1}{\ohm},
\textit{in italic text: \SI{1}{\micro\metre}, \SI{1}{\ohm}}

In math mode: $\SI{1}{\micro\metre}, \SI{1}{\ohm}$,
\textit{in italic math: $\SI{1}{\micro\metre}, \SI{1}{\ohm}$}

\sisetup{detect-all=false}
Always upright: \SI{1}{\micro\metre}, \SI{1}{\ohm},
\textit{in italic text: \SI{1}{\micro\metre}, \SI{1}{\ohm}}

In math mode: $\SI{1}{\micro\metre}, \SI{1}{\ohm}$,
\textit{in italic math: $\SI{1}{\micro\metre}, \SI{1}{\ohm}$}
\end{document}

宪章穆和欧米茄

相关内容