mathdesign 和 sansmathfonts 不兼容

mathdesign 和 sansmathfonts 不兼容

我想在同一个文档中使用 Bitstream Charter serif 字体(默认)和一些带有小写字母的无衬线字体。我尝试\usepackage[charter]{mathdesign}与 结合使用\usepackage[notmath]{sansmathfonts},但不起作用:

\documentclass{article}
\usepackage[charter]{mathdesign}
\usepackage[notmath]{sansmathfonts}
\begin{document}
This is \textsc{small caps}. And {\sffamily\textsc{sans serif small caps}}.
\end{document}
  1. 通过上面的例子,我没有得到无衬线小型大写字母,并且在日志中出现以下内容:

    LaTeX Font Warning: Font shape `T1/xcmss/m/fsc' undefined
    (Font)              using `T1/xcmss/m/n' instead on input line 8.
    
  2. 如果我评论该sansmathfonts包,我仍然得不到无衬线小型大写字母,并且日志中出现以下内容:

    LaTeX Font Warning: Font shape `T1/cmss/m/fsc' undefined
    (Font)              using `T1/cmss/m/n' instead on input line 8.
    
  3. 最后,如果我评论该mathdesign包,我会得到无衬线小写字母。

我如何才能实现我的目标?关于 LaTeX 字体管理,我可能有很多不了解的地方。我补充说,我更喜欢使用 pdfTeX 而不是 {Xe|Lua|...}TeX 的解决方案。

答案1

mathdesign带有该选项的软件包将charter打开该expert选项,这是针对 90 年代一些非标准字体命名方案的一种过于聪明的解决方法。它不再需要:CTAN 附带的两个免费版本的 Charter 都使用标准 LaTeX 字体命名约定。不幸的是,作者没有提供任何关闭此选项的方法。它重新定义了小型大写字母以使用 NFSS 形状fsc而不是sc。每个 LaTeX 字体都调用小型大写字母sc,而不是fsc,因此小型大写字母会中断。

最简单的解决方法是将免费字体加载XCharter为主要字体mathdesign。这将加载fontaxes和替换损坏的\scshape和定义\textsc,并将其替换为可用的定义。然后,您可以加载您选择的无衬线字体。在这里,我使用了 Linux Biolinum。

\documentclass{article}
\usepackage[charter]{mathdesign}
\usepackage{XCharter}
\usepackage[type1]{biolinum}

\begin{document}
This is \textsc{small caps}.
And {\sffamily\textsc{sans serif small caps}}.
\[x = -b \pm \frac{\sqrt{b^2 - 4ac}}{2a} \]
\end{document}

XCharter/Biolinum/MathDesign 示例

类似地,您可以加载erewhonafter\usepackage[utopia]{mathdesign}garamondxafter \usepackage[garamond]{mathdesign},它们均提供可用的小型大写字母和旧式数字。

您还可以使用以下方法为其他字体系列启用小型大写字母

\renewcommand\scdefault{sc}

相关内容