summaryrefslogtreecommitdiff
path: root/elpa/auctex-13.1.3/style/biblatex.el
diff options
context:
space:
mode:
Diffstat (limited to 'elpa/auctex-13.1.3/style/biblatex.el')
-rw-r--r--elpa/auctex-13.1.3/style/biblatex.el645
1 files changed, 645 insertions, 0 deletions
diff --git a/elpa/auctex-13.1.3/style/biblatex.el b/elpa/auctex-13.1.3/style/biblatex.el
new file mode 100644
index 0000000..43115be
--- /dev/null
+++ b/elpa/auctex-13.1.3/style/biblatex.el
@@ -0,0 +1,645 @@
+;;; biblatex.el --- AUCTeX style for `biblatex.sty' version 2.8a. -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2012-2021 Free Software Foundation, Inc.
+
+;; Author: Ralf Angeli <angeli@caeruleus.net>
+;; Maintainer: auctex-devel@gnu.org
+;; Created: 2012-11-14
+;; 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 St, Fifth Floor, Boston, MA
+;; 02110-1301, USA.
+
+;;; Commentary:
+
+;; This file adds support for `biblatex.sty' version 2.8a.
+
+;;; Code:
+
+(require 'tex)
+(require 'latex)
+
+;; Silence the compiler:
+(declare-function font-latex-add-keywords
+ "font-latex"
+ (keywords class))
+
+(defvar reftex-cite-format-builtin)
+
+(defvar LaTeX-biblatex-entrytype
+ '(;; Regular Types
+ "article" "book" "mvbook" "inbook" "bookinbook" "suppbook" "booklet"
+ "collection" "mvcollection" "incollection" "suppcollection" "manual" "misc"
+ "online" "patent" "periodical" "suppperiodical" "proceedings"
+ "mvproceedings" "inproceedings" "reference" "mvreference" "inreference"
+ "report" "set" "thesis" "unpublished" "xdata" "customa" "customb" "customc"
+ "customd" "custome" "customf"
+ ;; Type Aliases
+ "conference" "electronic" "masterthesis" "phdthesis" "techreport" "www"
+ ;; Unsupported Types
+ "artwork" "audio" "bibnote" "commentary" "image" "jurisdiction"
+ "legislation" "legal" "letter" "movie" "music" "performance" "review"
+ "software" "standard" "video")
+ "List of biblatex entry types.")
+
+(defvar LaTeX-biblatex-executebibliographyoptions-options
+ '(;; General
+ ("sorting" ("nty" "nyt" "nyvt" "anyt" "anyvt" "ynt" "ydnt" "none" "debug"))
+ ("sortcase" ("true" "false"))
+ ("sortupper" ("true" "false"))
+ ("sortlocale")
+ ("sortlos" ("bib" "los"))
+ ("related" ("true" "false"))
+ ("sortcites" ("true" "false"))
+ ("maxnames")
+ ("minnames")
+ ("maxbibnames")
+ ("minbibnames")
+ ("maxcitenames")
+ ("mincitenames")
+ ("maxitems")
+ ("minitems")
+ ("autocite" ("plain" "inline" "footnote" "superscript"))
+ ("autopunct" ("true" "false"))
+ ("language" (append LaTeX-biblatex-language-list
+ '("autobib" "autocite" "auto")))
+ ("clearlang" ("true" "false"))
+ ("autolang" ("none" "hyphen" "other" "other*" "langname"))
+ ("block" ("none" "space" "par" "nbpar" "ragged"))
+ ("notetype" ("foot+end" "footonly" "endonly"))
+ ("hyperref" ("true" "false" "auto"))
+ ("backref" ("true" "false"))
+ ("backrefstyle" ("none" "three" "two" "two+" "three+" "all+"))
+ ("backrefsetstyle" ("setonly" "memonly" "setormem" "setandmem" "memandset"
+ "setplusmem"))
+ ("indexing" ("true" "false" "cite" "bib"))
+ ("loadfiles" ("true" "false"))
+ ("refsection" ("none" "part" "chapter" "section" "subsection"))
+ ("refsegment" ("none" "part" "chapter" "section" "subsection"))
+ ("citereset" ("none" "part" "chapter" "section" "subsection"))
+ ("abbreviate" ("true" "false"))
+ ("date" ("short" "long" "terse" "comp" "iso8601"))
+ ("datelabel" ("year" "short" "long" "terse" "comp" "iso8601"))
+ ("origdate" ("short" "long" "terse" "comp" "iso8601"))
+ ("eventdate" ("short" "long" "terse" "comp" "iso8601"))
+ ("urldate" ("short" "long" "terse" "comp" "iso8601"))
+ ("alldates" ("short" "long" "terse" "comp" "iso8601"))
+ ("datezeros" ("true" "false"))
+ ("dateabbrev" ("true" "false"))
+ ("defernumbers" ("true" "false"))
+ ("punctfont" ("true" "false"))
+ ("arxiv" ("abs" "ps" "pdf" "format"))
+ ("texencoding" ("auto"))
+ ("bibencoding" ("auto"))
+ ("safeinputenc" ("true" "false"))
+ ("bibwarn" ("true" "false"))
+ ("mincrossrefs")
+ ;; Style-specific
+ ("isbn" ("true" "false"))
+ ("url" ("true" "false"))
+ ("doi" ("true" "false"))
+ ("eprint" ("true" "false"))
+ ;; Internal
+ ("pagetracker" ("true" "false" "page" "spread"))
+ ("citecounter" ("true" "false" "context"))
+ ("citetracker" ("true" "false" "context" "strict" "constrict"))
+ ("ibidtracker" ("true" "false" "context" "strict" "constrict"))
+ ("opcittracker" ("true" "false" "context" "strict" "constrict"))
+ ("loccittracker" ("true" "false" "context" "strict" "constrict"))
+ ("idemtracker" ("true" "false" "context" "strict" "constrict"))
+ ("parentracker" ("true" "false"))
+ ("maxparens")
+ ("firstinits" ("true" "false"))
+ ("sortfirstinits" ("true" "false"))
+ ("terseinits" ("true" "false"))
+ ("labelalpha" ("true" "false"))
+ ("maxalphanames")
+ ("minalphanames")
+ ("labelnumber" ("true" "false"))
+ ("labeltitle" ("true" "false"))
+ ("labeltitleyear" ("true" "false"))
+ ("labeldate" ("true" "false"))
+ ("singletitle" ("true" "false"))
+ ("uniquename" ("true" "false" "init" "full" "allinit" "allfull" "mininit"
+ "minfull"))
+ ("uniquelist" ("true" "false" "minyear")))
+ "Key=value options for ExecuteBibliographyOptions macro of the biblatex package.")
+
+;; See table 2 of Biblatex reference manual.
+(defvar LaTeX-biblatex-language-list
+ '("catalan" "croatian" "czech" "danish" "dutch" "american" "british"
+ "canadian" "australian" "newzealand" "finnish" "french" "german" "austrian"
+ "ngernam" "naustrian" "greek" "italian" "norwegian" "polish" "brazilian"
+ "portuguese" "russian" "spanish" "swedish")
+ "List of languages supported by biblatex packages.")
+
+(defvar LaTeX-biblatex-addbibresource-options
+ '(("label")
+ ("location" ("local" "remote"))
+ ("type" ("file"))
+ ("datatype" ("bibtex" "ris" "zoterordfxml" "endnotexml")))
+ "Key=value options for addbibresource macro of the biblatex package.")
+
+(defun LaTeX-arg-addbibresource (optional &optional prompt)
+ "Prompt for a BibLaTeX database file.
+If OPTIONAL is non-nil, insert the resulting value as an optional
+argument, otherwise as a mandatory one. Use PROMPT as the prompt
+string."
+ (let (files inputs database)
+ (if LaTeX-using-Biber
+ (setq files 'TeX-Biber-global-files
+ inputs 'biberinputs)
+ (setq files 'BibTeX-global-files
+ inputs 'bibinputs))
+ (setq files 'TeX-Biber-global-files
+ inputs 'biberinputs)
+ (message "Searching for BibLaTeX files...")
+ (or (symbol-value files)
+ (set files (mapcar #'list (TeX-search-files-by-type
+ 'biberinputs 'global t nil))))
+ (message "Searching for BibLaTeX files...done")
+ (setq database (completing-read
+ (TeX-argument-prompt optional prompt "BibLaTeX files")
+ (append (mapcar #'list (TeX-search-files-by-type
+ inputs 'local t nil))
+ (symbol-value files))))
+ (LaTeX-add-bibliographies database)
+ ;; Run style file associated to the bibliography database file in order to
+ ;; immediately fill `LaTeX-bibitem-list'. We need to strip the extension
+ ;; because AUCTeX style files don't use it.
+ (TeX-run-style-hooks (file-name-sans-extension database))
+ (TeX-argument-insert database optional)))
+
+;; Support for multicite commands, see § 3.7.3 of Biblatex reference manual.
+(defun LaTeX-arg-biblatex-cites (optional &optional prompt)
+ "Prompt for citations with completion until input is empty.
+Prompt also for optional prenotes and postnotes. If OPTIONAL is
+non-nil, insert the citation key as an optional argument,
+otherwise as a mandatory one. Use PROMPT as the prompt string
+for citation keys."
+ ;; Prompt for global prenote and postnote.
+ (and TeX-arg-cite-note-p (not current-prefix-arg)
+ (let ((TeX-arg-opening-brace "(")
+ (TeX-arg-closing-brace ")")
+ (prenote (TeX-read-string
+ (TeX-argument-prompt t nil "Global prenote"))))
+ (TeX-argument-insert prenote t)
+ ;; If the prenote is empty the postnote is optional, otherwise it's
+ ;; mandatory.
+ (TeX-argument-insert
+ (TeX-read-string (TeX-argument-prompt t nil "Global postnote"))
+ (equal prenote ""))))
+ (let ((items t) (noinsert nil))
+ (while items
+ ;; Prompt for prenote and postnote of the current keys.
+ (and TeX-arg-cite-note-p (not current-prefix-arg)
+ (let ((TeX-arg-opening-brace "[")
+ (TeX-arg-closing-brace "]")
+ (prenote (TeX-read-string
+ (TeX-argument-prompt t nil "Prenote"))))
+ (TeX-argument-insert prenote t)
+ ;; If the prenote is empty the postnote is optional, otherwise it's
+ ;; mandatory.
+ (TeX-argument-insert
+ (TeX-read-string (TeX-argument-prompt t nil "Postnote"))
+ (equal prenote ""))))
+ (setq items (if (and (fboundp 'reftex-citation)
+ (fboundp 'reftex-plug-flag)
+ (reftex-plug-flag 3))
+ ;; Use RefTeX when enabled.
+ (reftex-citation t)
+ ;; Multiple citation keys in each argument are allowed.
+ (TeX-completing-read-multiple
+ (TeX-argument-prompt optional prompt "Key(s)")
+ (LaTeX-bibitem-list))))
+ (apply #'LaTeX-add-bibitems items)
+ ;; If input is empty, insert an empty group only the first time, when
+ ;; `noinsert' flag is nil.
+ (unless (and (not items) noinsert)
+ (TeX-argument-insert (mapconcat #'identity items ",") optional))
+ (setq noinsert t))))
+
+(defun LaTeX-arg-biblatex-natbib-notes (optional)
+ "Prompt for two note arguments of a natbib compat citation command."
+ (when TeX-arg-cite-note-p
+ (let ((pre (TeX-read-string
+ (TeX-argument-prompt optional nil "Prenote")))
+ (post (TeX-read-string
+ (TeX-argument-prompt optional nil "Postnote"))))
+ (TeX-argument-insert pre optional)
+ (TeX-argument-insert post optional)
+ ;; pre is given, post is empty: Make sure that we insert an
+ ;; extra pair of `[]', otherwise pre becomes post
+ (when (and pre (not (string= pre ""))
+ (string= post ""))
+ (insert LaTeX-optop LaTeX-optcl)))))
+
+(TeX-add-style-hook
+ "biblatex"
+ (lambda ()
+ ;; Biblatex uses as default backend biber, run it unless biblatex `backend'
+ ;; option value is one of `bibtex', `bibtex8', `bibtexu'. Autodetection of
+ ;; the backend can be overridden by setting `LaTeX-biblatex-use-Biber' as a
+ ;; local variable.
+ (setq LaTeX-using-Biber
+ (if (local-variable-p 'LaTeX-biblatex-use-Biber (current-buffer))
+ LaTeX-biblatex-use-Biber
+ (not (or (LaTeX-provided-package-options-member
+ "biblatex" "backend=bibtex")
+ (LaTeX-provided-package-options-member
+ "biblatex" "backend=bibtex8")
+ (LaTeX-provided-package-options-member
+ "biblatex" "backend=bibtexu")))))
+
+ (TeX-run-style-hooks
+ "keyval"
+ "kvoptions"
+ "logreq"
+ "ifthen"
+ "url")
+ (TeX-add-symbols
+ ;;; Global Customization
+ ;; Setting Package Options
+ '("ExecuteBibliographyOptions"
+ [TeX-arg-eval mapconcat #'identity
+ (TeX-completing-read-multiple
+ "Entry type: " LaTeX-biblatex-entrytype) ","]
+ (TeX-arg-key-val LaTeX-biblatex-executebibliographyoptions-options))
+ ;;; Bibliography Commands
+ ;; Resources
+ '("addbibresource" [TeX-arg-key-val LaTeX-biblatex-addbibresource-options]
+ LaTeX-arg-addbibresource)
+ '("addglobalbib" [TeX-arg-key-val LaTeX-biblatex-addbibresource-options]
+ LaTeX-arg-addbibresource)
+ '("addsectionbib" [TeX-arg-key-val LaTeX-biblatex-addbibresource-options]
+ LaTeX-arg-addbibresource)
+ ;; The Bibliography
+ '("printbibliography"
+ [TeX-arg-key-val (("env") ("heading") ("title") ("prenote") ("postnote")
+ ("section") ("segment") ("sorting") ("type") ("nottype")
+ ("subtype") ("notsubtype") ("keyword") ("notkeyword")
+ ("categoy") ("notcategory") ("filter") ("check")
+ ("prefixnumbers") ("resetnumbers" ("true" "false"))
+ ("omitnumbers" ("true" "false")))])
+ '("bibbysection"
+ [TeX-arg-key-val (("env") ("heading") ("prenote") ("postnote"))])
+ '("bibbysegment"
+ [TeX-arg-key-val (("env") ("heading") ("prenote") ("postnote"))])
+ '("bibbycategory"
+ [TeX-arg-key-val (("env") ("prenote") ("postnote") ("section"))])
+ '("printbibheading"
+ [TeX-arg-key-val (("heading") ("title"))])
+ ;; The List of Shorthands
+ '("printshorthands"
+ [TeX-arg-key-val (("env") ("heading") ("title") ("prenote") ("postnote")
+ ("section") ("segment") ("sorting") ("type") ("nottype")
+ ("subtype") ("notsubtype") ("keyword") ("notkeyword")
+ ("categoy") ("notcategory") ("filter") ("check"))])
+ ;; Bibliography Sections
+ '("newrefsection" ["Resources"])
+ "endrefsection"
+ ;; Bibliography Segments
+ "newrefsegment"
+ "endrefsegment"
+ ;; Bibliography Categories
+ '("DeclareBibliographyCategory" "Category")
+ '("addtocategory" "Category" TeX-arg-cite)
+ ;; Bibliography Headings and Environments
+ '("defbibenvironment" "Name" 3)
+ '("defbibheading" "Name" ["Title"] t)
+ ;; Bibliography Notes
+ '("defbibnote" "Name" "Text")
+ ;; Bibliography Filters and Checks
+ '("defbibfilter" "Name" t)
+ '("defbibcheck" "Name" t)
+ ;; Dynamic Entry Sets
+ '("defbibentryset" "Set"
+ (TeX-arg-eval mapconcat #'identity (TeX-completing-read-multiple
+ "Keys: " (LaTeX-bibitem-list)) ","))
+ ;;; Citation Commands
+ '("cite" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("Cite" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("parencite" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("Parencite" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("footcite" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("footcitetext" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ ;; Style-specific Commands
+ '("textcite" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("Textcite" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("smartcite" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("Smartcite" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("cite*" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("parencite*" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("supercite" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ ;; Qualified Citation Lists
+ '("cites" LaTeX-arg-biblatex-cites)
+ '("Cites" LaTeX-arg-biblatex-cites)
+ '("parencites" LaTeX-arg-biblatex-cites)
+ '("Parencites" LaTeX-arg-biblatex-cites)
+ '("footcites" LaTeX-arg-biblatex-cites)
+ '("footcitetexts" LaTeX-arg-biblatex-cites)
+ '("smartcites" LaTeX-arg-biblatex-cites)
+ '("Smartcites" LaTeX-arg-biblatex-cites)
+ '("textcites" LaTeX-arg-biblatex-cites)
+ '("Textcites" LaTeX-arg-biblatex-cites)
+ '("supercites" LaTeX-arg-biblatex-cites)
+ ;; Style-independent Commands
+ '("autocite" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("Autocite" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("autocite*" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("Autocite*" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("autocites" LaTeX-arg-biblatex-cites)
+ '("Autocites" LaTeX-arg-biblatex-cites)
+ ;; Text Commands
+ '("citeauthor" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("Citeauthor" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("citeauthor*" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("Citeauthor*" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("citetitle" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("citetitle*" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("citeyear" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("citeyear*" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("citedate" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("citedate*" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("citeurl" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("parentext" "Text")
+ '("brackettext" "Text")
+ ;; Special Commands
+ '("fullcite" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("footfullcite" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("volcite"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite)
+ '("Volcite"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite)
+ '("Pvolcite"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite)
+ '("Pvolcite"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite)
+ '("fvolcite"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite)
+ '("ftolcite"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite)
+ '("svolcite"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite)
+ '("Svolcite"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite)
+ '("tvolcite"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite)
+ '("Tvolcite"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite)
+ '("avolcite"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite)
+ '("Avolcite"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"]) ()) "Volume"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Page"]) ()) TeX-arg-cite)
+ '("notecite" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("Notecite" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("pnotecite" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("Pnotecite" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ '("fnotecite" (TeX-arg-conditional TeX-arg-cite-note-p
+ (["Prenote"] ["Postnote"]) ()) TeX-arg-cite)
+ ;; Low-level Commands
+ '("citename"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ())
+ TeX-arg-cite (TeX-arg-conditional TeX-arg-cite-note-p (["Format"]) ())
+ "Name list")
+ '("citelist"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ())
+ TeX-arg-cite (TeX-arg-conditional TeX-arg-cite-note-p (["Format"]) ())
+ "Literal list")
+ '("citefield"
+ (TeX-arg-conditional TeX-arg-cite-note-p (["Prenote"] ["Postnote"]) ())
+ TeX-arg-cite (TeX-arg-conditional TeX-arg-cite-note-p (["Format"]) ())
+ "Field")
+ ;; Miscellaneous Commands
+ "citereset"
+ "citereset*"
+ "mancite"
+ "pno"
+ "ppno"
+ "nopp"
+ "psq"
+ "psqq"
+ '("RN" "Integer")
+ '("Rn" "Integer")
+ ;; Localization Commands
+ '("DefineBibliographyStrings"
+ (TeX-arg-eval completing-read "Language: " LaTeX-biblatex-language-list) t)
+ '("DefineBibliographyExtras"
+ (TeX-arg-eval completing-read "Language: " LaTeX-biblatex-language-list) t)
+ '("UndefineBibliographyExtras"
+ (TeX-arg-eval completing-read "Language: " LaTeX-biblatex-language-list) t)
+ '("DefineHyphenationExceptions"
+ (TeX-arg-eval completing-read "Language: " LaTeX-biblatex-language-list) t)
+ "NewBibliographyString")
+
+ ;; § 3.8.9 natbib Compatibility Commands
+ (when (or (LaTeX-provided-package-options-member "biblatex" "natbib")
+ (LaTeX-provided-package-options-member "biblatex" "natbib=true"))
+ (let ((cmds '(("citet" . 1) ("citet*" . 1)
+ ("Citet" . 1) ("Citet*" . 1)
+ ("citep" . 2) ("citep*" . 2)
+ ("Citep" . 2) ("Citep*" . 2)
+ ("citealt" . 1) ("citealt*" . 1)
+ ("Citealt" . 1) ("Citealt*" . 1)
+ ("citealp" . 2) ("citealp*" . 2)
+ ("Citealp" . 2) ("Citealp*" . 2))))
+ ;; Taken from natbib.el:
+ (apply
+ #'TeX-add-symbols
+ (mapcar
+ (lambda (cmd)
+ (cond
+ ((= (cdr cmd) 1)
+ ;; Just one optional argument, the post note
+ (list
+ (car cmd)
+ '(TeX-arg-conditional TeX-arg-cite-note-p (["Postnote"]) nil)
+ #'TeX-arg-cite))
+ ((= (cdr cmd) 2)
+ ;; Pre and post notes
+ (list
+ (car cmd)
+ '(TeX-arg-conditional TeX-arg-cite-note-p
+ ([LaTeX-arg-biblatex-natbib-notes])
+ nil)
+ #'TeX-arg-cite))))
+ cmds))
+
+ ;; Fontification for compat macros does not go into `font-latex.el':
+ (when (and (featurep 'font-latex)
+ (eq TeX-install-font-lock 'font-latex-setup))
+ (font-latex-add-keywords '(("citet" "*[[{")
+ ("Citet" "*[[{")
+ ("citep" "*[[{")
+ ("Citep" "*[[{")
+ ("citealt" "*[[{")
+ ("Citealt" "*[[{")
+ ("citealp" "*[[{")
+ ("Citealp" "*[[{"))
+ 'biblatex))))
+
+ (LaTeX-add-environments
+ ;;; Bibliography commands
+ ;; Bibliography Sections
+ '("refsection" ["Resources"])
+ ;; Bibliography Segments
+ "refsegment")
+
+ ;; Declaring expert macros and environments. Criterion: all macros and
+ ;; environments to fine tune the bibliography, probably they will be used
+ ;; only by expert users.
+ (TeX-declare-expert-macros
+ "biblatex"
+ "ExecuteBibliographyOptions" "printshorthands" "newrefsection"
+ "endrefsection" "newrefsegment" "endrefsegment"
+ "DeclareBibliographyCategory" "addtocategory" "defbibenvironment"
+ "defbibheading" "defbibnote" "defbibfilter" "defbibcheck" "defbibentryset"
+ "citereset" "citereset*" "mancite" "pno" "ppno" "nopp" "psq" "psqq" "RN"
+ "Rn" "DefineBibliographyStrings" "DefineBibliographyExtras"
+ "UndefineBibliographyExtras" "DefineHyphenationExceptions"
+ "NewBibliographyString")
+ (LaTeX-declare-expert-environments
+ "biblatex"
+ "refsection" "refsegment")
+
+ ;; Tell RefTeX: If package option `natbib' is given, activate that
+ ;; format, otherwise stick with `biblatex':
+ (when (and LaTeX-reftex-cite-format-auto-activate
+ (fboundp 'reftex-set-cite-format))
+ (if (or (LaTeX-provided-package-options-member "biblatex" "natbib")
+ (LaTeX-provided-package-options-member "biblatex" "natbib=true"))
+ (reftex-set-cite-format 'natbib)
+ ;; The entry `biblatex' is defined in
+ ;; `reftex-cite-format-builtin' in reftex-vars.el which will be
+ ;; part of Emacs >= 25.3. So check here if we find an entry,
+ ;; otherwise do it manually for older Emacsen.
+ (if (assoc 'biblatex reftex-cite-format-builtin)
+ (reftex-set-cite-format 'biblatex)
+ (reftex-set-cite-format
+ '((?\C-m . "\\cite[][]{%l}")
+ (?C . "\\cite*[][]{%l}")
+ (?t . "\\textcite[][]{%l}")
+ (?T . "\\textcite*[][]{%l}")
+ (?p . "\\parencite[][]{%l}")
+ (?P . "\\parencite*[][]{%l}")
+ (?f . "\\footcite[][]{%l}")
+ (?s . "\\smartcite[][]{%l}")
+ (?u . "\\autocite[][]{%l}")
+ (?U . "\\autocite*[][]{%l}")
+ (?a . "\\citeauthor{%l}")
+ (?A . "\\citeauthor*{%l}")
+ (?i . "\\citetitle{%l}")
+ (?I . "\\citetitle*{%l}")
+ (?y . "\\citeyear{%l}")
+ (?Y . "\\citeyear*{%l}")
+ (?n . "\\nocite{%l}")))))))
+ TeX-dialect)
+
+(defvar LaTeX-biblatex-package-options-list
+ (append
+ ;;; Preamble Options
+ LaTeX-biblatex-executebibliographyoptions-options
+ '(;;; Load-time Options
+ ("backend" ("biber" "bibtex" "bibtexu" "bibtex8"))
+ ("style" BibLaTeX-global-style-files)
+ ("bibstyle" BibLaTeX-global-style-files)
+ ("citestyle" BibLaTeX-global-style-files)
+ ("natbib" ("true" "false"))
+ ("mcite" ("true" "false"))
+ ;;; Entry Options
+ ;; Preamble/Type/Entry Options
+ ("useauthor" ("true" "false"))
+ ("useeditor" ("true" "false"))
+ ("usetranslator" ("true" "false"))
+ ("useprefix" ("true" "false"))
+ ("indexing" ("true" "false" "cite" "bib"))
+ ;; Type/Entry Options are not available globally.
+ ;; Legacy Options (deprecated)
+ ("openbib")))
+ "Package options for the biblatex package.")
+
+(defun LaTeX-biblatex-package-options nil
+ "Prompt for package options for the biblatex package."
+ (unless BibLaTeX-global-style-files
+ (if (if (eq TeX-arg-input-file-search 'ask)
+ (not (y-or-n-p "Find BibLaTeX style yourself? "))
+ TeX-arg-input-file-search)
+ ;; ...then, search for BibLaTeX styles.
+ (progn
+ (message "Searching for BibLaTeX styles...")
+ (setq BibLaTeX-global-style-files
+ (TeX-search-files-by-type 'bbxinputs 'global t t))
+ (message "Searching for BibLaTeX styles...done"))
+ ;; ...else, use for completion only standard BibLaTeX styles (see §3.3 of
+ ;; Biblatex reference manual).
+ (setq BibLaTeX-global-style-files
+ '("numeric" "numeric-comp" "numeric-verb" "alphabetic"
+ "alphabetic-verb" "authoryear" "authoryear-comp" "authoryear-ibid"
+ "authoryear-icomp" "authortitle" "authortitle-comp"
+ "authortitle-ibid" "authortitle-icomp" "authortitle-terse"
+ "authortitle-tcomp" "authortitle-ticomp" "verbose" "verbose-ibid"
+ "verbose-note" "verbose-inote" "verbose-trad1" "verbose-trad2"
+ "verbose-trad3" "reading" "draft" "debug"))))
+ (TeX-read-key-val t LaTeX-biblatex-package-options-list))
+
+;;; biblatex.el ends here