将 UppercaseSmallCaps 与 Alegreya 和 beamer 结合使用

将 UppercaseSmallCaps 与 Alegreya 和 beamer 结合使用

讨论了 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}

在此处输入图片描述

相关内容