ox-latex: Support setting the engraved theme

* lisp/ox-latex.el (org-latex-generate-engraved-preamble,
org-latex-engraved-theme): Introduce the new export keyword
LATEX_ENGRAVED_THEME with default value given by
`org-latex-engraved-theme'.  This is used to set the engraved theme used
in org-latex-engraved-theme.

This bumps the minimum required version of engrave-faces from v0.2 to
v0.3.
This commit is contained in:
TEC 2022-05-08 02:01:34 +08:00
parent b4e4b3c502
commit a16e208938
Signed by: tec
GPG Key ID: 779591AFDB81F06C
1 changed files with 13 additions and 2 deletions

View File

@ -129,6 +129,7 @@
(:latex-diary-timestamp-format nil nil org-latex-diary-timestamp-format)
(:latex-engraved-options nil nil org-latex-engraved-options)
(:latex-engraved-preamble nil nil org-latex-engraved-preamble)
(:latex-engraved-theme "LATEX_ENGRAVED_THEME" nil org-latex-engraved-theme)
(:latex-footnote-defined-format nil nil org-latex-footnote-defined-format)
(:latex-footnote-separator nil nil org-latex-footnote-separator)
(:latex-format-drawer-function nil nil org-latex-format-drawer-function)
@ -1270,6 +1271,14 @@ block-specific options, you may use the following syntax:
:type '(alist :key-type (string :tag "option")
:value-type (string :tag "value")))
(defcustom org-latex-engraved-theme nil
"The theme that should be used for engraved code, when non-nil.
This can be set to any theme defined in `engrave-faces-themes' or
loadable by Emacs. When set to t, the current Emacs theme is
used. When nil, no theme is applied."
:group 'org-export-latex
:type 'symbol)
(defun org-latex-generate-engraved-preamble (info syntax-colours-p)
"Generate the preamble to setup engraved code.
The result is constructed from the :latex-engraved-preamble and
@ -1278,7 +1287,8 @@ which are given by `org-latex-engraved-preamble' and
`org-latex-engraved-options' respectively."
(let* ((engraved-options
(plist-get info :latex-engraved-options))
(engraved-preamble (plist-get info :latex-engraved-preamble)))
(engraved-preamble (plist-get info :latex-engraved-preamble))
(engraved-theme (plist-get info :latex-engraved-theme)))
(when (string-match "^[ \t]*\\[FVEXTRA-SETUP\\][ \t]*\n?" engraved-preamble)
(setq engraved-preamble
(replace-match
@ -1310,7 +1320,8 @@ which are given by `org-latex-engraved-preamble' and
engraved-preamble
"\n\n% Setup for code blocks [2/2]: syntax highlighting colors\n"
(if (require 'engrave-faces-latex nil t)
(engrave-faces-latex-gen-preamble)
(engrave-faces-latex-gen-preamble
(when engraved-theme (intern engraved-theme)))
(message "Cannot engrave source blocks. Consider installing `engrave-faces'.")
"% WARNING syntax highlighting unavailible as engrave-faces-latex was missing.\n")
"\n")