Werner LEMBERG <[email protected]> writes:

> Thanks.  Will have a look soon.  BTW, I just found out that there two
> additional commands, namely
>
>   \footnote++
>   \footnote--
>
> And if there is the command
>
>   \DeclareNewFootnote{A}
>
> there are four new commands special to bigfoot:
>
>   \footnoteA+
>   \footnoteA++
>   \footnoteA-
>   \footnoteA--
>
> Other objects created by `\DeclareNewFootnote` are the same to what
> the 'manyfoot' package does:

Thanks!  I'd appreciate if you could test the files attached.  Based on
the above, I had to patch font-latex.el even more to deal with the '++'
stuff; a new diff is attached.  You also have a manyfoot.el at your
service which parses your file(s) for \DeclareNewFootnote and declares
all the macros/counter/fontification rules etc.  Please let me know if
it works as expected.  May we shouldn't fontify the final mandatory
argument of the \footnote* macros?

Best, Arash
diff --git a/font-latex.el b/font-latex.el
index 0908d78e..4ef7de08 100644
--- a/font-latex.el
+++ b/font-latex.el
@@ -1622,10 +1622,11 @@ Returns nil if none of KEYWORDS is found."
           (goto-char (match-end 0))
           ;; Check for starred macro if first spec is an asterisk or a
           ;; plus sign in case of \defaultfontfeatures+ provided by
-          ;; fontspec.sty
-          (when (memql (car spec-list) '(?* ?+))
+          ;; fontspec.sty or a minus sign in case of \footnote- provided
+          ;; by bigfoot.sty:
+          (when (memql (car spec-list) '(?* ?+ ?-))
             (setq spec-list (cdr spec-list))
-            (skip-chars-forward "*+" (1+ (point))))
+            (skip-chars-forward "*+-" (1+ (point))))
           ;; Add current point to match data and use keyword face for
           ;; region from start to point.
           (nconc match-data (list (point)))
@@ -1652,7 +1653,7 @@ Returns nil if none of KEYWORDS is found."
                                      (forward-char)
                                      (if (zerop (skip-syntax-forward "_w"))
                                          (forward-char) ; Single-char macro.
-                                       (skip-chars-forward "*+"))
+                                       (skip-chars-forward "*+-"))
                                      (point))))
                       (nconc font-latex-matched-faces (list face))
                       (setq end (max end (point)))
@@ -1674,8 +1675,8 @@ Returns nil if none of KEYWORDS is found."
                     (when (and match-beg (= match-beg (point)))
                       (setq error-indicator-pos match-beg))
                     (throw 'break nil))))
-               ;; Asterisk or plus sign between arguments (sigh!):
-               ((and (memql spec '(?* ?+))
+               ;; Asterisk, plus or minus sign between arguments (sigh!):
+               ((and (memql spec '(?* ?+ ?-))
                      (= (char-after) spec))
                 (setq match-beg (point))
                 (if (= (char-after) spec)
@@ -1683,7 +1684,7 @@ Returns nil if none of KEYWORDS is found."
                       (nconc match-data
                              (list (point)
                                    (progn
-                                     (skip-chars-forward "*+")
+                                     (skip-chars-forward "*+-")
                                      (point))))
                       (nconc font-latex-matched-faces
                              (list 'font-lock-keyword-face))

Attachment: manyfoot.el
Description: application/emacs-lisp

Attachment: bigfoot.el
Description: application/emacs-lisp

Attachment: perpage.el
Description: application/emacs-lisp

_______________________________________________
bug-auctex mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/bug-auctex

Reply via email to