Make the inclusion of packages for snippet creation optional
This commit is contained in:
parent
d555545b48
commit
91749e6594
|
@ -1,5 +1,18 @@
|
|||
2010-04-27 Carsten Dominik <carsten.dominik@gmail.com>
|
||||
|
||||
* org.el (org-set-packages-alist, org-get-packages-alist): New
|
||||
function.
|
||||
(org-export-latex-default-packages-alist)
|
||||
(org-export-latex-packages-alist): Add extra flag to
|
||||
each package, indicating if it should be used for snippets.
|
||||
(org-create-formula-image): Add the snippet argument.
|
||||
(org-splice-latex-header): New argument SNIPPET-P, pass it
|
||||
through to `org-latex-packages-to-string'.
|
||||
(org-latex-packages-to-string): New argument SNIPPET-P.
|
||||
|
||||
* org-latex.el (org-export-latex-make-header): Add the snippet
|
||||
argument.
|
||||
|
||||
* org-docbook.el (org-export-as-docbook): Implement ordered
|
||||
lists starting at some offset.
|
||||
|
||||
|
|
|
@ -1147,7 +1147,7 @@ OPT-PLIST is the options plist for current buffer."
|
|||
(org-splice-latex-header
|
||||
(org-export-apply-macros-in-string org-export-latex-header)
|
||||
org-export-latex-default-packages-alist
|
||||
org-export-latex-packages-alist
|
||||
org-export-latex-packages-alist nil
|
||||
(org-export-apply-macros-in-string
|
||||
(plist-get opt-plist :latex-header-extra)))
|
||||
;; append another special variable
|
||||
|
|
95
lisp/org.el
95
lisp/org.el
|
@ -2302,7 +2302,7 @@ a double prefix argument to a time-stamp command like `C-c .' or `C-c !',
|
|||
and by using a prefix arg to `S-up/down' to specify the exact number
|
||||
of minutes to shift."
|
||||
:group 'org-time
|
||||
:get '(lambda (var) ; Make sure all entries have 5 elements
|
||||
:get '(lambda (var) ; Make sure both elements are there
|
||||
(if (integerp (default-value var))
|
||||
(list (default-value var) 5)
|
||||
(default-value var)))
|
||||
|
@ -2958,25 +2958,42 @@ will be appended."
|
|||
|
||||
(defvar org-format-latex-header-extra nil)
|
||||
|
||||
(defun org-set-packages-alist (var val)
|
||||
"Set the packages alist and make sure it has 3 elements per entry."
|
||||
(set var (mapcar (lambda (x)
|
||||
(if (and (consp x) (= (length x) 2))
|
||||
(list (car x) (nth 1 x) t)
|
||||
x))
|
||||
val)))
|
||||
|
||||
(defun org-get-packages-alist (var)
|
||||
|
||||
"Get the packages alist and make sure it has 3 elements per entry."
|
||||
(mapcar (lambda (x)
|
||||
(if (and (consp x) (= (length x) 2))
|
||||
(list (car x) (nth 1 x) t)
|
||||
x))
|
||||
(default-value var)))
|
||||
|
||||
;; The following variables are defined here because is it also used
|
||||
;; when formatting latex fragments. Originally it was part of the
|
||||
;; LaTeX exporter, which is why the name includes "export".
|
||||
(defcustom org-export-latex-default-packages-alist
|
||||
'(("AUTO" "inputenc")
|
||||
("T1" "fontenc")
|
||||
("" "fixltx2e")
|
||||
("" "graphicx")
|
||||
("" "longtable")
|
||||
("" "float")
|
||||
("" "wrapfig")
|
||||
("" "soul")
|
||||
("" "t1enc")
|
||||
("" "textcomp")
|
||||
("" "marvosym")
|
||||
("" "wasysym")
|
||||
("" "latexsym")
|
||||
("" "amssymb")
|
||||
("" "hyperref")
|
||||
'(("AUTO" "inputenc" t)
|
||||
("T1" "fontenc" t)
|
||||
("" "fixltx2e" nil)
|
||||
("" "graphicx" t)
|
||||
("" "longtable" nil)
|
||||
("" "float" nil)
|
||||
("" "wrapfig" nil)
|
||||
("" "soul" t)
|
||||
("" "t1enc" t)
|
||||
("" "textcomp" t)
|
||||
("" "marvosym" t)
|
||||
("" "wasysym" t)
|
||||
("" "latexsym" t)
|
||||
("" "amssymb" t)
|
||||
("" "hyperref" nil)
|
||||
"\\tolerance=1000"
|
||||
)
|
||||
"Alist of default packages to be inserted in the header.
|
||||
|
@ -2997,31 +3014,42 @@ to function properly.
|
|||
Therefore you should not modify this variable unless you know what you
|
||||
are doing. The one reason to change it anyway is that you might be loading
|
||||
some other package that conflicts with one of the default packages.
|
||||
Each cell is of the format \( \"options\" \"package\" \)."
|
||||
Each cell is of the format \( \"options\" \"package\" snippet-flag\).
|
||||
If SNIPPET-FLAG is t, the package also needs to be included when
|
||||
compiling LaTeX snippets into images for inclusion into HTML."
|
||||
:group 'org-export-latex
|
||||
:set 'org-set-packages-alist
|
||||
:get 'org-get-packages-alist
|
||||
:type '(repeat
|
||||
(choice
|
||||
(string :tag "A line of LaTeX")
|
||||
(list :tag "options/package pair"
|
||||
(string :tag "options")
|
||||
(string :tag "package")))))
|
||||
(string :tag "package")
|
||||
(boolean :tag "Snippet"))
|
||||
(string :tag "A line of LaTeX"))))
|
||||
|
||||
(defcustom org-export-latex-packages-alist nil
|
||||
"Alist of packages to be inserted in every LaTeX the header.
|
||||
These will be inserted after `org-export-latex-default-packages-alist'.
|
||||
Each cell is of the format \( \"options\" \"package\" \).
|
||||
Make sure that you only lis packages here which:
|
||||
Each cell is of the format \( \"options\" \"package\" snippet-flag \).
|
||||
SNIPPET-FLAG, when t, indicates that this package is also needed when
|
||||
turning LaTeX snippets into images for inclusion into HTML.
|
||||
Make sure that you only list packages here which:
|
||||
- you want in every file
|
||||
- do not conflict with the default packages in
|
||||
`org-export-latex-default-packages-alist'
|
||||
- do not conflict with the setup in `org-format-latex-header'."
|
||||
:group 'org-export-latex
|
||||
:set 'org-set-packages-alist
|
||||
:get 'org-get-packages-alist
|
||||
:type '(repeat
|
||||
(choice
|
||||
(string :tag "A line of LaTeX")
|
||||
(list :tag "options/package pair"
|
||||
(string :tag "options")
|
||||
(string :tag "package")))))
|
||||
(string :tag "package")
|
||||
(boolean :tag "Snippet"))
|
||||
(string :tag "A line of LaTeX"))))
|
||||
|
||||
|
||||
(defgroup org-appearance nil
|
||||
"Settings for Org-mode appearance."
|
||||
|
@ -15332,7 +15360,7 @@ Some of the options can be changed using the variable
|
|||
(insert (org-splice-latex-header
|
||||
org-format-latex-header
|
||||
org-export-latex-default-packages-alist
|
||||
org-export-latex-packages-alist
|
||||
org-export-latex-packages-alist t
|
||||
org-format-latex-header-extra))
|
||||
(insert "\n\\begin{document}\n" string "\n\\end{document}\n")
|
||||
(require 'org-latex)
|
||||
|
@ -15366,7 +15394,7 @@ Some of the options can be changed using the variable
|
|||
(delete-file (concat texfilebase e)))
|
||||
pngfile))))
|
||||
|
||||
(defun org-splice-latex-header (tpl def-pkg pkg &optional extra)
|
||||
(defun org-splice-latex-header (tpl def-pkg pkg snippets-p &optional extra)
|
||||
"Fill a LaTeX header template TPL.
|
||||
In the template, the following place holders will be recognized:
|
||||
|
||||
|
@ -15381,19 +15409,22 @@ For backward compatibility, if both the positive and the negative place
|
|||
holder is missing, the positive one (without the \"NO-\") will be
|
||||
assumed to be present at the end of the template.
|
||||
DEF-PKG and PKG are assumed to be alists of options/packagename lists.
|
||||
EXTRA is a string."
|
||||
EXTRA is a string.
|
||||
SNIPPETS-P indicates if this is run to create snippet images for HTML."
|
||||
(let (rpl (end ""))
|
||||
(if (string-match "^[ \t]*\\[\\(NO-\\)?DEFAULT-PACKAGES\\][ \t]*\n?" tpl)
|
||||
(setq rpl (if (or (match-end 1) (not def-pkg))
|
||||
"" (org-latex-packages-to-string def-pkg t))
|
||||
"" (org-latex-packages-to-string def-pkg snippets-p t))
|
||||
tpl (replace-match rpl t t tpl))
|
||||
(if def-pkg (setq end (org-latex-packages-to-string def-pkg))))
|
||||
(if def-pkg (setq end (org-latex-packages-to-string def-pkg snippets-p))))
|
||||
|
||||
(if (string-match "\\[\\(NO-\\)?PACKAGES\\][ \t]*\n?" tpl)
|
||||
(setq rpl (if (or (match-end 1) (not pkg))
|
||||
"" (org-latex-packages-to-string pkg t))
|
||||
"" (org-latex-packages-to-string pkg snippets-p t))
|
||||
tpl (replace-match rpl t t tpl))
|
||||
(if pkg (setq end (concat end "\n" (org-latex-packages-to-string pkg)))))
|
||||
(if pkg (setq end
|
||||
(concat end "\n"
|
||||
(org-latex-packages-to-string pkg snippets-p)))))
|
||||
|
||||
(if (string-match "\\[\\(NO-\\)?EXTRA\\][ \t]*\n?" tpl)
|
||||
(setq rpl (if (or (match-end 1) (not extra))
|
||||
|
@ -15406,11 +15437,13 @@ EXTRA is a string."
|
|||
(concat tpl "\n" end)
|
||||
tpl)))
|
||||
|
||||
(defun org-latex-packages-to-string (pkg &optional newline)
|
||||
(defun org-latex-packages-to-string (pkg &optional snippets-p newline)
|
||||
"Turn an alist of packages into a string with the \\usepackage macros."
|
||||
(setq pkg (mapconcat (lambda(p)
|
||||
(cond
|
||||
((stringp p) p)
|
||||
((and snippets-p (>= (length p) 3) (not (nth 2 p)))
|
||||
(format "%% Package %s omitted" (cadr p)))
|
||||
((equal "" (car p))
|
||||
(format "\\usepackage{%s}" (cadr p)))
|
||||
(t
|
||||
|
|
Loading…
Reference in New Issue