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

如何用Lua过滤器为Pandoc的LaTeX输出添加data-pos信息?

Pandoc Lua过滤器:将Span的data-pos转为LaTeX \datapos{}标记

以下是适配Pandoc 2.18和Lua 5.4的Lua过滤器,可实现将commonmark+sourcepos解析生成的Span元素data-pos属性转换为LaTeX的\datapos{}标记:

-- 提取Span的data-pos属性,生成LaTeX \datapos{}标记
function Span(elem)
  local pos_attr = elem.attributes["data-pos"]
  if pos_attr then
    -- 将\datapos{...}插入到Span内容的起始位置
    table.insert(elem.content, 1, pandoc.RawInline("latex", "\\datapos{" .. pos_attr .. "}"))
  end
  return elem
end

使用说明

  1. 将上述代码保存为pos-filter.lua文件。
  2. 执行Pandoc转换时指定该过滤器:
    pandoc -f commonmark+sourcepos -t latex 你的输入文件.md -o 输出文件.tex --filter pos-filter.lua
    

补充提示

  • 生成的LaTeX中会在对应Span内容前插入\datapos{xxx},其中xxx就是原data-pos的位置信息。
  • 若需要关联Synctex功能,需在LaTeX文档导言区自定义\datapos命令,示例:
    \newcommand{\datapos}[1]{%
      \synctexpos{#1}% 绑定Synctex位置记录
    }
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 20:40:27