Alexander Vorobiev <alexander.vorob...@gmail.com> writes: > I tried the new exporter (using today's snapshot of the sources) and > it produced invalid LaTeX (it calls hypersetup without loading > hyperref package). It also ignored the #+LaTeX_CLASS: and all the > #+LaTeX_HEADER:lines in my file. Are there any examples of org files > which show how to customize the new LaTeX exporter? > > Thanks > Alex
Aloha Alex, I've been exploring the new exporter with a recent project. I have the following probably too complex setup that lets me use biblatex in conjunction with ebib. I'm also using a customized setup for the Lucida fonts (packages tsdlucida and lucidabr), which you'll most likely want to change. * Org-mode setup :noexport: This is a setup for Nicolas Goaziou's new exporter #+name: setup #+begin_src emacs-lisp :noweb yes :results silent (require 'org-export) (require 'org-e-latex) (require 'org-e-html) (setq org-export-latex-packages-alist nil) (add-to-list 'org-export-latex-packages-alist '("colorlinks=true,urlcolor=SteelBlue4,linkcolor=Firebrick4,citecolor=Green4" "hyperref")) (add-to-list 'org-export-latex-packages-alist '("style=authoryear-comp,backend=bibtex8" "biblatex")) (add-to-list 'org-export-latex-packages-alist '("x11names" "xcolor")) (add-to-list 'org-export-latex-packages-alist '("" "microtype")) (add-to-list 'org-export-latex-packages-alist '("" "graphicx")) (add-to-list 'org-export-latex-packages-alist '("" "ragged2e")) (add-to-list 'org-export-latex-packages-alist '("" "booktabs")) (add-to-list 'org-export-latex-packages-alist '("" "tabularx")) (add-to-list 'org-export-latex-packages-alist '("" "tsdlucida")) (add-to-list 'org-export-latex-packages-alist '("" "wasysym")) (add-to-list 'org-export-latex-packages-alist '("" "paralist")) (add-to-list 'org-export-latex-packages-alist '("altbullet,lucidasmallscale,expert,vargreek" "lucidabr")) (add-to-list 'org-export-latex-packages-alist '("T1" "fontenc")) (add-to-list 'org-export-latex-packages-alist '("AUTO" "inputenc")) (setq org-entities-user nil) (add-to-list 'org-entities-user '("space" "\\ " nil " " " " " " " ")) (add-to-list 'org-entities-user '("amacron" "\\={a}" nil "ā" "a" "a" "ā")) (add-to-list 'org-entities-user '("emacron" "\\={e}" nil "ē" "e" "e" "ē")) (add-to-list 'org-entities-user '("imacron" "\\={i}" nil "ī" "i" "i" "ī")) (add-to-list 'org-entities-user '("omacron" "\\={o}" nil "ō" "o" "o" "ō")) (add-to-list 'org-entities-user '("umacron" "\\={u}" nil "ū" "u" "u" "ū")) (add-to-list 'org-entities-user '("Amacron" "\\={A}" nil "Ā" "A" "A" "Ā")) (add-to-list 'org-entities-user '("Emacron" "\\={E}" nil "Ē" "E" "E" "Ē")) (add-to-list 'org-entities-user '("Imacron" "\\={I}" nil "Ī" "I" "I" "Ī")) (add-to-list 'org-entities-user '("Omacron" "\\={O}" nil "Ō" "O" "O" "Ō")) (add-to-list 'org-entities-user '("Umacron" "\\={U}" nil "Ū" "U" "U" "Ū")) (setq org-e-latex-pdf-process '("texi2dvi --pdf --clean --verbose --batch %f")) (require 'org-special-blocks) (define-key org-mode-map (kbd "C-c e") 'org-export-dispatch) (setq org-e-latex-tables-booktabs t) (setq org-export-latex-hyperref-format "\\ref{%s}") (setq org-e-latex-remove-logfiles nil) (setq org-e-latex-toc-command "\\tableofcontents\n\n") (add-to-list 'org-e-latex-classes '("koma-article" "\\documentclass{scrartcl} [NO-DEFAULT-PACKAGES] [PACKAGES] [EXTRA] \\let\\itemize\\compactitem \\let\\description\\compactdesc \\let\\enumerate\\compactenum \\bibliography{local} \\newcolumntype{Y}{>{\\RaggedRight\\arraybackslash}X}" ("\\section{%s}" . "\\section*{%s}") ("\\subsection{%s}" . "\\subsection*{%s}") ("\\subsubsection{%s}" . "\\subsubsection*{%s}") ("\\paragraph{%s}" . "\\paragraph*{%s}") ("\\subparagraph{%s}" . "\\subparagraph*{%s}"))) <<ngz-nbsp>> <<define-standard-biblatex-commands>> <<define-style-specific-biblatex-commands>> #+end_src ** Standard Biblatex citation commands #+name: define-standard-biblatex-commands #+begin_src emacs-lisp :noweb yes :results silent :exports none <<define-biblatex-cite-link>> <<define-biblatex-cap-cite-link>> <<define-biblatex-parencite-link>> <<define-biblatex-cap-parencite-link>> <<define-biblatex-footcite-link>> <<define-biblatex-footcitetext-link>> #+end_src #+name: define-biblatex-cite-link #+begin_src emacs-lisp :results silent :exports none (org-add-link-type "cite" 'ebib (lambda (path desc format) (cond ((eq format 'html) (format "(<cite>%s</cite>)" path)) ((eq format 'latex) (if (or (not desc) (equal 0 (search "cite:" desc))) (format "\\cite{%s}" path) (format "\\cite[%s][%s]{%s}" (cadr (split-string desc ";")) (car (split-string desc ";")) path)))))) #+end_src #+name: define-biblatex-cap-cite-link #+begin_src emacs-lisp :results silent :exports none (org-add-link-type "Cite" 'ebib (lambda (path desc format) (cond ((eq format 'html) (format "(<cite>%s</cite>)" path)) ((eq format 'latex) (if (or (not desc) (equal 0 (search "Cite:" desc))) (format "\\Cite{%s}" path) (format "\\Cite[%s][%s]{%s}" (cadr (split-string desc ";")) (car (split-string desc ";")) path)))))) #+end_src #+name: define-biblatex-parencite-link #+begin_src emacs-lisp :results silent :exports none (org-add-link-type "parencite" 'ebib (lambda (path desc format) (cond ((eq format 'html) (format "(<cite>%s</cite>)" path)) ((eq format 'latex) (if (or (not desc) (equal 0 (search "parencite:" desc))) (format "\\parencite{%s}" path) (format "\\parencite[%s][%s]{%s}" (cadr (split-string desc ";")) (car (split-string desc ";")) path)))))) #+end_src #+name: define-biblatex-cap-parencite-link #+begin_src emacs-lisp :results silent :exports none (org-add-link-type "Parencite" 'ebib (lambda (path desc format) (cond ((eq format 'html) (format "(<cite>%s</cite>)" path)) ((eq format 'latex) (if (or (not desc) (equal 0 (search "Parencite:" desc))) (format "\\Parencite{%s}" path) (format "\\Parencite[%s][%s]{%s}" (cadr (split-string desc ";")) (car (split-string desc ";")) path)))))) #+end_src #+name: define-biblatex-footcite-link #+begin_src emacs-lisp :results silent :exports none (org-add-link-type "footcite" 'ebib (lambda (path desc format) (cond ((eq format 'html) (format "(<cite>%s</cite>)" path)) ((eq format 'latex) (if (or (not desc) (equal 0 (search "footcite:" desc))) (format "\\footcite{%s}" path) (format "\\footcite[%s][%s]{%s}" (cadr (split-string desc ";")) (car (split-string desc ";")) path)))))) #+end_src #+name: define-biblatex-footcitetext-link #+begin_src emacs-lisp :results silent :exports none (org-add-link-type "footcitetext" 'ebib (lambda (path desc format) (cond ((eq format 'html) (format "(<cite>%s</cite>)" path)) ((eq format 'latex) (if (or (not desc) (equal 0 (search "footcitetext:" desc))) (format "\\footcitetext{%s}" path) (format "\\footcitetext[%s][%s]{%s}" (cadr (split-string desc ";")) (car (split-string desc ";")) path)))))) #+end_src ** Style-specific biblatex commands #+name: define-style-specific-biblatex-commands #+begin_src emacs-lisp :noweb yes :results silent :exports none <<define-biblatex-textcite-link>> <<define-biblatex-cap-textcite-link>> <<define-biblatex-smartcite-link>> <<define-biblatex-cap-smartcite-link>> <<define-biblatex-citestar-link>> <<define-biblatex-parencitestar-link>> <<define-biblatex-supercite-link>> <<define-biblatex-multicite-link>> #+end_src #+name: define-biblatex-multicite-link #+begin_src emacs-lisp :results silent :exports none (org-add-link-type "multicite" 'ebib (lambda (path desc format) (cond ((eq format 'html) (format "(<cite>%s</cite>)" path)) ((eq format 'latex) (if (or (not desc) (equal 0 (search "multicite:" desc))) (format "{%s}" path) (format "[%s][%s]{%s}" (cadr (split-string desc ";")) (car (split-string desc ";")) path)))))) #+end_src #+name: define-biblatex-textcite-link #+begin_src emacs-lisp :results silent :exports none (org-add-link-type "textcite" 'ebib (lambda (path desc format) (cond ((eq format 'html) (format "(<cite>%s</cite>)" path)) ((eq format 'latex) (if (or (not desc) (equal 0 (search "textcite:" desc))) (format "\\textcite{%s}" path) (format "\\textcite[%s][%s]{%s}" (cadr (split-string desc ";")) (car (split-string desc ";")) path)))))) #+end_src #+name: define-biblatex-cap-textcite-link #+begin_src emacs-lisp :results silent :exports none (org-add-link-type "Textcite" 'ebib (lambda (path desc format) (cond ((eq format 'html) (format "(<cite>%s</cite>)" path)) ((eq format 'latex) (if (or (not desc) (equal 0 (search "Textcite:" desc))) (format "\\Textcite{%s}" path) (format "\\Textcite[%s][%s]{%s}" (cadr (split-string desc ";")) (car (split-string desc ";")) path)))))) #+end_src #+name: define-biblatex-smartcite-link #+begin_src emacs-lisp :results silent :exports none (org-add-link-type "smartcite" 'ebib (lambda (path desc format) (cond ((eq format 'html) (format "(<cite>%s</cite>)" path)) ((eq format 'latex) (if (or (not desc) (equal 0 (search "smartcite:" desc))) (format "\\smartcite{%s}" path) (format "\\smartcite[%s][%s]{%s}" (cadr (split-string desc ";")) (car (split-string desc ";")) path)))))) #+end_src #+name: define-biblatex-cap-smartcite-link #+begin_src emacs-lisp :results silent :exports none (org-add-link-type "Smartcite" 'ebib (lambda (path desc format) (cond ((eq format 'html) (format "(<cite>%s</cite>)" path)) ((eq format 'latex) (if (or (not desc) (equal 0 (search "Smartcite:" desc))) (format "\\Smartcite{%s}" path) (format "\\Smartcite[%s][%s]{%s}" (cadr (split-string desc ";")) (car (split-string desc ";")) path)))))) #+end_src #+name: define-biblatex-citestar-link #+begin_src emacs-lisp :results silent :exports none (org-add-link-type "cite*" 'ebib (lambda (path desc format) (cond ((eq format 'html) (format "(<cite>%s</cite>)" path)) ((eq format 'latex) (if (or (not desc) (equal 0 (search "cite*:" desc))) (format "\\cite*{%s}" path) (format "\\cite*[%s][%s]{%s}" (cadr (split-string desc ";")) (car (split-string desc ";")) path)))))) #+end_src #+name: define-biblatex-parencitestar-link #+begin_src emacs-lisp :results silent :exports none (org-add-link-type "parencite*" 'ebib (lambda (path desc format) (cond ((eq format 'html) (format "(<cite>%s</cite>)" path)) ((eq format 'latex) (if (or (not desc) (equal 0 (search "parencite*:" desc))) (format "\\parencite*{%s}" path) (format "\\parencite*[%s][%s]{%s}" (cadr (split-string desc ";")) (car (split-string desc ";")) path)))))) #+end_src #+name: define-biblatex-supercite-link #+begin_src emacs-lisp :results silent :exports none (org-add-link-type "supercite" 'ebib (lambda (path desc format) (cond ((eq format 'html) (format "(<cite>%s</cite>)" path)) ((eq format 'latex) (format "\\cite*{%s}" path))))) #+end_src ** Nicolas Goaziou's filter for non-breaking spaces #+name: ngz-nbsp #+begin_src emacs-lisp (defun ngz-latex-filter-nobreaks (text backend info) "Ensure \"_\" are properly handled in Beamer/LaTeX export." (when (memq backend '(e-beamer e-latex)) (replace-regexp-in-string " " "~" text))) (add-to-list 'org-export-filter-plain-text-functions 'ngz-latex-filter-nobreaks) #+end_src The header of my org file looks like this: #+TITLE: A Regional Chronology of Leeward North Kohala District, Hawai`i Island #+AUTHOR: Thomas Dye #+DATE: #+LANGUAGE: en #+OPTIONS: H:3 num:t toc:1 \n:nil @:t ::t |:t ^:t -:t f:t *:t <:t #+OPTIONS: TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc #+EXPORT_SELECT_TAGS: export #+EXPORT_EXCLUDE_TAGS: noexport #+LaTeX_CLASS: koma-article #+LaTeX_HEADER: \subtitle{Draft: Not for citation} #+startup: fnadjust #+TOC: figures #+TOC: tables Currently, I'm exporting with org-export-dispatch, but eventually I'll tangle the setup into an init.el file and have a makefile that launches emacs -q so I can be certain nothing in my .emacs has an influence. Right now, though, I'm quite happy with the new exporter. hth, Tom > On Fri, Sep 21, 2012 at 3:48 AM, Bastien <b...@altern.org> wrote: >> Hi Alexander, >> >> Alexander Vorobiev <alexander.vorob...@gmail.com> writes: >> >>> Could you point us to any documentation on how to switch to the new >>> exporter? >> >> Add contrib/lisp to your load-path. >> >> (require 'org-e-latex) >> >> then M-x org-export-dispatch RET to get a menu and be able to >> export to LaTeX from here. >> >>> Is the tutorial >>> http://orgmode.org/worg/org-tutorials/org-latex-export.html still >>> relevant? >> >> No, this tutorial is valid for the current exporter, not for >> Nicolas exporter. >> >> HTH, >> >> -- >> Bastien > > -- Thomas S. Dye http://www.tsdye.com