无法使用marksec和markdown和pandoc?

时间:2017-03-20 23:59:11

标签: pandoc

当我在markdown文档中使用titlesec时如下:

---
header-includes:
    - \usepackage{titlesec}
---

通过pandoc处理时,我收到以下错误:

pandoc try.md -o try.pdf
! Argument of \paragraph has an extra }.
<inserted text> 
                \par 
l.1290 \ttl@extract\paragraph

pandoc: Error producing PDF

通过搜索,我找到了以下R-markdown的解决方法: Can't knit to pdf with custom styles

我想知道如何使用markdown和YAML标头实现类似的解决方法?

我还发现并验证了以下方法可行:

pandoc --variable=subparagraph try.md -o try.pdf

但是对于用户来说这更难,因为人们可能会忘记解决方法。

有一些关于解决方法https://www.bountysource.com/issues/40574981-latex-template-incompatible-with-titlesec的讨论, 但它超出了我的知识

感谢您的帮助

1 个答案:

答案 0 :(得分:11)

这是因为默认的LaTeX模板重新定义了\paragraph。要禁用此行为,您可以在pandoc中使用subparagraph变量。您可以在命令行中提供:

pandoc --variable subparagraph -o file.pdf file.md

或者您可以将其嵌入到文档的YAML元数据中,并使用任何非空值:

---
subparagraph: yes
---

来自man pandoc(以及user's guide):

  

<强> subparagraph

     

禁用LaTeX模板的默认行为,将(子)段落重新定义为部分,更改某些类中嵌套标题的外观

在此之后,titlesec.sty应该有效。