[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/org e07b89c31c 06/13: ox-latex: Refactor source block t
From: |
ELPA Syncer |
Subject: |
[elpa] externals/org e07b89c31c 06/13: ox-latex: Refactor source block transcode fun sigs |
Date: |
Thu, 12 May 2022 12:57:51 -0400 (EDT) |
branch: externals/org
commit e07b89c31cec95cc1e4626e4ec08cb7c717849b1
Author: TEC <tec@tecosaur.com>
Commit: TEC <tec@tecosaur.com>
ox-latex: Refactor source block transcode fun sigs
* lisp/ox-latex.el (org-latex-src-block--listings,
org-latex-src-block--engraved, org-latex-src-block--minted,
org-latex-src-block--custom): Refactor these --backend functions to use
cl-defun with keys instead of having an 11-argument signature.
(org-latex-src-block): Adjust for the change in signature of the
--backend functions, and refactor the `cond' statement to use `pcase'.
---
lisp/ox-latex.el | 82 +++++++++++++++++++++++++++-----------------------------
1 file changed, 39 insertions(+), 43 deletions(-)
diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el
index 0788b40c0d..4a077bb277 100644
--- a/lisp/ox-latex.el
+++ b/lisp/ox-latex.el
@@ -3186,37 +3186,37 @@ CONTENTS holds the contents of the item. INFO is a
plist holding
contextual information."
(when (org-string-nw-p (org-element-property :value src-block))
(let* ((lang (org-element-property :language src-block))
- (caption (org-element-property :caption src-block))
- (caption-above-p (org-latex--caption-above-p src-block info))
- (label (org-element-property :name src-block))
- (custom-env (and lang
- (cadr (assq (intern lang)
- org-latex-custom-lang-environments))))
- (num-start (org-export-get-loc src-block info))
- (retain-labels (org-element-property :retain-labels src-block))
- (attributes (org-export-read-attribute :attr_latex src-block))
- (float (plist-get attributes :float))
- (listings (plist-get info :latex-listings)))
- (cond
- ((or (not lang) (not listings))
- (org-latex-src-block--verbatim src-block info lang caption
caption-above-p label
- num-start retain-labels attributes
float))
- (custom-env
- (org-latex-src-block--custom src-block info lang caption
caption-above-p label
- num-start retain-labels attributes float
custom-env))
- ((eq listings 'minted)
- (org-latex-src-block--minted src-block info lang caption
caption-above-p label
- num-start retain-labels attributes float))
- ((eq listings 'engraved)
- (org-latex-src-block--engraved src-block info lang caption
caption-above-p label
- num-start retain-labels attributes
float))
- (t
- (org-latex-src-block--listings src-block info lang caption
caption-above-p label
- num-start retain-labels attributes
float))))))
-
-(defun org-latex-src-block--verbatim
- (src-block info _lang caption caption-above-p _label
- _num-start _retain-labels _attributes float)
+ (caption (org-element-property :caption src-block))
+ (caption-above-p (org-latex--caption-above-p src-block info))
+ (label (org-element-property :name src-block))
+ (custom-env (and lang
+ (cadr (assq (intern lang)
+ org-latex-custom-lang-environments))))
+ (num-start (org-export-get-loc src-block info))
+ (retain-labels (org-element-property :retain-labels src-block))
+ (attributes (org-export-read-attribute :attr_latex src-block))
+ (float (plist-get attributes :float))
+ (listings (plist-get info :latex-listings)))
+ (funcall
+ (pcase listings
+ ((or (pred not) (guard (not lang))) #'org-latex-src-block--verbatim)
+ ((guard custom-env) #'org-latex-src-block--custom)
+ ('minted #'org-latex-src-block--minted)
+ ('engraved #'org-latex-src-block--engraved)
+ (_ #'org-latex-src-block--listings))
+ :src-block src-block
+ :info info
+ :lang lang
+ :caption caption
+ :caption-above-p caption-above-p
+ :label label
+ :num-start num-start
+ :retain-labels retain-labels
+ :attributes attributes
+ :float float))))
+
+(cl-defun org-latex-src-block--verbatim
+ (&key src-block info caption caption-above-p float &allow-other-keys)
"Transcode a SRC-BLOCK element from Org to LaTeX, using verbatim.
LANG, CAPTION, CAPTION-ABOVE-P, LABEL, NUM-START, RETAIN-LABELS, ATTRIBUTES
and FLOAT are extracted from SRC-BLOCK and INFO in `org-latex-src-block'."
@@ -3235,9 +3235,8 @@ and FLOAT are extracted from SRC-BLOCK and INFO in
`org-latex-src-block'."
(if caption-above-p "" (concat "\n" caption-str))))
(t verbatim))))
-(defun org-latex-src-block--custom
- (src-block info _lang caption caption-above-p _label
- _num-start _retain-labels attributes float custom-env)
+(cl-defun org-latex-src-block--custom
+ (&key src-block info caption caption-above-p attributes float custom-env
&allow-other-keys)
"Transcode a SRC-BLOCK element from Org to LaTeX, using a custom environment.
LANG, CAPTION, CAPTION-ABOVE-P, LABEL, NUM-START, RETAIN-LABELS, ATTRIBUTES
and FLOAT are extracted from SRC-BLOCK and INFO in `org-latex-src-block'."
@@ -3257,9 +3256,8 @@ and FLOAT are extracted from SRC-BLOCK and INFO in
`org-latex-src-block'."
(?l . ,(org-latex--label src-block info))
(?o . ,(or (plist-get attributes :options) "")))))))
-(defun org-latex-src-block--minted
- (src-block info lang caption caption-above-p _label
- num-start retain-labels attributes float)
+(cl-defun org-latex-src-block--minted
+ (&key src-block info lang caption caption-above-p num-start retain-labels
attributes float &allow-other-keys)
"Transcode a SRC-BLOCK element from Org to LaTeX, using minted.
LANG, CAPTION, CAPTION-ABOVE-P, LABEL, NUM-START, RETAIN-LABELS, ATTRIBUTES
and FLOAT are extracted from SRC-BLOCK and INFO in `org-latex-src-block'."
@@ -3345,9 +3343,8 @@ and FLOAT are extracted from SRC-BLOCK and INFO in
`org-latex-src-block'."
engraved-code)
(user-error "Cannot engrave code as `engrave-faces-latex' is
unavailible.")))
-(defun org-latex-src-block--engraved
- (src-block info lang caption caption-above-p _label
- num-start retain-labels attributes float)
+(cl-defun org-latex-src-block--engraved
+ (&key src-block info lang caption caption-above-p num-start retain-labels
attributes float &allow-other-keys)
"Transcode a SRC-BLOCK element from Org to LaTeX, using engrave-faces-latex.
LANG, CAPTION, CAPTION-ABOVE-P, LABEL, NUM-START, RETAIN-LABELS, ATTRIBUTES
and FLOAT are extracted from SRC-BLOCK and INFO in `org-latex-src-block'."
@@ -3407,9 +3404,8 @@ and FLOAT are extracted from SRC-BLOCK and INFO in
`org-latex-src-block'."
(org-latex-src--engrave-code content lang))))
(format float-env body)))
-(defun org-latex-src-block--listings
- (src-block info lang caption caption-above-p label
- num-start retain-labels attributes float)
+(cl-defun org-latex-src-block--listings
+ (&key src-block info lang caption caption-above-p label num-start
retain-labels attributes float &allow-other-keys)
"Transcode a SRC-BLOCK element from Org to LaTeX, using listings.
LANG, CAPTION, CAPTION-ABOVE-P, LABEL, NUM-START, RETAIN-LABELS, ATTRIBUTES
and FLOAT are extracted from SRC-BLOCK and INFO in `org-latex-src-block'."
- [elpa] externals/org updated (d5a52be0a5 -> 5766ddd758), ELPA Syncer, 2022/05/12
- [elpa] externals/org bbba45a07f 05/13: ox-latex: Don't use `length' to get string width, ELPA Syncer, 2022/05/12
- [elpa] externals/org b4e4b3c502 07/13: ox-latex: Replace `org-latex-listings', ELPA Syncer, 2022/05/12
- [elpa] externals/org 61d85bcdb3 01/13: ox-latex: Refactor `org-latex-src-block', ELPA Syncer, 2022/05/12
- [elpa] externals/org 40c559ac3d 02/13: ox-latex: Refactor `org-latex-inline-src-block', ELPA Syncer, 2022/05/12
- [elpa] externals/org e07b89c31c 06/13: ox-latex: Refactor source block transcode fun sigs,
ELPA Syncer <=
- [elpa] externals/org d30738b786 04/13: ox-latex: Introduce "engraved" code highlighting, ELPA Syncer, 2022/05/12
- [elpa] externals/org a16e208938 08/13: ox-latex: Support setting the engraved theme, ELPA Syncer, 2022/05/12
- [elpa] externals/org 4d5805755c 09/13: ox-latex: Support setting engraved theme per-block, ELPA Syncer, 2022/05/12
- [elpa] externals/org faa5c1887c 11/13: ox-latex: Support mathescape'd code with engraved, ELPA Syncer, 2022/05/12
- [elpa] externals/org 5766ddd758 13/13: ox-latex: Prefix lst: to source block labels, ELPA Syncer, 2022/05/12
- [elpa] externals/org ca91473639 03/13: ox-latex: More versitile option construction, ELPA Syncer, 2022/05/12
- [elpa] externals/org af4ca40eae 10/13: ox-latex: Fix %-captions in minted/engraved code, ELPA Syncer, 2022/05/12
- [elpa] externals/org 2cb62c0798 12/13: news and manual: Mention ox-latex's engraved code, ELPA Syncer, 2022/05/12