From ac6b743a4489f7bc8ab1cdae7ffd3b36e5f3c1d2 Mon Sep 17 00:00:00 2001 From: Juan Manuel Macias Date: Sat, 16 Sep 2023 19:22:39 +0200 Subject: [PATCH] lisp/ox-latex.el (latex): Add `LATEX_PRE_HEADER' keyword * (org-latex-make-preamble): In some cases it is necessary to add code before the `\documentclass' line. `LATEX_PRE_HEADER' behaves the same as `LATEX_HEADER', except that it is concatenated before the class. --- lisp/ox-latex.el | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el index 14105c7cc..5e97b8b3d 100644 --- a/lisp/ox-latex.el +++ b/lisp/ox-latex.el @@ -124,6 +124,7 @@ (:latex-class-options "LATEX_CLASS_OPTIONS" nil nil t) (:latex-header "LATEX_HEADER" nil nil newline) (:latex-header-extra "LATEX_HEADER_EXTRA" nil nil newline) + (:latex-pre-header "LATEX_PRE_HEADER" nil nil newline) (:description "DESCRIPTION" nil nil parse) (:keywords "KEYWORDS" nil nil parse) (:subtitle "SUBTITLE" nil nil parse) @@ -1984,13 +1985,18 @@ specified in `org-latex-default-packages-alist' or (replace-regexp-in-string "^[ \t]*\\\\documentclass\\(\\(\\[[^]]*\\]\\)?\\)" class-options header t nil 1)))) - (user-error "Unknown LaTeX class `%s'" class)))) + (user-error "Unknown LaTeX class `%s'" class))) + (pre-header (mapconcat + #'org-element-normalize-string + (list (plist-get info :latex-pre-header) "")))) (org-latex-guess-polyglossia-language (org-latex-guess-babel-language (org-latex-guess-inputenc (org-element-normalize-string (org-splice-latex-header - class-template + (if pre-header + (format "%s\n%s" pre-header class-template) + class-template) (org-latex--remove-packages org-latex-default-packages-alist info) (org-latex--remove-packages org-latex-packages-alist info) snippet? -- 2.42.0