You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何向R Markdown PDF的YAML配置添加自定义首页信息项

R Markdown 首页新增自定义信息实现方案

直接按以下两步修改文档即可,同时兼容PDF和HTML输出,不需要额外修改复杂模板。

1. 替换原有YAML配置

把你原来的YAML头部替换成下面的内容,静态信息(课程名、导师名)直接替换成自己的实际内容即可,动态统计项不需要手动修改,会自动计算填充:

---
title: "Title of report "
author: |
  my name
  *邮箱*: my email
  *课程名称*: 替换为你的实际课程名称
  *指导导师*: 替换为你的实际导师姓名
  *文档总字数*: `r total_words`
  *图表总数量*: `r total_figs`
  *表格总数量*: `r total_tables`
date: '2022-07-06'
output:
  pdf_document:
    latex_engine: xelatex
    fig_width: 4.5
    fig_height: 3
  html_document:
    df_print: paged
header-includes:
    - \usepackage{setspace}
    - \onehalfspacing
    - \usepackage{authblk}
csl: chicago-author-date.csl
bibliography: bib1.bib
---

配置里加的authblk是LaTeX包,作用是让首页作者区域的多行内容自动适配排版,不会挤成一行,用TinyTeX的话渲染时会自动安装,不需要手动操作。

2. 在YAML后添加统计代码块

紧挨着YAML头部的下方,添加下面的隐藏R代码块,作用是自动统计总字数、图表数、表格数,代码运行过程不会显示在最终文档里:

```{r global_stats, include=FALSE}
# 首次使用请先运行安装依赖:install.packages("stringi")
library(stringi)

# 文档渲染完成后自动执行统计
knitr::knit_hooks$set(document = function(x) {
  # 统计总字数:剔除代码块内容,只统计正文、图注、表注文字
  clean_content <- x[!grepl("^```", x)]
  assign("total_words",
         stri_count_words(paste(clean_content, collapse = " ")),
         envir = globalenv())
  
  # 统计图表总数:排除设置了隐藏属性的图片,只统计最终展示的图表
  all_chunks <- knitr::knit_code$get()
  valid_fig_chunks <- Filter(function(chunk_opt) {
    !isTRUE(chunk_opt$fig.show == "hide") & !isTRUE(chunk_opt$eval == FALSE)
  }, all_chunks)
  assign("total_figs", length(valid_fig_chunks), envir = globalenv())
  
  # 统计表格总数:兼容kable、gt、基础表格、flextable等主流表格输出格式
  table_match <- grepl("(\\\\begin\\{table\\})|(<table class=)|(::: \\{.cell\\})|(gt_table)|(flextable)", x)
  assign("total_tables", sum(table_match), envir = globalenv())
  
  x
})
```

注意事项

  • 字数统计默认排除R代码块内容,如果需要把代码块内容算入总字数,删掉clean_content那一行的过滤规则即可
  • 如果你用的是DT、reactable这类交互表格,默认统计规则也能识别,如果出现计数偏差,可以调整代码里表格匹配的正则规则
  • 如果不需要某一项展示,直接在YAML的author字段里删掉对应行就行

内容的提问来源于stack exchange,提问作者Faranak omidi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 02:54:21