![Проблемы с изменением шрифта заголовков разделов в шаблоне LateX](https://rvso.com/image/405337/%D0%9F%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D1%8B%20%D1%81%20%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5%D0%BC%20%D1%88%D1%80%D0%B8%D1%84%D1%82%D0%B0%20%D0%B7%D0%B0%D0%B3%D0%BE%D0%BB%D0%BE%D0%B2%D0%BA%D0%BE%D0%B2%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%BE%D0%B2%20%D0%B2%20%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0%B5%20LateX.png)
Я конвертирую документы 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