首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将数据pos信息添加到乳液输出中。

将数据pos信息添加到乳液输出中。
EN

Stack Overflow用户
提问于 2022-11-25 15:12:11
回答 1查看 23关注 0票数 1

正如所描述的here,当源为commonmark+sourcepos时,Pandoc记录类似Synctex的信息。例如,有了这个常见的输入,

代码语言:javascript
运行
复制
---
title: "Sample"
---

This is a sample document.

本机格式的输出开始如下:

代码语言:javascript
运行
复制
Pandoc
  Meta
    { unMeta =
        fromList [ ( "title" , MetaInlines [ Str "Sample" ] ) ]
    }
  [ Div
      ( "" , [] , [ ( "data-pos" , "Sample.knit.md@5:1-6:1" ) ] )
      [ Para
          [ Span
              ( ""
              , []
              , [ ( "data-pos" , "Sample.knit.md@5:1-5:5" ) ]
              )
              [ Str "This" ]
          , Span
              ( ""
              , []
              , [ ( "data-pos" , "Sample.knit.md@5:5-5:6" ) ]
              )
              [ Space ]
          , Span
              ( ""
              , []
              , [ ( "data-pos" , "Sample.knit.md@5:6-5:8" ) ]
              )
              [ Str "is" ]

但是,.tex文件中显示的所有内容如下:

代码语言:javascript
运行
复制
{This}{ }{is}...

作为实现Synctex支持的一个步骤,我希望将数据pos信息作为LaTeX标记插入,即将.tex输出更改为如下所示:

代码语言:javascript
运行
复制
{This\datapos{Sample.knit.md@5:1-5:5}}{ \datapos{Sample.knit.md@5:5-5:6}}{is\datapos{Sample.knit.md@5:6-5:8}}...

这看起来像是Lua过滤器可以很容易完成的任务:查找data-pos记录,将位置信息复制到Str记录中。然而,我不知道Lua或Pandoc的母语。有人能帮忙吗?就我的目的而言,为Span记录这样做就足够了。我用的是Pandoc 2.18和Lua5.4。

EN

回答 1

Stack Overflow用户

发布于 2022-11-25 17:45:59

下面是一次似乎有效的尝试。欢迎您提出意见或修改!

代码语言:javascript
运行
复制
Span = function(span)
  local datapos = span.attributes['data-pos']
  if datapos then
    table.insert(span.content, pandoc.RawInline('tex', "\\datapos{" .. datapos .. "}"))
  end
  return span
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74574732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档