emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r104184: Add a new footnote style uni


From: Leo Liu
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r104184: Add a new footnote style unicode
Date: Tue, 10 May 2011 16:20:21 +0800
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 104184
committer: Leo Liu <address@hidden>
branch nick: trunk
timestamp: Tue 2011-05-10 16:20:21 +0800
message:
  Add a new footnote style unicode
  
  See also the discussion thread in:
  http://thread.gmane.org/gmane.emacs.devel/139221
modified:
  lisp/ChangeLog
  lisp/mail/footnote.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2011-05-10 08:14:42 +0000
+++ b/lisp/ChangeLog    2011-05-10 08:20:21 +0000
@@ -1,6 +1,10 @@
 2011-05-10  Leo Liu  <address@hidden>
 
        * 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  <address@hidden>
           Stefan Monnier  <address@hidden>

=== modified file 'lisp/mail/footnote.el'
--- a/lisp/mail/footnote.el     2011-05-10 08:14:42 +0000
+++ b/lisp/mail/footnote.el     2011-05-10 08:20:21 +0000
@@ -291,6 +291,25 @@
   (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 @@
     (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 @@
 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'."


reply via email to

[Prev in Thread] Current Thread [Next in Thread]