Pandoc PDF 中文
最近終于又決定(^_^)使用reStructuredText寫文檔了,輸出PDF時的中文問題必須要解決下。
安裝環(huán)境
sudo apt install texlive texlive-latex-extra texlive-latex-recommended texlive-xetex pandoc
非Debian或Windows請自行g(shù)oogle之
LaTeX中文
這個PDF的中文問題,其實就是LaTeX的中文問題,因為所有的PDF生成方式,都是先生成TeX和LaTeX文件的。
在XeTeX問世之前,在TeX里搞中文是一件比較費勁的事,好在XeTeX已經(jīng)存在很多年了,XeTeX解決了Unicode和字體問題,但是排出來的中文斷行,標(biāo)點處理上還不太好,于是國人就寫了xeCJK這個宏包,概括一下,XeTeX+xeCJK之后,TeX中寫中文就和寫英文差不多友好了。
在linux-wiki.cn上有一篇寫LaTeX中文的文章,略微有一點老,不過大意是沒有變化,我把那的代碼粘貼到這里
\documentclass[11pt]{article}
\usepackage[BoldFont,SlantFont,CJKsetspaces,CJKchecksingle]{xeCJK}
\setCJKmainfont[BoldFont=SimHei]{SimSun}
\setCJKmonofont{SimSun}% 設(shè)置缺省中文字體
\parindent 2em %段首縮進\begin{document}
\section{舉例}
\begin{verbatim}
標(biāo)點。
\end{verbatim}漢字Chinese數(shù)學(xué)$x=y$空格
\end{document} 根據(jù)xeCJK的文檔,我認(rèn)為以上的代碼需要改成現(xiàn)在這個形式,如果文檔是正確的話
\documentclass[11pt]{article}
\usepackage[AutoFakeBold=true,AutoFakeSlant=true,CJKspace=true,CheckSingle=true,PunctStyle=kaiming]{xeCJK}
\setCJKmainfont[BoldFont=SimHei]{SimSun}
\setCJKmonofont{SimSun}% 設(shè)置缺省中文字體
\parindent 2em %段首縮進\begin{document}
\section{舉例}
\begin{verbatim}
標(biāo)點。
\end{verbatim}漢字Chinese數(shù)學(xué)$x=y$空格
\end{document} 注:xeCJK現(xiàn)在是CTeX-kit中的一員,在Github上有倉庫
Pandoc的LaTeX
pandoc可以轉(zhuǎn)換很多格式,其中就包含reST,使用xelatex轉(zhuǎn)換為PDF的命令行,基本格式為
pandoc -t latex --latex-engine=xelatex -s -o xxx.pdf xxx.rst
直接執(zhí)行這條命令,當(dāng)然是不好使的,因為沒有使用xeCJK,也未指定中文字體。
pandoc在轉(zhuǎn)換latex的時候,會使用一個默認(rèn)的模板文件,這個模板文件可以使用如下命令查看
pandoc -D latex
我們當(dāng)然可以使用自己的模板,具體參考pandoc文檔,不過我發(fā)現(xiàn)如果要求不高,默認(rèn)的模板也是可以輸出中文的,需要定義兩個variable,我們這里直接使用命令行的方式傳遞變量值
pandoc -t latex --latex-engine=xelatex -s -VCJKoptions=BoldFont="SimHei" -VCJKmainfont="SimSun" -o xxx.pdf xxx.rst
今天就到這里,后面繼續(xù)研究使用rst2pdf和sphinx來將reST文檔轉(zhuǎn)換為PDF
?
轉(zhuǎn)載于:https://www.cnblogs.com/windtail/p/8260193.html
總結(jié)
以上是生活随笔為你收集整理的Pandoc PDF 中文的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信网名闺蜜
- 下一篇: node、Mongo项目如何前后端分离提