R Markdown PDF中fontsize与enumitem配置失效问题咨询
问题原因与解决方案
1. 字号18pt不生效的原因
默认的article文档类仅支持10pt、11pt、12pt三种字号,18pt不在其预设范围内,直接设置fontsize:18pt自然不会生效。需要改用支持大字号的extarticle文档类,或者手动指定字号。
解决方法
在YAML头部指定documentclass: extarticle,并设置该文档类支持的大字号(10/11/12/14/17/20pt);如果必须使用18pt,可在header-includes中手动设置字体大小。
2. enumitem设置无变化的原因
R Markdown生成PDF时,会自动为列表添加默认样式,这些样式会覆盖你在header-includes中直接编写的全局设置。另外,直接修改enumi计数器的方式会被R Markdown的列表渲染逻辑重置,导致设置失效。
解决方法
- 将enumitem的全局设置放在
\AtBeginDocument命令中,确保在文档初始化完成后生效; - 用enumitem的
start选项替代直接修改计数器,实现枚举列表从0开始的需求。
修改后的完整代码
--- documentclass: extarticle output: pdf_document: latex_engine: xelatex fontsize: 17pt # extarticle支持的大字号,若要18pt可启用下方注释 header-includes: - \usepackage{lipsum} - \usepackage{setspace}\doublespacing - \usepackage[shortlabels]{enumitem} - \AtBeginDocument{ \setlist[itemize]{nosep, noitemsep} \setlist[enumerate]{nosep, noitemsep, start=0} } # 若必须用18pt,替换上方fontsize配置,启用以下命令 # - \fontsize{18}{22}\selectfont --- ```{r setup, include=FALSE} knitr::opts_chunk$set(echo = TRUE)
random
\lipsum
R Markdown
itemize itemize itemize itemize itemize itemize itemize itemize itemize
- aaa
- bbb
- ccc
enumerate enumerate enumerate enumerate enumerate enumerate enumerate enumerate enumerate
- uuu
- vvv
- www
why why why why why why why why why why why why why why why why why why why why why
--- 内容的提问来源于stack exchange,提问作者John Stone
相关产品推荐
相关产品推荐

