如何使用 YAML、Preamble (LaTex) 和 Pandoc 转换解决错误

How to solve error with YAML, Preamble (LaTex) and Pandoc conversion

几周前我开始将 markdown 与 pandoc 一起使用。我特别喜欢markdown编辑器writemonkey v.3!我在将 .md 转换为 .pdf 时遇到了一个小问题,这是由文档中的第一行引起的。文档的第一行(见下文)是如何在 writemonkey 中为文档命名的。

name: seminarium 1

---
author: my name
date: 22 Augusti 2020
bibliography: testlibrary.bib
geometry: 
- top=2.5cm
- bottom=2.5cm
- left=2.5cm
- right=2.5cm
pagesize: a4
font: Times New Roman
fontsize: 12pt
header-includes:
   - \usepackage{setspace}
   - \setstretch{1.0}
   - \pagenumbering{gobble}

---

如果我删除第一行,pandoc 转换就像一个魅力。否则我会得到这个:

pandoc  sem1.md -o sem1.pdf --bibliography library.bib -V lang=sv                 
Error producing PDF.
! LaTeX Error: Can be used only in preamble.

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

l.78 \usepackage

现在 - 我意识到我已经将 YAML 与 LaTex 代码结合在一起,我希望我的格式“不好”并且我可以改进它,这样我就不必每次都删除第一行。也许告诉 Pandoc/LaTex 忽略第一行或制作一个单独的 .yaml 文件会有帮助?

好的!这就是我所做的。与 Writemonkey 配合使用效果很好。在记事本中只需 copy-paste 并另存为 .ps1 文件,在 Powershell 中另存为 运行!

CD C:\Users\username\Desktop\ppp2020 # Filepath of .md, .yaml and .bib

Get-Content cap.md -Encoding UTF8 | Select-Object -Skip 2 | Set-Content cap_temp.md -Encoding UTF8 # Removes the first line (name:) from markdown document

pandoc  cap_temp.md default.yaml  -o cap.pdf --bibliography library.bib -V lang=sv # converts .md to .pdf 

Remove-Item 'C:\Users\username\Desktop\ppp2020\cap_temp.md' # This removes the tempfile