markdown
在以下用于pandoc
/latex
生成 pdf的文档的简化版本中:
\documentclass{article}
\usepackage{unicode-math}
\setmainfont{TeX Gyre Schola}
\setmathfont{TeX Gyre Schola Math}
\begin{document}
## Custom F1 Score For Scoring of Graph Matching
### Overview
The `F1 Score` is intended to compare two sets:
- Truth Set
- Actuals Set
Its calculation is:
$$F_{\beta} = (1 + \beta^2) \cdot \frac{\mathrm{precision_k} \cdot \mathrm{recall_k^2}}{(\beta^2 \cdot \mathrm{precision_k}) + \mathrm{recall_k}}$$
\end{document}
请注意,所有preamble
指令都发生在
begin{document}
这pdf通过以下方式生成pandoc
:
$pandoc -V fontsize=9pt --pdf-engine xelatex -V
geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.md
产生以下错误:
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.60 \documentclass
引入数学字体这里有什么不正确?
答案1
Markdown 文档的转换将内容放在 YAML 标头的序言中。但是,由于没有指定 YAML 标头,因此假定内容构成常规文档主体的一部分。因此,\documentclass
(和其余部分)最终位于序言之后\begin{document}
,而不是在序言中。因此,错误“只能在序言中使用”并指向\documentclass
...
你需要这样的东西:
---
title: "Some title"
author: "Some author"
header-includes:
- \usepackage{unicode-math}
- \setmainfont{TeX Gyre Schola}
- \setmathfont{TeX Gyre Schola Math}
output:
pdf_document
---
## Custom F1 Score For Scoring of Graph Matching
### Overview
...
答案2
看来你有两个问题。
首先,您需要转义#
符号(即像\#
)。
第二个是你的 pandoc 命令。你需要添加--from latex
它,如下所示:
pandoc -V fontsize=9pt --from latex --pdf-engine xelatex -V geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.md
不过,我不太清楚你为什么在 Markdown 文件中使用 LaTeX 代码。当我将你的命令更改为:
pandoc -V fontsize=9pt --pdf-engine xelatex -V geometry:"left=2cm,right=2cm,top=2cm,bottom=2cm" -o myDoc.pdf myDoc.tex
而文件从.md
到.tex
,也解决了这个问题。把它保留为.tex
文件似乎更自然,因为它是一个.tex
文件。不知道我是否误解了什么?