Pandoc:我怎么能不转义 YAML 元数据中的反斜杠?
Pandoc: How can I not escape backslashes in YAML metadata?
Pandoc 可以在 Markdown 中使用 YAML header 或为所有源类型使用默认值或元数据文件,其中可以存储变量以在模板中使用。是否可以在这些元数据变量中不转义反斜杠和 LaTeX 命令?
例如,我的 YAML header 中有这一行:phone: +49\,123\,456789
。转换时,Pandoc 转义了反斜杠,因此它变成了 +49\textbackslash,123\textbackslash,456789
。这是不需要的,因为我希望 LaTeX 解释 \,
并将其变成细空格。
我还尝试将它包装在 ''
中或作为 |
的块,因此 YAML 本身不会转义任何内容,但这似乎是 Pandoc 本身在进行转换,而不是 YAML 解释器.
最小可重现示例
src.md:
Some text
defaults.yaml:
template: ./tpl.tex
metadata:
phone: +49\,123\,456789
tpl.tex:
Phone number: $phone$
Markdown body:
$body$
输出 pandoc --defaults defaults.yaml src.md --to latex
:
Phone number: +49\textbackslash,123\textbackslash,456789
Markdown body:
Some text
应该是:
Phone number: +49\,123\,456789
Markdown body:
Some text
您可以使用这个 unicode 字符:https://www.compart.com/en/unicode/U+202F
然后
template: ./tpl.tex
metadata:
phone: +49 123 456789
通过 pandoc --defaults defaults.yaml src.md --to latex -o test.tex
翻译成以下 .tex
文件:
Phone number: +49\,123\,456789
Markdown body:
Some text
元数据将始终被转义;最简单的方法是定义变量而不是元数据。
---
variables:
phone: +49\,123\,456789
---
与元数据值相反,变量被逐字插入到模板中。
Pandoc 可以在 Markdown 中使用 YAML header 或为所有源类型使用默认值或元数据文件,其中可以存储变量以在模板中使用。是否可以在这些元数据变量中不转义反斜杠和 LaTeX 命令?
例如,我的 YAML header 中有这一行:phone: +49\,123\,456789
。转换时,Pandoc 转义了反斜杠,因此它变成了 +49\textbackslash,123\textbackslash,456789
。这是不需要的,因为我希望 LaTeX 解释 \,
并将其变成细空格。
我还尝试将它包装在 ''
中或作为 |
的块,因此 YAML 本身不会转义任何内容,但这似乎是 Pandoc 本身在进行转换,而不是 YAML 解释器.
最小可重现示例
src.md:
Some text
defaults.yaml:
template: ./tpl.tex
metadata:
phone: +49\,123\,456789
tpl.tex:
Phone number: $phone$
Markdown body:
$body$
输出 pandoc --defaults defaults.yaml src.md --to latex
:
Phone number: +49\textbackslash,123\textbackslash,456789
Markdown body:
Some text
应该是:
Phone number: +49\,123\,456789
Markdown body:
Some text
您可以使用这个 unicode 字符:https://www.compart.com/en/unicode/U+202F
然后
template: ./tpl.tex
metadata:
phone: +49 123 456789
通过 pandoc --defaults defaults.yaml src.md --to latex -o test.tex
翻译成以下 .tex
文件:
Phone number: +49\,123\,456789
Markdown body:
Some text
元数据将始终被转义;最简单的方法是定义变量而不是元数据。
---
variables:
phone: +49\,123\,456789
---
与元数据值相反,变量被逐字插入到模板中。