我正在处理一个同时调用fontenc
和的文档lmodern
,但在生成粗体小型大写字母时遇到了问题。
我偶然看到了这个帖子:如何使用拉丁现代字体或计算机现代字体获得粗体+小写字母它提供了一个带有软件包的(Xelatex)解决方案fontspec
——但是当我调用fontenc
(并使用pdflatex
)时——该解决方案无法适应我的情况。
尽管如此,在看了 OP 的 MWE 之后,我得到了以下 MWE:
\documentclass{book}
\usepackage{xcolor,lettrine}
\usepackage[T1]{fontenc} % Needed to make the letters folloiwng the lettrine boldface.
\input GoudyIn.fd
\newcommand*\initfamily{\usefont{U}{GoudyIn}{xl}{n}}
\usepackage{lmodern}
\usepackage{fix-cm}
\rmfamily
%\DeclareFontShape{T1}{lmr}{b}{sc}{<->ssub*cmr/bx/sc}{}
\DeclareFontShape{T1}{lmr}{bx}{sc}{<->ssub*cmr/bx/sc}{}
\begin{document}
\thispagestyle{empty}
\LARGE
\lettrine[lines=3,loversize=.25]{\initfamily{T}}{\textbf{he}}
\end{document}
这似乎有效(尽管我有一些疑问):
笔记:OP 使用了两个命令:\DeclareFontShape{T1}{lmr}{b}{sc}{<->ssub*cmr/bx/sc}{}
和\DeclareFontShape{T1}{lmr}{bx}{sc}{<->ssub*cmr/bx/sc}{}
; 虽然我发现\DeclareFontShape{T1}{lmr}{bx}{sc}{<->ssub*cmr/bx/sc}{}
单独使用这两个命令对我来说就足够了。(我发现两者之间的唯一区别是 {b} 与 {bx})。
问题:有人能告诉我(使用 进行编译时Pdflatex
)两者之间的区别吗?是否在\lmodern
调用 时都需要两者都才能获得粗体小型大写字母?是否有比这种方法更好的方法来实现这一点?这种方法似乎可以在不使用 的情况下工作fontspec
,因为使用fontenc
和不允许我这样做pdflatex
?
谢谢。
答案1
命令的b
和形式分别设置了使用和时发生的情况。它们代表粗体和粗体扩展。(如果字体有粗体压缩系列,即,等等。)Computer Modern 和 Latin Modern 都没有非扩展粗体,因此 LaTeX 命令和选择。bx
\fontseries{b}
\fontseries{bx}
bc
\textbf
\bfseries
bx
由于有些字体包使用b
,有些则使用bx
,因此最好同时定义两者。这样,无论使用哪种其他字体,您都可以更改字体系列而不会丢失粗体格式。不过,在您自己的文档中,您可以控制使用哪些格式命令,并且可以b
根据需要跳过别名。