我见过各种关于如何获得斜体小型大写字母的问题,例如使用lmodern
和slantsc
一起。
但是,我目前使用的是beamer
,并且希望在大多数地方保留无衬线字体(不支持slantsc
)。只有几个特定的跨度,我需要区分大写字母、小型大写字母、斜体/倾斜小型大写字母、小写字母和斜体/倾斜小写字母。(当音译楔形文字时,这些表示不同类别的符号。)
假设fontspec
我可以设置 Latin Modern 或其他支持斜体/倾斜小写字母的字体,并只在音译段落中使用该字体。但我找不到任何关于如何制作fontspec
和slantsc
协同工作的文档。
我如何设置 Latin Modern 或任何其他字体,以便fontspec
可以使用斜体小型大写字母?
梅威瑟:
\documentclass{beamer}
\usepackage{slantsc}
\begin{document}
\begin{frame}{Example}
Normal \textit{Italic} \textsc{Smallcaps} \textsl{\textsc{Slanted Smallcaps}}
\end{frame}
\end{document}
LaTeX Font Warning: Font shape `TU/lmss/m/sc' in size <10.95> not available
(Font) Font shape `TU/lmr/m/sc' tried instead on input line 8.
LaTeX Font Warning: Font shape `TU/lmss/m/scsl' undefined
(Font) using `TU/lmss/m/sc' instead on input line 8.
(我不喜欢这里的字体差异,但如果必须的话我可以忍受;小型大写字母和斜体/倾斜小型大写字母之间的区别至关重要,而实际上看起来美观并不那么重要。)
答案1
您不再需要slantsc
,当前的 LaTeX 直接支持倾斜小型大写字母。对于拉丁现代无衬线字体,LaTeX 已经指定了小型大写字母的替换以恢复为拉丁现代罗马字体,您可以为倾斜变体添加类似的规则:
\documentclass{beamer}
\DeclareFontShape{TU}{lmss}{m}{scsl}
{<->sub*lmr/m/scsl}{}
\begin{document}
\begin{frame}{Example}
Normal \textit{Italic} \textsc{Smallcaps} \textsl{\textsc{Slanted Smallcaps}}
\end{frame}
\end{document}