RStudio中用knitr结合LaTeX titlesec包修改PDF章节样式无效果如何解决
问题原因与解决方案
核心问题根因
article文档类本身不提供\chapter章节层级,仅report/book文档类支持\chapter命令:- 针对
\chapter编写的\titleformat配置完全无法生效 - 你在
\section的样式配置中引用了\thechapter变量,该变量在article类中为空值,直接导致section的前缀样式完全不显示
- 针对
- 样式配置放在YAML头部外存在被渲染逻辑过滤的风险,HTML注释标记
<!-- -->不会被LaTeX识别,也可能干扰配置加载
修复方案
方案1:继续使用article文档类(仅保留section及以下层级)
将所有样式配置统一放到YAML的header-includes字段中,删除所有和\chapter相关的配置,将\section样式中的\thechapter替换为\thesection(section自身的编号变量):
--- documentclass: article output: pdf_document header-includes: - \usepackage[T1]{fontenc} - \usepackage{titlesec, color} - \definecolor{gray75}{gray}{0.75} - \newcommand{\hsp}{\hspace{20pt}} - \titleformat{\section}[hang]{\Huge\bfseries}{\thesection\hsp\textcolor{gray75}{|}\hsp}{0pt}{\Huge\bfseries} ---
方案2:保留\chapter层级配置
将文档类替换为支持\chapter的report或book,原有配置不需要修改编号变量,同样建议将所有样式配置移到header-includes中:
--- documentclass: report output: pdf_document header-includes: - \usepackage[T1]{fontenc} - \usepackage{titlesec, blindtext, color} - \definecolor{gray75}{gray}{0.75} - \newcommand{\hsp}{\hspace{20pt}} - \titleformat{\chapter}[hang]{\Huge\bfseries}{\thechapter\hsp\textcolor{gray75}{|}\hsp}{0pt}{\Huge\bfseries} - \titleformat{\section}[hang]{\Huge\bfseries}{\thechapter\hsp\textcolor{gray75}{|}\hsp}{0pt}{\Huge\bfseries} ---
验证方法
重新编译PDF后,section章节前会显示[章节编号] + 灰色竖线 + 空格的前缀,字体也会切换为你设置的\Huge\bfseries样式。
内容的提问来源于stack exchange,提问作者José Carlos
相关产品推荐
相关产品推荐

