Problemas ao alterar a fonte dos cabeçalhos das seções no modelo LateX

Problemas ao alterar a fonte dos cabeçalhos das seções no modelo LateX

Estou convertendo documentos Markdown via Pandoc para PDF, usando um modelo LaTeX chamado Eisvogel. Pandoc está usando pdfTeX, eu acredito. (Sou bastante novo em tudo isso, então, por favor, me perdoe antecipadamente!)

O modelo:https://github.com/Wandmalfarbe/pandoc-latex-template/blob/master/eisvogel.tex

Resumindo: preciso que a fonte do meu texto seja 'Lato' e os títulos sejam 'Lato Light'.

Consegui definir "Lato" como a fonte do texto no corpo dos meus documentos (de uma forma bastante indireta), no entanto, os títulos das seções parecem (eu acho) ser controlados pelo Beamer. Estranhamente, Lato é usado para links de títulos de 3º nível no TOC, mas os próprios títulos estão em LM Sans 10, assim como os outros títulos no TOC.

Anteriormente, tentei usar "fontfamily: Lato" no cabeçalho YAML dos meus documentos markdown, mas recebi este erro:Erro ao produzir PDF. ! Erro pdfTeX (expansão de fonte): a expansão automática só é possível com fontes escalonáveis.

Em vez disso, fiz a fonte do texto funcionar alterando a família de fontes padrão para Lato:

\ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
  $if(fontfamily)$
  $else$
  \usepackage[default]{Lato}
  \usepackage[T1]{fontenc}
  $endif$
\else % if not pdftex
  $if(mainfont)$
  $else$
  \usepackage[default]{Lato}
  \usepackage[T1]{fontenc}

Eu tinha pensado que "if(fontfamily)" usaria apenas o "Lato" do meu YAML, mas obviamente não - apenas colocando-o como "else" funciona, o que, agora acho que entendi, é porque é o Beamer parte disso que está gerando o erro, não esta seção do código.

Então parece que o problema está no Beamer. O resto do LaTeX/Pandoc não tem problemas com o Lato quando é para texto normal, mas acho que o Beamer deve estar tentando fazer algo com ele para títulos que ele não gosta. Tentei simplesmente colocar \usepackage{lato} em vez de \usepackage{lmodern} abaixo, sem sucesso.

$if(beamerarticle)$
\usepackage{beamerarticle} % needs to be loaded first
$endif$
$if(fontfamily)$
\usepackage[$for(fontfamilyoptions)$$fontfamilyoptions$$sep$,$endfor$]{$fontfamily$}
$else$
\usepackage{lmodern}
$endif$

Foi aqui que cheguei a um obstáculo em minha jornada. Eu sei que o Lato pode ser usado porque funciona para texto normal no meu documento e já vi exemplos de pessoas usando o Lato como cabeçalhos de slides e documentos durante minhas viagens então não entendo por que o Beamer tem que usar o lmodern e realmente não gosta de usar Lato.

Qualquer orientação ou explicação de onde estou errando seria muito apreciada!

Responder1

Não há necessidade de alterar o modelo. Você pode usar as fontes Lato via lato.sty. Com este estilo você deve dar as opções defaulte defaultsansusar Lato como família padrão e fonte sans-serif padrão, o que pode ser feito usando os campos YAML fontfamilye fontfamilyoptions:

fontfamily: lato
fontfamilyoptions: 
- default
- defaultsans

Usando umnão modificado eisvogel.texmodelo junto com este documento de exemplo

---
title: "Example PDF"
author: [Author]
date: "2019-06-16"
subject: "Markdown"
keywords: [Markdown, Example]
lang: "en"
fontfamily: lato
fontfamilyoptions: 
- default
- defaultsans
...

# Vinaque sanguine metuenti cuiquam Alcyone fixus

Lorem markdownum Letoia, et alios: figurae flectentem annis aliquid Peneosque ab
esse, obstat gravitate.

e processado com

pandoc beamer.md -o beamer.pdf --from markdown --to beamer --template ./eisvogel.tex

produz um PDF que usa apenas fontes Lato:

$ pdffonts beamer.pdf 
name                                 type              encoding         emb sub uni object ID
------------------------------------ ----------------- ---------------- --- --- --- ---------
BBNBGL+Lato-Regular                  Type 1            Custom           yes yes no      18  0

informação relacionada