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`
都将替换为实际的事实计数。
是否可以在 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`
都将替换为实际的事实计数。