pandoc“ titleformat”标尺

问题描述 投票:1回答:2

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

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

---

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

Lorem ipsum

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

---
papersize: a4
geometry: "left=1.5cm,right=1.5cm,top=3cm,bottom=3cm"
fontsize: 12pt
# https://stackoverflow.com/a/43659664/2069099
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}
...
latex pandoc
2个回答
1
投票

Pandoc将该行的一部分解析为Markdown。因此,当该行写为LaTeX时,会转义特殊字符以确保它产生与输入相同的文本。这是不需要的,最好的解决方案是将行明确标记为LaTeX:

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

也可以这样标记整个标头:

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

1
投票

[确定,在YAML块中传递普通的Latex解决了问题:

--
papersize: a4
geometry: "left=1.5cm,right=1.5cm,top=3cm,bottom=3cm"
fontsize: 12pt
# https://stackoverflow.com/a/43659664/2069099
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    
© www.soinside.com 2019 - 2024. All rights reserved.