Prechádzať zdrojové kódy

Improve docstrings

* lisp/org.el (org-latex-default-packages-alist):
(org-latex-packages-alist): Improve docstring.
* lisp/ox-latex.el (org-latex--remove-packages): Small refactoring.
Nicolas Goaziou 6 rokov pred
rodič
commit
e3fdef74b9
2 zmenil súbory, kde vykonal 24 pridanie a 22 odobranie
  1. 11 4
      lisp/org.el
  2. 13 18
      lisp/ox-latex.el

+ 11 - 4
lisp/org.el

@@ -4138,10 +4138,12 @@ A cell is of the format
 
 If SNIPPET-FLAG is non-nil, the package also needs to be included
 when compiling LaTeX snippets into images for inclusion into
-non-LaTeX output.  COMPILERS is a list of compilers that should
-include the package, see `org-latex-compiler'.  If the document
-compiler is not in the list, and the list is non-nil, the package
-will not be inserted in the final document.
+non-LaTeX output.
+
+COMPILERS is a list of compilers that should include the package,
+see `org-latex-compiler'.  If the document compiler is not in the
+list, and the list is non-nil, the package will not be inserted
+in the final document.
 
 A string will be inserted as-is in the header of the document."
   :group 'org-latex
@@ -4175,6 +4177,11 @@ SNIPPET-FLAG, when non-nil, indicates that this package is also
 needed when turning LaTeX snippets into images for inclusion into
 non-LaTeX output.
 
+COMPILERS is a list of compilers that should include the package,
+see `org-latex-compiler'.  If the document compiler is not in the
+list, and the list is non-nil, the package will not be inserted
+in the final document.
+
 A string will be inserted as-is in the header of the document.
 
 Make sure that you only list packages here which:

+ 13 - 18
lisp/ox-latex.el

@@ -1440,26 +1440,21 @@ Return the new header."
 (defun org-latex--remove-packages (pkg-alist info)
   "Remove packages based on the current LaTeX compiler.
 
-If the fourth argument of an element is set in pkg-alist, and it
-is not a member of the LaTeX compiler of the document, the packages
-is removed.  See also `org-latex-compiler'.
+PKG-ALIST is a list of packages, as in `org-latex-packages-alist'
+and `org-latex-default-packages-alist'.  If the fourth argument
+of a package is neither nil nor a member of the LaTeX compiler
+associated to the document, the package is removed.
 
-Return modified pkg-alist."
+Return new list of packages."
   (let ((compiler (or (plist-get info :latex-compiler) "")))
-    (if (member-ignore-case compiler org-latex-compilers)
-	(delq nil
-	      (mapcar
-	       (lambda (pkg)
-		 (unless (and
-			  (listp pkg)
-			  (let ((third (nth 3 pkg)))
-			    (and third
-				 (not (member-ignore-case
-				       compiler
-				       (if (listp third) third (list third)))))))
-		   pkg))
-	       pkg-alist))
-      pkg-alist)))
+    (if (not (member-ignore-case compiler org-latex-compilers)) pkg-alist
+      (cl-remove-if-not
+       (lambda (package)
+	 (pcase package
+	   (`(,_ ,_ ,_ nil) t)
+	   (`(,_ ,_ ,_ ,compilers) (member-ignore-case compiler compilers))
+	   (_ t)))
+       pkg-alist))))
 
 (defun org-latex--find-verb-separator (s)
   "Return a character not used in string S.