最近终于又决定(^_^)使用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

Pandoc PDF 中文的更多相关文章

  1. 吐血整理:人工智能PDF中文教材资源包2.73G基本包含全部学习资料-人工智能学习书单

    吐血整理:人工智能PDF中文教材资源包2.73G基本包含全部学习资料 人工智能学习书单(关注微信公众号:aibbtcom获取更多资源) 文末附百度网盘下载地址 人工神经网络与盲信号处理 人工神经网络与 ...

  2. Gitbook 生成 pdf 中文字体错乱问题解决办法

    Gitbook 生成 pdf 中文字体错乱问题解决办法   用过 Gitbook 的都知道, Gitbook 会自动生成 pdf 以提供下载, 但十分遗憾的是自动生成的 pdf 对中文的支持并不好, ...

  3. SublimeText插件Pandoc导出PDF中文报错或者中文不显示解决方法

    按照如下自定义配置(主要是指定latex的字体[仅限本机字体]) { "user": { // "pandoc-path":"C:\\Program ...

  4. sphinx PDF 中文

    使用reST撰写文档时,需要分多个文档时,就必须使用sphinx了,sphinx说起来很简单的,但是默认是不是支持中文的.幸好我出生的晚,sphinx现在已经支持xelatex了^_^ 安装 除了pa ...

  5. AD smart pdf 中文丢失

    Altium Designer将原理图通过smart pdf导出,原理图中的中文丢失了. 将原理图中的所有中文字体改为宋体即可. 百度知道上的也有说: 打开软件后,点击左上角的[DXP]→[Prefe ...

  6. JasperReport4.6生成PDF中文

    Web项目中PDF显示中文 本人无奈使用JasperReport4.6,因为这本书(好像也是唯一的一本国内的介绍JasperReport的书), 选择"文件"→New命令,弹出一个 ...

  7. RDF类型报表-PDF中文乱码

    在Oracle R12中,遇到了客户一张客户化的报表: 报表的输出格式是布局在RDF文件(非RTF)中,在并发请求输出时,PDF会出现中文乱码,而HTML和excel显示正常: 根据资料: 查看$OA ...

  8. 解决html导出pdf中文乱码问题的正确姿势

    简介 本文使用jspdf 1.5.3版.GitHub地址:https://github.com/MrRio/jsPDF jspdf是歪果仁开发的,因此在一开始就没想过支持非英文以外的文字,这就导致了非 ...

  9. php+tcpdf生成pdf: 中文乱码

    TCPDF是一个生成PDF的不错的库,可惜,官方对包括中文在内的东亚字体支持不怎么样的.场景:某项目需要根据数据库信息生成pdf格式的发票,考虑采用稳定的tcpdf,虽然还有许多其它选择,但是这个应该 ...

随机推荐

  1. JavaScript文本收缩展开 showdetail

    原文发布时间为:2009-11-15 -- 来源于本人的百度文章 [由搬家工具导入] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tran ...

  2. AVRStudio 6 设置F_CPU时钟频率

    具体如下: 1>右键项目属性 2>根据语言选择一下,C或C++

  3. 嵌入式 Linux线程锁详解pthread_mutexattr_t【转】

    转自:http://blog.sina.com.cn/s/blog_8795b0970101il6g.html 在Posix Thread中定义有一套专门用于线程同步的mutex函数. . 创建和销毁 ...

  4. hdu 2136(质数筛选+整数分解)

    Largest prime factor Time Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  5. GIT 的常规操作

    GIT 的常规操作 常规操作也是我自己平时常用的几个命令, 学自于 pro git 这本书中 git 配置文件 git的配置文件位置 针对所有用户:/etc/gitconfig 针对当前用户: -/. ...

  6. POJ 1961 Period KMP算法之next数组的应用

    题意:给一个长度为n的字符串,如果它长度为l(2 <= l <= n)的前缀部分是由一些相同的字符串相接而成,输出前缀的长度l和长度为l时字符串重复的最大次数. 例如字符串为: aaaba ...

  7. CodeForces - 361E Levko and Strings

    Discription Levko loves strings of length n, consisting of lowercase English letters, very much. He ...

  8. 基于WPF系统框架设计(1)-为什么要仿Office2010 Ribbon?

    为什么系统框架设计使用Ribbon导航模式? 这得从Office软件的演变说起.微软为什么最后选择使用Ribbon,也许就是很多系统设计要使用Ribbon做功能导航的原因. 你是否还记得曾经使用过的M ...

  9. 测试Apache服务器及httpd: Could not reliably determine the server's fully qualified domain name解决办法

    测试Apache服务器: 重启apache: sudo /usr/local/apache/bin/apachectl restart 若出现错误: httpd: Could not reliably ...

  10. 自学MVC看这里——全网最全ASP.NET MVC 教程汇总【转】

    自学MVC看这里——全网最全ASP.NET MVC 教程汇总 http://www.cnblogs.com/powertoolsteam/archive/2015/08/13/4667892.html ...