![更改 LateX 範本中節標題字體的問題](https://rvso.com/image/405337/%E6%9B%B4%E6%94%B9%20LateX%20%E7%AF%84%E6%9C%AC%E4%B8%AD%E7%AF%80%E6%A8%99%E9%A1%8C%E5%AD%97%E9%AB%94%E7%9A%84%E5%95%8F%E9%A1%8C.png)
我正在使用名為 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
。使用這種樣式,您應該提供選項default
並defaultsans
使用 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