【问题标题】:Not able to use titlesec with markdown and pandoc?无法将 titlesec 与 markdown 和 pandoc 一起使用?
【发布时间】:2017-03-20 23:59:11
【问题描述】:

当我在 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的讨论, 但这超出了我的知识范围

感谢您的帮助

【问题讨论】:

    标签: pandoc


    【解决方案1】:

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

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

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

    ---
    subparagraph: yes
    ---
    

    来自man pandoc(和user's guide):

    subparagraph

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

    在此之后,titlesec.sty 应该可以工作了。

    【讨论】:

    • 当我使用 pandoc -o test.pdf test.md 构建 this 文档时,pandoc 2.2.3.2 对我来说一切正常。
    猜你喜欢
    • 2013-08-26
    • 1970-01-01
    • 2018-04-12
    • 2020-06-23
    • 2012-09-29
    • 1970-01-01
    • 2013-04-07
    • 1970-01-01
    • 2019-03-25
    相关资源
    最近更新 更多