Beamer 中帶有 mathspec 的 AlegreyaSans

Beamer 中帶有 mathspec 的 AlegreyaSans

不知何故,我無法讓 AlegreyaSans 字體在 Beamer 中與mathspec. AlegreyaSans 的標準fontenc呼叫適用於 PDFLaTeX,但我需要用於auto-pst-pdf表格,因此需要使用 XeLaTeX(如果我錯了,請修正我!)。因此,我希望在 XeLaTeX 中指定數學字體,從而使用mathspec.但不知怎的,我無法讓它發揮作用;我不斷收到:找不到「AlegreyaSans-Regular」。請參閱給定的 MWE。

我想知道這是否是破折號或空格的問題:Alegreya Sans vs. AlegreyaSans vs. Alegreya-Sans,但這沒有任何作用。我檢查了系統上的字體:它們的標題肯定是 AlegreyaSans-Regular 等。

我在 OSX.11.13 上使用 TeXLive 2015。

編輯:AlegreyaSans 是一種免費字體;它可以免費下載這裡。

\documentclass{beamer}
\usepackage{mathspec}
%\usepackage[T1]{fontenc}
%\usepackage[sfdefault]{AlegreyaSans}
\setmainfont[
    Extension = .otf, %does not work with ttf either
    UprightFont = AlegreyaSans-Regular,
    ItalicFont = AlegreyaSans-Italic,
    BoldFont = AlegreyaSans-Bold,
    BoldItalicFont = AlegreyaSans-BoldItalic,
    UprightFeatures = {SmallCapsFont = AlegreyaSansSC-Regular},
    ItalicFeatures = {SmallCapsFont = AlegreyaSansSC-Italic},
    BoldFeatures = {SmallCapsFont = AlegreyaSansSC-Bold},
    BoldItalicFeatures = {SmallCapsFont = AlegreyaSansSC-BoldItalic},
    Ligatures = TeX]
    {AlegreyaSans}
\setmathsfont(Digits,Latin,Greek)[Numbers={Lining,Proportional}]{AlegreyaSans}
\makeatletter
     \DeclareMathSymbol{0}{\mathalpha}{\eu@DigitsArabic@symfont}{`0}
     \DeclareMathSymbol{1}{\mathalpha}{\eu@DigitsArabic@symfont}{`1}
     \DeclareMathSymbol{2}{\mathalpha}{\eu@DigitsArabic@symfont}{`2}
     \DeclareMathSymbol{3}{\mathalpha}{\eu@DigitsArabic@symfont}{`3}
     \DeclareMathSymbol{4}{\mathalpha}{\eu@DigitsArabic@symfont}{`4}
     \DeclareMathSymbol{5}{\mathalpha}{\eu@DigitsArabic@symfont}{`5}
     \DeclareMathSymbol{6}{\mathalpha}{\eu@DigitsArabic@symfont}{`6}
     \DeclareMathSymbol{7}{\mathalpha}{\eu@DigitsArabic@symfont}{`7}
     \DeclareMathSymbol{8}{\mathalpha}{\eu@DigitsArabic@symfont}{`8}
     \DeclareMathSymbol{9}{\mathalpha}{\eu@DigitsArabic@symfont}{`9}
\usepackage{pst-node, auto-pst-pdf}

\begin{document}

\begin{frame}
1 $S_1$
\end{frame}

\end{document}

答案1

預設的投影機主題使用無襯線字體。因此,如果您想要變更投影機中的字體,您必須設定 sans 字體\setsansfont或變更為 serif 字體主題\usefonttheme{serif}

fontspec如果您按字體名稱載入字體功能,通常可以很好地自動設定字體功能。因此,對於 Alegreya 字體,只需設定字體系列和小型大寫字母字體就足夠了。

\setsansfont[UprightFeatures = {SmallCapsFont = Alegreya Sans SC},
             ItalicFeatures = {SmallCapsFont = Alegreya Sans SC Italic},
             BoldFeatures = {SmallCapsFont = Alegreya Sans SC Bold},
             BoldItalicFeatures = {SmallCapsFont = Alegreya Sans SC Bold Italic}]{Alegreya Sans}

對於數學字體,我還建議按字體名稱載入字體(我實際上不知道是否mathspec支援按檔案名稱載入字體)。所以這裡下面的行應該就夠了。

\setmathsfont(Digits,Latin,Greek)[Numbers={Lining,Proportional}]{Alegreya Sans}

但數字設定Lining似乎不起作用。要解決這個問題,您必須使用 class 選項professionalfont,它會抑制由 Beamer 執行的一些內部替換。有關這方面的更多信息,請參閱投影機手冊。

完整的 MWE:

\documentclass[professionalfont]{beamer}
\usepackage{mathspec}
\setsansfont[UprightFeatures = {SmallCapsFont = Alegreya Sans SC},
             ItalicFeatures = {SmallCapsFont = Alegreya Sans SC Italic},
             BoldFeatures = {SmallCapsFont = Alegreya Sans SC Bold},
             BoldItalicFeatures = {SmallCapsFont = Alegreya Sans SC Bold Italic}]{Alegreya Sans}
\setmathsfont(Digits,Latin,Greek)[Numbers={Lining,Proportional}]{Alegreya Sans}

\begin{document}

\begin{frame}{Font feature test}
  \begin{itemize}
    \item Regular
    \item \textit{Italic}
    \item \textsc{SmallCaps}
    \item \textbf{Bold}
    \item \textbf{\textit{Bold Italic}}
    \item \textbf{\textsc{Bold SmallCaps}}
    \item \textbf{\textsc{\textit{Bold Italic SmallCaps}}}
    \item Math: $a^2+b^2 = c^2$
    \item Numbers in Math: $1234567890$
  \end{itemize}
\end{frame}

\end{document}

輸出:

輸出

相關內容