如何在 Beamer 演示文稿中为特定元素使用不同的字体

如何在 Beamer 演示文稿中为特定元素使用不同的字体

我正在尝试自定义 Beamer 模板,虽然使用 和 可以轻松更改整个演示文稿的字体,\setmonofont{}但我不明白如何更改单个元素的字体。例如,\setsansfont{}我想在标题页中使用不同的字体。似乎允许修改每个部分中字体的属性,但不允许修改字体本身?titleauthor\setbeamerfont{}

更新 所以我刚刚发现了\begingroup\endgroup命令。如果我将我想要的部分包装到一个组中,那么我可以setmonofont{}在组内应用一个新的并实现我想要的效果。然而,这看起来像是一个 hack,我更希望所有的字体更改都在字体 drx 文件中进行。

答案1

您可以使用\setbeamerfont{...}{family=}\setbeamerfont{...}{family*=}针对旧式 NFSS 字体系列执行此操作。

下面是一个\newfontfamily使用现代工具链和声明的示例unicode-math。它需要 LuaLaTeX 或 XeLaTeX。

\documentclass[noamssymb,
               professionalfonts,
               xcolor={HTML, svgnames, Svgnames}
              ]{beamer} % Loads several other packages, including amsthm and geometry.
\usepackage[math-style=ISO]{unicode-math}

\geometry{paperwidth = 10cm} % Appropriate width for a MWE on TeX.SX.

\defaultfontfeatures{ Scale = MatchLowercase }
\newfontfamily\avantgarde{TeX Gyre Adventor}[Ligatures=Common]
\setbeamerfont{frametitle}{family=\avantgarde}

\begin{document}
\begin{frame}
  \frametitle{There Is No Largest Prime Number}
  \framesubtitle{The proof uses \textit{reductio ad absurdum}.}

  \begin{theorem}
    There is no largest prime number.
  \end{theorem}
  \begin{proof}
    \begin{enumerate}
      \item Suppose $p$ were the largest prime number.
      \item Let $q$ be the product of the first $p$ numbers.
      \item Then $q+1$ is not divisible by any of them.
      \item But $q + 1$ is greater than $1$, thus divisible by some prime
                number not in the first $p$ numbers.\qedhere
    \end{enumerate}
  \end{proof}
\end{frame}
\end{document}

使用 Adventor 的字体样本

在实际文档中,您可能希望设置一些额外的\setmathfont[range=...]命令来调整数学字母和 QED 符号等内容。我在这里没有这样做,以使此示例保持简洁,因此字体选择看起来会很奇怪。

下面是与 PDFLaTeX 兼容的示例:

\documentclass[xcolor={HTML, svgnames, Svgnames}
              ]{beamer} % Loads several other packages, including amsthm and geometry.
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage[utf8]{inputenc} % The default since 2018.

\geometry{paperwidth = 10cm} % Appropriate width for a MWE on TeX.SX.

\setbeamerfont{frametitle}{family*=qag} % TeX Gyre Adventor

\begin{document}
\begin{frame}
  \frametitle{There Is No Largest Prime Number}
  \framesubtitle{The proof uses \textit{reductio ad absurdum}.}

  \begin{theorem}
    There is no largest prime number.
  \end{theorem}
  \begin{proof}
    \begin{enumerate}
      \item Suppose $p$ were the largest prime number.
      \item Let $q$ be the product of the first $p$ numbers.
      \item Then $q+1$ is not divisible by any of them.
      \item But $q + 1$ is greater than $1$, thus divisible by some prime
                number not in the first $p$ numbers.\qedhere
    \end{enumerate}
  \end{proof}
\end{frame}
\end{document}

Type1 字体示例

在这种情况下,您需要将 NFSS 家族名称传递给family*=字体的文档告诉我们文件名为qagrqagb和,qagri因此qagbi字体系列的通用前缀为qag。 (这在当时是有道理的。当文件系统的最小公分母仅支持八个字母的文件名,并且每种变体字体都需要自己的文件名时,字体系列名称需要是隐秘的。GUST 为其 TeX Gyre 字体选择了前缀,q因为它几乎未使用,而 Adventor 是 Avant Garde Gothic 的克隆。)

一些旧字体包定义了可能与 配合使用的 NFSS 系列名称family=。您需要查看文档。

您还可以选择元素内的字体系列,例如\frametitle{\avantgarde There is no Largest Prime Number}

相关内容