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