]> git.eshelyaron.com Git - emacs.git/commitdiff
Add a new footnote style unicode
authorLeo Liu <sdl.web@gmail.com>
Tue, 10 May 2011 08:20:21 +0000 (16:20 +0800)
committerLeo Liu <sdl.web@gmail.com>
Tue, 10 May 2011 08:20:21 +0000 (16:20 +0800)
See also the discussion thread in:
http://thread.gmane.org/gmane.emacs.devel/139221

lisp/ChangeLog
lisp/mail/footnote.el

index 07a39ea8302e4052567ece94b6608c9662ce4d4f..927a3256c84b3bfb7f641c174e5c380a3543bfe6 100644 (file)
@@ -1,6 +1,10 @@
 2011-05-10  Leo Liu  <sdl.web@gmail.com>
 
        * mail/footnote.el: Convert to utf-8 encoding.
+       (footnote-unicode-string, footnote-unicode-regexp): New variable.
+       (Footnote-unicode): New function.
+       (footnote-style-alist): Add unicode style to the list.
+       (footnote-style): Doc fix.
 
 2011-05-10  Glenn Morris  <rgm@gnu.org>
           Stefan Monnier  <monnier@iro.umontreal.ca>
index c225e4263a8aba033e5c227bf1fb41cfddeadb20..8dac3be0e5f860926ecdab0fc1e18ff1826f937e 100644 (file)
@@ -291,6 +291,25 @@ Use a range of Latin-1 non-ASCII characters for footnoting."
   (string (aref footnote-latin-string
                (mod (1- n) (length footnote-latin-string)))))
 
+;; Unicode
+
+(defconst footnote-unicode-string "⁰¹²³⁴⁵⁶⁷⁸⁹"
+  "String of unicode footnoting characters.")
+
+(defconst footnote-unicode-regexp (concat "[" footnote-unicode-string "]+")
+  "Regexp for unicode footnoting characters.")
+
+(defun Footnote-unicode (n)
+  "Unicode footnote style.
+Use unicode characters for footnoting."
+  (let (modulus result done)
+    (while (not done)
+      (setq modulus (mod n 10)
+            n (truncate n 10))
+      (and (zerop n) (setq done t))
+      (push (aref footnote-unicode-string modulus) result))
+    (apply #'string result)))
+
 ;;; list of all footnote styles
 (defvar footnote-style-alist
   `((numeric Footnote-numeric ,footnote-numeric-regexp)
@@ -298,7 +317,8 @@ Use a range of Latin-1 non-ASCII characters for footnoting."
     (english-upper Footnote-english-upper ,footnote-english-upper-regexp)
     (roman-lower Footnote-roman-lower ,footnote-roman-lower-regexp)
     (roman-upper Footnote-roman-upper ,footnote-roman-upper-regexp)
-    (latin Footnote-latin ,footnote-latin-regexp))
+    (latin Footnote-latin ,footnote-latin-regexp)
+    (unicode Footnote-unicode ,footnote-unicode-regexp))
   "Styles of footnote tags available.
 By default only boring Arabic numbers, English letters and Roman Numerals
 are available.
@@ -313,8 +333,12 @@ english-upper == A, B, C, ...
 roman-lower == i, ii, iii, iv, v, ...
 roman-upper == I, II, III, IV, V, ...
 latin == ¹ ² ³ º ª § ¶
+unicode == ¹, ², ³, ...
 See also variables `footnote-start-tag' and `footnote-end-tag'.
 
+Note: some characters in the unicode style may not show up
+properly if the default font does not contain those characters.
+
 Customizing this variable has no effect on buffers already
 displaying footnotes.  To change the style of footnotes in such a
 buffer use the command `Footnote-set-style'."