You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为tufte格式bookdown PDF的正文和旁注设置不同字体?

Tufte Book 正文与旁注字体字号独立设置方案

可以直接通过在YAML头部添加header-includes参数注入LaTeX代码实现分别控制,不需要额外的依赖配置,具体操作如下:

核心逻辑

tufte LaTeX文档类预留了专门的命令控制旁注样式,你只需要分别定义正文字体参数和旁注专属样式参数即可:

  • 正文样式直接用常规LaTeX全局字体/字号设置命令控制
  • 旁注样式通过重定义\marginfont命令实现独立配置

完整配置示例

以下是使用xelatex/luatex引擎支持自定义中文字体的完整YAML配置样例:

---
title: "自定义样式的Tufte书籍"
output:
  bookdown::pdf_book:
    base_format: tufte::tufte_book
    latex_engine: xelatex # 使用自定义字体建议选择xelatex或lualatex引擎
documentclass: tufte-book
classoption: 11pt # 全局正文基础字号,可选10pt/11pt/12pt
header-includes:
  - \usepackage{fontspec}
  # 正文样式配置
  - \setmainfont{Noto Serif CJK SC} # 正文中文字体:思源宋体
  - \setmainfont{Liberation Serif} # 正文西文字体:Liberation Serif
  # 旁注样式配置
  - \renewcommand{\marginfont}{%
      \fontsize{8}{10}\selectfont % 旁注字号8pt,行间距10pt
      \setCJKmainfont{Noto Sans CJK SC} % 旁注中文字体:思源黑体
      \fontfamily{lmss}\selectfont % 旁注西文字体:Latin Modern Sans
    }
---

常见场景调整说明

  • 如果只需要调整旁注字号不需要改字体,直接在\marginfont内保留\fontsize{目标字号}{行间距}\selectfont即可,不需要添加字体设置代码
  • 如果使用pdflatex引擎,不需要加载fontspec包,改用传统LaTeX字体命令即可,例如西文场景下可以直接设置\renewcommand{\rmdefault}{ppl}指定正文字体为Palatino,\renewcommand{\marginfont}{\footnotesize \sffamily}指定旁注为小五号无衬线字体
  • 若需要区分不同类型旁注的样式,可以额外重定义\marginnotefont命令控制\marginnote生成的旁注样式,默认场景下\marginfont会覆盖所有旁注的样式设置

内容的提问来源于stack exchange,提问作者Eric Green

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 15:45:04