org-mode 導出 pdf 無法顯示中文

如題,導出是成功了,就是沒有中文。 emacs也顯示說導出有錯誤。 求教。

謝謝。 還有請問如何在emacs里面看pdf?

问题1:默认导出PDF使用的是pdflatex,本身不支持中文,需要使用ctex宏包或者xelatex导出。我个人是这么搞的,需要在导出前eval那个code block的代码。

#+title: TITLE
#+AUTHOR: some author
#+LATEX_CLASS: ctexart
# #+LATEX_CLASS_OPTIONS: [letter]
#+LATEX_HEADER: \usepackage[driver=dvipdfm,margin=1in,a4paper]{geometry}
#+OPTIONS: toc:nil num:nil
#+roam_tags: life
* COMMENT Configuration
  #+begin_src emacs-lisp
          (with-eval-after-load 'ox-latex
           (add-to-list 'org-latex-classes
                        '("ctexart" "\\documentclass[11pt]{ctexart}"
                          ("\\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")
           (setq org-latex-compiler "xelatex"))
  #+end_src

问题2:Emacs本身支持用DocView看pdf,但效果不好。推荐pdf-tools

謝謝回覆,請問是要在emacs里面安裝您說的兩個包嗎? 然後再在需要導出pdf的文件頭寫下您的代碼?

pdflatex, xelatex都是LaTeX引擎,ctex是一个LaTeX宏包。你可以自行搜索如何安装LaTeX,推荐用TeXLive。

pdf-tools 是一个Emacs的包,可以用melpa安装。

借楼问beamer该怎么样导出中文呢

我是抄的这段代码放在自己的设置里面

(with-eval-after-load 'ox-latex
  (add-to-list 'org-latex-classes
               '("ctexart" "\\documentclass[11pt]{ctexart}"
                 ("\\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")
  (setq org-latex-compiler "xelatex"))

我用的是arch linux,安裝了這個 texlive-langchinese,wiki說里面包含了你說的ctex,但是我在emacs里導出,他說:unknow LaTex class ctex。

我用了你提供的代碼。

謝謝。

因为 org-latex-default-class这个变量指定的latex class实际上不是你在写latex文件的时候开头那行\documentclass里面定义的东西,它实际上是根据org-latex-classes里面用户定义的class name来的。

这里第一个ctexart就是用户自定义的名字,你可以把它改成任何名字,它根后面那些latex代码片段没有直接关系,自定义latex export具体包含哪些包worg上有篇文章

1 个赞