zoukankan      html  css  js  c++  java
  • 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   %段首缩进
     
    egin{document}
    section{举例}
    egin{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   %段首缩进
     
    egin{document}
    section{举例}
    egin{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

  • 相关阅读:
    级联操作
    深入解析http协议
    http状态码
    数据库在一对一、一对多、多对多怎么设计表关系
    [转载]C#深拷贝的方法
    TraceSource记录程序日志
    .NET 垃圾回收与内存泄漏
    DevExpress GridControl使用方法总结
    DevExpress使用技巧总结
    Oracle 错误代码小结
  • 原文地址:https://www.cnblogs.com/windtail/p/8260193.html
Copyright © 2011-2022 走看看