[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/auctex 61f8825cfd 05/13: Add new style/amsrefs.el
From: |
ELPA Syncer |
Subject: |
[elpa] externals/auctex 61f8825cfd 05/13: Add new style/amsrefs.el |
Date: |
Wed, 15 May 2024 06:57:29 -0400 (EDT) |
branch: externals/auctex
commit 61f8825cfdd2d3746e7d85e0d9c91811d0ec3d38
Author: Arash Esbati <arash@gnu.org>
Commit: Arash Esbati <arash@gnu.org>
Add new style/amsrefs.el
* Makefile.in (STYLESRC): Add new style.
* style/amsrefs.el: New file.
---
Makefile.in | 2 +-
style/amsrefs.el | 233 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 234 insertions(+), 1 deletion(-)
diff --git a/Makefile.in b/Makefile.in
index bc2ea9510f..9dcb3d7b66 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -198,7 +198,7 @@ STYLESRC = style/prosper.el \
style/amsaddr.el style/parskip.el style/catchfilebetweentags.el \
style/physics.el style/soul.el style/algpseudocodex.el \
style/wasysym.el style/refcount.el style/simpleicons.el \
- style/changebar.el
+ style/changebar.el style/amsrefs.el
STYLEELC = $(STYLESRC:.el=.elc)
diff --git a/style/amsrefs.el b/style/amsrefs.el
new file mode 100644
index 0000000000..babfebb12b
--- /dev/null
+++ b/style/amsrefs.el
@@ -0,0 +1,233 @@
+;;; amsrefs.el --- AUCTeX style for `amsrefs.sty' -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2024 Free Software Foundation, Inc.
+
+;; Author: Arash Esbati <arash@gnu.org>
+;; Maintainer: auctex-devel@gnu.org
+;; Created: 2024-02-21
+;; Keywords: tex
+
+;; This file is part of AUCTeX.
+
+;; AUCTeX is free software; you can redistribute it and/or modify it
+;; under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 3, or (at your option)
+;; any later version.
+
+;; AUCTeX is distributed in the hope that it will be useful, but
+;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;; General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with AUCTeX; see the file COPYING. If not, write to the Free
+;; Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+;; MA 02110-1301 USA.
+
+;;; Commentary:
+
+;; This file adds support for `amsrefs.sty' form 2013-01-16.
+
+;;; Code:
+
+(require 'tex)
+(require 'latex)
+
+;; Silence the compiler:
+(declare-function font-latex-add-keywords
+ "font-latex"
+ (keywords class))
+
+(defun LaTeX-item-amsrefs-bib ()
+ "Insert a new bib item from the amsrefs package."
+ (TeX-insert-macro "bib"))
+
+(defun LaTeX-env-amsrefs-biblist (_environment)
+ "Ignore ENVIRONMENT and insert a \"biblist\" environment with arguments."
+ (let ((opt (TeX-read-string
+ (TeX-argument-prompt t nil "argument")))
+ (keyvals (unless (LaTeX-provided-class-options-member "amsrefs"
+ "author-year")
+ (TeX-read-key-val t '(("labels" ("numeric" "alphabetic"
+ "shortalphabetic"))
+ ("prefix"))))))
+ (LaTeX-insert-environment "biblist"
+ (concat (unless (string-empty-p opt)
+ (concat LaTeX-optop opt LaTeX-optcl))
+ (unless (string-empty-p keyvals)
+ (concat "*" TeX-grop keyvals
TeX-grcl)))))
+ (end-of-line 0)
+ (delete-char 1)
+ (delete-horizontal-space)
+ (LaTeX-insert-item))
+
+(defvar LaTeX-amsrefs-bib-regexp
+ `(,(concat "\\\\bib\\*?{\\(" TeX-token-char "[^, \n\r\t%\"#'()={}]*\\)}")
+ 1 LaTeX-auto-bibitem)
+ "Matches the cite key after the \\bib macro.")
+
+(defvar LaTeX-amsrefs-bib-key-val
+ '(;; Simple fields
+ ("accessdate")
+ ("address")
+ ("booktitle")
+ ("date")
+ ("edition")
+ ("eprint")
+ ("hyphenation")
+ ("journal")
+ ("label")
+ ("language")
+ ("note")
+ ("number")
+ ("organization")
+ ("pages")
+ ("part")
+ ("publisher")
+ ("series")
+ ("status")
+ ("subtitle")
+ ("title")
+ ("type")
+ ("volume")
+ ;; Repeatable fields
+ ("author")
+ ("editor")
+ ("translator")
+ ("isbn")
+ ("issn")
+ ("review")
+ ;; Compound fields: Not support by key=val system
+ ("book" ("{}"))
+ ("conference" ("{}"))
+ ("contribution" ("{}"))
+ ("partial" ("{}"))
+ ("reprint" ("{}"))
+ ("translation" ("{}")))
+ "Key=val options for the \\bib macro from amsrefs package.")
+
+(defun LaTeX-amsrefs-bib-key-val ()
+ "Return an updated list of key=vals for the amsrefs package."
+ (append `(("xref" ,(mapcar #'car (LaTeX-bibitem-list))))
+ LaTeX-amsrefs-bib-key-val))
+
+(TeX-add-style-hook
+ "amsrefs"
+ (lambda ()
+
+ ;; Add the entry to the parser
+ (TeX-auto-add-regexp LaTeX-amsrefs-bib-regexp)
+
+ ;; 3 The biblist and biblist* environments
+ (LaTeX-add-environments
+ '("bibdiv")
+ '("biblist" LaTeX-env-amsrefs-biblist))
+
+ (TeX-add-symbols
+ ;; 5 More about the \bib command
+ '("bib" "Bibitem label"
+ (TeX-arg-completing-read ("article" "book" "misc" "report"
+ "thesis" "web")
+ "Entry type")
+ (TeX-arg-key-val (LaTeX-amsrefs-bib-key-val)
+ "Field names"))
+
+ '("bib*" "Bibitem label"
+ (TeX-arg-completing-read ("article" "book" "misc" "report"
+ "thesis" "web")
+ "Entry type")
+ (TeX-arg-key-val (LaTeX-amsrefs-bib-key-val)
+ "Field names"))
+
+ ;; 7 Citing entries: \cite and friends: \cite is provided by
+ ;; latex.el:
+ '("cite*"
+ ;; We have to delete the `*' inserted by the hook and insert it
+ ;; later after the citation key:
+ (lambda (_optional)
+ (when (= (preceding-char) ?*)
+ (delete-char -1)))
+ TeX-arg-cite
+ (TeX-arg-literal "*")
+ (TeX-arg-conditional TeX-arg-cite-note-p ("Note") ()))
+
+ '("citelist" t)
+
+ '("cites" TeX-arg-cite)
+
+ ;; 8.4 Abbreviations: \DefineName, \DefineJournal, and
+ '("DefineName" 2)
+ '("DefinePublisher" 4)
+ '("DefineJournal" 4))
+
+ ;; 7.1 Author-year citation schemes
+ (when (LaTeX-provided-class-options-member "amsrefs" "author-year")
+ (TeX-add-symbols
+ '("ycite" TeX-arg-cite)
+ '("ocite" TeX-arg-cite)
+ '("citeauthor" TeX-arg-cite)
+ '("ycites" TeX-arg-cite)
+ '("ocites" TeX-arg-cite)
+ '("citeyear" TeX-arg-cite)
+ '("fullcite" TeX-arg-cite)
+ '("fullocite" TeX-arg-cite)))
+
+ ;; Cater for `M-RET':
+ (add-to-list 'LaTeX-item-list
+ '("biblist" . LaTeX-item-amsrefs-bib)
+ t)
+
+ ;; Don't indent material inside the "bibdiv" env:
+ (unless (string-match-p "bibdiv" LaTeX-document-regexp)
+ (setq-local LaTeX-document-regexp
+ (concat LaTeX-document-regexp "\\|bibdiv")))
+
+ ;; Try harder and don't match the wrong "bib" in
+ ;; "\\(bib\\)?item\\b":
+ (unless (string-match-p "\\\\|bib\\\\b" LaTeX-item-regexp)
+ (setq-local LaTeX-item-regexp
+ (concat LaTeX-item-regexp "\\|bib\\b")))
+
+ ;; Make \bib stay in its own line:
+ (LaTeX-paragraph-commands-add-locally "bib")
+
+ ;; Fontification
+ (when (and (featurep 'font-latex)
+ (eq TeX-install-font-lock 'font-latex-setup))
+ (font-latex-add-keywords '(("citelist" "{")
+ ("cites" "{"))
+ 'reference)
+ ;; Don't fontify the last argument which can be a long list of
+ ;; key=vals:
+ (font-latex-add-keywords '(("bib" "*{{"))
+ 'textual)
+ (font-latex-add-keywords '(("DefineName" "{{")
+ ("DefinePublisher" "{{{{")
+ ("DefineJournal" "{{{{"))
+ 'function)
+ (when (LaTeX-provided-class-options-member "amsrefs" "author-year")
+ (font-latex-add-keywords '(("ycite" "{")
+ ("ocite" "{")
+ ("citeauthor" "{")
+ ("ycites" "{")
+ ("ocites" "{")
+ ("citeyear" "{")
+ ("fullcite" "{")
+ ("fullocite" "{"))
+ 'reference))))
+ TeX-dialect)
+
+(defvar LaTeX-amsrefs-package-options
+ '(;; 6.1 Citation labels
+ "alphabetic" "shortalphabetic" "author-year" "y2k"
+ ;; 6.2 Citation sorting and compression
+ "non-compressed-cites" "non-sorted-cites"
+ ;; 6.3 Abbreviations
+ "abbrev" "initials" "short-journals" "short-months"
+ "short-publishers"
+ ;; 6.4 Miscellaneous options
+ "backrefs" "bibtex-style" "citation-order" "lite" "msc-links"
+ "nobysame")
+ "Package options for the amsrefs package.")
+
+;;; amsrefs.el ends here
- [elpa] externals/auctex updated (5a64a805e5 -> 543d92aa89), ELPA Syncer, 2024/05/15
- [elpa] externals/auctex 1d66dd1f6f 01/13: Enable lexical-binding in auto-generated styles, ELPA Syncer, 2024/05/15
- [elpa] externals/auctex bf7ceef14f 06/13: ; * NEWS.org: Update the file., ELPA Syncer, 2024/05/15
- [elpa] externals/auctex cba5820cf8 03/13: Allow compilation messages to be suppressed, ELPA Syncer, 2024/05/15
- [elpa] externals/auctex a7f80ab858 10/13: Replace `TeX-arg-eval' in style/moodle.el, ELPA Syncer, 2024/05/15
- [elpa] externals/auctex 5f039df961 02/13: ; * NEWS.org: Update the file., ELPA Syncer, 2024/05/15
- [elpa] externals/auctex 543d92aa89 13/13: Merge remote-tracking branch 'origin/master', ELPA Syncer, 2024/05/15
- [elpa] externals/auctex 59ddea9f13 04/13: Correct variable name, ELPA Syncer, 2024/05/15
- [elpa] externals/auctex 61f8825cfd 05/13: Add new style/amsrefs.el,
ELPA Syncer <=
- [elpa] externals/auctex 774974185a 07/13: Fix compilation on Emacs 27, ELPA Syncer, 2024/05/15
- [elpa] externals/auctex 7b9efc2e17 08/13: ; * style/amsrefs.el ("amsrefs"): Add the "biblist*" environment., ELPA Syncer, 2024/05/15
- [elpa] externals/auctex 600b92446f 09/13: ; * NEWS.org: Fix last change., ELPA Syncer, 2024/05/15
- [elpa] externals/auctex 970787f92d 11/13: Improve paragraph commands management for ConTeXt mode (bug#70811), ELPA Syncer, 2024/05/15
- [elpa] externals/auctex e30189d92a 12/13: ; * NEWS.org: Update for 14.0.5 ELPA release., ELPA Syncer, 2024/05/15