更改 LateX 範本中節標題字體的問題

更改 LateX 範本中節標題字體的問題

我正在使用名為 Eisvogel 的 LaTeX 範本透過 Pandoc 將 Markdown 文件轉換為 PDF。我相信 Pandoc 正在使用 pdfTeX。 (我對這一切都很陌生,所以請提前原諒我!)

模板:https://github.com/Wandmalfarbe/pandoc-latex-template/blob/master/eisvogel.tex

簡而言之:我需要將文字字體設為“Lato”,標題設為“Lato Light”。

我已經設法將“Lato”設置為文檔正文中文本的字體(以一種相當迂迴的方式),但是,章節標題似乎(我認為)是由 Beamer 控制的。奇怪的是,Lato 用於 TOC 中的第三級標題鏈接,但標題本身使用 LM Sans 10,TOC 中的其他標題也是如此。

我之前嘗試在 Markdown 文件的 YAML 標頭中使用“fontfamily: Lato”,但出現以下錯誤:產生 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)”只會使用我的 YAML 中的“Lato”,但顯然不是 - 只有將其作為“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。使用這種樣式,您應該提供選項defaultdefaultsans使用 Lato 作為預設係列和預設無襯線字體,這可以使用 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

產生僅使用 Lato 字體的 PDF:

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

相關內容