From 66634498275a4dbea4cb8dc225db28bdea1bdf1a Mon Sep 17 00:00:00 2001 From: "Pedro A. Aranda" Date: Tue, 23 Jan 2024 08:31:46 +0100 Subject: [PATCH] PoC: support AUTO for the fontenc package in LaTeX exports * lisp/org.el: Add `org-latex-fontenc' to support translation for \usepackage[AUTO]{fontenc} * lisp/ox-latex.el: Implement rudimentary translation for the above --- lisp/org.el | 17 ++++++++++++----- lisp/ox-latex.el | 36 ++++++++++++++++++++++++------------ 2 files changed, 36 insertions(+), 17 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index cf9abafac..d4356e15d 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -3401,9 +3401,16 @@ header, or they will be appended." x)) (default-value var))) +(defcustom org-latex-fontenc "T1" + "The fontenc for the file. Customise to LGR,T1 when including +Greek, etc." + :group 'org-export-latex + :type 'string + :safe #'stringp) + (defcustom org-latex-default-packages-alist '(("AUTO" "inputenc" t ("pdflatex")) - ("T1" "fontenc" t ("pdflatex")) + ("AUTO" "fontenc" t ("pdflatex")) ("" "graphicx" t) ("" "longtable" nil) ("" "wrapfig" nil) @@ -15159,20 +15166,20 @@ INCREMENT-STEP divisor." (setq hour (mod hour 24)) (setq pos-match-group 1 new (format "-%02d:%02d" hour minute))) - + ((org-pos-in-match-range pos 6) ;; POS on "dmwy" repeater char. (setq pos-match-group 6 new (car (rassoc (+ nincrements (cdr (assoc (match-string 6 ts-string) idx))) idx)))) - + ((org-pos-in-match-range pos 5) ;; POS on X in "Xd" repeater. (setq pos-match-group 5 ;; Never drop below X=1. new (format "%d" (max 1 (+ nincrements (string-to-number (match-string 5 ts-string))))))) - + ((org-pos-in-match-range pos 9) ;; POS on "dmwy" repeater in warning interval. (setq pos-match-group 9 new (car (rassoc (+ nincrements (cdr (assoc (match-string 9 ts-string) idx))) idx)))) - + ((org-pos-in-match-range pos 8) ;; POS on X in "Xd" in warning interval. (setq pos-match-group 8 ;; Never drop below X=0. diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el index 57ea66ef1..6da8b8e53 100644 --- a/lisp/ox-latex.el +++ b/lisp/ox-latex.el @@ -1639,6 +1639,17 @@ For non-floats, see `org-latex--wrap-label'." (org-trim label) (org-export-data main info)))))) +(defun org-latex-guess-fontenc (header) + "Set the fontenc. + +This is currently a copy of `org-latex-guess-inputenc'. +Currently only goes for `org-latex-fontenc', but can be extended. +Replaces AUTO for the font encoding string." + (let ((fenc org-latex-fontenc)) + (if (not fenc) header + (replace-regexp-in-string "\\\\usepackage\\[\\(AUTO\\)\\]{fontenc}" + fenc header t nil 1)))) + (defun org-latex-guess-inputenc (header) "Set the coding system in inputenc to what the buffer is. @@ -1989,18 +2000,19 @@ specified in `org-latex-default-packages-alist' or (user-error "Unknown LaTeX class `%s'" class)))) (org-latex-guess-polyglossia-language (org-latex-guess-babel-language - (org-latex-guess-inputenc - (org-element-normalize-string - (org-splice-latex-header - class-template - (org-latex--remove-packages org-latex-default-packages-alist info) - (org-latex--remove-packages org-latex-packages-alist info) - snippet? - (mapconcat #'org-element-normalize-string - (list (plist-get info :latex-header) - (and (not snippet?) - (plist-get info :latex-header-extra))) - "")))) + (org-latex-guess-fontenc + (org-latex-guess-inputenc + (org-element-normalize-string + (org-splice-latex-header + class-template + (org-latex--remove-packages org-latex-default-packages-alist info) + (org-latex--remove-packages org-latex-packages-alist info) + snippet? + (mapconcat #'org-element-normalize-string + (list (plist-get info :latex-header) + (and (not snippet?) + (plist-get info :latex-header-extra))) + ""))))) info) info))) -- 2.34.1