![使用pandoc将txt转换为docx时,如何指定默认段落样式?](https://linux22.com/image/1503089/%E4%BD%BF%E7%94%A8pandoc%E5%B0%86txt%E8%BD%AC%E6%8D%A2%E4%B8%BAdocx%E6%97%B6%EF%BC%8C%E5%A6%82%E4%BD%95%E6%8C%87%E5%AE%9A%E9%BB%98%E8%AE%A4%E6%AE%B5%E8%90%BD%E6%A0%B7%E5%BC%8F%EF%BC%9F.png)
我正在尝试使用带有特殊 MS Word 模板的 pandoc 将 txt 文件 (markdown) 转换为 docx。我这样做:
pandoc -s --reference-docx=/path/to/my/template.dotx -o outfield.docx file.md
问题是,我在模板中设置了一种特殊的“正文段落”样式,与“普通”样式分开(因为各种标题等都是基于“正常”样式。有没有办法告诉 pandoc,当它转换正常段落文本时,应该使用我的特殊“正文段落”样式进行样式设置?
答案1
pandoc 1.19.2.1 对正文使用了三种样式:Normal
、Body Text
和First Paragraph
,它们按此顺序相互关联。如果您只想对正文使用特定样式,则应编辑Body Text
模板中的样式,而不是样式本身,Normal
因为对样式的更改Normal
(如您之前所述)也会传播到其他样式。
--reference-docx
请参阅“影响特定作者的选项”部分pandoc 用户手册。
该功能可能在 1.19.2.1 之前的版本中存在,我不知道它是什么时候引入的。
答案2
此外,您可以使用 pandoc 转换批量(多个)文件,如果您使用以下行:
.docx 转换为 .txt
for i in *.docx ; do echo "$i" && pandoc -s --wrap=none $i -o $i.txt ; done
.doc 转换为 .docx
for i in *.doc ; do echo "$i" && pandoc -s --wrap=none $i -o $i.doc ; done