pandoc "titleformat" 统治者

pandoc "titleformat" ruler

我对 YAML 数据块有疑问。给定以下 pandoc 文档:

---
papersize: a4
geometry: "left=1.5cm,right=1.5cm,top=3cm,bottom=3cm"
fontsize: 12pt
# 
subparagraph: yes
#documentclass: extarticle
header-includes:
    - \usepackage[explicit]{titlesec}
    - \titleformat{\section}[hang] {\filleft\huge\sc} {label}{20pt}{#1}

---

Hello World
=========== 

Lorem ipsum

我正确地将我的标题右对齐。现在,假设我需要一个 full-width 标题下方的标尺,如 https://tex.stackexchange.com/a/84062 中所述,需要将 \titleformat 语句修改为:

---
papersize: a4
geometry: "left=1.5cm,right=1.5cm,top=3cm,bottom=3cm"
fontsize: 12pt
# 
subparagraph: yes
#documentclass: extarticle
header-includes:
    - \usepackage[explicit]{titlesec}
    - \titleformat{\section}[hang] {\filleft\huge\sc} {label}{20pt}{#1}[\titlerule\vspace*{4pt}]

---

Hello World
===========    

Lorem ipsum

但这会导致以下错误:

Error producing PDF.
! LaTeX Error: Missing \begin{document}.

See the LaTeX manual or LaTeX Companion for explanation.
Type  H <return>  for immediate help.
 ...

l.49 {[

事实上,tex 文件显示了奇怪的代码:

...
\usepackage[explicit]{titlesec}
\titleformat{\section}[hang] {\filleft\huge\sc} {label}{20pt}{#1}

{[}\titlerule\vspace*{4pt}{]}

\date{}

\begin{document}
...

Pandoc 将该行的一部分解析为 Markdown。因此,当该行以 LaTeX 形式编写时,特殊字符将被转义以确保生成与输入相同的文本。这在这里是不受欢迎的,最好的解决方案是将行明确标记为 LaTeX:

header-includes:
    - \usepackage[explicit]{titlesec}
    - `\titleformat{\section}[hang] {\filleft\huge\sc} {label}{20pt}{#1}`{=latex}

也可以像这样标记整个 header 包含:

header-includes: |
  ```{=latex}
  \usepackage[explicit]{titlesec}
  \titleformat{\section}[hang] {\filleft\huge\sc} {label}{20pt}{#1}
  ```

好的,在 YAML 块中传递纯 Latex 解决了问题:

--
papersize: a4
geometry: "left=1.5cm,right=1.5cm,top=3cm,bottom=3cm"
fontsize: 12pt
# 
subparagraph: yes
#documentclass: extarticle
header-includes:
  - \usepackage[explicit]{titlesec}
  - |
    ```{=latex}
    \titleformat{\section}[hang] {\filleft\huge\sc} {label}{20pt}{#1}[\titlerule\vspace*{4pt}]
    ```  
---

Hello World
===========    

Lorem ipsum