![如何通过 pandoc 将 yaml 文件中带有下划线的路径名传递给 latex?](https://linux22.com/image/426808/%E5%A6%82%E4%BD%95%E9%80%9A%E8%BF%87%20pandoc%20%E5%B0%86%20yaml%20%E6%96%87%E4%BB%B6%E4%B8%AD%E5%B8%A6%E6%9C%89%E4%B8%8B%E5%88%92%E7%BA%BF%E7%9A%84%E8%B7%AF%E5%BE%84%E5%90%8D%E4%BC%A0%E9%80%92%E7%BB%99%20latex%EF%BC%9F.png)
我有一个csv
名为的文件test_csv.csv
,其内容如下:
1_c,2,3,4
a2,b,c,d
我想用 LaTeX 打印它,csvautobooklongtable
但使用 pandoc-workflow。
pandoc-template( pandoc-csv.latex
)是这样的:
\documentclass{scrartcl}
\usepackage{csvsimple}
\usepackage{longtable,booktabs}
\begin{document}
\csvautobooklongtable[before table=\ttfamily,respect all]{$pathtocsv$}
\end{document}
-file 的路径csv
位于一个额外的yaml
-file ( my.yaml
) 中:
---
pathtocsv: test_csv.csv
---
因为我只有元数据,所以我想打印一个空的 markdown 虚拟文件,这dummy.md
对于 pandoc 来说似乎是必要的()。
我通过 CLI 进行转换,
pandoc my.yaml --template pandoc-csv.latex dummy.md --pdf-engine=lualatex -o pandoc-csv.pdf
问题是 pandoc 从路径名转换下划线,并且无法在我的 latex 文档中读取它。
!包 csvsimple 错误:文件“test\_csv.csv”不存在、不可读或为空!。
答案1
您需要告诉 pandoc,该字符串已经latex
避免进一步转义:
---
pathtocsv: "`test_csv.csv`{=latex}"
---