De alguma forma, não consigo fazer com que a fonte AlegreyaSans funcione no Beamer com arquivos mathspec
. A chamada padrão fontenc
para AlegreyaSans funciona para PDFLaTeX, mas preciso usar auto-pst-pdf
para uma tabela, daí o uso de XeLaTeX (corrija-me se eu estiver errado aí!). Como tal, espero especificar a fonte matemática no XeLaTeX, daí o uso de mathspec
. Mas de alguma forma não consigo fazê-lo funcionar; Recebo constantemente: "AlegreyaSans-Regular" não pode ser encontrado. Veja o MWE fornecido.
Eu me perguntei se é um problema com um traço ou espaço: Alegreya Sans vs. AlegreyaSans vs. Alegreya-Sans, mas isso não faz nada. Verifiquei as fontes no sistema: elas são definitivamente intituladas AlegreyaSans-Regular, etc.
Estou usando o TeXLive 2015 no OSX.11.13.
EDIT: AlegreyaSans é uma fonte gratuita; ele pode ser baixado gratuitamenteaqui.
\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}
Responder1
O tema padrão do beamer usa a fonte sans serif. Portanto, se você quiser alterar a fonte no beamer, você deve definir a fonte sans \setsansfont
ou mudar para o tema da fonte serif \usefonttheme{serif}
.
fontspec
geralmente faz um trabalho muito bom configurando os recursos da fonte automaticamente, se você carregá-los pelo nome da fonte. Portanto, no caso da fonte Alegreya deve ser suficiente apenas definir a família de fontes e as fontes em versalete.
\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}
No caso da fonte matemática, eu também proporia carregar a fonte pelo nome da fonte (na verdade, não sei se mathspec
suporta o carregamento de fontes pelo nome do arquivo). Então aqui a seguinte linha deve ser suficiente.
\setmathsfont(Digits,Latin,Greek)[Numbers={Lining,Proportional}]{Alegreya Sans}
Mas a configuração dos números Lining
parece não funcionar. Para resolver isso você tem que usar a opção class professionalfont
, que suprime algumas substituições internas realizadas pelo beamer. Para obter mais informações sobre isso, consulte o manual do projetor.
MWE completo:
\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}
Saída: