使用 alphabeta 和 cfr-lm 加粗希腊字母

使用 alphabeta 和 cfr-lm 加粗希腊字母

我使用该alphabeta软件包是为了在文本模式下获得直立的希腊字母。我还想在文本模式下使用粗体和无衬线直立希腊字母。这适用于和computer modernlatin modern使用lmodern)字体,但不适合其他字体。特别是我想使用latin modern来自的功能更丰富的实现cfr-lm

\documentclass{article}    
\usepackage{alphabeta}    
% \usepackage{lmodern} % <- works just as computer modern
% \usepackage{cfr-lm} % <- different result compared to computer modern    
\begin{document}    
Ab\Gamma\delta123
\textbf{Ab\Gamma\delta123}
\textsf{Ab\Gamma\delta123}    
\end{document}

\textbf使用 时, 和命令\textsf对希腊字母没有影响。这里出了什么问题?和cfr-lm之间的哪部分实现差异破坏了此功能?我该如何修复它?lmoderncfr-lm

部分修复:当我使用

\DeclareFontFamilySubstitution{LGR}{clm2j}{cmr}

我可以修复粗体字母,但这是正确的前进方式吗?

答案1

没有适用lgrclm2j.fd于 的希腊字体文件(例如 )cfr-lm。因此,NFSS 尝试回退到cmr,这恰好对衬线字体有效(尽管带有警告消息),但对无衬线字体则失败(对 也会失败\ttfamily)。

您可以执行以下操作:

\documentclass{article}  
\usepackage[LGR,T1]{fontenc}  
\usepackage{alphabeta}
% \usepackage{lmodern} % <- works just as computer modern
\usepackage{cfr-lm} % <- different result compared to computer modern    
\usepackage{substitutefont}

\substitutefont{LGR}{clm2j}{cmr}
\substitutefont{LGR}{clm2js}{cmss}

\begin{document}    
Ab\Gamma\delta123
\textbf{Ab\Gamma\delta123}
\textsf{Ab\Gamma\delta123}    
\end{document}

这告诉 NFSS 回退到 Computer Modern Roman 和 Computer Modern Sans Serif,这是可行的。

如果你可以使用 LuaLaTeX 或 XeLateX,你可以改用 OpenType New Computer Modern,

\usepackage[default]{fontsetup}

相关内容