Проблемы с изменением шрифта заголовков разделов в шаблоне LateX

Проблемы с изменением шрифта заголовков разделов в шаблоне LateX

Я конвертирую документы Markdown через Pandoc в PDF, используя шаблон LaTeX под названием Eisvogel. Pandoc использует pdfTeX, я полагаю. (Я новичок во всем этом, так что, пожалуйста, простите меня заранее!)

Шаблон:https://github.com/Wandmalfarbe/pandoc-latex-template/blob/master/eisvogel.tex

В двух словах: мне нужно, чтобы шрифт текста был «Lato», а заголовки — «Lato Light».

Мне удалось установить "Lato" в качестве шрифта для текста в теле моих документов (довольно окольным путем), однако заголовки разделов, похоже (я думаю), контролируются Beamer. Как ни странно, Lato используется для ссылок заголовков 3-го уровня в TOC, но сами заголовки набраны шрифтом LM Sans 10, как и другие заголовки в TOC.

Ранее я пытался использовать «fontfamily: Lato» в заголовке YAML моих документов markdown, но получил следующую ошибку:Ошибка создания PDF-файла. ! Ошибка pdfTeX (расширение шрифта): автоматическое расширение возможно только для масштабируемых шрифтов.

Вместо этого я заставил текстовый шрифт работать, изменив семейство шрифтов по умолчанию на 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}

Я думал, что «if(fontfamily)» просто использует «Lato» из моего YAML, но, очевидно, нет — это работает только при указании его как «else». Теперь я понимаю, что это происходит потому, что ошибку выдает часть Beamer, а не этот раздел кода.

Так что, похоже, проблема в Beamer. Остальная часть LaTeX/Pandoc не имеет проблем с Lato, когда это обычный текст, но я думаю, что Beamer, должно быть, пытается сделать что-то с ним для заголовков, которые ему не нравятся. Я пробовал просто вставить \usepackage{lato} вместо \usepackage{lmodern} ниже, но безрезультатно.

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

Вот тут я и уперся в стену в своем путешествии. Я знаю, что Lato можно использовать, потому что он работает с обычным текстом в моем документе, и я видел примеры использования Lato в качестве заголовков для слайдов и документов во время моих путешествий, поэтому я не понимаю, почему Beamer должен использовать lmodern и на самом деле не любит использовать Lato.

Буду очень признателен за любые указания или объяснения того, где я ошибаюсь!

решение1

Нет необходимости изменять шаблон. Вы можете использовать шрифты Lato через lato.sty. С этим стилем вы должны предоставить параметры defaultи defaultsansиспользовать Lato как семейство по умолчанию и шрифт sans-serif по умолчанию, что можно сделать с помощью полей YAML fontfamilyи fontfamilyoptions:

fontfamily: lato
fontfamilyoptions: 
- default
- defaultsans

Используянемодифицированный eisvogel.texшаблон вместе с этим примером документа

---
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.

и обработаны с

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

создает PDF-файл, использующий только шрифты Lato:

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

Связанный контент