From b40448691347ceef93c4bba74a623c61fcbc19a1 Mon Sep 17 00:00:00 2001 From: Leo Liu Date: Tue, 10 May 2011 16:20:21 +0800 Subject: [PATCH] Add a new footnote style unicode See also the discussion thread in: http://thread.gmane.org/gmane.emacs.devel/139221 --- lisp/ChangeLog | 4 ++++ lisp/mail/footnote.el | 26 +++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 1 deletion(-) 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'." -- 2.39.2