我希望在字母后立即获得斜体小写字母。因此,我将lmodern
和slantsc
包调用到以下 MWE 中以实现此目的:
\documentclass{book}
\usepackage{lettrine}
\usepackage{lmodern}
\usepackage{slantsc}
\usepackage{fontspec}
\input GoudyIn.fd
\newcommand*\initfamily{\usefont{U}{GoudyIn}{xl}{n}}
\renewcommand{\LettrineFontHook}{\initfamily{}}
\setcounter{DefaultLines}{3}
\renewcommand{\DefaultLoversize}{.47}
\begin{document}
\thispagestyle{empty}
\Large
\lettrine[lines=3,loversize=.25]{\initfamily{T}}{\textsl{he}} \textit{present little work is entitled ``A Book.''}
\end{document}
不幸的是,它产生的不是我想要的:
请注意,紧跟在字母后面的字母是斜体,但不是小写字母。
但是,当我注释掉\usepackage{fontspec}
并运行代码时lualatex
,我得到了我想要的结果:
现在,在我正在处理的文档中,我需要该fontspec
包,并且必须用它进行编译lualatex
。
评论:fontspec
我可以使用和生成直接小型大写字母,lualatex
从而\lettrine[lines=3,loversize=.25]{\initfamily{T}}{he} \textit{present little work is entitled ``A Book.''}
生成:
问题:如何修改上述代码,以便我可以使用包来为紧跟在 lettrine 后面的字母生成斜体小型大写字母fontspec
,并使用 进行编译lualatex
?
谢谢。
答案1
\usepackage{lmodern}
如果删除和\usepackage{slantsc}
而这些没有意义的话,系统将自动选择字体fontspec
。
您甚至可以避免烦人的字体替换警告。
\documentclass{book}
\usepackage{lettrine}
\usepackage{fontspec}
\usepackage{pdftexcmds}
\input{GoudyIn.fd}
\newcommand*\initfamily{\usefont{U}{GoudyIn}{xl}{n}}
\renewcommand{\LettrineFontHook}{\initfamily}
\setcounter{DefaultLines}{3}
\renewcommand{\DefaultLoversize}{.47}
\makeatletter
\renewcommand{\LettrineTextFont}{%
\ifnum\pdf@strcmp{\f@shape}{it}=0 \slshape\fi
\scshape
}
\makeatother
\begin{document}
\lettrine[lines=3,loversize=.25]{T}{he} present little work is entitled ``A Book.''
\vspace{1cm}
\itshape
\lettrine[lines=3,loversize=.25]{T}{he} present little work is entitled ``A Book.''
\end{document}
\initfamily
还请注意我对您的代码所做的更改。例如,不需要声明两次,并且\input
后面应该跟一个括号。
答案2
您无法将旧式 8 位字体包(例如lmodern
)与 相结合fontspec
。(或者您可以,但这需要大量额外工作。)
而是加载包含斜体小写字母的字体,例如 New Computer Modern Book(尽管默认的 Latin Modern 现在应该可以使用),然后您可以使用\textsc{\textit{Foo}}
或{\itshape\scshape Foo}
。
如果您确实想要在同一文档中使用 8 位文本编码和fontspec
,则应调用\usefont
或fontencoding
切换第一个单词的字体编码,例如\usefont{T1}{lmr}{m}{scit}
。您可能需要加载fontaxes
或诸如此类的包,cfr-lm
以便提供更多 8 位拉丁现代字体选项。
答案3
\documentclass{book}
\usepackage{lettrine}
\usepackage{libertinus}
\input GoudyIn.fd
\newcommand*\initfamily{\usefont{U}{GoudyIn}{xl}{n}}
\renewcommand{\LettrineFontHook}{\initfamily{}}
\setcounter{DefaultLines}{3}
\renewcommand{\DefaultLoversize}{.47}
\begin{document}
\thispagestyle{empty}
\Large
\lettrine[lines=3,loversize=.25]{\initfamily{T}}{\textit{he}} \textit{present little work is
entitled ``A Book.''}
\end{document}