首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在pandoc中自动在页眉前添加分页符

如何在pandoc中自动在页眉前添加分页符
EN

Stack Overflow用户
提问于 2021-06-27 00:53:41
回答 1查看 74关注 0票数 2

我需要将markdown文档转换为Word文档。我需要它,以便在每个页眉之前有一个分页符。

例如,在这里,将在# Heading 1之前和# Heading 2之前插入分页符。如果文档中没有之前的内容,我不介意它跳过第一个。

代码语言:javascript
运行
复制
# Heading 1

Hello

# Heading 2

World

我已经找到了this Lua filter,但据我所知,它只适用于Latex,并不是自动的。

我试着自己写一个Lua脚本,但失败了,因为我不太了解pandoc是如何工作的。

例如,我尝试从Header函数返回一个包含前一个内容的Para +一个分页符,如下所示:

代码语言:javascript
运行
复制
function Header(el)
    if el.level == 1 then
        local t = { pandoc.RawBlock('openxml', '<w:p><w:r><w:br w:type="page"/></w:r></w:p>'), el }
        return pandoc.Para(t)
    end
    return el
end

然而,它只是擦除了所有的头文件。我已经尝试了同样的想法的其他几种修改,但都不起作用。

Lua的问题主要是没有静态分析,也没有智能感知。我可能在这段代码中做了一些完全不合适的事情,没有任何编译器错误,甚至没有意识到这一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-28 06:15:22

我相信以下几点应该可以解决这个问题:

代码语言:javascript
运行
复制
local pagebreak = '<w:p><w:r><w:br w:type="page"/></w:r></w:p>'
function Header(el)
    if el.level == 1 then
        -- return both the page break and the header as a list
        return { pandoc.RawBlock('openxml', pagebreak), el }
    end
    -- No `return el` needed, as not returning any value is the same as
    -- returning the original value.
end

pandoc在解组期间的错误报告,也就是从Lua检索对象时,至少可以说不是很好。理想情况下,pandoc应该报告由于在Para中包装“块”列表而产生的类型错误,因为该构造函数应该只接受“inline”。

如果您感兴趣:我正在通过切换到不同的编组策略来修复此问题,请参阅this PR。这需要一段时间,但我们会到的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68144509

复制
相关文章

相似问题

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