Pandoc PDF 中文
2024-10-19 12:43:00
最近终于又决定(^_^)使用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
最新文章
- GJM : Unity3D HIAR -【 快速入门 】 四、创建 Hello World
- 传统模式下WebService与WebAPI的相同与不同
- Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作
- hive streaming 使用shell脚本
- in-list expansion
- IOS学习笔记34—EGOTableViewPullRefresh实现下拉刷新
- (译)如何在ASP.NET中安全使用ViewState
- 自己写的Dapper通用数据访问层
- 《android开发艺术探索》读书笔记(九)--四大组件
- Linux下Shell重定向
- [转] KVM I/O slowness on RHEL 6
- Ubuntu 16.04交换Ctrl和Caps
- C# 发送email邮件!
- RF基础(一) RF内建函数库BuiltIn
- Mysql 性能优化5【重要】数据库结构优化
- 【bzoj4765】 普通计算姬
- pageParam要求传个JSON对象的方法
- SQL Server 数据库的分类和用户数据库文件组成
- 教你一步一步在linux中正确的安装Xcache加速php
- jQuery实现轮播切换以及将其封装成插件(2)