Spacemacs org-mode 如何导出pdf

spacemacs org-mode 导出pdf需要外部安装什么软件吗?我导出的时候总是不能生成pdf

你需要配置 latex 吧,具体方法可以去搜索一下。

对latex不了解啊,我就在 spacemacs添加了 latex这个rlayer.外部安装了 auctex

装Texlive了吗?或者ctex

都安装了。。。。

报什么错呢? 是使用 , e 调出 export dispatch 页面然后 lp 导出 PDF 吗?

就是你说的那种方式导出的

我知道什么原因了,我以前安装的是texlive 这个包,其实要安装texlive-latexextra才行.现在可以导出了,就是中文全是乱码

试试先导成.tex,在.tex文件里 C-c C-c,看看报什么错。 另外,你的org里有中文吗?如果是中文,你就得使用特定的documentclass,比如\documentclass[UTF8]{ctexart}。 建议你先使用一个最简单的org文件试试(不含中文字符的)。

中文乱码的解决: a. 配置默认的org导出pdf时使用的documentclass和usepackage,一个示例(你可以根据自己的需要修改):

 (require 'ox-latex)
   (add-to-list 'org-latex-classes
               '("ctexart"
                 "\\documentclass[UTF8]{ctexart}
        \\usepackage{amsmath,latexsym,amssymb,mathrsfs,pifont}
        \\usepackage[T1]{fontenc}
        \\usepackage{fixltx2e}
        \\usepackage{graphicx}
        \\usepackage{subfig} 
        \\usepackage{grffile}
        \\usepackage{longtable}
        \\usepackage{wrapfig}
        \\usepackage{rotating}
         \\usepackage[colorlinks=true]{hyperref}
        \\tolerance=1000
        [NO-DEFAULT-PACKAGES]
        [NO-PACKAGES]" 
                 ("\\section{%s}" . "\\section*{%s}")
                 ("\\subsection{%s}" . "\\subsection*{%s}")
                 ("\\subsubsection{%s}" . "\\subsubsection*{%s}")
                 ("\\paragraph{%s}" . "\\paragraph*{%s}")
                 ("\\subparagraph{%s}" . "\\subparagraph*{%s}")))

b. 然后在你的.org文件最开始处加一行 #+LATEX_CLASS: ctexart

4 个赞

好的,我试试.非常感谢.

上面这段代码放在哪儿啊?是user_config吗?

mac下, 我的不需要配置, 装个MacTeX MacTeX - TeX Users Group , 就行

1 个赞

