commit | author | age
|
76bbd0
|
1 |
;;; org-entities.el --- Support for Special Entities -*- lexical-binding: t; -*- |
C |
2 |
|
|
3 |
;; Copyright (C) 2010-2018 Free Software Foundation, Inc. |
|
4 |
|
|
5 |
;; Author: Carsten Dominik <carsten at orgmode dot org>, |
|
6 |
;; Ulf Stegemann <ulf at zeitform dot de> |
|
7 |
;; Keywords: outlines, calendar, wp |
|
8 |
;; Homepage: https://orgmode.org |
|
9 |
;; |
|
10 |
;; This file is part of GNU Emacs. |
|
11 |
;; |
|
12 |
;; GNU Emacs is free software: you can redistribute it and/or modify |
|
13 |
;; it under the terms of the GNU General Public License as published by |
|
14 |
;; the Free Software Foundation, either version 3 of the License, or |
|
15 |
;; (at your option) any later version. |
|
16 |
|
|
17 |
;; GNU Emacs is distributed in the hope that it will be useful, |
|
18 |
;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
19 |
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
20 |
;; GNU General Public License for more details. |
|
21 |
|
|
22 |
;; You should have received a copy of the GNU General Public License |
|
23 |
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. |
|
24 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
|
25 |
;; |
|
26 |
;;; Commentary: |
|
27 |
|
|
28 |
;;; Code: |
|
29 |
|
|
30 |
(declare-function org-toggle-pretty-entities "org" ()) |
|
31 |
(declare-function org-table-align "org-table" ()) |
|
32 |
|
|
33 |
(defgroup org-entities nil |
|
34 |
"Options concerning entities in Org mode." |
|
35 |
:tag "Org Entities" |
|
36 |
:group 'org) |
|
37 |
|
|
38 |
(defun org-entities--user-safe-p (v) |
|
39 |
"Non-nil if V is a safe value for `org-entities-user'." |
|
40 |
(pcase v |
|
41 |
(`nil t) |
|
42 |
(`(,(and (pred stringp) |
|
43 |
(pred (string-match-p "\\`[a-zA-Z][a-zA-Z0-9]*\\'"))) |
|
44 |
,(pred stringp) ,(pred booleanp) ,(pred stringp) |
|
45 |
,(pred stringp) ,(pred stringp) ,(pred stringp)) |
|
46 |
t) |
|
47 |
(_ nil))) |
|
48 |
|
|
49 |
(defcustom org-entities-user nil |
|
50 |
"User-defined entities used in Org to produce special characters. |
|
51 |
Each entry in this list is a list of strings. It associates the name |
|
52 |
of the entity that can be inserted into an Org file as \\name with the |
|
53 |
appropriate replacements for the different export backends. The order |
|
54 |
of the fields is the following |
|
55 |
|
|
56 |
name As a string, without the leading backslash. |
|
57 |
LaTeX replacement In ready LaTeX, no further processing will take place. |
|
58 |
LaTeX mathp Either t or nil. When t this entity needs to be in |
|
59 |
math mode. |
|
60 |
HTML replacement In ready HTML, no further processing will take place. |
|
61 |
Usually this will be an &...; entity. |
|
62 |
ASCII replacement Plain ASCII, no extensions. |
|
63 |
Latin1 replacement Use the special characters available in latin1. |
|
64 |
utf-8 replacement Use the special characters available in utf-8. |
|
65 |
|
|
66 |
If you define new entities here that require specific LaTeX |
|
67 |
packages to be loaded, add these packages to `org-latex-packages-alist'." |
|
68 |
:group 'org-entities |
|
69 |
:version "24.1" |
|
70 |
:type '(repeat |
|
71 |
(list |
|
72 |
(string :tag "name ") |
|
73 |
(string :tag "LaTeX ") |
|
74 |
(boolean :tag "Require LaTeX math?") |
|
75 |
(string :tag "HTML ") |
|
76 |
(string :tag "ASCII ") |
|
77 |
(string :tag "Latin1") |
|
78 |
(string :tag "utf-8 "))) |
|
79 |
:safe #'org-entities--user-safe-p) |
|
80 |
|
|
81 |
(defconst org-entities |
|
82 |
(append |
|
83 |
'("* Letters" |
|
84 |
"** Latin" |
|
85 |
("Agrave" "\\`{A}" nil "À" "A" "À" "À") |
|
86 |
("agrave" "\\`{a}" nil "à" "a" "à" "à") |
|
87 |
("Aacute" "\\'{A}" nil "Á" "A" "Á" "Á") |
|
88 |
("aacute" "\\'{a}" nil "á" "a" "á" "á") |
|
89 |
("Acirc" "\\^{A}" nil "Â" "A" "Â" "Â") |
|
90 |
("acirc" "\\^{a}" nil "â" "a" "â" "â") |
|
91 |
("Amacr" "\\bar{A}" nil "Ā" "A" "Ã" "Ã") |
|
92 |
("amacr" "\\bar{a}" nil "ā" "a" "ã" "ã") |
|
93 |
("Atilde" "\\~{A}" nil "Ã" "A" "Ã" "Ã") |
|
94 |
("atilde" "\\~{a}" nil "ã" "a" "ã" "ã") |
|
95 |
("Auml" "\\\"{A}" nil "Ä" "Ae" "Ä" "Ä") |
|
96 |
("auml" "\\\"{a}" nil "ä" "ae" "ä" "ä") |
|
97 |
("Aring" "\\AA{}" nil "Å" "A" "Å" "Å") |
|
98 |
("AA" "\\AA{}" nil "Å" "A" "Å" "Å") |
|
99 |
("aring" "\\aa{}" nil "å" "a" "å" "å") |
|
100 |
("AElig" "\\AE{}" nil "Æ" "AE" "Æ" "Æ") |
|
101 |
("aelig" "\\ae{}" nil "æ" "ae" "æ" "æ") |
|
102 |
("Ccedil" "\\c{C}" nil "Ç" "C" "Ç" "Ç") |
|
103 |
("ccedil" "\\c{c}" nil "ç" "c" "ç" "ç") |
|
104 |
("Egrave" "\\`{E}" nil "È" "E" "È" "È") |
|
105 |
("egrave" "\\`{e}" nil "è" "e" "è" "è") |
|
106 |
("Eacute" "\\'{E}" nil "É" "E" "É" "É") |
|
107 |
("eacute" "\\'{e}" nil "é" "e" "é" "é") |
|
108 |
("Ecirc" "\\^{E}" nil "Ê" "E" "Ê" "Ê") |
|
109 |
("ecirc" "\\^{e}" nil "ê" "e" "ê" "ê") |
|
110 |
("Euml" "\\\"{E}" nil "Ë" "E" "Ë" "Ë") |
|
111 |
("euml" "\\\"{e}" nil "ë" "e" "ë" "ë") |
|
112 |
("Igrave" "\\`{I}" nil "Ì" "I" "Ì" "Ì") |
|
113 |
("igrave" "\\`{i}" nil "ì" "i" "ì" "ì") |
|
114 |
("Iacute" "\\'{I}" nil "Í" "I" "Í" "Í") |
|
115 |
("iacute" "\\'{i}" nil "í" "i" "í" "í") |
|
116 |
("Icirc" "\\^{I}" nil "Î" "I" "Î" "Î") |
|
117 |
("icirc" "\\^{i}" nil "î" "i" "î" "î") |
|
118 |
("Iuml" "\\\"{I}" nil "Ï" "I" "Ï" "Ï") |
|
119 |
("iuml" "\\\"{i}" nil "ï" "i" "ï" "ï") |
|
120 |
("Ntilde" "\\~{N}" nil "Ñ" "N" "Ñ" "Ñ") |
|
121 |
("ntilde" "\\~{n}" nil "ñ" "n" "ñ" "ñ") |
|
122 |
("Ograve" "\\`{O}" nil "Ò" "O" "Ò" "Ò") |
|
123 |
("ograve" "\\`{o}" nil "ò" "o" "ò" "ò") |
|
124 |
("Oacute" "\\'{O}" nil "Ó" "O" "Ó" "Ó") |
|
125 |
("oacute" "\\'{o}" nil "ó" "o" "ó" "ó") |
|
126 |
("Ocirc" "\\^{O}" nil "Ô" "O" "Ô" "Ô") |
|
127 |
("ocirc" "\\^{o}" nil "ô" "o" "ô" "ô") |
|
128 |
("Otilde" "\\~{O}" nil "Õ" "O" "Õ" "Õ") |
|
129 |
("otilde" "\\~{o}" nil "õ" "o" "õ" "õ") |
|
130 |
("Ouml" "\\\"{O}" nil "Ö" "Oe" "Ö" "Ö") |
|
131 |
("ouml" "\\\"{o}" nil "ö" "oe" "ö" "ö") |
|
132 |
("Oslash" "\\O" nil "Ø" "O" "Ø" "Ø") |
|
133 |
("oslash" "\\o{}" nil "ø" "o" "ø" "ø") |
|
134 |
("OElig" "\\OE{}" nil "Œ" "OE" "OE" "Œ") |
|
135 |
("oelig" "\\oe{}" nil "œ" "oe" "oe" "œ") |
|
136 |
("Scaron" "\\v{S}" nil "Š" "S" "S" "Š") |
|
137 |
("scaron" "\\v{s}" nil "š" "s" "s" "š") |
|
138 |
("szlig" "\\ss{}" nil "ß" "ss" "ß" "ß") |
|
139 |
("Ugrave" "\\`{U}" nil "Ù" "U" "Ù" "Ù") |
|
140 |
("ugrave" "\\`{u}" nil "ù" "u" "ù" "ù") |
|
141 |
("Uacute" "\\'{U}" nil "Ú" "U" "Ú" "Ú") |
|
142 |
("uacute" "\\'{u}" nil "ú" "u" "ú" "ú") |
|
143 |
("Ucirc" "\\^{U}" nil "Û" "U" "Û" "Û") |
|
144 |
("ucirc" "\\^{u}" nil "û" "u" "û" "û") |
|
145 |
("Uuml" "\\\"{U}" nil "Ü" "Ue" "Ü" "Ü") |
|
146 |
("uuml" "\\\"{u}" nil "ü" "ue" "ü" "ü") |
|
147 |
("Yacute" "\\'{Y}" nil "Ý" "Y" "Ý" "Ý") |
|
148 |
("yacute" "\\'{y}" nil "ý" "y" "ý" "ý") |
|
149 |
("Yuml" "\\\"{Y}" nil "Ÿ" "Y" "Y" "Ÿ") |
|
150 |
("yuml" "\\\"{y}" nil "ÿ" "y" "ÿ" "ÿ") |
|
151 |
|
|
152 |
"** Latin (special face)" |
|
153 |
("fnof" "\\textit{f}" nil "ƒ" "f" "f" "ƒ") |
|
154 |
("real" "\\Re" t "ℜ" "R" "R" "ℜ") |
|
155 |
("image" "\\Im" t "ℑ" "I" "I" "ℑ") |
|
156 |
("weierp" "\\wp" t "℘" "P" "P" "℘") |
|
157 |
("ell" "\\ell" t "ℓ" "ell" "ell" "ℓ") |
|
158 |
("imath" "\\imath" t "ı" "[dotless i]" "dotless i" "ı") |
|
159 |
("jmath" "\\jmath" t "ȷ" "[dotless j]" "dotless j" "ȷ") |
|
160 |
|
|
161 |
"** Greek" |
|
162 |
("Alpha" "A" nil "Α" "Alpha" "Alpha" "Α") |
|
163 |
("alpha" "\\alpha" t "α" "alpha" "alpha" "α") |
|
164 |
("Beta" "B" nil "Β" "Beta" "Beta" "Β") |
|
165 |
("beta" "\\beta" t "β" "beta" "beta" "β") |
|
166 |
("Gamma" "\\Gamma" t "Γ" "Gamma" "Gamma" "Γ") |
|
167 |
("gamma" "\\gamma" t "γ" "gamma" "gamma" "γ") |
|
168 |
("Delta" "\\Delta" t "Δ" "Delta" "Delta" "Δ") |
|
169 |
("delta" "\\delta" t "δ" "delta" "delta" "δ") |
|
170 |
("Epsilon" "E" nil "Ε" "Epsilon" "Epsilon" "Ε") |
|
171 |
("epsilon" "\\epsilon" t "ε" "epsilon" "epsilon" "ε") |
|
172 |
("varepsilon" "\\varepsilon" t "ε" "varepsilon" "varepsilon" "ε") |
|
173 |
("Zeta" "Z" nil "Ζ" "Zeta" "Zeta" "Ζ") |
|
174 |
("zeta" "\\zeta" t "ζ" "zeta" "zeta" "ζ") |
|
175 |
("Eta" "H" nil "Η" "Eta" "Eta" "Η") |
|
176 |
("eta" "\\eta" t "η" "eta" "eta" "η") |
|
177 |
("Theta" "\\Theta" t "Θ" "Theta" "Theta" "Θ") |
|
178 |
("theta" "\\theta" t "θ" "theta" "theta" "θ") |
|
179 |
("thetasym" "\\vartheta" t "ϑ" "theta" "theta" "ϑ") |
|
180 |
("vartheta" "\\vartheta" t "ϑ" "theta" "theta" "ϑ") |
|
181 |
("Iota" "I" nil "Ι" "Iota" "Iota" "Ι") |
|
182 |
("iota" "\\iota" t "ι" "iota" "iota" "ι") |
|
183 |
("Kappa" "K" nil "Κ" "Kappa" "Kappa" "Κ") |
|
184 |
("kappa" "\\kappa" t "κ" "kappa" "kappa" "κ") |
|
185 |
("Lambda" "\\Lambda" t "Λ" "Lambda" "Lambda" "Λ") |
|
186 |
("lambda" "\\lambda" t "λ" "lambda" "lambda" "λ") |
|
187 |
("Mu" "M" nil "Μ" "Mu" "Mu" "Μ") |
|
188 |
("mu" "\\mu" t "μ" "mu" "mu" "μ") |
|
189 |
("nu" "\\nu" t "ν" "nu" "nu" "ν") |
|
190 |
("Nu" "N" nil "Ν" "Nu" "Nu" "Ν") |
|
191 |
("Xi" "\\Xi" t "Ξ" "Xi" "Xi" "Ξ") |
|
192 |
("xi" "\\xi" t "ξ" "xi" "xi" "ξ") |
|
193 |
("Omicron" "O" nil "Ο" "Omicron" "Omicron" "Ο") |
|
194 |
("omicron" "\\textit{o}" nil "ο" "omicron" "omicron" "ο") |
|
195 |
("Pi" "\\Pi" t "Π" "Pi" "Pi" "Π") |
|
196 |
("pi" "\\pi" t "π" "pi" "pi" "π") |
|
197 |
("Rho" "P" nil "Ρ" "Rho" "Rho" "Ρ") |
|
198 |
("rho" "\\rho" t "ρ" "rho" "rho" "ρ") |
|
199 |
("Sigma" "\\Sigma" t "Σ" "Sigma" "Sigma" "Σ") |
|
200 |
("sigma" "\\sigma" t "σ" "sigma" "sigma" "σ") |
|
201 |
("sigmaf" "\\varsigma" t "ς" "sigmaf" "sigmaf" "ς") |
|
202 |
("varsigma" "\\varsigma" t "ς" "varsigma" "varsigma" "ς") |
|
203 |
("Tau" "T" nil "Τ" "Tau" "Tau" "Τ") |
|
204 |
("Upsilon" "\\Upsilon" t "Υ" "Upsilon" "Upsilon" "Υ") |
|
205 |
("upsih" "\\Upsilon" t "ϒ" "upsilon" "upsilon" "ϒ") |
|
206 |
("upsilon" "\\upsilon" t "υ" "upsilon" "upsilon" "υ") |
|
207 |
("Phi" "\\Phi" t "Φ" "Phi" "Phi" "Φ") |
|
208 |
("phi" "\\phi" t "φ" "phi" "phi" "ɸ") |
|
209 |
("varphi" "\\varphi" t "ϕ" "varphi" "varphi" "φ") |
|
210 |
("Chi" "X" nil "Χ" "Chi" "Chi" "Χ") |
|
211 |
("chi" "\\chi" t "χ" "chi" "chi" "χ") |
|
212 |
("acutex" "\\acute x" t "´x" "'x" "'x" "𝑥́") |
|
213 |
("Psi" "\\Psi" t "Ψ" "Psi" "Psi" "Ψ") |
|
214 |
("psi" "\\psi" t "ψ" "psi" "psi" "ψ") |
|
215 |
("tau" "\\tau" t "τ" "tau" "tau" "τ") |
|
216 |
("Omega" "\\Omega" t "Ω" "Omega" "Omega" "Ω") |
|
217 |
("omega" "\\omega" t "ω" "omega" "omega" "ω") |
|
218 |
("piv" "\\varpi" t "ϖ" "omega-pi" "omega-pi" "ϖ") |
|
219 |
("varpi" "\\varpi" t "ϖ" "omega-pi" "omega-pi" "ϖ") |
|
220 |
("partial" "\\partial" t "∂" "[partial differential]" "[partial differential]" "∂") |
|
221 |
|
|
222 |
"** Hebrew" |
|
223 |
("alefsym" "\\aleph" t "ℵ" "aleph" "aleph" "ℵ") |
|
224 |
("aleph" "\\aleph" t "ℵ" "aleph" "aleph" "ℵ") |
|
225 |
("gimel" "\\gimel" t "ℷ" "gimel" "gimel" "ℷ") |
|
226 |
("beth" "\\beth" t "ℶ" "beth" "beth" "ב") |
|
227 |
("dalet" "\\daleth" t "ℸ" "dalet" "dalet" "ד") |
|
228 |
|
|
229 |
"** Dead languages" |
|
230 |
("ETH" "\\DH{}" nil "Ð" "D" "Ð" "Ð") |
|
231 |
("eth" "\\dh{}" nil "ð" "dh" "ð" "ð") |
|
232 |
("THORN" "\\TH{}" nil "Þ" "TH" "Þ" "Þ") |
|
233 |
("thorn" "\\th{}" nil "þ" "th" "þ" "þ") |
|
234 |
|
|
235 |
"* Punctuation" |
|
236 |
"** Dots and Marks" |
|
237 |
("dots" "\\dots{}" nil "…" "..." "..." "…") |
|
238 |
("cdots" "\\cdots{}" t "⋯" "..." "..." "⋯") |
|
239 |
("hellip" "\\dots{}" nil "…" "..." "..." "…") |
|
240 |
("middot" "\\textperiodcentered{}" nil "·" "." "·" "·") |
|
241 |
("iexcl" "!`" nil "¡" "!" "¡" "¡") |
|
242 |
("iquest" "?`" nil "¿" "?" "¿" "¿") |
|
243 |
|
|
244 |
"** Dash-like" |
|
245 |
("shy" "\\-" nil "­" "" "" "") |
|
246 |
("ndash" "--" nil "–" "-" "-" "–") |
|
247 |
("mdash" "---" nil "—" "--" "--" "—") |
|
248 |
|
|
249 |
"** Quotations" |
|
250 |
("quot" "\\textquotedbl{}" nil """ "\"" "\"" "\"") |
|
251 |
("acute" "\\textasciiacute{}" nil "´" "'" "´" "´") |
|
252 |
("ldquo" "\\textquotedblleft{}" nil "“" "\"" "\"" "“") |
|
253 |
("rdquo" "\\textquotedblright{}" nil "”" "\"" "\"" "”") |
|
254 |
("bdquo" "\\quotedblbase{}" nil "„" "\"" "\"" "„") |
|
255 |
("lsquo" "\\textquoteleft{}" nil "‘" "`" "`" "‘") |
|
256 |
("rsquo" "\\textquoteright{}" nil "’" "'" "'" "’") |
|
257 |
("sbquo" "\\quotesinglbase{}" nil "‚" "," "," "‚") |
|
258 |
("laquo" "\\guillemotleft{}" nil "«" "<<" "«" "«") |
|
259 |
("raquo" "\\guillemotright{}" nil "»" ">>" "»" "»") |
|
260 |
("lsaquo" "\\guilsinglleft{}" nil "‹" "<" "<" "‹") |
|
261 |
("rsaquo" "\\guilsinglright{}" nil "›" ">" ">" "›") |
|
262 |
|
|
263 |
"* Other" |
|
264 |
"** Misc. (often used)" |
|
265 |
("circ" "\\^{}" nil "ˆ" "^" "^" "∘") |
|
266 |
("vert" "\\vert{}" t "|" "|" "|" "|") |
|
267 |
("vbar" "|" nil "|" "|" "|" "|") |
|
268 |
("brvbar" "\\textbrokenbar{}" nil "¦" "|" "¦" "¦") |
|
269 |
("S" "\\S" nil "§" "paragraph" "§" "§") |
|
270 |
("sect" "\\S" nil "§" "paragraph" "§" "§") |
|
271 |
("amp" "\\&" nil "&" "&" "&" "&") |
|
272 |
("lt" "\\textless{}" nil "<" "<" "<" "<") |
|
273 |
("gt" "\\textgreater{}" nil ">" ">" ">" ">") |
|
274 |
("tilde" "\\textasciitilde{}" nil "~" "~" "~" "~") |
|
275 |
("slash" "/" nil "/" "/" "/" "/") |
|
276 |
("plus" "+" nil "+" "+" "+" "+") |
|
277 |
("under" "\\_" nil "_" "_" "_" "_") |
|
278 |
("equal" "=" nil "=" "=" "=" "=") |
|
279 |
("asciicirc" "\\textasciicircum{}" nil "^" "^" "^" "^") |
|
280 |
("dagger" "\\textdagger{}" nil "†" "[dagger]" "[dagger]" "†") |
|
281 |
("dag" "\\dag{}" nil "†" "[dagger]" "[dagger]" "†") |
|
282 |
("Dagger" "\\textdaggerdbl{}" nil "‡" "[doubledagger]" "[doubledagger]" "‡") |
|
283 |
("ddag" "\\ddag{}" nil "‡" "[doubledagger]" "[doubledagger]" "‡") |
|
284 |
|
|
285 |
"** Whitespace" |
|
286 |
("nbsp" "~" nil " " " " "\x00A0" "\x00A0") |
|
287 |
("ensp" "\\hspace*{.5em}" nil " " " " " " " ") |
|
288 |
("emsp" "\\hspace*{1em}" nil " " " " " " " ") |
|
289 |
("thinsp" "\\hspace*{.2em}" nil " " " " " " " ") |
|
290 |
|
|
291 |
"** Currency" |
|
292 |
("curren" "\\textcurrency{}" nil "¤" "curr." "¤" "¤") |
|
293 |
("cent" "\\textcent{}" nil "¢" "cent" "¢" "¢") |
|
294 |
("pound" "\\pounds{}" nil "£" "pound" "£" "£") |
|
295 |
("yen" "\\textyen{}" nil "¥" "yen" "¥" "¥") |
|
296 |
("euro" "\\texteuro{}" nil "€" "EUR" "EUR" "€") |
|
297 |
("EUR" "\\texteuro{}" nil "€" "EUR" "EUR" "€") |
|
298 |
("dollar" "\\$" nil "$" "$" "$" "$") |
|
299 |
("USD" "\\$" nil "$" "$" "$" "$") |
|
300 |
|
|
301 |
"** Property Marks" |
|
302 |
("copy" "\\textcopyright{}" nil "©" "(c)" "©" "©") |
|
303 |
("reg" "\\textregistered{}" nil "®" "(r)" "®" "®") |
|
304 |
("trade" "\\texttrademark{}" nil "™" "TM" "TM" "™") |
|
305 |
|
|
306 |
"** Science et al." |
|
307 |
("minus" "\\minus" t "−" "-" "-" "−") |
|
308 |
("pm" "\\textpm{}" nil "±" "+-" "±" "±") |
|
309 |
("plusmn" "\\textpm{}" nil "±" "+-" "±" "±") |
|
310 |
("times" "\\texttimes{}" nil "×" "*" "×" "×") |
|
311 |
("frasl" "/" nil "⁄" "/" "/" "⁄") |
|
312 |
("colon" "\\colon" t ":" ":" ":" ":") |
|
313 |
("div" "\\textdiv{}" nil "÷" "/" "÷" "÷") |
|
314 |
("frac12" "\\textonehalf{}" nil "½" "1/2" "½" "½") |
|
315 |
("frac14" "\\textonequarter{}" nil "¼" "1/4" "¼" "¼") |
|
316 |
("frac34" "\\textthreequarters{}" nil "¾" "3/4" "¾" "¾") |
|
317 |
("permil" "\\textperthousand{}" nil "‰" "per thousand" "per thousand" "‰") |
|
318 |
("sup1" "\\textonesuperior{}" nil "¹" "^1" "¹" "¹") |
|
319 |
("sup2" "\\texttwosuperior{}" nil "²" "^2" "²" "²") |
|
320 |
("sup3" "\\textthreesuperior{}" nil "³" "^3" "³" "³") |
|
321 |
("radic" "\\sqrt{\\,}" t "√" "[square root]" "[square root]" "√") |
|
322 |
("sum" "\\sum" t "∑" "[sum]" "[sum]" "∑") |
|
323 |
("prod" "\\prod" t "∏" "[product]" "[n-ary product]" "∏") |
|
324 |
("micro" "\\textmu{}" nil "µ" "micro" "µ" "µ") |
|
325 |
("macr" "\\textasciimacron{}" nil "¯" "[macron]" "¯" "¯") |
|
326 |
("deg" "\\textdegree{}" nil "°" "degree" "°" "°") |
|
327 |
("prime" "\\prime" t "′" "'" "'" "′") |
|
328 |
("Prime" "\\prime{}\\prime" t "″" "''" "''" "″") |
|
329 |
("infin" "\\infty" t "∞" "[infinity]" "[infinity]" "∞") |
|
330 |
("infty" "\\infty" t "∞" "[infinity]" "[infinity]" "∞") |
|
331 |
("prop" "\\propto" t "∝" "[proportional to]" "[proportional to]" "∝") |
|
332 |
("propto" "\\propto" t "∝" "[proportional to]" "[proportional to]" "∝") |
|
333 |
("not" "\\textlnot{}" nil "¬" "[angled dash]" "¬" "¬") |
|
334 |
("neg" "\\neg{}" t "¬" "[angled dash]" "¬" "¬") |
|
335 |
("land" "\\land" t "∧" "[logical and]" "[logical and]" "∧") |
|
336 |
("wedge" "\\wedge" t "∧" "[logical and]" "[logical and]" "∧") |
|
337 |
("lor" "\\lor" t "∨" "[logical or]" "[logical or]" "∨") |
|
338 |
("vee" "\\vee" t "∨" "[logical or]" "[logical or]" "∨") |
|
339 |
("cap" "\\cap" t "∩" "[intersection]" "[intersection]" "∩") |
|
340 |
("cup" "\\cup" t "∪" "[union]" "[union]" "∪") |
|
341 |
("smile" "\\smile" t "⌣" "[cup product]" "[cup product]" "⌣") |
|
342 |
("frown" "\\frown" t "⌢" "[Cap product]" "[cap product]" "⌢") |
|
343 |
("int" "\\int" t "∫" "[integral]" "[integral]" "∫") |
|
344 |
("therefore" "\\therefore" t "∴" "[therefore]" "[therefore]" "∴") |
|
345 |
("there4" "\\therefore" t "∴" "[therefore]" "[therefore]" "∴") |
|
346 |
("because" "\\because" t "∵" "[because]" "[because]" "∵") |
|
347 |
("sim" "\\sim" t "∼" "~" "~" "∼") |
|
348 |
("cong" "\\cong" t "≅" "[approx. equal to]" "[approx. equal to]" "≅") |
|
349 |
("simeq" "\\simeq" t "≅" "[approx. equal to]" "[approx. equal to]" "≅") |
|
350 |
("asymp" "\\asymp" t "≈" "[almost equal to]" "[almost equal to]" "≈") |
|
351 |
("approx" "\\approx" t "≈" "[almost equal to]" "[almost equal to]" "≈") |
|
352 |
("ne" "\\ne" t "≠" "[not equal to]" "[not equal to]" "≠") |
|
353 |
("neq" "\\neq" t "≠" "[not equal to]" "[not equal to]" "≠") |
|
354 |
("equiv" "\\equiv" t "≡" "[identical to]" "[identical to]" "≡") |
|
355 |
|
|
356 |
("triangleq" "\\triangleq" t "≜" "[defined to]" "[defined to]" "≜") |
|
357 |
("le" "\\le" t "≤" "<=" "<=" "≤") |
|
358 |
("leq" "\\le" t "≤" "<=" "<=" "≤") |
|
359 |
("ge" "\\ge" t "≥" ">=" ">=" "≥") |
|
360 |
("geq" "\\ge" t "≥" ">=" ">=" "≥") |
|
361 |
("lessgtr" "\\lessgtr" t "≶" "[less than or greater than]" "[less than or greater than]" "≶") |
|
362 |
("lesseqgtr" "\\lesseqgtr" t "⋚" "[less than or equal or greater than or equal]" "[less than or equal or greater than or equal]" "⋚") |
|
363 |
("ll" "\\ll" t "≪" "<<" "<<" "≪") |
|
364 |
("Ll" "\\lll" t "⋘" "<<<" "<<<" "⋘") |
|
365 |
("lll" "\\lll" t "⋘" "<<<" "<<<" "⋘") |
|
366 |
("gg" "\\gg" t "≫" ">>" ">>" "≫") |
|
367 |
("Gg" "\\ggg" t "⋙" ">>>" ">>>" "⋙") |
|
368 |
("ggg" "\\ggg" t "⋙" ">>>" ">>>" "⋙") |
|
369 |
("prec" "\\prec" t "≺" "[precedes]" "[precedes]" "≺") |
|
370 |
("preceq" "\\preceq" t "≼" "[precedes or equal]" "[precedes or equal]" "≼") |
|
371 |
("preccurlyeq" "\\preccurlyeq" t "≼" "[precedes or equal]" "[precedes or equal]" "≼") |
|
372 |
("succ" "\\succ" t "≻" "[succeeds]" "[succeeds]" "≻") |
|
373 |
("succeq" "\\succeq" t "≽" "[succeeds or equal]" "[succeeds or equal]" "≽") |
|
374 |
("succcurlyeq" "\\succcurlyeq" t "≽" "[succeeds or equal]" "[succeeds or equal]" "≽") |
|
375 |
("sub" "\\subset" t "⊂" "[subset of]" "[subset of]" "⊂") |
|
376 |
("subset" "\\subset" t "⊂" "[subset of]" "[subset of]" "⊂") |
|
377 |
("sup" "\\supset" t "⊃" "[superset of]" "[superset of]" "⊃") |
|
378 |
("supset" "\\supset" t "⊃" "[superset of]" "[superset of]" "⊃") |
|
379 |
("nsub" "\\not\\subset" t "⊄" "[not a subset of]" "[not a subset of" "⊄") |
|
380 |
("sube" "\\subseteq" t "⊆" "[subset of or equal to]" "[subset of or equal to]" "⊆") |
|
381 |
("nsup" "\\not\\supset" t "⊅" "[not a superset of]" "[not a superset of]" "⊅") |
|
382 |
("supe" "\\supseteq" t "⊇" "[superset of or equal to]" "[superset of or equal to]" "⊇") |
|
383 |
("setminus" "\\setminus" t "∖" "\" "\" "⧵") |
|
384 |
("forall" "\\forall" t "∀" "[for all]" "[for all]" "∀") |
|
385 |
("exist" "\\exists" t "∃" "[there exists]" "[there exists]" "∃") |
|
386 |
("exists" "\\exists" t "∃" "[there exists]" "[there exists]" "∃") |
|
387 |
("nexist" "\\nexists" t "∃" "[there does not exists]" "[there does not exists]" "∄") |
|
388 |
("nexists" "\\nexists" t "∃" "[there does not exists]" "[there does not exists]" "∄") |
|
389 |
("empty" "\\empty" t "∅" "[empty set]" "[empty set]" "∅") |
|
390 |
("emptyset" "\\emptyset" t "∅" "[empty set]" "[empty set]" "∅") |
|
391 |
("isin" "\\in" t "∈" "[element of]" "[element of]" "∈") |
|
392 |
("in" "\\in" t "∈" "[element of]" "[element of]" "∈") |
|
393 |
("notin" "\\notin" t "∉" "[not an element of]" "[not an element of]" "∉") |
|
394 |
("ni" "\\ni" t "∋" "[contains as member]" "[contains as member]" "∋") |
|
395 |
("nabla" "\\nabla" t "∇" "[nabla]" "[nabla]" "∇") |
|
396 |
("ang" "\\angle" t "∠" "[angle]" "[angle]" "∠") |
|
397 |
("angle" "\\angle" t "∠" "[angle]" "[angle]" "∠") |
|
398 |
("perp" "\\perp" t "⊥" "[up tack]" "[up tack]" "⊥") |
|
399 |
("parallel" "\\parallel" t "∥" "||" "||" "∥") |
|
400 |
("sdot" "\\cdot" t "⋅" "[dot]" "[dot]" "⋅") |
|
401 |
("cdot" "\\cdot" t "⋅" "[dot]" "[dot]" "⋅") |
|
402 |
("lceil" "\\lceil" t "⌈" "[left ceiling]" "[left ceiling]" "⌈") |
|
403 |
("rceil" "\\rceil" t "⌉" "[right ceiling]" "[right ceiling]" "⌉") |
|
404 |
("lfloor" "\\lfloor" t "⌊" "[left floor]" "[left floor]" "⌊") |
|
405 |
("rfloor" "\\rfloor" t "⌋" "[right floor]" "[right floor]" "⌋") |
|
406 |
("lang" "\\langle" t "⟨" "<" "<" "⟨") |
|
407 |
("rang" "\\rangle" t "⟩" ">" ">" "⟩") |
|
408 |
("langle" "\\langle" t "⟨" "<" "<" "⟨") |
|
409 |
("rangle" "\\rangle" t "⟩" ">" ">" "⟩") |
|
410 |
("hbar" "\\hbar" t "ℏ" "hbar" "hbar" "ℏ") |
|
411 |
("mho" "\\mho" t "℧" "mho" "mho" "℧") |
|
412 |
|
|
413 |
"** Arrows" |
|
414 |
("larr" "\\leftarrow" t "←" "<-" "<-" "←") |
|
415 |
("leftarrow" "\\leftarrow" t "←" "<-" "<-" "←") |
|
416 |
("gets" "\\gets" t "←" "<-" "<-" "←") |
|
417 |
("lArr" "\\Leftarrow" t "⇐" "<=" "<=" "⇐") |
|
418 |
("Leftarrow" "\\Leftarrow" t "⇐" "<=" "<=" "⇐") |
|
419 |
("uarr" "\\uparrow" t "↑" "[uparrow]" "[uparrow]" "↑") |
|
420 |
("uparrow" "\\uparrow" t "↑" "[uparrow]" "[uparrow]" "↑") |
|
421 |
("uArr" "\\Uparrow" t "⇑" "[dbluparrow]" "[dbluparrow]" "⇑") |
|
422 |
("Uparrow" "\\Uparrow" t "⇑" "[dbluparrow]" "[dbluparrow]" "⇑") |
|
423 |
("rarr" "\\rightarrow" t "→" "->" "->" "→") |
|
424 |
("to" "\\to" t "→" "->" "->" "→") |
|
425 |
("rightarrow" "\\rightarrow" t "→" "->" "->" "→") |
|
426 |
("rArr" "\\Rightarrow" t "⇒" "=>" "=>" "⇒") |
|
427 |
("Rightarrow" "\\Rightarrow" t "⇒" "=>" "=>" "⇒") |
|
428 |
("darr" "\\downarrow" t "↓" "[downarrow]" "[downarrow]" "↓") |
|
429 |
("downarrow" "\\downarrow" t "↓" "[downarrow]" "[downarrow]" "↓") |
|
430 |
("dArr" "\\Downarrow" t "⇓" "[dbldownarrow]" "[dbldownarrow]" "⇓") |
|
431 |
("Downarrow" "\\Downarrow" t "⇓" "[dbldownarrow]" "[dbldownarrow]" "⇓") |
|
432 |
("harr" "\\leftrightarrow" t "↔" "<->" "<->" "↔") |
|
433 |
("leftrightarrow" "\\leftrightarrow" t "↔" "<->" "<->" "↔") |
|
434 |
("hArr" "\\Leftrightarrow" t "⇔" "<=>" "<=>" "⇔") |
|
435 |
("Leftrightarrow" "\\Leftrightarrow" t "⇔" "<=>" "<=>" "⇔") |
|
436 |
("crarr" "\\hookleftarrow" t "↵" "<-'" "<-'" "↵") |
|
437 |
("hookleftarrow" "\\hookleftarrow" t "↵" "<-'" "<-'" "↵") |
|
438 |
|
|
439 |
"** Function names" |
|
440 |
("arccos" "\\arccos" t "arccos" "arccos" "arccos" "arccos") |
|
441 |
("arcsin" "\\arcsin" t "arcsin" "arcsin" "arcsin" "arcsin") |
|
442 |
("arctan" "\\arctan" t "arctan" "arctan" "arctan" "arctan") |
|
443 |
("arg" "\\arg" t "arg" "arg" "arg" "arg") |
|
444 |
("cos" "\\cos" t "cos" "cos" "cos" "cos") |
|
445 |
("cosh" "\\cosh" t "cosh" "cosh" "cosh" "cosh") |
|
446 |
("cot" "\\cot" t "cot" "cot" "cot" "cot") |
|
447 |
("coth" "\\coth" t "coth" "coth" "coth" "coth") |
|
448 |
("csc" "\\csc" t "csc" "csc" "csc" "csc") |
|
449 |
("deg" "\\deg" t "°" "deg" "deg" "deg") |
|
450 |
("det" "\\det" t "det" "det" "det" "det") |
|
451 |
("dim" "\\dim" t "dim" "dim" "dim" "dim") |
|
452 |
("exp" "\\exp" t "exp" "exp" "exp" "exp") |
|
453 |
("gcd" "\\gcd" t "gcd" "gcd" "gcd" "gcd") |
|
454 |
("hom" "\\hom" t "hom" "hom" "hom" "hom") |
|
455 |
("inf" "\\inf" t "inf" "inf" "inf" "inf") |
|
456 |
("ker" "\\ker" t "ker" "ker" "ker" "ker") |
|
457 |
("lg" "\\lg" t "lg" "lg" "lg" "lg") |
|
458 |
("lim" "\\lim" t "lim" "lim" "lim" "lim") |
|
459 |
("liminf" "\\liminf" t "liminf" "liminf" "liminf" "liminf") |
|
460 |
("limsup" "\\limsup" t "limsup" "limsup" "limsup" "limsup") |
|
461 |
("ln" "\\ln" t "ln" "ln" "ln" "ln") |
|
462 |
("log" "\\log" t "log" "log" "log" "log") |
|
463 |
("max" "\\max" t "max" "max" "max" "max") |
|
464 |
("min" "\\min" t "min" "min" "min" "min") |
|
465 |
("Pr" "\\Pr" t "Pr" "Pr" "Pr" "Pr") |
|
466 |
("sec" "\\sec" t "sec" "sec" "sec" "sec") |
|
467 |
("sin" "\\sin" t "sin" "sin" "sin" "sin") |
|
468 |
("sinh" "\\sinh" t "sinh" "sinh" "sinh" "sinh") |
|
469 |
("sup" "\\sup" t "⊃" "sup" "sup" "sup") |
|
470 |
("tan" "\\tan" t "tan" "tan" "tan" "tan") |
|
471 |
("tanh" "\\tanh" t "tanh" "tanh" "tanh" "tanh") |
|
472 |
|
|
473 |
"** Signs & Symbols" |
|
474 |
("bull" "\\textbullet{}" nil "•" "*" "*" "•") |
|
475 |
("bullet" "\\textbullet{}" nil "•" "*" "*" "•") |
|
476 |
("star" "\\star" t "*" "*" "*" "⋆") |
|
477 |
("lowast" "\\ast" t "∗" "*" "*" "∗") |
|
478 |
("ast" "\\ast" t "∗" "*" "*" "*") |
|
479 |
("odot" "\\odot" t "o" "[circled dot]" "[circled dot]" "ʘ") |
|
480 |
("oplus" "\\oplus" t "⊕" "[circled plus]" "[circled plus]" "⊕") |
|
481 |
("otimes" "\\otimes" t "⊗" "[circled times]" "[circled times]" "⊗") |
|
482 |
("check" "\\checkmark" t "✓" "[checkmark]" "[checkmark]" "✓") |
|
483 |
("checkmark" "\\checkmark" t "✓" "[checkmark]" "[checkmark]" "✓") |
|
484 |
|
|
485 |
"** Miscellaneous (seldom used)" |
|
486 |
("para" "\\P{}" nil "¶" "[pilcrow]" "¶" "¶") |
|
487 |
("ordf" "\\textordfeminine{}" nil "ª" "_a_" "ª" "ª") |
|
488 |
("ordm" "\\textordmasculine{}" nil "º" "_o_" "º" "º") |
|
489 |
("cedil" "\\c{}" nil "¸" "[cedilla]" "¸" "¸") |
|
490 |
("oline" "\\overline{~}" t "‾" "[overline]" "¯" "‾") |
|
491 |
("uml" "\\textasciidieresis{}" nil "¨" "[diaeresis]" "¨" "¨") |
|
492 |
("zwnj" "\\/{}" nil "‌" "" "" "") |
|
493 |
("zwj" "" nil "‍" "" "" "") |
|
494 |
("lrm" "" nil "‎" "" "" "") |
|
495 |
("rlm" "" nil "‏" "" "" "") |
|
496 |
|
|
497 |
"** Smilies" |
|
498 |
("smiley" "\\ddot\\smile" t "☺" ":-)" ":-)" "☺") |
|
499 |
("blacksmile" "\\ddot\\smile" t "☻" ":-)" ":-)" "☻") |
|
500 |
("sad" "\\ddot\\frown" t "☹" ":-(" ":-(" "☹") |
|
501 |
("frowny" "\\ddot\\frown" t "☹" ":-(" ":-(" "☹") |
|
502 |
|
|
503 |
"** Suits" |
|
504 |
("clubs" "\\clubsuit" t "♣" "[clubs]" "[clubs]" "♣") |
|
505 |
("clubsuit" "\\clubsuit" t "♣" "[clubs]" "[clubs]" "♣") |
|
506 |
("spades" "\\spadesuit" t "♠" "[spades]" "[spades]" "♠") |
|
507 |
("spadesuit" "\\spadesuit" t "♠" "[spades]" "[spades]" "♠") |
|
508 |
("hearts" "\\heartsuit" t "♥" "[hearts]" "[hearts]" "♥") |
|
509 |
("heartsuit" "\\heartsuit" t "♥" "[hearts]" "[hearts]" "♥") |
|
510 |
("diams" "\\diamondsuit" t "♦" "[diamonds]" "[diamonds]" "◆") |
|
511 |
("diamondsuit" "\\diamondsuit" t "♦" "[diamonds]" "[diamonds]" "◆") |
|
512 |
("diamond" "\\diamondsuit" t "⋄" "[diamond]" "[diamond]" "◆") |
|
513 |
("Diamond" "\\diamondsuit" t "⋄" "[diamond]" "[diamond]" "◆") |
|
514 |
("loz" "\\lozenge" t "◊" "[lozenge]" "[lozenge]" "⧫")) |
|
515 |
;; Add "\_ "-entity family for spaces. |
|
516 |
(let (space-entities html-spaces (entity "_")) |
|
517 |
(dolist (n (number-sequence 1 20) (nreverse space-entities)) |
|
518 |
(let ((spaces (make-string n ?\s))) |
|
519 |
(push (list (setq entity (concat entity " ")) |
|
520 |
(format "\\hspace*{%sem}" (* n .5)) |
|
521 |
nil |
|
522 |
(setq html-spaces (concat " " html-spaces)) |
|
523 |
spaces |
|
524 |
spaces |
|
525 |
(make-string n ?\x2002)) |
|
526 |
space-entities))))) |
|
527 |
"Default entities used in Org mode to produce special characters. |
|
528 |
For details see `org-entities-user'.") |
|
529 |
|
|
530 |
(defsubst org-entity-get (name) |
|
531 |
"Get the proper association for NAME from the entity lists. |
|
532 |
This first checks the user list, then the built-in list." |
|
533 |
(or (assoc name org-entities-user) |
|
534 |
(assoc name org-entities))) |
|
535 |
|
|
536 |
;; Helpfunctions to create a table for orgmode.org/worg/org-symbols.org |
|
537 |
|
|
538 |
(defun org-entities-create-table () |
|
539 |
"Create an Org mode table with all entities." |
|
540 |
(interactive) |
|
541 |
(let ((pos (point))) |
|
542 |
(insert "|Name|LaTeX code|LaTeX|HTML code |HTML|ASCII|Latin1|UTF-8\n|-\n") |
|
543 |
(dolist (e org-entities) |
|
544 |
(pcase e |
|
545 |
(`(,name ,latex ,mathp ,html ,ascii ,latin ,utf8) |
|
546 |
(if (equal ascii "|") (setq ascii "\\vert")) |
|
547 |
(if (equal latin "|") (setq latin "\\vert")) |
|
548 |
(if (equal utf8 "|") (setq utf8 "\\vert")) |
|
549 |
(if (equal ascii "=>") (setq ascii "= >")) |
|
550 |
(if (equal latin "=>") (setq latin "= >")) |
|
551 |
(insert "|" name |
|
552 |
"|" (format "=%s=" latex) |
|
553 |
"|" (format (if mathp "$%s$" "$\\mbox{%s}$") latex) |
|
554 |
"|" (format "=%s=" html) "|" html |
|
555 |
"|" ascii "|" latin "|" utf8 |
|
556 |
"|\n")))) |
|
557 |
(goto-char pos) |
|
558 |
(org-table-align))) |
|
559 |
|
|
560 |
(defvar org-pretty-entities) ;; declare defcustom from org |
|
561 |
(defun org-entities-help () |
|
562 |
"Create a Help buffer with all available entities." |
|
563 |
(interactive) |
|
564 |
(with-output-to-temp-buffer "*Org Entity Help*" |
|
565 |
(princ "Org mode entities\n=================\n\n") |
|
566 |
(let ((ll (append '("* User-defined additions (variable org-entities-user)") |
|
567 |
org-entities-user |
|
568 |
org-entities)) |
|
569 |
(lastwasstring t) |
|
570 |
(head (concat |
|
571 |
"\n" |
|
572 |
" Symbol Org entity LaTeX code HTML code\n" |
|
573 |
" -----------------------------------------------------------\n"))) |
|
574 |
(dolist (e ll) |
|
575 |
(pcase e |
|
576 |
(`(,name ,latex ,_ ,html ,_ ,_ ,utf8) |
|
577 |
(when lastwasstring |
|
578 |
(princ head) |
|
579 |
(setq lastwasstring nil)) |
|
580 |
(princ (format " %-8s \\%-16s %-22s %-13s\n" |
|
581 |
utf8 name latex html))) |
|
582 |
((pred stringp) |
|
583 |
(princ e) |
|
584 |
(princ "\n") |
|
585 |
(setq lastwasstring t)))))) |
|
586 |
(with-current-buffer "*Org Entity Help*" |
|
587 |
(org-mode) |
|
588 |
(when org-pretty-entities |
|
589 |
(org-toggle-pretty-entities))) |
|
590 |
(select-window (get-buffer-window "*Org Entity Help*"))) |
|
591 |
|
|
592 |
|
|
593 |
(provide 'org-entities) |
|
594 |
|
|
595 |
;; Local variables: |
|
596 |
;; coding: utf-8 |
|
597 |
;; End: |
|
598 |
|
|
599 |
;;; org-entities.el ends here |