Pandoc Markdown到Docx,并在单独的页面中包含封面和TOC

时间:2018-10-19 09:58:58

标签: markdown docx pandoc

我按照以下答案中的说明进行操作:https://stackoverflow.com/a/52131435/510024,并且每当我想要从markdowndocx的转换时,我都可以设法创建并使用过滤器来创建新页面。这样,我可以在docx文件中获得一个“封面/首页”。但是,当使用--toc选项时,过滤器不起作用。 newpage未得到遵守,并且“ TOC”出现在文档title之后,即在同一页面中。

有一种方法可以从markdown转换为docx,从而得到带有{Cover / Front Page“和'TOC'(即'TOC')的docx文档在“封面/首页”之后的页面中显示)

谢谢!

1 个答案:

答案 0 :(得分:3)

(至少)有两种可能的方法:一种需要更改输入文档,另一种需要修改参考文档。

在摘要中添加分页符

摘要是目录之前的最后一个元素。以分页符结束摘要将导致目录在新页面上开始

---
title: MWE
abstract: ' `<w:p><w:r><w:br w:type="page"/></w:r></w:p>`{=openxml}'
---

请注意,摘要可能不为空,但如上面的示例所示,仅添加一个no-break space就足够了。

修改参考文件

Pandoc在创建docx文件时使用参考文档。可以创建自定义参考文档并修改TOCHeader样式。

创建自定义参考文档需要执行以下步骤:

  1. 根据pandoc的默认参考文件创建新的docx:

    pandoc --print-default-data-file reference.docx > custom-reference.docx
    
  2. 打开custom-reference.docx并根据自己的喜好修改其中的样式。

  3. 每次调用pandoc时,都通过--reference-doc选项传递结果。

    pandoc --reference-doc=custom-reference.docx …
    

    或者,将文件重命名为reference.docx并将其放置在pandoc的数据目录中,因此将其选择为默认文件。

有关详细信息,请参见documentation on how to modify a custom style