r-markdown 中的自定义标签和计数器

custom labels and counters in r-markdown

是否可以在 r-markdown 中创建一个 intext 自定义计数器。例如,假设我有以下文本

爱因斯坦是个聪明人[事实 1]。爱因斯坦曾在普林斯顿大学工作 [事实 2]。被普林斯顿大学聘用的人都是聪明人

我的理想结果是为事实定义一个计数器,具有特定的格式(例如括号中的粗体和红色)。所以每当我打电话给柜台时,它都会打印带有新号码的柜台标签。像

爱因斯坦是个聪明人factCounter。爱因斯坦曾在普林斯顿大学工作factCounter。被普林斯顿大学聘用的人都是聪明人

一个 pandoc Lua 过滤器就可以完成这项工作:

local utils = require 'pandoc.utils'
local fact_counter = 0

function Code (code)
  if utils.stringify(code) == 'factCounter' then
    fact_counter = fact_counter + 1
    return pandoc.Str(string.format('[Fact %s]', fact_counter))
  end
end

只需将 --lua-filters=FILE-CONTAINING-ABOVE-CODE.lua 添加到您的 pandoc_args knitr 选项中。您文本中出现的所有 `factCounter` 都将替换为实际的事实计数。