如何为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
相关产品推荐
相关产品推荐

