From 32bd54d6985f7d09aba8fec1b9bd2ae4620c301f Mon Sep 17 00:00:00 2001 From: Alan Schmitt Date: Mon, 22 Jul 2013 16:46:02 +0200 Subject: [PATCH 1/3] Koma exporter: Ensure customization to LCO files are taken into account * contrib/lisp/ox-koma-letter.el: Change default values to match the scrlttr2 default values. Track which options are set in the file and only output the corresponding options when they are changed. --- contrib/lisp/ox-koma-letter.el | 49 +++++++++++++++++++++++++--------- 1 file changed, 37 insertions(+), 12 deletions(-) diff --git a/contrib/lisp/ox-koma-letter.el b/contrib/lisp/ox-koma-letter.el index 6f5529f6e..240de2913 100644 --- a/contrib/lisp/ox-koma-letter.el +++ b/contrib/lisp/ox-koma-letter.el @@ -232,7 +232,7 @@ English manual of 2012-07-22)." -(defcustom org-koma-letter-use-backaddress t +(defcustom org-koma-letter-use-backaddress nil "Print return address in small line above to address." :group 'org-export-koma-letter :type 'boolean) @@ -247,12 +247,12 @@ Use `foldmarks:true' to activate default fold marks or :group 'org-export-koma-letter :type 'string) -(defcustom org-koma-letter-use-phone t +(defcustom org-koma-letter-use-phone nil "Print sender's phone number." :group 'org-export-koma-letter :type 'boolean) -(defcustom org-koma-letter-use-email t +(defcustom org-koma-letter-use-email nil "Print sender's email address." :group 'org-export-koma-letter :type 'boolean) @@ -299,9 +299,11 @@ A headline is only used if #+OPENING is not set. See also org-koma-letter-default-class org-latex-default-class) t) (:author "AUTHOR" nil (org-koma-letter--get-value org-koma-letter-author) t) + (:author-changed-in-buffer-p "AUTHOR" nil nil t) (:from-address "FROM_ADDRESS" nil nil newline) (:phone-number "PHONE_NUMBER" nil org-koma-letter-phone-number) (:email "EMAIL" nil (org-koma-letter--get-value org-koma-letter-email) t) + (:email-changed-in-buffer-p "EMAIL" nil nil t) (:to-address "TO_ADDRESS" nil nil newline) (:place "PLACE" nil org-koma-letter-place) (:opening "OPENING" nil org-koma-letter-opening) @@ -318,9 +320,13 @@ A headline is only used if #+OPENING is not set. See also (:with-after-letter nil "after-letter-order" org-koma-letter-special-tags-after-letter) (:with-backaddress nil "backaddress" org-koma-letter-use-backaddress) + (:with-backaddress-changed-in-buffer-p nil "backaddress" nil) (:with-foldmarks nil "foldmarks" org-koma-letter-use-foldmarks) + (:with-foldmarks-changed-in-buffer-p nil "foldmarks" "foldmarks-not-set") (:with-phone nil "phone" org-koma-letter-use-phone) + (:with-phone-changed-in-buffer-p nil "phone" nil) (:with-email nil "email" org-koma-letter-use-email) + (:with-email-changed-in-buffer-p nil "email" nil) (:with-place nil "place" org-koma-letter-use-place) (:with-subject nil "subject" org-koma-letter-subject-format)) :translate-alist '((export-block . org-koma-letter-export-block) @@ -540,11 +546,19 @@ holding export options." info))) (let ((lco (plist-get info :lco)) (author (plist-get info :author)) + (author-set (plist-get info :author-changed-in-buffer-p)) (from-address (org-koma-letter--determine-to-and-from info 'from)) (phone-number (plist-get info :phone-number)) (email (plist-get info :email)) + (email-set (plist-get info :email-changed-in-buffer-p)) (signature (plist-get info :signature))) (concat + ;; author or email not set in file: may be overridden by lco + (unless author-set + (when author (format "\\setkomavar{fromname}{%s}\n" + (org-export-data author info)))) + (unless email-set + (when email (format "\\setkomavar{fromemail}{%s}\n" email))) ;; Letter Class Option File (when lco (let ((lco-files (split-string lco " ")) @@ -553,11 +567,12 @@ holding export options." (setq lco-def (format "%s\\LoadLetterOption{%s}\n" lco-def lco-file))) lco-def)) ;; Define "From" data. - (when author (format "\\setkomavar{fromname}{%s}\n" - (org-export-data author info))) + (when (and author author-set) (format "\\setkomavar{fromname}{%s}\n" + (org-export-data author info))) (when from-address (format "\\setkomavar{fromaddress}{%s}\n" from-address)) - (when phone-number (format "\\setkomavar{fromphone}{%s}\n" phone-number)) - (when email (format "\\setkomavar{fromemail}{%s}\n" email)) + (when phone-number + (format "\\setkomavar{fromphone}{%s}\n" phone-number)) + (when (and email email-set) (format "\\setkomavar{fromemail}{%s}\n" email)) (when signature (format "\\setkomavar{signature}{%s}\n" signature)))) ;; Date. (format "\\date{%s}\n" (org-export-data (org-export-get-date info) info)) @@ -568,14 +583,24 @@ holding export options." (format "\\setkomavar{place}{%s}\n" (if with-place place "")))) ;; KOMA options (let ((with-backaddress (plist-get info :with-backaddress)) + (with-backaddress-set (plist-get info :with-backaddress-changed-in-buffer-p)) (with-foldmarks (plist-get info :with-foldmarks)) + (with-foldmarks-set + (not (string-equal (plist-get info :with-foldmarks-changed-in-buffer-p) + "foldmarks-not-set"))) (with-phone (plist-get info :with-phone)) - (with-email (plist-get info :with-email))) + (with-phone-set (plist-get info :with-phone-changed-in-buffer-p)) + (with-email (plist-get info :with-email)) + (with-email-set (plist-get info :with-email-changed-in-buffer-p))) (concat - (format "\\KOMAoption{backaddress}{%s}\n" (if with-backaddress "true" "false")) - (format "\\KOMAoption{foldmarks}{%s}\n" (if with-foldmarks with-foldmarks "false")) - (format "\\KOMAoption{fromphone}{%s}\n" (if with-phone "true" "false")) - (format "\\KOMAoption{fromemail}{%s}\n" (if with-email "true" "false")))) + (when with-backaddress-set + (format "\\KOMAoption{backaddress}{%s}\n" (if with-backaddress "true" "false"))) + (when with-foldmarks-set + (format "\\KOMAoption{foldmarks}{%s}\n" (if with-foldmarks with-foldmarks "false"))) + (when with-phone-set + (format "\\KOMAoption{fromphone}{%s}\n" (if with-phone "true" "false"))) + (when with-email-set + (format "\\KOMAoption{fromemail}{%s}\n" (if with-email "true" "false"))))) ;; Document start "\\begin{document}\n\n" ;; Subject From b69fa027c0c7d728bb80f94e8e9a161eefb4ef22 Mon Sep 17 00:00:00 2001 From: rasmus Date: Sun, 18 Aug 2013 17:42:33 +0200 Subject: [PATCH 2/3] org-entities: New entities MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * org-entities.el (org-entities): Add support for ell, imath, jmath, varphi, varpi, aleph, gimel, beth, dalet, cdots, S (§), dag, ddag, colon, therefore, because, triangleq, leq, geq, lessgtr, lesseqgtr, ll, lll, gg, ggg, prec, preceq, preccurleyeq, succ, succeq, succurleyeq, setminus, nexist(s), mho, check, frown, diamond. Changes loz, vert, checkmark, smile and tilde. --- lisp/org-entities.el | 59 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 50 insertions(+), 9 deletions(-) diff --git a/lisp/org-entities.el b/lisp/org-entities.el index a1519b0da..638da7861 100644 --- a/lisp/org-entities.el +++ b/lisp/org-entities.el @@ -154,6 +154,9 @@ packages to be loaded, add these packages to `org-latex-packages-alist'." ("real" "\\Re" t "ℜ" "R" "R" "ℜ") ("image" "\\Im" t "ℑ" "I" "I" "ℑ") ("weierp" "\\wp" t "℘" "P" "P" "℘") + ("ell" "\\ell" t "ℓ" "ell" "ell" "ℓ") + ("imath" "\\imath" t "ı" "[dotless i]" "dotless i" "ı") + ("jmath" "\\jmath" t "ȷ" "[dotless j]" "dotless j" "ȷ") "** Greek" ("Alpha" "A" nil "Α" "Alpha" "Alpha" "Α") @@ -203,6 +206,7 @@ packages to be loaded, add these packages to `org-latex-packages-alist'." ("upsilon" "\\upsilon" t "υ" "upsilon" "upsilon" "υ") ("Phi" "\\Phi" t "Φ" "Phi" "Phi" "Φ") ("phi" "\\phi" t "φ" "phi" "phi" "φ") + ("varphi" "\\varphi" t "ϕ" "varphi" "varphi" "ɸ") ("Chi" "X" nil "Χ" "Chi" "Chi" "Χ") ("chi" "\\chi" t "χ" "chi" "chi" "χ") ("acutex" "\\acute x" t "´x" "'x" "'x" "𝑥́") @@ -212,10 +216,15 @@ packages to be loaded, add these packages to `org-latex-packages-alist'." ("Omega" "\\Omega" t "Ω" "Omega" "Omega" "Ω") ("omega" "\\omega" t "ω" "omega" "omega" "ω") ("piv" "\\varpi" t "ϖ" "omega-pi" "omega-pi" "ϖ") + ("varpi" "\\varpi" t "ϖ" "omega-pi" "omega-pi" "ϖ") ("partial" "\\partial" t "∂" "[partial differential]" "[partial differential]" "∂") "** Hebrew" ("alefsym" "\\aleph" t "ℵ" "aleph" "aleph" "ℵ") + ("aleph" "\\aleph" t "ℵ" "aleph" "aleph" "ℵ") + ("gimel" "\\gimel" t "ℷ" "gimel" "gimel" "ℷ") + ("beth" "\\beth" t "ℶ" "beth" "beth" "ב") + ("dalet" "\\daleth" t "ℸ" "dalet" "dalet" "ד") "** Dead languages" ("ETH" "\\DH{}" nil "Ð" "D" "Ð" "Ð") @@ -226,6 +235,7 @@ packages to be loaded, add these packages to `org-latex-packages-alist'." "* Punctuation" "** Dots and Marks" ("dots" "\\dots{}" nil "…" "..." "..." "…") + ("cdots" "\\cdots{}" t "⋯" "..." "..." "⋯") ("hellip" "\\dots{}" nil "…" "..." "..." "…") ("middot" "\\textperiodcentered{}" nil "·" "." "·" "·") ("iexcl" "!`" nil "¡" "!" "¡" "¡") @@ -253,20 +263,23 @@ packages to be loaded, add these packages to `org-latex-packages-alist'." "* Other" "** Misc. (often used)" ("circ" "\\^{}" nil "ˆ" "^" "^" "ˆ") - ("vert" "\\vert{}" t "|" "|" "|" "|") + ("vert" "\\vert{}" t "|" "|" "|" "|") ("brvbar" "\\textbrokenbar{}" nil "¦" "|" "¦" "¦") + ("S" "\\S" nil "§" "paragraph" "§" "§") ("sect" "\\S" nil "§" "paragraph" "§" "§") ("amp" "\\&" nil "&" "&" "&" "&") ("lt" "\\textless{}" nil "<" "<" "<" "<") ("gt" "\\textgreater{}" nil ">" ">" ">" ">") - ("tilde" "\\~{}" nil "˜" "~" "~" "~") + ("tilde" "\\textasciitilde{}" nil "~" "~" "~" "~") ("slash" "/" nil "/" "/" "/" "/") ("plus" "+" nil "+" "+" "+" "+") ("under" "\\_" nil "_" "_" "_" "_") ("equal" "=" nil "=" "=" "=" "=") ("asciicirc" "\\textasciicircum{}" nil "^" "^" "^" "^") ("dagger" "\\textdagger{}" nil "†" "[dagger]" "[dagger]" "†") + ("dag" "\\dag{}" nil "†" "[dagger]" "[dagger]" "†") ("Dagger" "\\textdaggerdbl{}" nil "‡" "[doubledagger]" "[doubledagger]" "‡") + ("ddag" "\\ddag{}" nil "‡" "[doubledagger]" "[doubledagger]" "‡") "** Whitespace" ("nbsp" "~" nil " " " " " " " ") @@ -297,6 +310,7 @@ packages to be loaded, add these packages to `org-latex-packages-alist'." ("plusmn" "\\textpm{}" nil "±" "+-" "±" "±") ("times" "\\texttimes{}" nil "×" "*" "×" "×") ("frasl" "/" nil "⁄" "/" "/" "⁄") + ("colon" "\\colon" t ":" ":" ":" ":") ("div" "\\textdiv{}" nil "÷" "/" "÷" "÷") ("frac12" "\\textonehalf{}" nil "½" "1/2" "½" "½") ("frac14" "\\textonequarter{}" nil "¼" "1/4" "¼" "¼") @@ -326,7 +340,9 @@ packages to be loaded, add these packages to `org-latex-packages-alist'." ("cap" "\\cap" t "∩" "[intersection]" "[intersection]" "∩") ("cup" "\\cup" t "∪" "[union]" "[union]" "∪") ("int" "\\int" t "∫" "[integral]" "[integral]" "∫") + ("therefore" "\\therefore" t "∴" "[therefore]" "[therefore]" "∴") ("there4" "\\therefore" t "∴" "[therefore]" "[therefore]" "∴") + ("because" "\\because" t "∵" "[because]" "[because]" "∵") ("sim" "\\sim" t "∼" "~" "~" "∼") ("cong" "\\cong" t "≅" "[approx. equal to]" "[approx. equal to]" "≅") ("simeq" "\\simeq" t "≅" "[approx. equal to]" "[approx. equal to]" "≅") @@ -335,8 +351,26 @@ packages to be loaded, add these packages to `org-latex-packages-alist'." ("ne" "\\ne" t "≠" "[not equal to]" "[not equal to]" "≠") ("neq" "\\neq" t "≠" "[not equal to]" "[not equal to]" "≠") ("equiv" "\\equiv" t "≡" "[identical to]" "[identical to]" "≡") + + ("triangleq" "\\triangleq" t "≜" "[defined to]" "[defined to]" "≜") ("le" "\\le" t "≤" "<=" "<=" "≤") + ("leq" "\\le" t "≤" "<=" "<=" "≤") ("ge" "\\ge" t "≥" ">=" ">=" "≥") + ("geq" "\\ge" t "≥" ">=" ">=" "≥") + ("lessgtr" "\\lessgtr" t "≶" "[less than or greater than]" "[less than or greater than]" "≶") + ("lesseqgtr" "\\lesseqgtr" t "⋚" "[less than or equal or greater than or equal]" "[less than or equal or greater than or equal]" "⋚") + ("ll" "\\ll" t "≪" "<<" "<<" "≪") + ("Ll" "\lll" t "⋘" "<<<" "<<<" "⋘") + ("lll" "\lll" t "⋘" "<<<" "<<<" "⋘") + ("gg" "\\gg" t "≫" ">>" ">>" "≫") + ("Gg" "\\ggg" t "⋙" ">>>" ">>>" "⋙") + ("ggg" "\\ggg" t "⋙" ">>>" ">>>" "⋙") + ("prec" "\\prec" t "≺" "[precedes]" "[precedes]" "≺") + ("preceq" "\\preceq" t "≼" "[precedes or equal]" "[precedes or equal]" "≼") + ("preccurlyeq" "\\preccurlyeq" t "≼" "[precedes or equal]" "[precedes or equal]" "≼") + ("succ" "\\succ" t "≻" "[succeeds]" "[succeeds]" "≻") + ("succeq" "\\succeq" t "≽" "[succeeds or equal]" "[succeeds or equal]" "≽") + ("succcurlyeq" "\\succcurlyeq" t "≽" "[succeeds or equal]" "[succeeds or equal]" "≽") ("sub" "\\subset" t "⊂" "[subset of]" "[subset of]" "⊂") ("subset" "\\subset" t "⊂" "[subset of]" "[subset of]" "⊂") ("sup" "\\supset" t "⊃" "[superset of]" "[superset of]" "⊃") @@ -345,9 +379,12 @@ packages to be loaded, add these packages to `org-latex-packages-alist'." ("sube" "\\subseteq" t "⊆" "[subset of or equal to]" "[subset of or equal to]" "⊆") ("nsup" "\\not\\supset" t "⊅" "[not a superset of]" "[not a superset of]" "⊅") ("supe" "\\supseteq" t "⊇" "[superset of or equal to]" "[superset of or equal to]" "⊇") + ("setminus" "\\setminus" t "∖" "\" "\" "⧵") ("forall" "\\forall" t "∀" "[for all]" "[for all]" "∀") ("exist" "\\exists" t "∃" "[there exists]" "[there exists]" "∃") ("exists" "\\exists" t "∃" "[there exists]" "[there exists]" "∃") + ("nexist" "\\nexists" t "∃" "[there does not exists]" "[there does not exists]" "∄") + ("nexists" "\\nexists" t "∃" "[there does not exists]" "[there does not exists]" "∄") ("empty" "\\empty" t "∅" "[empty set]" "[empty set]" "∅") ("emptyset" "\\emptyset" t "∅" "[empty set]" "[empty set]" "∅") ("isin" "\\in" t "∈" "[element of]" "[element of]" "∈") @@ -366,7 +403,8 @@ packages to be loaded, add these packages to `org-latex-packages-alist'." ("rfloor" "\\rfloor" t "⌋" "[right floor]" "[right floor]" "⌋") ("lang" "\\langle" t "⟨" "<" "<" "⟨") ("rang" "\\rangle" t "⟩" ">" ">" "⟩") - ("hbar" "\\hbar" t "ℏ" "hbar" "hbar" "ℏ") + ("hbar" "\\hbar" t "ℏ" "hbar" "hbar" "ℏ") + ("mho" "\\mho" t "℧" "mho" "mho" "℧") "** Arrows" ("larr" "\\leftarrow" t "←" "<-" "<-" "←") @@ -437,7 +475,8 @@ packages to be loaded, add these packages to `org-latex-packages-alist'." ("odot" "\\odot" t "o" "[circled dot]" "[circled dot]" "ʘ") ("oplus" "\\oplus" t "⊕" "[circled plus]" "[circled plus]" "⊕") ("otimes" "\\otimes" t "⊗" "[circled times]" "[circled times]" "⊗") - ("checkmark" "\\checkmark" t "✓" "[checkmark]" "[checkmark]" "✓") + ("check" "\\checkmark" t "✓" "[checkmark]" "[checkmark]" "✓") + ("checkmark" "\\checkmark" t "✓" "[checkmark]" "[checkmark]" "✓") "** Miscellaneous (seldom used)" ("para" "\\P{}" nil "¶" "[pilcrow]" "¶" "¶") @@ -452,7 +491,8 @@ packages to be loaded, add these packages to `org-latex-packages-alist'." ("rlm" "" nil "‏" "" "" "‏") "** Smilies" - ("smile" "\\smile" t "☺" ":-)" ":-)" "⌣") + ("smile" "\\smile" t "⌣" ":-)" ":-)" "⌣") + ("frown" "\\frown" t "⌢" ":-(" ":-(" "⌢") ("smiley" "\\smiley{}" nil "☺" ":-)" ":-)" "☺") ("blacksmile" "\\blacksmiley{}" nil "☻" ":-)" ":-)" "☻") ("sad" "\\frownie{}" nil "☹" ":-(" ":-(" "☹") @@ -464,10 +504,11 @@ packages to be loaded, add these packages to `org-latex-packages-alist'." ("spadesuit" "\\spadesuit" t "♠" "[spades]" "[spades]" "♠") ("hearts" "\\heartsuit" t "♥" "[hearts]" "[hearts]" "♥") ("heartsuit" "\\heartsuit" t "♥" "[hearts]" "[hearts]" "♥") - ("diams" "\\diamondsuit" t "♦" "[diamonds]" "[diamonds]" "♦") - ("diamondsuit" "\\diamondsuit" t "♦" "[diamonds]" "[diamonds]" "♦") - ("Diamond" "\\diamond" t "⋄" "[diamond]" "[diamond]" "⋄") - ("loz" "\\diamond" t "◊" "[lozenge]" "[lozenge]" "◊") + ("diams" "\\diamondsuit" t "♦" "[diamonds]" "[diamonds]" "◆") + ("diamondsuit" "\\diamondsuit" t "♦" "[diamonds]" "[diamonds]" "◆") + ("diamond" "\\diamondsuit" t "⋄" "[diamond]" "[diamond]" "◆") + ("Diamond" "\\diamondsuit" t "⋄" "[diamond]" "[diamond]" "◆") + ("loz" "\\lozenge" t "◊" "[lozenge]" "[lozenge]" "⧫") ) "Default entities used in Org-mode to produce special characters. For details see `org-entities-user'.") From 8a05053ce4213eae841262792d8a921c1ad3acba Mon Sep 17 00:00:00 2001 From: rasmus Date: Sat, 31 Aug 2013 18:15:12 +0200 Subject: [PATCH 3/3] Remove dependency on latexsym LaTeX package * ox-latex.el (org-latex-item): Use square as unchecked symbol. * org.el (org-latex-default-packages-alist): Remove latexsym. Use amssymb symbols to reduce required packages. --- lisp/org.el | 10 ++++------ lisp/ox-latex.el | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/lisp/org.el b/lisp/org.el index 97b536534..f37d17eab 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -3831,7 +3831,6 @@ header, or they will be appended." ("" "textcomp" t) ("" "marvosym" t) ("" "wasysym" t) - ("" "latexsym" t) ("" "amssymb" t) ("" "amstext" nil) ("" "hyperref" nil) @@ -3846,10 +3845,9 @@ Org mode to function properly: - inputenc, fontenc: for basic font and character selection - amstext: for subscript and superscript -- textcomp, marvosymb, wasysym, latexsym, amssym: for various - symbols used for interpreting the entities in `org-entities'. - You can skip some of these packages if you don't use any of the - symbols in it. +- textcomp, marvosymb, wasysym, amssymb: for various symbols used + for interpreting the entities in `org-entities'. You can skip + some of these packages if you don't use any of their symbols. - ulem: for underline and strike-through - graphicx: for including images - float, wrapfig: for figure placement @@ -7652,7 +7650,7 @@ This is important for non-interactive uses of the command." (t (goto-char (point-at-eol)) (insert "\n"))) - + ;; Insert the new heading (insert stars) (just-one-space) diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el index 1fe918abe..e1173efa8 100644 --- a/lisp/ox-latex.el +++ b/lisp/ox-latex.el @@ -1561,7 +1561,7 @@ contextual information." (1- count))))) (checkbox (case (org-element-property :checkbox item) (on "$\\boxtimes$ ") - (off "$\\Box$ ") + (off "$\\square$ ") (trans "$\\boxminus$ "))) (tag (let ((tag (org-element-property :tag item))) ;; Check-boxes must belong to the tag.