![将 UppercaseSmallCaps 与 Alegreya 和 beamer 结合使用](https://linux22.com/image/358653/%E5%B0%86%20UppercaseSmallCaps%20%E4%B8%8E%20Alegreya%20%E5%92%8C%20beamer%20%E7%BB%93%E5%90%88%E4%BD%BF%E7%94%A8.png)
讨论了 Alegreya 存在的问题,即它有一个单独的小写字体系列,以及如何正确地包含它们以使用粗体和斜体这里但是,我想使用字体功能 UppercaseSmallCaps,因为我想在像这样的投影仪演示文稿中排版章节标题。
但是,以下 MWE 表明,似乎无法在使用\addfontfeatures
另一种字体作为小型大写字体的字体上使用它:
\documentclass{beamer}
\usepackage{fontspec}
\setsansfont[
UprightFeatures={SmallCapsFont=AlegreyaSC-Regular},
ItalicFeatures={SmallCapsFont=AlegreyaSC-Italic},
BoldFeatures={SmallCapsFont=AlegreyaSC-Bold},
BoldItalicFeatures={SmallCapsFont=AlegreyaSC-BoldItalic},
Ligatures=TeX,
]{Alegreya}
\begin{document}
\begin{frame}
{\scshape\MakeLowercase{Desired Result}}
{\scshape Abcde}
{\addfontfeatures{Letters=UppercaseSmallCaps} Abcde}
{\addfontfeatures{Letters=SmallCaps,SmallCapsFeatures={Letters=UppercaseSmallCaps}} Abcde}
\end{frame}
\end{document}
由于我实际上想要将大写字母转换为小写字母,因此我也想过使用命令\MakeLowercase
,但我想使用命令来排版投影仪标题和章节标题\setbeamerfont
,例如\setbeamerfont{title}{shape=\scshape,series=\bfseries,size={\fontsize{15}{18}}}
,在\MakeLowercase
命令无法正确使用的情况下(如所示这里)。或者也许可以,但我真的不知道怎么做。如果可能的话,我也不想重新定义所有底层的 beamer 命令,例如章节标题或标题页。
我也考虑过使用alegreya
包,但在这里似乎也\addfontfeatures{Letters=UppercaseSmallCaps}
不起作用。所以,我fontspec
想我宁愿坚持使用,因为它提供了更好的字体功能控制。
也许我忽略了fontspec
手册中的某些内容,但据我所知,这个问题没有合适的解决方案。此外,我在这里找不到问题的解决方案。如果我错了,请告诉我。
非常感谢您提出的任何想法!
答案1
我真的不明白,为什么你需要这些fontfeature
东西只是为了让框架标题变成小写。
基于https://tex.stackexchange.com/a/149238/36296:
% !TeX TS-program = xelatex
\documentclass{beamer}
\usepackage{fontspec}
\setsansfont[
UprightFeatures={SmallCapsFont=AlegreyaSC-Regular},
ItalicFeatures={SmallCapsFont=AlegreyaSC-Italic},
BoldFeatures={SmallCapsFont=AlegreyaSC-Bold},
BoldItalicFeatures={SmallCapsFont=AlegreyaSC-BoldItalic},
Ligatures=TeX,
]{Alegreya}
\usepackage{textcase,regexpatch}
\setbeamertemplate{frametitle}{
\makeatletter
\regexpatchcmd{\insertframetitle}
{(\c{usebeamertemplate}.*)\c{fi}}
{\c{NoCaseChange}\cB\{\1\cE\}\c{fi}}
{}{}%
\makeatother
\scshape\MakeTextLowercase{\insertframetitle}
}
\begin{document}
\begin{frame}
\frametitle{Desired Result}
{\scshape\MakeLowercase{Desired Result}}
{\scshape Abcde}
% {\addfontfeatures{Letters=UppercaseSmallCaps} Abcde}
%
% {\addfontfeatures{Letters=SmallCaps,SmallCapsFeatures={Letters=UppercaseSmallCaps}} Abcde}
\end{frame}
\end{document}