Subject: 29.0.50; bibtex.el biblatex "2.1.3 Non-standard Types" support

From: Leonard Lausen <[email-masked]>
Date: Fri, 05 Nov 2021 23:35:11 +0000

biblatex types such as @audio, @music, @review from section 2.1.3 of the
biblatex documentation are not considered by bibtex.el's biblatex
dialect implementation. The standard styles treat these types (with
exceptions) like @misc. An example of an exception is @review, which is
a more specific variant of the @article type.

I think the types are called non-standard, because the standard
bibliography styles provide no bibliography drivers for these types, but
these types are known to the default data model and will be happily
accepted by biber.

The impact is that emacs will not recognize entries of those types as
valid entries, and prevent referencing them via org-cite or applying
operations such as bibtex-clean-entry.

To reproduce run `emacs -Q`. Then switch to `bibtex-mode` and set
`(bibtex-set-dialect 'biblatex t)`. Finally paste (taken from
https://tex.stackexchange.com/a/435059/106845)

    @audio{Smith2018,
      author={Stacey Vanek Smith and Stanley Plotkin},
      title={The Economics of Vaccines},
      howpublished={NPR},
      organization={Planet Money}
      month=6,
      year=2010,
      series={Planet Money},
      url={https://www.npr.org/templates/transcript/transcript.php?storyId=616926505}
    }

and navigate the cursor into the @audio entry. Then execute `M-x
bibtex-clean-entry` and observe "Not inside a BibTex entry" error
message.

Would it make sense to add support for these types to bibtex.el?

In GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.29, cairo version 1.16.0)
 of 2021-11-05 built on leonard-xps13
Repository revision: 37632dae180e9d5196ef01343fefa9234c5f05b9
Repository branch: feature/pgtk
Repository: https://github.com/leezu/emacs
Windowing system distributor 'System Description: Gentoo/Linux

Configured using:
 'configure --with-cairo --with-x-toolkit=no --with-pgtk --with-modules
 --with-native-compilation --prefix=/home/leonard/local'

Configured features:
ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG
JSON LCMS2 LIBOTF LIBSYSTEMD LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY
PDUMPER PGTK PNG RSVG SECCOMP SOUND THREADS TIFF TOOLKIT_SCROLL_BARS XIM
GTK3 ZLIB

Important settings:
  value of $LC_COLLATE: C
  value of $LC_CTYPE: zh_CN.UTF-8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: BibTeX

Minor modes in effect:
  tooltip-mode: t
  global-eldoc-mode: t
  show-paren-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  indent-tabs-mode: t
  transient-mark-mode: t

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug message rmc puny dired dired-loaddefs
rfc822 mml mml-sec epa derived epg rfc6068 epg-config gnus-util rmail
rmail-loaddefs auth-source cl-seq eieio eieio-core cl-macs
eieio-loaddefs password-cache json map text-property-search seq gv
byte-opt bytecomp byte-compile cconv mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mm-util mail-prsvr mail-utils bibtex iso8601
time-date subr-x help-mode cl-loaddefs cl-lib china-util iso-transl
tooltip eldoc paren electric uniquify ediff-hook vc-hooks
lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win term/common-win
tool-bar dnd fontset image regexp-opt fringe tabulated-list replace
newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar
rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock
font-lock syntax font-core term/tty-colors frame minibuffer cl-generic
cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese composite emoji-zwj charscript
charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray
cl-preloaded nadvice button loaddefs faces cus-face macroexp files
window text-properties overlay sha1 md5 base64 format env code-pages
mule custom widget hashtable-print-readable backquote threads dbusbind
inotify dynamic-setting system-font-setting font-render-setting cairo
move-toolbar gtk x-toolkit pgtk lcms2 multi-tty make-network-process
native-compile emacs)

Memory information:
((conses 16 86191 6454)
 (symbols 48 7175 0)
 (strings 32 24675 1427)
 (string-bytes 1 773743)
 (vectors 16 15122)
 (vector-slots 8 363616 15516)
 (floats 8 24 48)
 (intervals 56 325 0)
 (buffers 992 10))