From: Leo Liu Date: Tue, 10 May 2011 08:20:21 +0000 (+0800) Subject: Add a new footnote style unicode X-Git-Tag: emacs-pretest-24.0.90~104^2~618^2~316 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=b40448691347ceef93c4bba74a623c61fcbc19a1;p=emacs.git Add a new footnote style unicode See also the discussion thread in: http://thread.gmane.org/gmane.emacs.devel/139221 --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 07a39ea8302..927a3256c84 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,6 +1,10 @@ 2011-05-10 Leo Liu * 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 Stefan Monnier diff --git a/lisp/mail/footnote.el b/lisp/mail/footnote.el index c225e4263a8..8dac3be0e5f 100644 --- a/lisp/mail/footnote.el +++ b/lisp/mail/footnote.el @@ -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'."