如何仅修改RMarkdown渲染PDF时目录的字体大小?
仅调整RMarkdown转PDF的目录字体大小的方法
要单独调整RMarkdown转PDF时的目录字体大小,CSS文件是行不通的——因为CSS只对HTML输出生效,PDF渲染依赖LaTeX引擎,得用LaTeX相关的配置来实现。下面提供两种实用方案:
方案一:使用tocloft包(推荐,控制更精细)
tocloft是LaTeX中专门用于自定义目录格式的包,可以分别控制不同层级标题和对应页码的字体大小。直接在YAML头部的header-includes里插入相关命令即可:
--- title: "你的文档标题" output: pdf_document: toc: true # 开启目录 fontsize: 12pt # 全局文档字体大小 header-includes: - \usepackage{tocloft} # 调整目录中各级标题的字体大小 - \renewcommand{\cftsecfont}{\small} # 一级章节(section)名称字体 - \renewcommand{\cftsubsecfont}{\footnotesize}# 二级章节(subsection)名称字体 - \renewcommand{\cftsubsubsecfont}{\scriptsize}# 三级章节(subsubsection)名称字体 # 对应调整各级标题的页码字体大小 - \renewcommand{\cftsecpagefont}{\small} - \renewcommand{\cftsubsecpagefont}{\footnotesize} - \renewcommand{\cftsubsubsecpagefont}{\scriptsize} ---
LaTeX支持的字体尺寸选项包括:tiny、scriptsize、footnotesize、small、normalsize、large、Large、LARGE、huge、Huge,你可以根据需求替换。
方案二:使用titletoc包
titletoc也是一款自定义目录的LaTeX包,通过\titlecontents命令统一设置某层级目录的格式:
--- title: "你的文档标题" output: pdf_document: toc: true fontsize: 12pt header-includes: - \usepackage{titletoc} # 设置一级章节目录格式:缩进1.5em,字体small,标签宽度1.5em,页码右对齐 - \titlecontents{section}[1.5em]{\small}{\contentslabel{1.5em}}{}{\hfill\contentspage} # 设置二级章节目录格式:缩进3.0em,字体footnotesize,标签宽度2.0em,页码右对齐 - \titlecontents{subsection}[3.0em]{\footnotesize}{\contentslabel{2.0em}}{}{\hfill\contentspage} ---
每个\titlecontents的参数含义:
- 第一个参数:目录层级(section/subsection等)
- 第二个参数:整体缩进量
- 第三个参数:标题和标签的字体格式
- 第四个参数:无编号标题的前缀(这里留空)
- 第五个参数:页码的对齐方式
内容的提问来源于stack exchange,提问作者ForEverNewbie
相关产品推荐
相关产品推荐

