https://tug.org/texlive/doc/texlive-en/texlive-en.html#x1-340003.4.4
非常感谢,按你的提示 org 可以导出为 PDF了,并且支持中文。
这里总结下在 Windows 和 macOS 平台下的配置,其他平台应该也差不多:
- 安装 texlive,安装时间会有点长,Windows下占用空间 7.91G
macOS 用户如果使用 macports 可以用下面的两个命令安装:
sudo port install texlive
sudo port install texlive-lang-chinese
- Emacs 中设置使用 xelatex
(use-package ox-latex
:after org
:custom
(org-latex-compiler "xelatex")
(org-latex-pdf-process
'("xelatex -shell-escape -interaction nonstopmode -output-directory %o %f"
"xelatex -shell-escape -interaction nonstopmode -output-directory %o %f"
"xelatex -shell-escape -interaction nonstopmode -output-directory %o %f"
"rm -fr %b.out %b.log %b.tex auto"))
(org-latex-packages-alist
'("\\usepackage{fontspec} \\usepackage{xeCJK} \\setmainfont{Times New Roman} \\setCJKmainfont{微软雅黑}")))
macOS 用户可以把 “微软雅黑” 改为其他 macOS 有的中文字体,比如 “PingFang SC”
注意,如果org 文档中有带下划线的英文字符,要在org文件头加入下面的设置:
#+OPTIONS: ^:nil
比如在 org 文件中是这样:
- *gauging_show_data_file:* 显示数据文档
在 PDF 中如果没加 #+OPTIONS: ^:nil
会显示成下面这样:
参考文档:https://orgmode.org/manual/Subscripts-and-Superscripts.html
我也是刚开始用,我是参考了前面楼的设置。
刚试用了下ctex, 也好使。ctex 有什么优势吗?
\\usepackage{ctex}
其实只需要用ctexart class然后用xelatex编译就行了,其他什么都不用设置,header部分不用额外加东西。
至于一些细致的定制,去看一下ctex的包文档,中文的。
XeCJK 的标点,断行不符合中文排版习惯,只提供最基本的显示汉字的功能,ctex 类会在 XeCJK 上做封装并提供汉字相关的长度单位和字号大小,并对默认模版做了汉化。
当然,用 TeX 做对格式要求比较严谨的中文排版一般会去折腾 LuaTeX 或者 UpTeX,这方面其实还是日本人做的好用。
感谢大佬指点。看来这个几年前的信息果然过时了。
Emacs 中要怎么设置呢?定制这个 org-latex-classes
?
ctex的包文档能否给个链接?我是看看。
Ctex文档
http://mirrors.ctan.org/language/chinese/ctex/ctex.pdf
(setq org-latex-compiler "xelatex")
(setq org-latex-pdf-process
'("latexmk -f -pdf -xelatex -interaction=nonstopmode -output-directory=%o %f"))
(add-to-list 'org-latex-classes
'("ctexart"
"\\documentclass[UTF8, a4paper]{ctexart}
[NO-DEFAULT-PACKAGES]
[PACKAGES]
[EXTRA]
"
("\\section{%s}" . "\\section*{%s}")
("\\subsection{%s}" . "\\subsection*{%s}")
("\\subsubsection{%s}" . "\\subsubsection*{%s}")
("\\paragraph{%s}" . "\\paragraph*{%s}")
("\\subparagraph{%s}" . "\\subparagraph*{%s}")))
(setq org-latex-default-class "ctexart")
我用了latexmk,texlive里面都有。这样应该直接编译中文,org文件里什么都不配置都能导出成中文PDF。
用你的配置可以正常工作,但是我还有下面2个疑问。
- 如何隐藏第一页的内容:
pdfauthor=aqua0210, pdftitle=Test document, pdfkeywords=, pdf-
subject=, pdfcreator=Emacs 29.0.60 (Org mode 9.6.1), pdflang=English
- 怎么加上书签
看了 ctex 的中文文档,没找到这方面的信息。
解决了:去掉下面几行就好了
[NO-DEFAULT-PACKAGES]
[PACKAGES]
[EXTRA]
这是其他包提供的功能,和 ctex 没啥关系
(虽然链接是 pdflatex,但是 xelatex 是向后兼容 pdflatex 的)
用 ^:{} 更好
多谢,我之前也试过^:{}
,但没成功,可能是“:”后少打了个空格。
刚刚又试了下,确实是可以的。
#+OPTIONS: ^:{}
然后开启 org cdlatex
还可以自动在^后加{}
看来又有新东西要学了。
另外请教下,是设置哪个宏包可以让目录页和正文页不要连在同一页?
org-latex-toc-command
里面加 \clearpage 一类的
谢谢,我这样设置就可以封面页,目录页,正文分开了, 不知道这是不是正确的使用方式?
(setq org-latex-toc-command "\\clearpage \\tableofcontents \\clearpage")
shi de