【问题标题】:custom labels and counters in r-markdownr-markdown 中的自定义标签和计数器
【发布时间】:2019-07-21 17:25:29
【问题描述】:

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

爱因斯坦是个聪明人[事实 1]。爱因斯坦曾在普林斯顿大学工作[事实 2]。受雇于普林斯顿大学的人都很聪明。

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

爱因斯坦是个聪明人factCounter。爱因斯坦在普林斯顿大学工作factCounter。受雇于普林斯顿大学的人都很聪明。

【问题讨论】:

  • 您可以执行[^1] 之类的操作,它会在底部创建脚注。听起来你在描述一个引用系统,你可以使用 bibtex 或我提到的脚注方法来实现。不过不太确定会变成红色。
  • 不是我理想的解决方案。如果可能,请选择单独的环境,以免与脚注混淆。

标签: html r markdown r-markdown bookdown


【解决方案1】:

一个 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` 都将被实际的事实计数所取代。

【讨论】:

  • 谢谢。我不熟悉编辑 pandoc Lua 过滤器。以上所有内容都会转到 rmd 文件之上的 yaml 吗?如果没有,请您提供一些有关实施的指导吗?
猜你喜欢
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-10
  • 1970-01-01
  • 2018-07-07
相关资源
最近更新 更多