+;; org latex
+;; stolen from http://kieranhealy.org/esk/kjhealy.html
+(require 'org-latex)
+;; Choose either listings or minted for exporting source code blocks.
+;; Using minted (as here) requires pygments be installed. To use the
+;; default listings package instead, use
+;; (setq org-latex-listings t)
+;; and change references to "minted" below to "listings"
+(setq org-latex-listings 'minted)
+
+;; default settings for minted code blocks
+(setq org-latex-minted-options
+ '(;("frame" "single")
+ ("bgcolor" "bg") ; bg will need to be defined in the preamble of your document. It's defined in org-preamble-pdflatex.sty and org-preamble-xelatex.sty below.
+ ("fontsize" "\\small")
+ ))
+;; turn off the default toc behavior; deal with it properly in headers to files.
+(defun org-latex-no-toc (depth)
+ (when depth
+ (format "%% Org-mode is exporting headings to %s levels.\n"
+ depth)))
+(setq org-latex-format-toc-function 'org-latex-no-toc)
+
+(require 'ox-latex)
+(add-to-list 'org-latex-classes
+ '("memarticle"
+ "\\documentclass[11pt,oneside,article]{memoir}\n"
+ ("\\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
+ '("membook"
+ "\\documentclass[11pt,oneside]{memoir}\n"
+ ("\\chapter{%s}" . "\\chapter*{%s}")
+ ("\\section{%s}" . "\\section*{%s}")
+ ("\\subsection{%s}" . "\\subsection*{%s}")
+ ("\\subsubsection{%s}" . "\\subsubsection*{%s}")))
+
+;; Originally taken from Bruno Tavernier: http://thread.gmane.org/gmane.emacs.orgmode/31150/focus=31432
+;; but adapted to use latexmk 4.22 or higher.
+(defun my-auto-tex-cmd ()
+ "When exporting from .org with latex, automatically run latex,
+ pdflatex, or xelatex as appropriate, using latexmk."
+ (let ((texcmd)))
+ ;; default command: pdflatex
+ (setq texcmd "latexmk -pdflatex='pdflatex -synctex=1 --shell-escape --' -pdf %f")
+ ;; pdflatex -> .pdf
+ (if (string-match "LATEX_CMD: pdflatex" (buffer-string))
+ (setq texcmd "latexmk -pdflatex='pdflatex -synctex=1 --shell-escape' -pdf %f"))
+ ;; xelatex -> .pdf
+ (if (string-match "LATEX_CMD: xelatex" (buffer-string))
+ (setq texcmd "latexmk -pdflatex='xelatex -syntex=1 --shell-escape' -bibtex -use-make -pdf %f"))
+ ;; LaTeX compilation command
+ (setq org-latex-to-pdf-process (list texcmd)))
+
+(add-hook 'org-latex-after-initial-vars-hook 'my-auto-tex-cmd)
+
+;; Default packages included in /every/ tex file, latex, pdflatex or xelatex
+(setq org-latex-packages-alist
+ '(("" "graphicx" t)
+ ("" "longtable" nil)
+ ("" "float" )))
+
+;; Custom packages
+(defun my-auto-tex-parameters ()
+ "Automatically select the tex packages to include. See https://github.com/kjhealy/latex-custom-kjh for the support files included here."
+ ;; default packages for ordinary latex or pdflatex export
+ (setq org-latex-default-packages-alist
+ '(("AUTO" "inputenc" t)
+ ("minted,minion" "org-preamble-pdflatex" t)))
+ ;; Packages to include when xelatex is used
+ (if (string-match "LATEX_CMD: xelatex" (buffer-string))
+ (setq org-latex-default-packages-alist
+ '(("minted" "org-preamble-xelatex" t) ))))
+
+(add-hook 'org-latex-after-initial-vars-hook 'my-auto-tex-parameters)
+
+; support ignoring headers in org mode export to latex
+; from http://article.gmane.org/gmane.emacs.orgmode/67692
+(defadvice org-latex-headline (around my-latex-skip-headlines
+ (headline contents info) activate)
+ (if (member "ignoreheading" (org-element-property :tags headline))
+ (setq ad-return-value contents)
+ ad-do-it))
+