我正在加载 NCM (New Computer Modern)
\documentclass{scrartcl}
\usepackage{polyglossia}
\setdefaultlanguage[babelshorthands]{german}
\setotherlanguage[variant=british]{english}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Font
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\setmainfont{NewCM10-Book.otf} % Ligatures: bei newfontface definiert
% Get Ligatures for NCM in german!
\newfontface\germanfont{NewCM10-Book.otf}[%
Script=Latin,
Language=Default,
Ligatures={Common},
ItalicFont=NewCM10-BookItalic.otf,%
BoldFont=NewCM10-Bold.otf,%
BoldItalicFont=NewCM10-BoldItalic.otf,%
SmallCapsFeatures={Numbers=OldStyle}
]
\setsansfont{NewCMSans10-Book.otf}[%
ItalicFont=NewCMSans10-Oblique.otf,%
BoldFont=NewCMSans10-Bold.otf,%
BoldItalicFont=NewCMSans10-BoldOblique.otf,%
SmallCapsFeatures={Numbers=OldStyle}]
\setmonofont{NewCMMono10-Book.otf}[%
ItalicFont=NewCMMono10-Italic.otf,%
BoldFont=NewCMMono10-Bold.otf,%
BoldItalicFont=NewCMMono10-BoldOblique.otf,%
SmallCapsFeatures={Numbers=OldStyle}]
\begin{document}
\textbf{\textsc{Text}}
\end{document}
我也不确定为什么我没有得到粗体小写字母。
我需要添加什么才能\textbf{\textsc{Text}}
在文档中使用?目前我似乎只得到了粗体文本。
更新
似乎有问题。如果我使用提供的名为polyglossia
的包(它与 基本相同),我设法在没有 的情况下获得了小型大写字母和粗体小型大写字母。NewCM
fontsetup
\setmainfont{…}, …
NewCM
polyglossia
只有在加载时polyglossia
它才会再次中断......
更新2
我现在已经切换过来了babel
,看起来运行正常,没有任何问题。
答案1
这里有几个相互交叉的问题。首先,当你加载时NewCM10
,LaTeX 会查找文件NewCM10.fontspec
。这只会在块内声明粗体和斜体SizeFeatures=
,这会导致polyglossia
无法找到粗体字体。解决方案是复制并粘贴文件内容.fontspec
,并添加后备:
\defaultfontfeatures[NewCM10-Book]
{
Extension = .otf ,
Font = NewCM10-Book,
ItalicFont=NewCM10-BookItalic,%
BoldFont=NewCM10-Bold,%
BoldItalicFont=NewCM10-BoldItalic,%
SlantedFont=NewCM10-Book,%
BoldSlantedFont=NewCM10-Bold,%
SmallCapsFeatures={Numbers=OldStyle},
SizeFeatures={%
{Size=-8, Font=NewCM08-Book,
ItalicFont=NewCM08-BookItalic,%
BoldFont=NewCM10-Bold,%
BoldItalicFont=NewCM10-BoldItalic,%
SlantedFont=NewCM08-Book,%
BoldSlantedFont=NewCM10-Bold,%
SmallCapsFeatures={Numbers=OldStyle}},
{Size=8, Font=NewCM08-Book,
ItalicFont=NewCM08-BookItalic,%
BoldFont=NewCM10-Bold,%
BoldItalicFont=NewCM10-BoldItalic,%
SlantedFont=NewCM08-Book,%
BoldSlantedFont=NewCM10-Bold,%
SmallCapsFeatures={Numbers=OldStyle}},
{Size= 9-, Font = NewCM10-Book,
ItalicFont=NewCM10-BookItalic,%
BoldFont=NewCM10-Bold,%
BoldItalicFont=NewCM10-BoldItalic,%
SlantedFont=NewCM10-Book,%
BoldSlantedFont=NewCM10-Bold,%
SmallCapsFeatures={Numbers=OldStyle}}%
}}
完成后,您现在可以将字体加载为主字体:
\setmainfont{NewCM10-Book} % Ligatures: bei newfontface definiert
该字体确实提供了Language=German
,但它坏了。 因此,您还可以加载,
\newfontfamily\germanfont{NewCM10-Book}[Language=German]
但是,如果你这样做,字体文件不会启用 的小型大写字母功能Language=German
,因此它会中断。使用Language=Default
,\textsc
命令将遵循传统的正字法,而不是给你一个大埃斯泽特。
顺便说一句,这意味着使用babel
将 New Computer Modern 设置为德文字体的人除了需要进行上述额外设置之外,还需要使用类似 的内容覆盖自动语言选择\babelfont[german]{rm}[Language=Default]{NewCM10-Book}
。
数学家协会
\documentclass{scrartcl}
\usepackage{polyglossia}
\setdefaultlanguage[babelshorthands]{german}
\setotherlanguage[variant=british]{english}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Font
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\defaultfontfeatures[NewCM10-Book]
{
Extension = .otf ,
Font = NewCM10-Book,
ItalicFont=NewCM10-BookItalic,%
BoldFont=NewCM10-Bold,%
BoldItalicFont=NewCM10-BoldItalic,%
SlantedFont=NewCM10-Book,%
BoldSlantedFont=NewCM10-Bold,%
SmallCapsFeatures={Numbers=OldStyle},
SizeFeatures={%
{Size=-8, Font=NewCM08-Book,
ItalicFont=NewCM08-BookItalic,%
BoldFont=NewCM10-Bold,%
BoldItalicFont=NewCM10-BoldItalic,%
SlantedFont=NewCM08-Book,%
BoldSlantedFont=NewCM10-Bold,%
SmallCapsFeatures={Numbers=OldStyle}},
{Size=8, Font=NewCM08-Book,
ItalicFont=NewCM08-BookItalic,%
BoldFont=NewCM10-Bold,%
BoldItalicFont=NewCM10-BoldItalic,%
SlantedFont=NewCM08-Book,%
BoldSlantedFont=NewCM10-Bold,%
SmallCapsFeatures={Numbers=OldStyle}},
{Size= 9-, Font = NewCM10-Book,
ItalicFont=NewCM10-BookItalic,%
BoldFont=NewCM10-Bold,%
BoldItalicFont=NewCM10-BoldItalic,%
SlantedFont=NewCM10-Book,%
BoldSlantedFont=NewCM10-Bold,%
SmallCapsFeatures={Numbers=OldStyle}}%
}}
\setmainfont{NewCM10-Book} % Ligatures: bei newfontface definiert
\begin{document}
\noindent\textbf{\textsc{Frauenfußball}} \\
\textsc{Frauenfußball} \\
\textbf{Frauenfußball}
\end{document}
如果您还希望它适用于无衬线字体和等宽字体,则需要对NewCMMono10-Book
和执行类似操作NewCMSans10-Book
。
如果你真的想要大埃斯泽特? 如果你不想务实,不想切换到其他字体来进行这种替换,我确实写过2020 年的一些代码可以进行调整以利用de-alt
规则并重新缩放以获取\ersatzsc
命令。