R Markdown生成HTML文件时目录(TOC)不显示的问题排查
问题解决:R Markdown编织后浮动目录不显示
核心排查与修复步骤
1. 标题区域格式干扰
你当前YAML头部的标题采用了多行带图片的写法,这会破坏R Markdown对顶级标题的识别逻辑,直接导致目录无法生成。需要拆分标题和图片:
修正后的YAML头部:
--- title: "NVH" author: "CADV" date: Base do dia **29/09/2023** output: html_document: toc: TRUE toc_float: TRUE ---
然后在文档正文开头单独插入图片:
<center> {width=400px} </center>
2. Tabset对目录的影响
{ .tabset .tabset-pills} 不会导致浮动目录消失,但它会将该层级下的子标题(比如### Sexo)收纳到标签页中,这些子标题不会出现在目录里。如果你的文档只有Tabset包裹的内容,目录会看起来是空的——只要添加非Tabset的二级标题,目录就会正常显示内容。
3. CSS冲突验证
你自定义的CSS仅设置了h1、h4居中,一般不会影响目录,但可以暂时注释掉CSS代码,重新编织文档,确认是否是样式导致目录被隐藏。
完整修正代码示例
/* 先注释验证,确认后可恢复 h1, h4 { text-align: center; } */
--- title: "NVH" author: "CADV" date: Base do dia **29/09/2023** output: html_document: toc: TRUE toc_float: TRUE ---
<center> {width=400px} </center> ## 数据概览 (添加非Tabset的二级标题,确保目录有可显示的内容) ## Indicadores { .tabset .tabset-pills} ### Sexo ```{r, echo=FALSE, message=FALSE, warning=FALSE} library(dplyr) library(ggplot2) library(plotly) # 假设dados为已加载的数据集 sexo <- dados %>% group_by(sexo, anoobito) %>% tally %>% filter(sexo != "IGNORADO") %>% mutate(anoobito = as.character(anoobito)) %>% rename("Sexo" = "sexo") p <- ggplot(sexo, aes(x = anoobito, y = n, group = Sexo)) + geom_line(aes(color = Sexo), size = 2) + geom_point(aes(color = Sexo), size = 3) + theme_minimal(base_size = 15) + scale_y_continuous(limits = c(0,1200), expand = expansion(mult = c(0, .1))) + theme(legend.position = "bottom", axis.line = element_line(colour = "black"), axis.text.x=element_text(colour="black"), axis.text.y=element_text(colour="black")) + labs( x = "Ano do Óbito", y = "Número de Óbitos") ggplotly(p)
### 关键总结 - 标题区域的多行图片格式是目录不生成的核心原因,调整后即可恢复。 - Tabset仅隐藏下属子标题,不会影响目录本身的显示状态。 - 若问题仍存在,可逐步排查依赖包缺失、R版本兼容等其他因素。 内容的提问来源于stack exchange,提问作者Lana Meijinhos
相关产品推荐
相关产品推荐