在usr-config中加入

  ;;org-mode export to latex
  (require 'ox-latex)
  (setq org-export-latex-listings t)

  ;;org-mode source code setup in exporting to latex
  (add-to-list 'org-latex-listings '("" "listings"))
  (add-to-list 'org-latex-listings '("" "color"))

  (add-to-list 'org-latex-packages-alist
               '("" "xcolor" t))
  (add-to-list 'org-latex-packages-alist
               '("" "listings" t))
  (add-to-list 'org-latex-packages-alist
               '("" "fontspec" t))
  (add-to-list 'org-latex-packages-alist
               '("" "indentfirst" t))
  (add-to-list 'org-latex-packages-alist
               '("" "xunicode" t))
  (add-to-list 'org-latex-packages-alist
               '("" "geometry"))
  (add-to-list 'org-latex-packages-alist
               '("" "float"))
  (add-to-list 'org-latex-packages-alist
               '("" "longtable"))
  (add-to-list 'org-latex-packages-alist
               '("" "tikz"))
  (add-to-list 'org-latex-packages-alist
               '("" "fancyhdr"))
  (add-to-list 'org-latex-packages-alist
               '("" "textcomp"))
  (add-to-list 'org-latex-packages-alist
               '("" "amsmath"))
  (add-to-list 'org-latex-packages-alist
               '("" "tabularx" t))
  (add-to-list 'org-latex-packages-alist
               '("" "booktabs" t))
  (add-to-list 'org-latex-packages-alist
               '("" "grffile" t))
  (add-to-list 'org-latex-packages-alist
               '("" "wrapfig" t))
  (add-to-list 'org-latex-packages-alist
               '("normalem" "ulem" t))
  (add-to-list 'org-latex-packages-alist
               '("" "amssymb" t))
  (add-to-list 'org-latex-packages-alist
               '("" "capt-of" t))
  (add-to-list 'org-latex-packages-alist
               '("figuresright" "rotating" t))
  (add-to-list 'org-latex-packages-alist
               '("Lenny" "fncychap" t))

  (add-to-list 'org-latex-classes
               '("lengyue-org-book"
                 "\\documentclass{book}
\\usepackage[slantfont, boldfont]{xeCJK}
% chapter set
\\usepackage{titlesec}
\\usepackage{hyperref}

[NO-DEFAULT-PACKAGES]
[PACKAGES]



\\setCJKmainfont{WenQuanYi Micro Hei} % 设置缺省中文字体
\\setCJKsansfont{WenQuanYi Micro Hei}
\\setCJKmonofont{WenQuanYi Micro Hei Mono}

\\setmainfont{DejaVu Sans} % 英文衬线字体
\\setsansfont{DejaVu Serif} % 英文无衬线字体
\\setmonofont{DejaVu Sans Mono}
%\\setmainfont{WenQuanYi Micro Hei} % 设置缺省中文字体
%\\setsansfont{WenQuanYi Micro Hei}
%\\setmonofont{WenQuanYi Micro Hei Mono}

%如果没有它,会有一些 tex 特殊字符无法正常使用,比如连字符。
\\defaultfontfeatures{Mapping=tex-text}

% 中文断行
\\XeTeXlinebreaklocale \"zh\"
\\XeTeXlinebreakskip = 0pt plus 1pt minus 0.1pt

% 代码设置
\\lstset{numbers=left,
numberstyle= \\tiny,
keywordstyle= \\color{ blue!70},commentstyle=\\color{red!50!green!50!blue!50},
frame=shadowbox,
breaklines=true,
rulesepcolor= \\color{ red!20!green!20!blue!20}
}

[EXTRA]
"
                 ("\\chapter{%s}" . "\\chapter*{%s}")
                 ("\\section{%s}" . "\\section*{%s}")
                 ("\\subsection{%s}" . "\\subsection*{%s}")
                 ("\\subsubsection{%s}" . "\\subsubsection*{%s}")
                 ("\\paragraph{%s}" . "\\paragraph*{%s}")
                 ("\\subparagraph{%s}" . "\\subparagraph*{%s}")))

  (add-to-list 'org-latex-classes
               '("lengyue-org-article"
                 "\\documentclass{article}
\\usepackage[slantfont, boldfont]{xeCJK}
\\usepackage{titlesec}
\\usepackage{hyperref}

[NO-DEFAULT-PACKAGES]
[PACKAGES]

\\parindent 2em

\\setCJKmainfont{WenQuanYi Micro Hei} % 设置缺省中文字体
\\setCJKsansfont{WenQuanYi Micro Hei}
\\setCJKmonofont{WenQuanYi Micro Hei Mono}

\\setmainfont{DejaVu Sans} % 英文衬线字体
\\setsansfont{DejaVu Serif} % 英文无衬线字体
\\setmonofont{DejaVu Sans Mono}
%\\setmainfont{WenQuanYi Micro Hei} % 设置缺省中文字体
%\\setsansfont{WenQuanYi Micro Hei}
%\\setmonofont{WenQuanYi Micro Hei Mono}

%如果没有它,会有一些 tex 特殊字符无法正常使用,比如连字符。
\\defaultfontfeatures{Mapping=tex-text}

% 中文断行
\\XeTeXlinebreaklocale \"zh\"
\\XeTeXlinebreakskip = 0pt plus 1pt minus 0.1pt

% 代码设置
\\lstset{numbers=left,
numberstyle= \\tiny,
keywordstyle= \\color{ blue!70},commentstyle=\\color{red!50!green!50!blue!50},
frame=shadowbox,
breaklines=true,
rulesepcolor= \\color{ red!20!green!20!blue!20}
}

[EXTRA]
"
                 ("\\section{%s}" . "\\section*{%s}")
                 ("\\subsection{%s}" . "\\subsection*{%s}")
                 ("\\subsubsection{%s}" . "\\subsubsection*{%s}")
                 ("\\paragraph{%s}" . "\\paragraph*{%s}")
                 ("\\subparagraph{%s}" . "\\subparagraph*{%s}")))

  (add-to-list 'org-latex-classes
               '("lengyue-org-beamer"
                 "\\documentclass{beamer}
\\usepackage[slantfont, boldfont]{xeCJK}
% beamer set
\\usepackage[none]{hyphenat}
\\usepackage[abs]{overpic}

[NO-DEFAULT-PACKAGES]
[PACKAGES]

\\setCJKmainfont{WenQuanYi Micro Hei} % 设置缺省中文字体
\\setCJKsansfont{WenQuanYi Micro Hei}
\\setCJKmonofont{WenQuanYi Micro Hei Mono}

\\setmainfont{DejaVu Sans} % 英文衬线字体
\\setsansfont{DejaVu Serif} % 英文无衬线字体
\\setmonofont{DejaVu Sans Mono}
%\\setmainfont{WenQuanYi Micro Hei} % 设置缺省中文字体
%\\setsansfont{WenQuanYi Micro Hei}
%\\setmonofont{WenQuanYi Micro Hei Mono}

%如果没有它,会有一些 tex 特殊字符无法正常使用,比如连字符。
\\defaultfontfeatures{Mapping=tex-text}

% 中文断行
\\XeTeXlinebreaklocale \"zh\"
\\XeTeXlinebreakskip = 0pt plus 1pt minus 0.1pt

% 代码设置
\\lstset{numbers=left,
numberstyle= \\tiny,
keywordstyle= \\color{ blue!70},commentstyle=\\color{red!50!green!50!blue!50},
frame=shadowbox,
breaklines=true,
rulesepcolor= \\color{ red!20!green!20!blue!20}
}

[EXTRA]
"
                 ("\\section{%s}" . "\\section*{%s}")
                 ("\\subsection{%s}" . "\\subsection*{%s}")
                 ("\\subsubsection{%s}" . "\\subsubsection*{%s}")
                 ("\\paragraph{%s}" . "\\paragraph*{%s}")
                 ("\\subparagraph{%s}" . "\\subparagraph*{%s}")))

  (setq org-latex-pdf-process
        '("xelatex -interaction nonstopmode -output-directory %o %f"
          ;;"biber %b" "xelatex -interaction nonstopmode -output-directory %o %f"
          "bibtex %b"
          "xelatex -interaction nonstopmode -output-directory %o %f"
          "xelatex -interaction nonstopmode -output-directory %o %f"))

看着改一下自己的字体 然后在org文价中加入

#+TITLE: Lengyueyang's Emacs configuration
#+AUTHOR: lengyueyang
#+DATE: \today
#+EMAIL: [email protected]

#+OPTIONS: H:5 num:t toc:2 \n:nil @:t ::t |:t ^:nil -:t f:t *:t <:t
#+OPTIONS: TeX:t LaTeX:nil skip:nil d:nil todo:t pri:nil tags:not-in-toc
#+INFOJS_OPT: view:nil toc:nil ltoc:t mouse:underline buttons:0 path:http://orgmode.org/org-info.js
#+EXPORT_SELECT_TAGS: export
#+EXPORT_EXCLUDE_TAGS: noexport
#+DESCRIPTION: A literate programming style exposition of my Emacs configuration beyond my spacemacs configuration
#+KEYWORDS:
#+LANGUAGE: en
#+BABEL: :cache yes

#+LATEX_CLASS: lengyue-org-article
#+LATEX_CLASS_OPTIONS: [oneside,A4paper,12pt]
#+LATEX_HEADER_EXTRA:
#+LaTeX_HEADER: \geometry{left=2.5cm,right=2.5cm,top=2.5cm,bottom=2.5cm}
#+LaTeX_HEADER: \graphicspath{{pic/}}
#+LaTeX_HEADER: \hypersetup{colorlinks,linkcolor=black,filecolor=black,urlcolor=blue,citecolor=black}
#+LaTeX_HEADER: \setcounter{secnumdepth}{4}
#+LaTeX_HEADER: \titleformat{\paragraph}{\normalfont\normalsize\bfseries}{\theparagraph}{1em}{}
#+LaTeX_HEADER: \linespread{1.2}

,具体内容自己看着改一下,主要是以下两项

#+LATEX_CLASS: lengyue-org-article
#+LATEX_CLASS_OPTIONS: [oneside,A4paper,12pt]

以后中文书或者beamer直接用 lengyue-org-book/beamer就可以了

5 个赞

我试过了,非常好用,谢谢.

可以直接导出 markdown 然后通过pandoc生成pdf,这更加方便,不需要安装4g的latex环境

竟然不支持删除线…

Pandoc 支持 Org Mode,用不着先转成 Markdown。另外,Pandoc 转成 PDF 同样需要安装 Latex。

恩,试了下 pandoc 转pdf也需要latex, 但markdown 转成pdf方式比org多,可以安装latex

这份配置很不错,只是那个 cjk 的方式已经过时了,现在应该使用 ctex 的文档类来处理中文。