当我在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的讨论, 但它超出了我的知识
感谢您的帮助
答案 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
应该有效。