pandoc使用
Posted 乃爱苦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandoc使用相关的知识,希望对你有一定的参考价值。
准备
- pandoc官网下载
- MiXTeX下载。下载完成后记得先进入MiXTeX console更新下
- md编辑器。楼主使用vscode
问题汇总
- [WARNING] Missing character: There is no 澶?pandoc:
: hPutChar: invalid argument (Invalid argument)
ans:由于编译字体默认不使用中文,所以需要指定编译字体。
pandoc srs.md -o srs.pdf --pdf-engine=xelatex -V CJKmainfont=KaiTi
其他解决方法见pandoc官网
2. 编译pandoc默认的latex引擎是pdflatex,是不支持中文的,因此需要手动设置编译时所用的引擎为xelatex
使用 pandoc 进行文档转换(word转pdf)
pandoc 是一个神奇的转换工具(详见官网),它支持各种文档格式之间的转换。如果使用它进行 pdf 转换需要依赖外部引擎(LaTeX)。
安装 pandoc
以 CentOS 为例,其他操作系统详见官网安装说明。
1、进入页面 https://github.com/jgm/pandoc/releases
2、下载 pandoc-2.17.1.1-linux-amd64.tar.gz
3、解压缩后bin目录中的 pandoc 即为可以直接使用的二进制文件。
安装 LaTeX 引擎
如果需要使用 pandoc 转换文档为 pdf,需要安装在操作系统上安装 latex(默认使用 LaTeX 引擎),否则会出现错误 pdflatex not found. Please select a different --pdf-engine or install pdflatex
。
XeLaTeX 是使用 LaTeX 的排版引擎。对于中文文档,pdflatex 转换会出现字符集不支持的问题,可以使用参数指定 xelatex 引擎来转换中文文档。
1、下载 ISO 镜像文件
2、挂载 iso 文件进行安装
先 mount,再执行 ./install-tl
命令。
[root@server01 data]# mount -o loop texlive2021-20210325.iso /data/texlive
mount: /dev/loop0 is write-protected, mounting read-only
[root@server01 texlive]# ./install-tl
# 中途出现提示 Enter command: 时输入 I 然后继续
如果安装 latex 出现错误 Can't locate Digest/MD5.pm in @INC (@INC contains
,说明缺少依赖 perl-Digest-MD5
,可以执行 yum -y install perl-Digest-MD5
来安装(安装成功后继续 ./install-tl
)。
3、配置环境变量
在安装包 iso 中有指导手册 ./texlive-doc/texlive-zh-cn/texlive-zh-cn.pdf
查看 pdf 文档的 3.4.1 节,添加如下环境变量到用户环境下.bash_profile
(或全局的 /etc/profile
)
PATH=/usr/local/texlive/2021/bin/x86_64-linux:$PATH
export PATH
MANPATH=/usr/local/texlive/2021/texmf-dist/doc/man:$MANPATH
export MANPATH
INFOPATH=/usr/local/texlive/2021/texmf-dist/doc/info:$INFOPATH
export INFOPATH
执行 source ~/.bash_profile
使配置立即生效。
4、查看3.4.4节添加 tex 系统自带的字体文件
将 texlive-fontconfig.conf 文件复制到 /etc/fonts/conf.d/09-texlive.conf 后,再运行 fc-cache -fsv
命令。
[root@server01 texlive]# cp /usr/local/texlive/2021/texmf-var/fonts/conf/texlive-fontconfig.conf /etc/fonts/conf.d/09-texlive.conf
[root@server01 texlive]# fc-cache -fsv
5、使用测试
编辑如下内容为 test.tex 文件
%% coding:utf8
%% coding:utf8
\\documentclassarticle
\\usepackagexeCJK
\\setCJKmainfontSimSun
\\begindocument
你好, TeX Live 2013!
\\enddocument
执行转换命令 pandoc --pdf-engine=xelatex -s test.tex -o test.pdf
,验证生成的 pdf 文件是否正确。
更多关于 latex 的内容详见官网资料,如下:
https://www.latex-project.org/
https://www.tug.org/texlive/acquire-netinstall.html
https://www.tug.org/texlive/acquire-netinstall.html#netlwp
https://www.tug.org/texlive/quickinstall.html
https://pandoc.org/demos.html
基于docker的使用方法
以上内容我们还需要在服务器上安装环境,如果使用 pandoc 的 docker 镜像 将会使这一切都变的更简单。
示例:
# 设置运行命令的别名
alias pandock='docker run --rm -v "$(pwd):/data" -u $(id -u):$(id -g) pandoc/latex'
# 转换一个 markdown 文档为 pdf 文件
pandock -s test.md -o test.pdf
(END)
以上是关于pandoc使用的主要内容,如果未能解决你的问题,请参考以下文章