diff -Nru ebib-2.39.4/debian/changelog ebib-2.40.3/debian/changelog
--- ebib-2.39.4/debian/changelog 2023-11-10 07:55:44.000000000 +0000
+++ ebib-2.40.3/debian/changelog 2023-11-18 22:38:13.000000000 +0000
@@ -1,3 +1,12 @@
+ebib (2.40.3-1) unstable; urgency=medium
+
+ * New upstream release.
+ * Refresh patches.
+ * Update debian/ copy of upstream changelog.
+ * Add elpa-compat to Build-Depends (needed for tests).
+
+ -- Aymeric Agon-Rambosson Ebib News
Version 2.40, November 2023
+
+
ebib-save-indent-as-bibtex
: use spaces
+for indenting fields, and use the same indentation that
+bibtex-mode
would use.Version 2.39, September 2022
ebib-field-edit-functions
allows one to
diff -Nru ebib-2.39.4/docs/ebib-manual.html ebib-2.40.3/docs/ebib-manual.html
--- ebib-2.39.4/docs/ebib-manual.html 2023-11-03 00:02:21.000000000 +0000
+++ ebib-2.40.3/docs/ebib-manual.html 2023-11-17 07:31:45.000000000 +0000
@@ -12,14 +12,19 @@
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
- ul.task-list{list-style: none;}
+ /* The extra [class] is a hack that increases specificity enough to
+ override a similar rule in reveal.js */
+ ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
+ font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
+ .display.math{display: block; text-align: center; margin: 0.5rem auto;}
+ /* CSS for syntax highlighting */
pre > code.sourceCode { white-space: pre; position: relative; }
- pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
+ pre > code.sourceCode > span { line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
@@ -81,7 +86,6 @@
code span.va { color: #19177c; } /* Variable */
code span.vs { color: #4070a0; } /* VerbatimString */
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
- .display.math{display: block; text-align: center; margin: 0.5rem auto;}
@@ -1039,6 +1043,12 @@
command can also be prefixed with C-u
in order to overwrite any existing
file without asking for confirmation.
Note that by default, Ebib uses a single TAB to indent fields inside
+BibTeX entries. If you prefer to use spaces, set the option
+ebib-save-indent-as-bibtex
. When this option is set, Ebib
+uses the value of the variables bibtex-entry-offset
and
+bibtex-field-indentation
to compute how many spaces to use
+to indent fields.
Sometimes it can be useful to copy entries from one database to @@ -1381,21 +1391,21 @@ course. To do this, put something like the following in your init file:
+class="sourceCode lisp"> (with-eval-after-load 'ebib'ebib
(with-eval-after-load
(define-key ebib-multiline-mode-map"\C-c c" nil)
- (define-key ebib-multiline-mode-map"\C-c | c" 'ebib-quit-multiline-buffer-and-save)
+ "\C-c | c" 'ebib-quit-multiline-buffer-and-save)
(define-key ebib-multiline-mode-map"\C-c s" nil)
- (define-key ebib-multiline-mode-map"\C-c | s" 'ebib-save-from-multiline-buffer))
+ "\C-c | s" 'ebib-save-from-multiline-buffer))
(define-key ebib-multiline-mode-map"\C-c k" nil)
- (define-key ebib-multiline-mode-map"\C-c | k" 'ebib-cancel-multiline-buffer)
This removes the key bindings for C-c c
, C-c s
and ebib-biblio in your init file and adding an entry to
biblio-selection-mode-map
:
require 'ebib-biblio)
- ("B") #'ebib-biblio-import-doi)
- (define-key ebib-index-mode-map (kbd "e") #'ebib-biblio-selection-import) (define-key biblio-selection-mode-map (kbd
(require 'ebib-biblio)
+(define-key ebib-index-mode-map (kbd "B") #'ebib-biblio-import-doi)
+(define-key biblio-selection-mode-map (kbd "e") #'ebib-biblio-selection-import)
Or with use-package
:
use-package ebib-biblio
diff -Nru ebib-2.39.4/ebib-db.el ebib-2.40.3/ebib-db.el
--- ebib-2.39.4/ebib-db.el 2023-11-03 00:02:21.000000000 +0000
+++ ebib-2.40.3/ebib-db.el 2023-11-17 07:31:45.000000000 +0000
@@ -275,11 +275,11 @@
(defun ebib-db-change-key (key new-key db &optional if-exists)
"Change entry key KEY to NEW-KEY in DB.
-ENTRY must be a key itself. IF-EXISTS determines what to do when
-NEW-KEY already exists. If it is nil, an error is triggered. If
-it is `noerror', no error is triggered and nothing is updated. If
-it is `overwrite', the existing entry under NEW-KEY is
-overwritten. If it is `uniquify', a unique key is created.
+IF-EXISTS determines what to do when NEW-KEY already exists. If
+it is nil, an error is triggered. If it is `noerror', no error
+is triggered and nothing is updated. If it is `overwrite', the
+existing entry under NEW-KEY is overwritten. If it is
+`uniquify', a unique key is created.
If there is no entry with KEY in DB, an error is triggered.
diff -Nru ebib-2.39.4/ebib-utils.el ebib-2.40.3/ebib-utils.el
--- ebib-2.39.4/ebib-utils.el 2023-11-03 00:02:21.000000000 +0000
+++ ebib-2.40.3/ebib-utils.el 2023-11-17 07:31:45.000000000 +0000
@@ -836,6 +836,16 @@
:group 'ebib
:type 'boolean)
+(defcustom ebib-save-indent-as-bibtex nil
+ "If non-nil, use `bibtex-mode' variables for indentation when saving.
+By default, when saving a `.bib' file, Ebib uses a single TAB
+character to indent fields. When this option is set, Ebib uses
+the values of the variables `bibtex-entry-offset' and
+`bibtex-field-indentation' to compute the indentation and indents
+using spaces."
+ :group 'ebib
+ :type 'boolean)
+
(defcustom ebib-use-timestamp nil
"Add a timestamp to new entries.
If this option is set, Ebib will add a `timestamp` field to every
@@ -2004,18 +2014,19 @@
(replace-regexp-in-string xdata-regexp get-xdata-function string)))
(defun ebib--get-xref-alist (key db)
- "Return alist of crossreferencing keys in entry KEY, in DB.
-Only keys entered as values in the crossref, xdata and xref
-fields are considered (keys used in `granular' xdata entries like
-\"xdata=fookey-foofield\" are not considered).
+ "Return an alist of cross-referencing keys in entry KEY, in DB.
+Only keys entered as values in the \"crossref\", \"xdata\" and
+\"xref\" fields are considered (keys used in \"granular\" xdata
+entries like \"xdata=fookey-foofield\" are not considered).
The car of each element is the string name of the field
-referencing the key (\"xdata\" or \"crossref\"). The cdr is the
+referencing the key (\"xdata\" or \"crossref\"). The cdr is the
key itself.
-Keys in the xdata field are listed first, in the same order as in
-the entry. The crossref key is listed last. This reflects the
-precedence given to these keys by BibLaTeX's inheritance system."
+Keys in the \"xdata\" field are listed first, in the same order
+as in the entry. The crossref key is listed last. This reflects
+the precedence given to these keys by BibLaTeX's inheritance
+system."
(let* ((xdata-field-value (ebib-get-field-value "xdata" key db 'noerror 'unbraced))
(xdata-key-list (when xdata-field-value
(save-match-data (split-string xdata-field-value ",[[:space:]]*"))))
@@ -2023,10 +2034,14 @@
(xref-key (ebib-get-field-value "xref" key db 'noerror 'unbraced)))
;; Alist of name of refering field, and bibkey to which it refers. Order
;; matters here -- earlier xdata keys take precedence, then later ones, then
- ;; the crossref key (this follows the BibLaTeX implementation).
- `(,@(mapcar (lambda (key) `("xdata" . ,key)) xdata-key-list)
- ,@(when crossref-key `(("crossref" . ,crossref-key)))
- ,@(when xref-key `(("xref" . ,xref-key))))))
+ ;; the crossref key (this follows the BibLaTeX implementation). As a
+ ;; precaution, cross-referencing fields that reference the entry itself are
+ ;; removed, because they would throw Ebib in an infinite loop.
+ (cl-remove-if (lambda (e)
+ (string= key (cdr e)))
+ `(,@(mapcar (lambda (key) `("xdata" . ,key)) xdata-key-list)
+ ,@(when crossref-key `(("crossref" . ,crossref-key)))
+ ,@(when xref-key `(("xref" . ,xref-key)))))))
(defun ebib-get-field-value (field key db &optional noerror unbraced xref expand-strings)
"Return the value of FIELD in entry KEY in database DB.
@@ -2125,10 +2140,13 @@
;; back. See github issues #42, #55, #62.
(reverse entry)))
(insert (format "@%s{%s,\n" type key))
- (insert (mapconcat (lambda (field)
- (format "\t%s = %s" (car field) (cdr field)))
- entry
- ",\n"))
+ (let ((indent (if ebib-save-indent-as-bibtex
+ (make-string (+ bibtex-entry-offset bibtex-field-indentation) ?\s)
+ "\t")))
+ (insert (mapconcat (lambda (field)
+ (format "%s%s = %s" indent (car field) (cdr field)))
+ entry
+ ",\n")))
(insert "\n}\n\n"))))
(defun ebib--format-comments (db)
diff -Nru ebib-2.39.4/ebib.el ebib-2.40.3/ebib.el
--- ebib-2.39.4/ebib.el 2023-11-03 00:02:21.000000000 +0000
+++ ebib-2.40.3/ebib.el 2023-11-17 07:31:45.000000000 +0000
@@ -9,7 +9,7 @@
;; Version: 2.39
;; Keywords: text bibtex
;; URL: http://joostkremers.github.io/ebib/
-;; Package-Requires: ((parsebib "4.0") (emacs "26.1"))
+;; Package-Requires: ((parsebib "4.0") (emacs "26.1") (compat "29.1.4.3"))
;; Redistribution and use in source and binary forms, with or without
;; modification, are permitted provided that the following conditions
@@ -57,6 +57,7 @@
(require 'pp)
(require 'hl-line)
(require 'mule-util)
+(require 'compat) ; for `pos-bol', `pos-eol'.
(require 'parsebib)
(require 'button)
(require 'ebib-utils)
@@ -1964,32 +1965,34 @@
(defun ebib--update-keyname (new-key)
"Change the key of the current BibTeX entry to NEW-KEY.
-This function updates both the database and the buffer."
- (let* ((cur-key (ebib--get-key-at-point))
- (marked (ebib-db-marked-p cur-key ebib--cur-db))
- (actual-new-key (ebib-db-change-key cur-key new-key ebib--cur-db (if ebib-uniquify-keys 'uniquify 'noerror))))
- (when actual-new-key
- (ebib-db-set-current-entry-key actual-new-key ebib--cur-db)
- (when marked
- (ebib-db-toggle-mark cur-key ebib--cur-db)
- (ebib-db-toggle-mark actual-new-key ebib--cur-db))
- (with-current-ebib-buffer 'index
- (let ((inhibit-read-only t))
- (delete-region (pos-bol) (1+ (pos-eol)))))
- (ebib--insert-entry-in-index-sorted actual-new-key t marked)
- ;; Also update dependent databases.
- (let ((dependents (seq-filter (lambda (db)
- (ebib-db-has-key cur-key db))
- (ebib--list-dependents ebib--cur-db))))
- (mapc (lambda (dependent)
- (ebib-db-remove-entries-from-dependent cur-key dependent)
- (ebib-db-add-entries-to-dependent actual-new-key dependent)
- (ebib--mark-index-dirty dependent)
- (when (ebib-db-marked-p cur-key dependent)
- (ebib-db-unmark-entry cur-key dependent)
- (ebib-db-mark-entry actual-new-key dependent)))
- dependents)
- (ebib--set-modified t ebib--cur-db nil dependents)))))
+This function updates both the database and the buffer. Note
+that nothing is changed if NEW-KEY is equal to the existing key."
+ (let ((cur-key (ebib--get-key-at-point)))
+ (unless (string= new-key cur-key)
+ (let ((marked (ebib-db-marked-p cur-key ebib--cur-db))
+ (actual-new-key (ebib-db-change-key cur-key new-key ebib--cur-db (if ebib-uniquify-keys 'uniquify 'noerror))))
+ (when actual-new-key
+ (ebib-db-set-current-entry-key actual-new-key ebib--cur-db)
+ (when marked
+ (ebib-db-toggle-mark cur-key ebib--cur-db)
+ (ebib-db-toggle-mark actual-new-key ebib--cur-db))
+ (with-current-ebib-buffer 'index
+ (let ((inhibit-read-only t))
+ (delete-region (pos-bol) (1+ (pos-eol)))))
+ (ebib--insert-entry-in-index-sorted actual-new-key t marked)
+ ;; Also update dependent databases.
+ (let ((dependents (seq-filter (lambda (db)
+ (ebib-db-has-key cur-key db))
+ (ebib--list-dependents ebib--cur-db))))
+ (mapc (lambda (dependent)
+ (ebib-db-remove-entries-from-dependent cur-key dependent)
+ (ebib-db-add-entries-to-dependent actual-new-key dependent)
+ (ebib--mark-index-dirty dependent)
+ (when (ebib-db-marked-p cur-key dependent)
+ (ebib-db-unmark-entry cur-key dependent)
+ (ebib-db-mark-entry actual-new-key dependent)))
+ dependents)
+ (ebib--set-modified t ebib--cur-db nil dependents)))))))
(defun ebib-mark-entry (arg)
"Mark or unmark the current entry.
@@ -2752,18 +2755,19 @@
:type 'boolean)
(defun ebib-follow-crossref (&optional arg)
- "Jump to an entry crossreffed from the current entry.
-Crossreffed entries are those whose key appears in the
-`crossref', `xdata' or `xref' fields of the current entry.
+ "Jump to an entry cross-referenced from the current entry.
+Cross-referenced entries are those whose key appears in the
+\"crossref\", \"xdata\" or \"xref\" fields of the current entry.
If the entry buffer is current, and the current field is one of
-`crosref', `xdata' or `xref', and has a value, then only consider
-keys in that value. ARG forces considering all crossref keys.
+\"crossref\", \"xdata\" or \"xref\", and has a value, then only
+consider keys in that value. ARG forces considering all
+cross-referencing keys.
If there is only one such entry, switch to it. If there is more
than one, allow the user to choose one from a list. If there are
none, search for the first entry with the current entry's key in
-one of its crossreffing fields."
+one of its cross-referencing fields."
(interactive "P")
(ebib--execute-when
(entries
@@ -4407,23 +4411,28 @@
"Edit a \"separated values\" type field.
FIELD-NAME is the name of the field being edited. FIELDS is a
list of fields from which to pull completion candidates.
-INIT-CONTENTS is the original value of the field, assumed to be a
-list separated by commas with optional whitespace on either side.
+INIT-CONTENTS is the original value of the field and should be a
+Biblatex list (i.e., a string consisting of comma-separated
+values).
See also `ebib-field-edit-functions'."
;; NOTE When used with BibLaTeX, this assumes that xsvsep is set to
;; "\s*,\s*", equivalent to "[[:space:]]*,[[:space:]]" in Emacs.
(let* ((crm-local-completion-map (make-composed-keymap '(keymap (32)) crm-local-completion-map))
(crm-separator "[[:space:]]*,[[:space:]]*")
- (collection
- ;; Account for fields containing more than one entry, e.g.
- ;; keywords = {Bar, Foo, Qux}
- (delete-dups
- (apply
- #'append
- (mapcar (lambda (str)
- (split-string str crm-separator t "[[:space:]]"))
- (ebib--create-collection-from-fields fields)))))
+ ;; If we're editing the "keywords" field, the completion candidates are
+ ;; taken from `ebib--keywords-completion-list'. Otherwise, we collect
+ ;; all the values for the current field in the currently open
+ ;; databases. Since the field values are actually (Biblatex) list, we
+ ;; need to split them on commas.))
+ (collection (if (string= field-name "keywords")
+ ebib--keywords-completion-list
+ (delete-dups
+ (apply
+ #'append
+ (mapcar (lambda (str)
+ (split-string str crm-separator t "[[:space:]]"))
+ (ebib--create-collection-from-fields fields))))))
(result (completing-read-multiple
(format "%s: " field-name) collection nil nil
;; Append a crm-separator to the result, so that
diff -Nru ebib-2.39.4/ebib.info ebib-2.40.3/ebib.info
--- ebib-2.39.4/ebib.info 2023-11-03 00:02:21.000000000 +0000
+++ ebib-2.40.3/ebib.info 2023-11-17 07:31:45.000000000 +0000
@@ -1,4 +1,4 @@
-This is ebib.info, produced by makeinfo version 6.8 from ebib.texi.
+This is ebib.info, produced by makeinfo version 7.1 from ebib.texi.
INFO-DIR-SECTION Emacs
START-INFO-DIR-ENTRY
@@ -68,8 +68,8 @@
1.2 Manual installation
=======================
-It’s also possible to install Ebib manually. If you prefer this method,
-then you probably know what you’re doing, so detailed instructions are
+It's also possible to install Ebib manually. If you prefer this method,
+then you probably know what you're doing, so detailed instructions are
omitted here. Just be sure to also install the parsebib
(https://github.com/joostkremers/parsebib) package, which Ebib depends
on.
@@ -92,7 +92,7 @@
Once installed, Ebib can be started with ‘M-x ebib’. This command is
also used to return to Ebib when you have put the program in the
background. To bind this command globally to e.g., ‘C-c e’, put
-something like the following in Emacs’ init file:
+something like the following in Emacs' init file:
(global-set-key (kbd "C-c e") 'ebib)
@@ -158,7 +158,7 @@
to a special buffer ‘*Ebib-log*’. If Ebib finds something that it
cannot parse, it will log an error. Ebib attempts to be as liberal as
possible, so everything that looks like a BibTeX entry will be read, but
-if you open a ‘.bib’ file that wasn’t written by Ebib, it is always a
+if you open a ‘.bib’ file that wasn't written by Ebib, it is always a
good idea to check the log buffer to see if everything is in order.
In order to parse ‘.bib’ files, Ebib uses the entry type definitions of
@@ -167,7 +167,7 @@
‘bibtex-bibtex-entry-alist’, depending on which of the two you use. If
Ebib finds entry types in a ‘.bib’ file that are not defined, those
entries will still be loaded, but their entry type is displayed using
-Emacs’ ‘error’ face. The most likely case in which this may happen is
+Emacs' ‘error’ face. The most likely case in which this may happen is
when you load a BibTeX file without letting Ebib know the file is
‘biblatex’-specific. By default, Ebib assumes that a ‘.bib’ file it
loads is a BibTeX file. If you intend to use ‘biblatex’ files, make
@@ -188,7 +188,7 @@
Chances are that you will be doing most of your work with one or a few
‘.bib’ files. In order to open these files automatically when Ebib is
-started, set the option “Preload Bib Files” (‘ebib-preload-bib-files’).
+started, set the option "Preload Bib Files" (‘ebib-preload-bib-files’).
You may specify the files to preload with their full path or with a
relative path. In the latter case, the files are searched for in the
directories listed in the option ‘ebib-bib-search-dirs’.
@@ -221,7 +221,7 @@
2.5 The Database View
=====================
-Once you’ve opened a ‘.bib’ file, all the entries in the file are shown
+Once you've opened a ‘.bib’ file, all the entries in the file are shown
in alphabetical order (sorted by entry key, though this is customisable)
in the index buffer in the top Ebib window. The fields of the first
entry and their values are shown in the entry buffer in the bottom Ebib
@@ -279,7 +279,7 @@
‘g’ ‘Home’ move to the first entry
‘G’ ‘End’ move to the last entry
-If you have more than one database opened, you can use the keys ‘1’–‘9’
+If you have more than one database opened, you can use the keys ‘1’-‘9’
to jump between databases. The number of each database is shown in the
mode line of the index buffer before the database name. (Note that the
numbering is dynamic: if you have three databases opened and then close
@@ -303,7 +303,7 @@
you can type any part of the author/editor names, of the title and the
year of the entry you want to jump to. You can also see the
bibliography file to which the entry belongs. This is a good way to
-search for a particular entry if you’re not sure of the entry key.
+search for a particular entry if you're not sure of the entry key.
File: ebib.info, Node: Displaying and Sorting the Entries List, Next: Biblatex vs BibTeX, Prev: Navigating the Database, Up: Getting Started
@@ -336,7 +336,7 @@
of the author field if it is not empty, and the contents of the editor
field otherwise. Furthermore, the column label ‘"Year"’ does not simply
display the contents of the year field. Rather, it first checks the
-contents of the date field, which is ‘biblatex’’s replacement of the
+contents of the date field, which is ‘biblatex’'s replacement of the
year field, and extracts the first year in it. Only if the date field
is empty does it display the year field.
@@ -351,7 +351,7 @@
commands for special characters are replaced with the corresponding
Unicode character.
-The column labels‘"Doi"’ and ‘"Url"’ don’t display the contents of these
+The column labels‘"Doi"’ and ‘"Url"’ don't display the contents of these
fields, but instead yield a clickable string ‘"www"’; clicking on
‘"www"’ takes you to the relevant web page.
@@ -362,7 +362,7 @@
the ‘"Note"’ column displays a (clickable) ‘"N"’. (Keep in mind,
though, that if you keep your notes in a single file, adding this column
to the index display can slow down the creation of the index buffer (and
-thus Ebib’s start-up). If you wish to use this column, it is probably
+thus Ebib's start-up). If you wish to use this column, it is probably
best to keep notes in separate files.)
You can define new column labels and redefine the existing ones by
@@ -428,9 +428,9 @@
The dialect specified determines which entry types Ebib recognises and
which fields it expects. Reading a file with the wrong dialect setting
-will most likely result in a series of “Illegal entry type” errors.
+will most likely result in a series of "Illegal entry type" errors.
Note, however, that these entries will still be loaded and displayed,
-but they will be highlighted with Emacs’ ‘error’ face. Fields that are
+but they will be highlighted with Emacs' ‘error’ face. Fields that are
not defined for the current dialect are displayed as undefined fields
(i.e., below all other fields in the entry buffer).
@@ -470,9 +470,9 @@
-----------------------------------------------------------------
‘@Conference’ ‘@InProceedings’
‘@Electronic’ ‘@Online’
-‘@MastersThesis’ ‘@Thesis’ with ‘type’ as ‘Master’s thesis’
-‘@PhDThesis’ ‘@Thesis’ with ‘type’ as ‘PhD thesis’
-‘@TechReport’ ‘@Report’ with ‘type’ as ‘technical report’
+‘@MastersThesis’ ‘@Thesis’ with ‘type’ as 'Master's thesis'
+‘@PhDThesis’ ‘@Thesis’ with ‘type’ as 'PhD thesis'
+‘@TechReport’ ‘@Report’ with ‘type’ as 'technical report'
‘@www’ ‘@Online’
If an entry has such an alias as entry type, Ebib displays the entry
@@ -501,7 +501,7 @@
after all other fields. Displaying the value twice this way means that
you can easily copy the value of the ‘journal’ field to the
‘journaltitle’ field, if you wish to bring your entries into line with
-‘biblatex’’s conventions.
+‘biblatex’'s conventions.
File: ebib.info, Node: Editing the Database, Next: Main and Dependent Databases, Prev: Getting Started, Up: Top
@@ -543,8 +543,8 @@
a temporary key and puts you in the entry buffer, where you can edit the
fields of the entry. When you finish editing the entry fields, the
temporary key is replaced with an automatically created key based on the
-entry’s content. (Ebib uses the function ‘bibtex-generate-autokey’ for
-this; see that function’s documentation string for customisation
+entry's content. (Ebib uses the function ‘bibtex-generate-autokey’ for
+this; see that function's documentation string for customisation
options.) If you prefer to specify a key yourself, you can unset the
option ‘ebib-autogenerate-keys’.
@@ -626,7 +626,7 @@
Importing Files: #viewing-and-importing-files.).
For other fields that offer completion, the completion candidates are
-the values of these fields in other entries in the databases that you’ve
+the values of these fields in other entries in the databases that you've
opened. Offering these as completion candidates makes it easier to
ensure that you enter these values consistently. This of course mainly
makes sense for fields that have values that will occur more than once.
@@ -649,8 +649,8 @@
With fields that can contain lists of values, such as the ‘author’ and
‘editor’ fields, but also the ‘file’ field, Ebib offers multiple
completion: you can select one candidate with ‘TAB’ and then go on to
-select the next one. When you’ve selected all candidates you want, hit
-‘RET’. Ebib uses Emacs’ standard ‘completing-read-multiple’ function
+select the next one. When you've selected all candidates you want, hit
+‘RET’. Ebib uses Emacs' standard ‘completing-read-multiple’ function
for this, but note that ‘crm-separator’ is set to something appropriate
for the field being edited.
@@ -666,10 +666,10 @@
You can define such abbreviations in Ebib in the _strings buffer_ (see
*note ‘@String’ Definitions: #string-definitions. for details). To use
-a ‘@String’ abbreviation in a field value, the field’s value must be
+a ‘@String’ abbreviation in a field value, the field's value must be
marked as _special_. Normally, when Ebib saves the database, it puts
braces around field values. If a field has a ‘@string’ abbreviation in
-it, it shouldn’t be surrounded with braces, because that would prevent
+it, it shouldn't be surrounded with braces, because that would prevent
‘biblatex’ or BibTeX from expanding the abbreviation.
A special field is a field whose value is not surrounded by braces when
@@ -689,7 +689,7 @@
unsetting the user option ‘ebib-expand-strings’.
Note that a field value can actually be composed of a concatenation of
-“normal” text and abbreviations. The BibTeX documentation for example
+"normal" text and abbreviations. The BibTeX documentation for example
explains that if you have defined:
@String{WGA = "World Gnus Almanac"}
@@ -698,11 +698,11 @@
title = 1966 # WGA
-which will produce “1966 World Gnus Almanac”. Or you can do:
+which will produce "1966 World Gnus Almanac". Or you can do:
month = "1~" # jan
-which will produce someting like “1 January” (assuming your bibliography
+which will produce someting like "1 January" (assuming your bibliography
style has defined the abbreviation ‘jan’). All this is possible with
Ebib, simply by entering the exact text including quotes or braces
around the strings, and marking the relevant field as special.
@@ -758,7 +758,7 @@
3.6 Copy, Cut (Kill), Paste (Yank), and Delete
==============================================
-A few more commands are available when you’re in the entry buffer
+A few more commands are available when you're in the entry buffer
editing field values. The commands ‘c’, ‘k’ and ‘y’ implement copy,
kill and yank: ‘c’ copies the contents of the current field to the kill
ring, ‘k’ kills the contents of the current field to the kill ring, and
@@ -807,19 +807,19 @@
for most entry types. Displaying all these fields in the entry buffer
would not be very practical, because you are most likely interested in
only a few of them. For this reason, Ebib defines a (fairly large)
-number of fields as ‘hidden’, meaning that they are not shown in the
+number of fields as 'hidden', meaning that they are not shown in the
entry buffer. You can make these fields visible with the key ‘H’ in the
index buffer. Which fields are treated as hidden is controlled by the
-option “Hidden Fields” (‘ebib-hidden-fields’), which can be customised.
+option "Hidden Fields" (‘ebib-hidden-fields’), which can be customised.
Most of the fields defined as hidden are ‘biblatex’-specific, because
-BibTeX recognises a much smaller number of fields and there isn’t much
+BibTeX recognises a much smaller number of fields and there isn't much
of a need to hide the lesser used ones. However, the functionality is
available: if you wish to use it, just add the relevant fields to the
option ‘ebib-hidden-fields’.
Note that a hidden field that has a value is always shown in the index
-buffer. Hidden fields are only hidden in entries that don’t define a
+buffer. Hidden fields are only hidden in entries that don't define a
value for them.
@@ -845,13 +845,13 @@
when it is imported or exported. Therefore, if you record timestamps
and want to im-/export entries without changing their timestamps,
temporarily unset this option, which can be done in the menu under
-“Options”.
+"Options".
Ebib uses the function ‘format-time-string’ to create the timestamp.
The format string that Ebib uses can be customised. The default string
is ‘"%Y-%m-%d %T (%Z)"’, which produces a timestamp of the form
‘"2007-03-12 01:03:26 (CET)"’. This string is sortable and has the
-additional advantage that it can be converted to Emacs’ internal time
+additional advantage that it can be converted to Emacs' internal time
representation with the function ‘date-to-time’. The format can be
customised; see the documentation for ‘format-time-string’ on the
options that are available.
@@ -888,6 +888,13 @@
with the database. This command can also be prefixed with ‘C-u’ in
order to overwrite any existing file without asking for confirmation.
+Note that by default, Ebib uses a single TAB to indent fields inside
+BibTeX entries. If you prefer to use spaces, set the option
+‘ebib-save-indent-as-bibtex’. When this option is set, Ebib uses the
+value of the variables ‘bibtex-entry-offset’ and
+‘bibtex-field-indentation’ to compute how many spaces to use to indent
+fields.
+
* Menu:
* Exporting Entries::
@@ -936,7 +943,7 @@
‘font-lock-comment-face’. These values are merely displayed for
convenience: they cannot be edited. (They can be copied, however).
-‘Biblatex’’s inheritance rules are fairly sophisticated: they depend on
+‘Biblatex’'s inheritance rules are fairly sophisticated: they depend on
the fields and on the types of the child _and_ parent entry. Ebib fully
supports this inheritance schema. Since inheritance rules can be
customised in ‘biblatex’, they are defined in Ebib in the customisable
@@ -944,7 +951,7 @@
inheritance relations defined by ‘biblatex’, but can be customised if
needed.
-BibTeX’s inheritance mechanism is much more simplistic. A field in a
+BibTeX's inheritance mechanism is much more simplistic. A field in a
child entry that does not have a value simply inherits the value of the
same-name field in the parent entry. Customisation is not possible
here, neither in BibTeX nor in Ebib.
@@ -964,7 +971,7 @@
search. (Also, if the cross-referenced entry appears alphabetically
before the cross-referencing entry, you need to type ‘g’ and then ‘/’.)
-Note that if you want to use ‘biblatex’’s or BibTeX’s cross-referencing
+Note that if you want to use ‘biblatex’'s or BibTeX's cross-referencing
mechanism, the option ‘ebib-save-xrefs-first’ needs to be set (which it
is by default). This tells Ebib to save all entries with a ‘crossref’
field first in the ‘.bib’ file. Without this, cross-referencing will
@@ -1053,7 +1060,7 @@
In order to create a ‘@Preamble’ as shown above in Ebib, you only have
to type the text between the braces. Ebib takes care of including the
braces of the ‘@Preamble’ command, but otherwise it saves the text
-exactly as you enter it. So in order to get the preamble above, you’d
+exactly as you enter it. So in order to get the preamble above, you'd
have to type the following in Ebib:
"\newcommand{\noopsort}[1]{} " # "\newcommand{\singleletter}[1]{#1} "
@@ -1074,7 +1081,7 @@
Adding a ‘@String’ definition is done with the command ‘a’. This will
first ask you for an abbreviation and then for the value to be
-associated with that abbreviation. Once you’ve entered these, Ebib will
+associated with that abbreviation. Once you've entered these, Ebib will
sort the new abbreviation into the buffer.
The following keys are available in the strings buffer:
@@ -1103,7 +1110,7 @@
abbreviations. That is, you can define an abbreviation ‘up’ with the
value ‘{University Press}’, and then define another abbreviation ‘cup’
with the value ‘{Cambridge } # up’. This will expand to ‘"Cambridge
-University Press"’. When Ebib detects such a ‘nested’ ‘@String’
+University Press"’. When Ebib detects such a 'nested' ‘@String’
definition, it will display the full expansion in the strings buffer
next to the value. Note that for this to work, such values need to be
marked _special_, just like field values that contain ‘@String’
@@ -1121,7 +1128,7 @@
‘@Preamble’ (with the exception of a ‘@Comment’ surrounding a ‘Local
Variables:’ block, which is saved at the end of the file). There is no
way to edit comments, nor can you specify where in the ‘.bib’ file a
-comment is placed, but they won’t be lost.
+comment is placed, but they won't be lost.
File: ebib.info, Node: Creating Entry Stubs, Next: Multiline Edit Buffers, Prev: @Comments, Up: Editing the Database
@@ -1162,14 +1169,14 @@
to use some other mode, you can specify this through the customisation
option ‘ebib-multiline-major-mode’.
-Three commands are relevant for interacting with Ebib when you’re in the
+Three commands are relevant for interacting with Ebib when you're in the
multiline edit buffer, which are bound to key sequences in the minor
mode ‘ebib-multiline-edit-mode’, which is activated automatically in the
multiline edit buffer.
‘ebib-quit-multiline-buffer-and-save’, bound to ‘C-c C-c’, leaves the
multiline edit buffer and stores the text in the database. If you
-invoke this command when you’ve deleted all contents of the buffer
+invoke this command when you've deleted all contents of the buffer
(including the final newline!) and you were editing a field value or
the ‘@Preamble’, the field value or preamble is deleted. (This is in
fact the _only_ way to delete the ‘@Preamble’ definition. Field values
@@ -1200,11 +1207,11 @@
you finish one, its contents is stored in the correct place.
The key combinations of the multiline edit buffer strictly speaking
-violate Emacs’ suggested key binding conventions. They are defined in
+violate Emacs' suggested key binding conventions. They are defined in
the keymap of a minor mode (‘ebib-multiline-mode’, to be specific), but
a minor mode keymap should only use key bindings of ‘C-c’ plus a
non-alphanumeric character. The bindings do follow practical
-conventions, however: they are used for similar functions in e.g., Org’s
+conventions, however: they are used for similar functions in e.g., Org's
capture mechanism, in ‘message-mode’, in VC, magit, etc. For this
reason, Ebib uses them as well.
@@ -1260,7 +1267,7 @@
yet, it is added to it.
It is also possible to add entries in the usual way, i.e., by pressing
-‘a’ in Ebib’s index buffer. If you do this in a dependent database,
+‘a’ in Ebib's index buffer. If you do this in a dependent database,
instead of creating a new entry, you are prompted for an entry from the
main database to add to the dependent one. In the main database, you
can also push entries to a dependent database with the command ‘M a’.
@@ -1284,7 +1291,7 @@
database as well, if necessary. Note that when Ebib opens a dependent
database, it only reads the entry keys from the ‘.bib’ file. The data
of each entry is taken from the main database. This means that if you
-edit a dependent database’s ‘.bib’ file outside of Ebib, the changes you
+edit a dependent database's ‘.bib’ file outside of Ebib, the changes you
make are ignored when you open the file in Ebib.
@@ -1308,7 +1315,7 @@
5.1 Single Citations
====================
-When you’re in a text buffer and you have Ebib open in the background
+When you're in a text buffer and you have Ebib open in the background
(i.e., you lowered Ebib with ‘z’), you can insert a citation with the
command ‘ebib-insert-citation’. This command asks for a key and inserts
a citation with that key in a (user-selectable) form that is appropriate
@@ -1338,14 +1345,14 @@
inserts a citation of the form ‘@Jones1992’, ‘paren’, which inserts a
citation of the form ‘[@Jones1992]’ and ‘year’, which inserts
‘[-@Jones1992]’. Since these are the only types of citations that
-Pandoc Markdown knows, you shouldn’t need to change anything.
+Pandoc Markdown knows, you shouldn't need to change anything.
Ebib also provides a way to insert citations into a buffer from within
-Ebib. If you’re in the index buffer and press ‘i’, Ebib asks you for a
+Ebib. If you're in the index buffer and press ‘i’, Ebib asks you for a
buffer to insert the citation into (which defaults to the buffer you
started Ebib from, or the buffer you previously inserted an entry into),
a citation command and also any optional arguments, and then inserts a
-citation at the current cursor position in the buffer you’ve supplied.
+citation at the current cursor position in the buffer you've supplied.
File: ebib.info, Node: Citations with multiple keys, Next: Key Bindings, Prev: Single Citations, Up: Inserting Citations into a Text Buffer
@@ -1354,12 +1361,12 @@
================================
Most citation commands in LaTeX can take multiple keys. To add more
-than one key to a citation, you can mark them in Ebib’s index buffer
+than one key to a citation, you can mark them in Ebib's index buffer
with ‘m’ and then insert them into a text buffer with ‘i’. If you use
ivy or helm, the standard method that these packages provide for
selecting and acting on multiple candidates can be used if you insert a
citation from within your text buffer with ‘ebib-insert-citation’. If
-you use selectrum or Emacs’ built-in completion method, you can enable
+you use selectrum or Emacs' built-in completion method, you can enable
selection of multiple keys by setting the option
‘ebib-citations-insert-multiple’. With this option set, you can select
multiple keys when calling ‘ebib-insert-citation’ by selecting a
@@ -1368,13 +1375,13 @@
you can select the next candidate. Finish by typing ‘RET’.
Note that selectrum automatically adds the ampersand for you, so you
-don’t need to type it: after hitting ‘TAB’, you can immediately start
+don't need to type it: after hitting ‘TAB’, you can immediately start
selecting the next candidate. If you use default completion, however,
you need to type it yourself.
Also note that with default completion, ‘TAB’ completes partial input
strings just as it does in normal completion. It only selects the
-candidate once you’ve typed enough to narrow down the choices to a
+candidate once you've typed enough to narrow down the choices to a
single candidate. With selectrum, ‘TAB’ always selects the currently
highlighted candidate. This is the default behaviour of ‘TAB’ in both
completion systems, so should not be confusing.
@@ -1391,7 +1398,7 @@
Of course, the easiest way to use the commands discussed here is to bind
them to a key sequence. For example, the following binds ‘C-c b’ to
-‘ebib-insert-citation’ in AUCTeX’s LaTeX mode:
+‘ebib-insert-citation’ in AUCTeX's LaTeX mode:
(define-key 'LaTeX-mode-map "\C-cb" 'ebib-insert-citation)
@@ -1416,7 +1423,7 @@
‘markdown-mode’. As mentioned, the commands defined for LaTeX are those
used by ‘biblatex’. If you use something else, you may need to set up
some commands yourself. This can be done by customising the option
-“Citation Commands” (‘ebib-citation-commands’).
+"Citation Commands" (‘ebib-citation-commands’).
Each command consists of an identifier, which you type when Ebib prompts
you for a citation command, plus a format string, which is used to
@@ -1498,7 +1505,7 @@
‘Biblatex’ commands also accept multiple citation keys. When you call
‘ebib-insert-citation’ from within a LaTeX buffer, you can only provide
-one key, but when you’re in Ebib, you can mark multiple entry keys and
+one key, but when you're in Ebib, you can mark multiple entry keys and
then use ‘i’ to insert them to a buffer. In this case, Ebib asks you
for a separator and then inserts all keys into the position of ‘%K’:
@@ -1507,7 +1514,7 @@
It is, however, also possible to specify in the format string that a
certain sequence can be repeated and how the different elements should
be separated. This is done by wrapping that portion of the format
-string that can be repeated in a ‘%(...%)’ pair. Normally, you’ll want
+string that can be repeated in a ‘%(...%)’ pair. Normally, you'll want
to provide a separator, which is done by placing it between the ‘%’ and
the closing parenthesis:
@@ -1518,7 +1525,7 @@
that you are no longer asked to provide a separator.
It is also possible to put ‘%A’ directives in the repeating part. This
-is useful for ‘biblatex’’s so-called _multicite_ commands that take the
+is useful for ‘biblatex’'s so-called _multicite_ commands that take the
following form:
\footcites[cf.][p. 50]{Jones1992}[][p. 201]{Haddock2004}
@@ -1567,7 +1574,7 @@
In a LaTeX buffer, Ebib looks for ‘\addbibresource’ commands or a
‘\bibliography’ command and uses the files specified in them. If the
variable ‘TeX-master’ is set (which is used by AUCTeX to keep track of a
-file’s master file), the master file is searched instead.
+file's master file), the master file is searched instead.
In non-LaTeX buffers, Ebib first checks if ‘pandoc-mode’ is active; if
it is, Ebib uses the value of the ‘bibliography’ option. If
@@ -1580,7 +1587,7 @@
rename or remove bibliography files in your project, you may need to
reload the file (use ‘M-x revert-buffer’ or ‘C-x C-v RET’).
-You can override Ebib’s automatic association of ‘.bib’ files to a
+You can override Ebib's automatic association of ‘.bib’ files to a
buffer by setting the variable ‘ebib-local-bibfiles’ to a list of files.
This can be done as a file-local or a directory-local variable, or as a
customisable option.
@@ -1597,7 +1604,7 @@
used as citations.
If you call ‘ebib-insert-citation’ in an Org buffer, you can add a link
-to an entry in a ‘.bib’ file that’s open in Ebib. The link has the form
+to an entry in a ‘.bib’ file that's open in Ebib. The link has the form
‘[[ebib: (][]]’. The description is a user-provided
string, which you are prompted for, but a default description is
provided, which you can accept by pressing ‘RET’. This default
@@ -1611,7 +1618,7 @@
(provided its database is opened in Ebib).
The ‘org-ebib’ package also allows you to create Org links to Ebib
-entries with ‘org-store-link’ when you’re in the entry buffer. Links
+entries with ‘org-store-link’ when you're in the entry buffer. Links
created in this way have the same form, but they can also specify the
‘.bib’ file containing the entry by adding an ‘@’ sign after the key and
the name or full path of the file. Which type of link is produced is
@@ -1665,7 +1672,7 @@
string was found. If you want to continue searching from the top, type
‘g’ and then continue the search with ‘RET’.
-Note that once you’ve started a search with ‘/’, Ebib activates a
+Note that once you've started a search with ‘/’, Ebib activates a
transient key map called ‘ebib-search-map’. It is this map that holds
the binding for ‘RET’ to continue searching after the current entry and
of the key ‘g’ to jump to the top of the database. There are also
@@ -1683,7 +1690,7 @@
in which not all entries are visible; see the next section), only the
visible entries are searched. If the search string is present in the
database but not in one of the visible entries, Ebib will respond with a
-“search string not found” message.
+"search string not found" message.
File: ebib.info, Node: Filters, Next: Importing BibTeX entries, Prev: Searching, Up: Top
@@ -1696,11 +1703,11 @@
entries from the current database. When you apply a filter to a
database, only the entries that match are shown. With filters, you can,
for example, select all entries from a database that contain the string
-“Jones” in their ‘author’ field. A filter can be as complex as you
-want: you can select all entries that do _not_ contain “Jones” in the
-‘author’ field, or all entries that contain “Jones” in either the
-‘author’ or the ‘editor’ field, or all entries that contain “Jones” in
-the ‘author’ field, and “symbiotic hibernation” in the ‘keyword’ field,
+"Jones" in their ‘author’ field. A filter can be as complex as you
+want: you can select all entries that do _not_ contain "Jones" in the
+‘author’ field, or all entries that contain "Jones" in either the
+‘author’ or the ‘editor’ field, or all entries that contain "Jones" in
+the ‘author’ field, and "symbiotic hibernation" in the ‘keyword’ field,
etc. Basically, the filter can consist of an arbitary number of search
criteria combined with the logical operators ‘and’, ‘or’ and ‘not’.
@@ -1729,7 +1736,7 @@
index buffer. (The filter can be displayed in Lisp form, if you prefer:
customise ‘ebib-filters-display-as-lisp’ to do so.)
-If you don’t want to filter on one specific field but rather want to
+If you don't want to filter on one specific field but rather want to
select all entries that match a certain regexp in any field, you can
type ‘any’ as the field to filter on. So specifying ‘any’ as the field
and ‘Jones’ as the regexp will give you all entries that have a field
@@ -1738,7 +1745,7 @@
Note that you can also select items based on their entry type. In order
to do that, you need to specify ‘=type=’ as the field to search, which
is the field name under which Ebib stores the entry type internally.
-(There is also a “normal” field called ‘type’, hence the equal signs.)
+(There is also a "normal" field called ‘type’, hence the equal signs.)
If you search the ‘=type=’ field, only exact matches are returned, so if
you search for ‘book’, only the entries that are of type ‘book’ are
returned, not those of type ‘inbook’. You can use ‘TAB’ completion in
@@ -1792,7 +1799,7 @@
search criterion is negated. That is, the negative prefix argument
performs a logical ‘not’ operation on the search criterion. For
example, if you want to select all entries from a database that do _not_
-contain “Jones” in the ‘author’ field, you can do this by typing ‘M-- &’
+contain "Jones" in the ‘author’ field, you can do this by typing ‘M-- &’
and then filling out the relevant field and regexp.
There is another way of performing a logical ‘not’ operation, which is
@@ -1838,7 +1845,7 @@
When you cancel a filter, it is automatically stored so that it can be
reapplied later. To reapply a filter, type ‘F L’. This will reapply
-the last used filter regardless of which database you’re in. That is,
+the last used filter regardless of which database you're in. That is,
you can use this to search more than one database without having to type
the filter over and over.
@@ -1848,7 +1855,7 @@
for the filter in order to identify it later. (By default, filter names
are case-insensitive, but if you prefer to use case-sensitive filter
names, you can unset the option ‘ebib-filters-ignore-case’.) When Ebib
-is closed, all stored filters are saved to a file and they’re
+is closed, all stored filters are saved to a file and they're
automatically reloaded when you open Ebib again. Stored filters are not
associated with a particular database: once a filter is stored, it is
available to all databases.
@@ -1949,9 +1956,9 @@
(ebib--update-buffers)))
First, this function saves the current filter if there is one. It then
-calculates a date in Emacs’ internal time format by subtracting the
+calculates a date in Emacs' internal time format by subtracting the
number of days provided by the user from the current date and creates a
-Lisp expression that tests whether an entry’s timestamp is earlier or
+Lisp expression that tests whether an entry's timestamp is earlier or
later than this date. This expression is then installed as the filter
for the current database. A call to ‘ebib--update-buffers’ then updates
the display, taking the filter into account.
@@ -1971,7 +1978,7 @@
(time-less-p date timestamp))))
This function obtains the time stamp of the entry being tested from the
-variable ‘ebib-entry’ and then tries to convert it to Emacs’ time
+variable ‘ebib-entry’ and then tries to convert it to Emacs' time
format. If successful, it compares this time to the date passed as an
argument and returns ‘t’ if the latter precedes the former.
@@ -1986,7 +1993,7 @@
entries, either interactively or by merging or exporting. Exporting
from a filtered database or saving a filtered database is also disabled.
Editing existing entries is possible, however. Note that if the entry
-doesn’t match the filter anymore after the edit, it doesn’t disappear
+doesn't match the filter anymore after the edit, it doesn't disappear
from view. For that, you need to reapply the filter with ‘F r’.
It is also possible to mark entries. Marked entries stay marked when
@@ -1998,7 +2005,7 @@
because it would not be clear whether you want to save the entire
database or just the filtered entries. If you want to save only the
filtered entries to a file, you can use the command ‘w’ (or the menu
-option “Database | Save As”). This also saves the ‘@String’,
+option "Database | Save As"). This also saves the ‘@String’,
‘@Preamble’ and ‘@comments’, as well as any file-local variables, so you
will have a self-contained ‘.bib’ file with only the filtered entries.
In order to save the entire database, you need to cancel the filter.
@@ -2038,7 +2045,7 @@
with an entry key that already exists in the database) will normally not
be loaded. Ebib logs a warning about each duplicate entry to its log
buffer and displays a warning after loading the ‘.bib’ file when this
-happens. However, if you’ve customised Ebib to automatically generate
+happens. However, if you've customised Ebib to automatically generate
keys, duplicate entries will be merged into the current database under a
unique key.
@@ -2062,7 +2069,7 @@
temporary key for it of the form ‘’, where ‘XX’ is a
number. You can change such keys by hitting ‘E’ in the index buffer.
Such a key will also automatically be replaced with a more sensible key
-if you edit the entry. See the option “Autogenerate Keys”
+if you edit the entry. See the option "Autogenerate Keys"
(‘ebib-autogenerate-keys’) for details.
@@ -2091,10 +2098,10 @@
("e" . ebib-biblio-selection-import)))
If you now call ‘biblio-lookup’, you can use the key ‘e’ (or any other
-key you choose, of course) in Biblio’s selection buffer to import the
+key you choose, of course) in Biblio's selection buffer to import the
selected entry into the current Ebib database.
-Additionally, you can use the key ‘B’ in Ebib’s index buffer to import
+Additionally, you can use the key ‘B’ in Ebib's index buffer to import
an entry into the current database if you have its DOI.
When fetching entries via Biblio, Ebib checks for duplicates based on
@@ -2121,16 +2128,16 @@
the last occurrence without giving any warning. (Note, by the way, that
‘biblatex’ will use the value of the _first_ occurrence, not the last.)
When extra fields appear more than once in an entry, ‘biblatex’ does not
-warn you, since it ignores those fields anyway. Here, too, Ebib’s
+warn you, since it ignores those fields anyway. Here, too, Ebib's
standard behaviour is to ignore all but the last value.
-However, some online reference management services “use” this feature of
+However, some online reference management services "use" this feature of
BibTeX in that they put multiple ‘keywords’ fields in the BibTeX entries
that they produce. If you were to import such an entry into Ebib, you
would lose all your keywords except the last one. To remedy this, you
can tell Ebib that it should allow multiple occurrences of a single
field in a BibTeX entry. You can do this by setting the customisation
-option “Allow Identical Fields”.
+option "Allow Identical Fields".
With this option set, Ebib collapses the multiple occurrences into a
single occurrence. All the values of the different occurrences are
@@ -2148,8 +2155,8 @@
keywords = {hibernation}
}
-If you load this entry into Ebib with the option “Allow Identical
-Fields” set, you will get the following:
+If you load this entry into Ebib with the option "Allow Identical
+Fields" set, you will get the following:
@book{Jones1998,
author = {Jones, Joan},
@@ -2191,13 +2198,13 @@
to open.
The file names in the ‘file’ field do not have to have full paths. You
-can set the option “File Search Dirs” to a list of directories that Ebib
+can set the option "File Search Dirs" to a list of directories that Ebib
should search when opening a file from the ‘file’ field. Note that Ebib
searches only the directories in this list, not their subdirectories.
However, you can specify a relative path in the ‘file’ field: if you put
something like ‘a/Abney1987.pdf’ in the ‘file’ field, Ebib searches for
the relevant file in a subdirectory ‘a/’ of the directories listed in
-the option “File Search Dirs”. As an extra service, Ebib also searches
+the option "File Search Dirs". As an extra service, Ebib also searches
for the base filename, i.e., ‘Abney1987’ in this particular case.
Ebib can call different external programs depending on the file
@@ -2230,7 +2237,7 @@
key of the current entry as its argument (as a string), and should
return the file name to use (without ‘.pdf’, which is added
automatically). Note that you can use the function
-‘ebib-get-field-value’ to access the values of the entry’s fields (you
+‘ebib-get-field-value’ to access the values of the entry's fields (you
need to pass ‘ebib--cur-db’ for the ‘db’ argument).
There are two functions that can help you to attach files to your
@@ -2257,7 +2264,7 @@
‘ebib-file-search-dirs’. The file name is created in the same way as
with ‘ebib-download-url’: by applying the function in
‘ebib-name-transform-function’ to the entry key. The extension of the
-original file is maintained, however, so it doesn’t just work for pdf
+original file is maintained, however, so it doesn't just work for pdf
files.
Both ‘ebib-download-url’ and ‘ebib-import-file’ add the imported file to
@@ -2278,19 +2285,19 @@
field, you are asked to specify a single file name. When you hit ‘RET’,
Ebib adds the filename to the ‘file’ field, appending it to any existing
contents (adding a separator if necessary), and then asks you for the
-next file. If you don’t want to add another, just hit ‘RET’. The
+next file. If you don't want to add another, just hit ‘RET’. The
default separator is ‘"; "’ (semicolon-space), but this can be
-customised (see the option “Filename Separator” for details). The
+customised (see the option "Filename Separator" for details). The
advantage of this method is that you can use ‘TAB’ completion to
complete file names.
-The first directory in the option “File Search Dirs” is used as the
+The first directory in the option "File Search Dirs" is used as the
starting directory for filename completion when editing the ‘file’
field. Note that when completing file names, Ebib does not take the
-directories in “File Search Dirs” into account: completion is done using
+directories in "File Search Dirs" into account: completion is done using
the standard Emacs file name completion mechanism. However, when you
enter a file name, Ebib checks if it is in a (subdirectory of) one of
-the directories in “File Search Dirs”, and if so, cuts off the relevant
+the directories in "File Search Dirs", and if so, cuts off the relevant
part of the file name to turn it into a relative path. (You can disable
this behaviour with the option ‘ebib-truncate-file-names’: if unset,
file names are always stored as absolute paths.)
@@ -2329,7 +2336,7 @@
then happen to run into a URL that contains a semicolon, you can enclose
it in ‘\url{...}’ and it will be recognised properly. You can, of
course, customise the regular expression that controls this behaviour.
-See the option “Url Regexp” for details.
+See the option "Url Regexp" for details.
Similarly, with the key ‘I’ in the index buffer you can send a DOI to a
browser. The DOI must be stored in the ‘doi’ field. Unlike URLs, there
@@ -2339,7 +2346,7 @@
Ebib uses the Emacs function ‘browse-url’ to call the default browser on
the system. If you prefer to use another browser, however, you can
-specify this with the option “Browser Command”.
+specify this with the option "Browser Command".
File: ebib.info, Node: Notes files, Next: Managing a reading list, Prev: Linking to external resources, Up: Top
@@ -2353,7 +2360,7 @@
buffer, Ebib creates a note for the entry, which is saved in a separate
file. If an entry already has a note associated with it, ‘N’ opens it.
By default, notes are created as Org entries. (Changing that is
-possible, though it’s somewhat involved.)
+possible, though it's somewhat involved.)
In the entry buffer, the first few lines of the note are shown under a
pseudo-field ‘external note’. This is not an actual field in the ‘.bib’
@@ -2362,7 +2369,7 @@
When you record a new note, Ebib pops up a buffer and adds the note to
the end of the relevant notes file. If you prefer, you can also use Org
-mode’s capture system to record new notes. This has the advantage that
+mode's capture system to record new notes. This has the advantage that
you have more control over the location where a note is stored and that
you can have more than one capture template.
@@ -2399,14 +2406,14 @@
‘ebib-notes-locations’. You can also add directories to this list: all
Org files in those directories are considered notes files. (This does
not mean that they _must_ contain notes. Ebib searches all Org files in
-‘ebib-notes-locations’ for notes, but it won’t complain if it doesn’t
+‘ebib-notes-locations’ for notes, but it won't complain if it doesn't
find any, or if any of the files contain more than just notes.)
The procedure for creating a new note depends on the setting of
‘ebib-notes-storage’. If this option is set to ‘one-note-per-file’ (the
default), Ebib creates a new note file in ‘ebib-notes-directory’ and
gives it a name that consists of the entry key plus the extension
-“.org”. Before creating the file name, however, Ebib applies the
+".org". Before creating the file name, however, Ebib applies the
function in ‘ebib-notes-name-transform-function’ to it, or, if this is
not set, the function in ‘ebib-name-transform-function’. This means
that you can configure the name of the new note file to whatever you
@@ -2416,10 +2423,10 @@
‘ebib-name-transform-function’ to be applied, you can set
‘ebib-notes-name-transform-function’ to ‘identity’.)
-If ‘ebib-notes-storage’ is set to ‘multiple-notes-per-files’, Ebib won’t
+If ‘ebib-notes-storage’ is set to ‘multiple-notes-per-files’, Ebib won't
create a new file when you create a new note. Instead, it will ask you
for the file to save the note to and offer the files in
-‘ebib-notes-locations’ as candidates. If you don’t want to be asked,
+‘ebib-notes-locations’ as candidates. If you don't want to be asked,
you can set the option ‘ebib-notes-default-file’: new notes are then
automatically stored to that file. You can subsequently use Org to move
notes around or archive them.
@@ -2445,13 +2452,13 @@
If ‘ebib-notes-storage’ is set to ‘multiple-notes-per-file’, Ebib uses
three hooks to control the way a note is displayed. By default, when
you jump to a note from Ebib, the Org file is narrowed to the subtree
-containing the note and point is positioned at the note’s heading.
+containing the note and point is positioned at the note's heading.
When an existing note is displayed, the hook
‘ebib-notes-open-note-after-hook’ is run. By default, this contains two
functions: ‘org-back-to-header’, which puts point at the start of the
note, and ‘org-narrow-to-subtree’, which narrows the notes buffer to
-just the note you’re viewing.
+just the note you're viewing.
When a new note is created, the hook ‘ebib-notes-new-note-hook’ is run.
By default, this contains the function ‘org-narrow-to-subtree’. Point
@@ -2528,20 +2535,20 @@
notes in a single file, the template *must* contain a ‘:PROPERTIES:’
block with the ‘%K’ format specifier, because it is required in order to
identify the note and connect it to its BibTeX entry. Without it, Ebib
-won’t be able to tell whether an entry has a note or not and won’t be
+won't be able to tell whether an entry has a note or not and won't be
able to display it.
If you use a separate file for each note, the notes are identified by
-the file name, so there’s no real need for the ‘:PROPERTIES:’ block, but
+the file name, so there's no real need for the ‘:PROPERTIES:’ block, but
it can still be useful if you use other Org-based tools on your note
files (or if you ever want to collect your notes into a single file but
keep them available for Ebib.)
There are a few more specifiers that may be used in the template: ‘%F’
-creates an Org link to the file in the BibTeX entry’s ‘file’ field, ‘%D’
-creates an Org link to the DOI in the entry’s ‘doi’ field, and ‘%U’ an
-Org link to the entry’s ‘url’ field. There is also a ‘%L’ specifier,
-which creates an Org link to the entry’s file, its DOI, or its URL,
+creates an Org link to the file in the BibTeX entry's ‘file’ field, ‘%D’
+creates an Org link to the DOI in the entry's ‘doi’ field, and ‘%U’ an
+Org link to the entry's ‘url’ field. There is also a ‘%L’ specifier,
+which creates an Org link to the entry's file, its DOI, or its URL,
whichever is found first.
It is possible to change the strings that the specifiers produce, or to
@@ -2564,7 +2571,7 @@
where ‘’ is the field as a (case-insensitive) string whose value
is to be retrieved.
-Instead of a function, you may also provide a variable. The variable’s
+Instead of a function, you may also provide a variable. The variable's
value is then used to replace the specifier.
Because the template can be customised and the major mode is determined
@@ -2592,7 +2599,7 @@
buffer that is displayed when an entry has a note. This setting is only
really convenient if you use a multiple notes per file, because the
buffer is not closed after displaying the note. If you use a separate
-file for each note, you’ll end up with a lot of open buffers. (Showing
+file for each note, you'll end up with a lot of open buffers. (Showing
only the first few lines in the entry buffer does not have this
limitation, as it just reads the text of the note from the file, it does
not visit the file in a buffer.)
@@ -2600,7 +2607,7 @@
Note also that displaying the note inline in the entry buffer is only
possible with Org files, so your notes must use Org mode for it to work.
Showing the entire note in a separate buffer can be done with any
-format, but only works if you use Ebib’s default window layout (see the
+format, but only works if you use Ebib's default window layout (see the
section *note Window Management: #window-management. for details),
because that is the only window layout that ensures that the note can be
displayed without getting in the way.
@@ -2611,10 +2618,10 @@
10.6 Using ‘org-capture’ to record notes
========================================
-Instead of using Ebib’s own system to record notes, you can also use
+Instead of using Ebib's own system to record notes, you can also use
‘org-capture’ to do so. This has two advantages: first, Org capture
templates allow you to specify the type of the note and the location
-where the note is to be stored more precisely than what Ebib’s system
+where the note is to be stored more precisely than what Ebib's system
allows. Second, you can define more than one template, so you can
capture different kinds of notes or record them in different files.
@@ -2622,11 +2629,11 @@
displaying existing notes. Therefore, you still need to configure Ebib
to look for notes in the right locations.
-When using ‘org-capture’, you’ll most likely want to set
+When using ‘org-capture’, you'll most likely want to set
‘ebib-notes-storage’ to ‘multiple-notes-per-file’. (Though technically
it would be possible to have a single file for each note, there is
little reason to go through the trouble of setting that up.) In
-addition, you’ll need to set ‘ebib-notes-locations’ to the files and/or
+addition, you'll need to set ‘ebib-notes-locations’ to the files and/or
directories you use to store notes. There is no point but also no harm
in setting ‘ebib-notes-default-file’; this setting is ignored when you
create notes through ‘org-capture’ but Ebib still uses it to search for
@@ -2685,10 +2692,10 @@
(setq org-capture-template-contexts
'(("e" ((in-mode ebib-index-mode)))))
-The ‘"e"’ is the key that you’ve chosen for your template. This setting
+The ‘"e"’ is the key that you've chosen for your template. This setting
ensures that the ‘org-capture’ template associated with the key ‘"e"’ is
only shown when ‘org-capture’ is called from a buffer with major mode
-‘ebib-index-mode’, which is Ebib’s index buffer.
+‘ebib-index-mode’, which is Ebib's index buffer.
You can also bypass the ‘org-capture’ selection buffer altogether and
open an ‘org-capture’ buffer immediately with the appropriate template.
@@ -2705,7 +2712,7 @@
locations for storing notes or store different types of notes. If you
do so, you still need to use the same function
‘ebib-notes-create-org-template’ to create the actual template, however.
-‘org-capture’ itself does not know about Ebib’s databases and cannot
+‘org-capture’ itself does not know about Ebib's databases and cannot
access them. This is what ‘ebib-notes-create-org-template’ is for.
If you wish to associate each ‘org-capture’ entry with a different
@@ -2737,7 +2744,7 @@
Ebib offers the ability to manage a reading list as an Org file. In
order to make use of this functionality, you must set the option
‘ebib-reading-list-file’ to a file in which the reading list is stored.
-Once you’ve specified a file, you can add the current entry to the
+Once you've specified a file, you can add the current entry to the
reading list with ‘R a’. The mode line of the entry buffer will show
‘[R]’ to indicate that the current entry is on the reading list.
@@ -2774,7 +2781,7 @@
The option ‘ebib-reading-list-item-active-function’ holds a function
that should return ‘t’ if the current entry is on the reading list and
-is still active. The default function simply checks if the entry’s todo
+is still active. The default function simply checks if the entry's todo
state is equal to ‘ebib-reading-list-todo-marker’.
Lastly, there are two hooks, ‘ebib-reading-list-new-item-hook’ and
@@ -2832,12 +2839,12 @@
used in any of your ‘.bib’ files. If you wish to use a set of canonical
keywords that are always offered for completion, regardless of whether
they are used in a currently opened ‘.bib’ file or not, you can set the
-option “Keywords” (‘ebib-keywords’). This can be a list of keywords or
+option "Keywords" (‘ebib-keywords’). This can be a list of keywords or
the name of a file containing the keywords. If it is a file name, the
file should be a simple text file with one keyword per line.
If you set this option, keywords in a database that are not in the
-canonical list are displayed in Ebib’s warning face
+canonical list are displayed in Ebib's warning face
(‘ebib-warning-face’). You can add them to the canonical list with the
key sequence ‘K s’, which will ask you for the keyword to add, or with
‘K c’, which adds all keywords of the current entry to the canonical
@@ -2847,22 +2854,22 @@
Even if you use a list of canonical keywords, you can still enter
keywords that are not in the list when you edit the ‘keywords’ field.
If you do so, the new keywords are added to the list automatically. If
-you do not wish this to happen, unset the option “Keywords Add New To
-Canonical”.
+you do not wish this to happen, unset the option "Keywords Add New To
+Canonical".
If new keywords were added to the list of canonical keywords, you will
be asked if you wish to save the list when you quit Ebib. If you always
want this to happen without asking for confirmation, set the option
-“Keywords Save On Exit” to ‘always’. Note that you can also save the
+"Keywords Save On Exit" to ‘always’. Note that you can also save the
list manually with the key sequence ‘K S’ (capital ‘K’, capital ‘S’).
-If you haven’t configured a list of canonical keywords, the key sequence
+If you haven't configured a list of canonical keywords, the key sequence
‘K S’ creates one from the keywords used in your open ‘.bib’ files. The
list is then saved to your customisation file (usually
‘~/.emacs.d/init.el’). If you prefer to keep your keywords in a
separate file, you need to create the file yourself (as mentioned, one
keyword per line; keywords may of course contain spaces), and configure
-the option “Keywords” (‘ebib-keywords’) yourself.
+the option "Keywords" (‘ebib-keywords’) yourself.
File: ebib.info, Node: Window Management, Next: Copying Entries to the Kill Ring, Prev: Managing Keywords, Up: Top
@@ -2875,7 +2882,7 @@
There are a few options to change this behaviour, however. They are all
part of the customisation group ‘ebib-windows’, and allow you to specify
two alternative ways to deal with Ebib windows. The main layout option
-is simply called “Layout” and has four options: use the full frame (the
+is simply called "Layout" and has four options: use the full frame (the
default), use the current window, use the right part of the frame, or
display only the index window.
@@ -2883,7 +2890,7 @@
buffers are displayed on the right of the frame, with the (usually
larger) left part of the frame displaying some other buffer, normally
the buffer from which you called Ebib. The width of the Ebib windows
-can be set with the option “Width”, which defaults to 80, and which can
+can be set with the option "Width", which defaults to 80, and which can
be specified as an absolute value (the number of columns), but also as a
value relative to the current window. In that case, you must specify a
value between 0 and 1. Note that when this option is used, the key ‘z’
@@ -2897,7 +2904,7 @@
start-up. In this case, Ebib does not display the entry buffer when it
is started. Instead, only the index buffer is displayed, which can be
navigated in the usual manner. The entry buffer is only displayed when
-you add or edit an entry. When you’ve finished editing and move back to
+you add or edit an entry. When you've finished editing and move back to
the index buffer, the entry buffer is hidden again.
The entry buffer is also displayed if you press ‘RET’. When you do
@@ -2910,17 +2917,17 @@
it just selects another, non-Ebib window. In order to hide the index
window, you can use (uppercase) ‘Z’.
-If you set Ebib’s layout to display only the index buffer on startup,
-you can additionally set the option “Popup Entry Window”. Normally,
+If you set Ebib's layout to display only the index buffer on startup,
+you can additionally set the option "Popup Entry Window". Normally,
Ebib will reuse an existing window to display the entry buffer (and
restore its original buffer when you leave the entry buffer). With this
option set, however, Ebib uses the Emacs function
‘display-buffer-popup-window’ to create a new window (which is destroyed
again when you leave the entry buffer).
-Further relevant options are “Window Vertical Split”, which displays the
-index buffer to the left of the frame rather than at the top, and “Index
-Window Size”, which determines the size of the index window (either its
+Further relevant options are "Window Vertical Split", which displays the
+index buffer to the left of the frame rather than at the top, and "Index
+Window Size", which determines the size of the index window (either its
height or its width, depending on whether the index window is displayed
at the top or on the left of the frame.)
@@ -2960,7 +2967,7 @@
"{Author|Editor} ({Date|Year})"
-This template uses the ‘Author’ field unless it’s empty, in which case
+This template uses the ‘Author’ field unless it's empty, in which case
the ‘Editor’ field is used. Similarly for the year: first the contents
of the ‘Date’ field is checked. The ‘Year’ field is used if the ‘Date’
field is empty.
@@ -3019,22 +3026,22 @@
‘Print Newpage’ in the customisation buffer (or in the Print menu), the
entries are separated by a ‘\newpage’, so that every entry is on a
separate page. The latter option is useful when printing actual index
-cards (though you’d probably have to change the page size with the
+cards (though you'd probably have to change the page size with the
‘geometry’ package as well).
By default, the index cards only show single-line field values. That
is, multiline values are normally excluded. If you want to include
multiline values in the print-out, you have to set the option ‘Print
-Multiline’ in the Options menu or in Ebib’s customisation buffer. With
+Multiline’ in the Options menu or in Ebib's customisation buffer. With
this option set, Ebib includes all multiline values in the LaTeX file
that it creates. Note however that Ebib does not change anything about
the formatting of the text in a multiline value. So if you plan to make
(heavy) use of this option, make sure that the way you type your text
-conforms to LaTeX’s conventions (e.g. empty lines to mark paragraphs,
-etc.) and doesn’t contain any characters such as ‘&’ that are illegal
+conforms to LaTeX's conventions (e.g. empty lines to mark paragraphs,
+etc.) and doesn't contain any characters such as ‘&’ that are illegal
in LaTeX. (Or, alternatively, use LaTeX code in your multiline fields.)
-As mentioned, when you “print” the database, Ebib really just creates a
+As mentioned, when you "print" the database, Ebib really just creates a
LaTeX file. More precisely, it creates a temporary buffer and writes
the LaTeX code into it, and then saves the contents of that buffer to a
file. After it has done that, Ebib lowers itself and instruct Emacs to
@@ -3046,15 +3053,15 @@
assumes that if you provide a filename of an existing file, it can
overwrite that file without warning!
-A better way to tell Ebib which file to use is to set the option “Print
-Tempfile” in Ebib’s customisation buffer to some temporary file. When
+A better way to tell Ebib which file to use is to set the option "Print
+Tempfile" in Ebib's customisation buffer to some temporary file. When
this option is set, Ebib will always use this file to write to, and will
not ask you for a filename anymore.
Note that both print options operate on all entries of the database or
on the selected entries.
-The option “Print Preamble” and “LaTeX Preamble” allow you to customise
+The option "Print Preamble" and "LaTeX Preamble" allow you to customise
the preamble of the LaTeX file that is created.
@@ -3063,21 +3070,21 @@
16 Customisation
****************
-Ebib can be customised through Emacs’ standard customisation interface.
+Ebib can be customised through Emacs' standard customisation interface.
The relevant customisation group is (obviously) called ‘ebib’, which has
five subgroups: ‘ebib-faces’, ‘ebib-filters’, ‘ebib-notes’, and
‘ebib-keywords’, whose functions should be obvious, and ‘ebib-windows’,
-where options for Ebib’s window management can be set. All options are
-documented in the customisation buffers. You can go to Ebib’s
+where options for Ebib's window management can be set. All options are
+documented in the customisation buffers. You can go to Ebib's
customisation buffer with ‘M-x customize-group RET ebib RET’, or by
using the menu «Ebib | Options | Customize Ebib».
-In the index buffer, Ebib’s menu has an Options submenu. This menu
-gives you quick access to Ebib’s customisation buffer, and it also
+In the index buffer, Ebib's menu has an Options submenu. This menu
+gives you quick access to Ebib's customisation buffer, and it also
provides checkboxes for several settings that can be toggled on and off.
All of these settings have defaults that can be defined in the
customisation buffer. Setting or unsetting them in the Options menu
-only changes them for the duration of your Emacs session, it doesn’t
+only changes them for the duration of your Emacs session, it doesn't
affect the default setting.
The same is true for the printing options that are in the Print menu.
@@ -3094,7 +3101,7 @@
16.1 Modifying Key Bindings
===========================
-If you would like to change Ebib’s standard key bindings, or if you
+If you would like to change Ebib's standard key bindings, or if you
would like to bind a command that is only available through the menu to
a key, you can do so by adding the relevant key bindings to Emacs init
file. The relevant key maps are ‘ebib-index-mode-map’,
@@ -3107,7 +3114,7 @@
‘ebib-keywords-map’ and ‘ebib-reading-list-map’ are key maps (set up
using ‘define-prefix-command’) that contain bindings for filters,
keywords and the reading list, respectively. Finally, there is
-‘ebib-log-mode-map’ which is active in Ebib’s log buffer.
+‘ebib-log-mode-map’ which is active in Ebib's log buffer.
@@ -3119,150 +3126,150 @@
Ref: #package-manager1419
Node: Manual installation1599
Ref: #manual-installation1751
-Node: News2032
-Ref: #news2152
-Node: Starting Ebib2263
-Ref: #starting-ebib2373
-Node: Getting Started2974
-Ref: #getting-started3114
-Node: Opening a bib File4627
-Ref: #opening-a-bib-file4781
-Node: Preloading bib Files6572
-Ref: #preloading-bib-files6762
-Node: Starting a New bib File7188
-Ref: #starting-a-new-bib-file7384
-Node: Closing a database7626
-Ref: #closing-a-database7799
-Node: The Database View8038
-Ref: #the-database-view8209
-Node: Navigating the Database10209
-Ref: #navigating-the-database10413
-Node: Displaying and Sorting the Entries List12364
-Ref: #displaying-and-sorting-the-entries-list12601
-Node: Biblatex vs BibTeX17363
-Ref: #biblatex-vs-bibtex17528
-Node: Setting the BibTeX Dialect18364
-Ref: #setting-the-bibtex-dialect18541
-Node: Alias Types and Fields20566
-Ref: #alias-types-and-fields20735
-Node: Editing the Database22808
-Ref: #editing-the-database22974
-Node: Adding and Deleting Entries23586
-Ref: #adding-and-deleting-entries23757
-Node: Marking Entries25458
-Ref: #marking-entries25634
-Node: Editing Field Values26134
-Ref: #editing-field-values26330
-Node: @String abbreviations in field values29547
-Ref: #string-abbreviations-in-field-values29794
-Node: Editing Multiline Values32412
-Ref: #editing-multiline-values32640
-Node: Copy Cut Kill Paste Yank and Delete34543
-Ref: #copy-cut-kill-paste-yank-and-delete34786
-Node: Undefined Fields35759
-Ref: #undefined-fields35939
-Node: Hidden Fields36828
-Ref: #hidden-fields36977
-Node: Timestamps38047
-Ref: #timestamps38191
-Node: Saving a Database40104
-Ref: #saving-a-database40268
-Node: Exporting Entries41489
-Ref: #exporting-entries41609
-Node: Cross-referencing42981
-Ref: #cross-referencing43155
-Node: Sorting the bib File45591
-Ref: #sorting-the-bib-file45784
-Node: @Preamble Definition48032
-Ref: #preamble-definition48217
-Node: @String Definitions50182
-Ref: #string-definitions50354
-Node: @Comments52710
-Ref: #comments52862
-Node: Creating Entry Stubs53355
-Ref: #creating-entry-stubs53532
-Node: Multiline Edit Buffers54260
-Ref: #multiline-edit-buffers54423
-Node: Main and Dependent Databases58742
-Ref: #main-and-dependent-databases58947
-Node: Inserting Citations into a Text Buffer61837
-Ref: #inserting-citations-into-a-text-buffer62051
-Node: Single Citations62248
-Ref: #single-citations62417
-Node: Citations with multiple keys64790
-Ref: #citations-with-multiple-keys65004
-Node: Key Bindings66771
-Ref: #key-bindings66963
-Node: Defining Citation Commands67721
-Ref: #defining-citation-commands67954
-Node: Associating a Database with a Text Buffer73850
-Ref: #associating-a-database-with-a-text-buffer74135
-Node: Links and Citations in Org buffers75514
-Ref: #links-and-citations-in-org-buffers75750
-Node: Searching77183
-Ref: #searching77318
-Node: Filters80772
-Ref: #filters80889
-Node: Simple Selection81964
-Ref: #simple-selection82089
-Node: Complex Filters83798
-Ref: #complex-filters83956
-Node: Storing and Saving Filters88598
-Ref: #storing-and-saving-filters88777
-Node: Special Filters91632
-Ref: #special-filters91809
-Node: An Example Listing Recent Additions93192
-Ref: #an-example-listing-recent-additions93417
-Node: Properties of Filtered Databases95787
-Ref: #properties-of-filtered-databases95980
-Node: Importing BibTeX entries97635
-Ref: #importing-bibtex-entries97806
-Node: Merging bib files98120
-Ref: #merging-bib-files98291
-Node: Importing entries from a buffer98882
-Ref: #importing-entries-from-a-buffer99115
-Node: Integration with the Biblio package100148
-Ref: #integration-with-the-biblio-package100397
-Node: Multiple Identical Fields102083
-Ref: #multiple-identical-fields102272
-Node: Linking to external resources104200
-Ref: #linking-to-external-resources104385
-Node: Viewing and Importing Files104587
-Ref: #viewing-and-importing-files104787
-Node: Editing the file field109918
-Ref: #editing-the-file-field110069
-Node: Calling a Browser for URLs and DOIs111440
-Ref: #calling-a-browser-for-urls-and-dois111656
-Node: Notes files113964
-Ref: #notes-files114114
-Node: Configuring files for storing notes115606
-Ref: #configuring-files-for-storing-notes115784
-Node: Hooks118751
-Ref: #hooks118914
-Node: Upgrading from earlier Ebib versions120315
-Ref: #upgrading-from-earlier-ebib-versions120538
-Node: Customising the notes file format121448
-Ref: #customising-the-notes-file-format121676
-Node: Displaying notes125700
-Ref: #displaying-notes125891
-Node: Using org-capture to record notes127240
-Ref: #using-org-capture-to-record-notes127431
-Node: Managing a reading list133441
-Ref: #managing-a-reading-list133603
-Node: Managing Keywords136622
-Ref: #managing-keywords136778
-Node: Using a Canonical Keywords List138385
-Ref: #using-a-canonical-keywords-list138543
-Node: Window Management140701
-Ref: #window-management140866
-Node: Copying Entries to the Kill Ring144025
-Ref: #copying-entries-to-the-kill-ring144224
-Node: Printing the Database146949
-Ref: #printing-the-database147122
-Node: Customisation150591
-Ref: #customisation150707
-Node: Modifying Key Bindings151933
-Ref: #modifying-key-bindings152060
+Node: News2028
+Ref: #news2148
+Node: Starting Ebib2259
+Ref: #starting-ebib2369
+Node: Getting Started2968
+Ref: #getting-started3108
+Node: Opening a bib File4621
+Ref: #opening-a-bib-file4775
+Node: Preloading bib Files6562
+Ref: #preloading-bib-files6752
+Node: Starting a New bib File7174
+Ref: #starting-a-new-bib-file7370
+Node: Closing a database7612
+Ref: #closing-a-database7785
+Node: The Database View8024
+Ref: #the-database-view8195
+Node: Navigating the Database10193
+Ref: #navigating-the-database10397
+Node: Displaying and Sorting the Entries List12344
+Ref: #displaying-and-sorting-the-entries-list12581
+Node: Biblatex vs BibTeX17337
+Ref: #biblatex-vs-bibtex17502
+Node: Setting the BibTeX Dialect18338
+Ref: #setting-the-bibtex-dialect18515
+Node: Alias Types and Fields20534
+Ref: #alias-types-and-fields20703
+Node: Editing the Database22760
+Ref: #editing-the-database22926
+Node: Adding and Deleting Entries23538
+Ref: #adding-and-deleting-entries23709
+Node: Marking Entries25406
+Ref: #marking-entries25582
+Node: Editing Field Values26082
+Ref: #editing-field-values26278
+Node: @String abbreviations in field values29489
+Ref: #string-abbreviations-in-field-values29736
+Node: Editing Multiline Values32338
+Ref: #editing-multiline-values32566
+Node: Copy Cut Kill Paste Yank and Delete34469
+Ref: #copy-cut-kill-paste-yank-and-delete34712
+Node: Undefined Fields35683
+Ref: #undefined-fields35863
+Node: Hidden Fields36752
+Ref: #hidden-fields36901
+Node: Timestamps37959
+Ref: #timestamps38103
+Node: Saving a Database40010
+Ref: #saving-a-database40174
+Node: Exporting Entries41736
+Ref: #exporting-entries41856
+Node: Cross-referencing43228
+Ref: #cross-referencing43402
+Node: Sorting the bib File45830
+Ref: #sorting-the-bib-file46023
+Node: @Preamble Definition48271
+Ref: #preamble-definition48456
+Node: @String Definitions50419
+Ref: #string-definitions50591
+Node: @Comments52941
+Ref: #comments53093
+Node: Creating Entry Stubs53584
+Ref: #creating-entry-stubs53761
+Node: Multiline Edit Buffers54489
+Ref: #multiline-edit-buffers54652
+Node: Main and Dependent Databases58963
+Ref: #main-and-dependent-databases59168
+Node: Inserting Citations into a Text Buffer62054
+Ref: #inserting-citations-into-a-text-buffer62268
+Node: Single Citations62465
+Ref: #single-citations62634
+Node: Citations with multiple keys64999
+Ref: #citations-with-multiple-keys65213
+Node: Key Bindings66972
+Ref: #key-bindings67164
+Node: Defining Citation Commands67920
+Ref: #defining-citation-commands68153
+Node: Associating a Database with a Text Buffer74039
+Ref: #associating-a-database-with-a-text-buffer74324
+Node: Links and Citations in Org buffers75699
+Ref: #links-and-citations-in-org-buffers75935
+Node: Searching77364
+Ref: #searching77499
+Node: Filters80947
+Ref: #filters81064
+Node: Simple Selection82119
+Ref: #simple-selection82244
+Node: Complex Filters83947
+Ref: #complex-filters84105
+Node: Storing and Saving Filters88743
+Ref: #storing-and-saving-filters88922
+Node: Special Filters91773
+Ref: #special-filters91950
+Node: An Example Listing Recent Additions93333
+Ref: #an-example-listing-recent-additions93558
+Node: Properties of Filtered Databases95922
+Ref: #properties-of-filtered-databases96115
+Node: Importing BibTeX entries97762
+Ref: #importing-bibtex-entries97933
+Node: Merging bib files98247
+Ref: #merging-bib-files98418
+Node: Importing entries from a buffer99007
+Ref: #importing-entries-from-a-buffer99240
+Node: Integration with the Biblio package100269
+Ref: #integration-with-the-biblio-package100518
+Node: Multiple Identical Fields102200
+Ref: #multiple-identical-fields102389
+Node: Linking to external resources104303
+Ref: #linking-to-external-resources104488
+Node: Viewing and Importing Files104690
+Ref: #viewing-and-importing-files104890
+Node: Editing the file field110009
+Ref: #editing-the-file-field110160
+Node: Calling a Browser for URLs and DOIs111513
+Ref: #calling-a-browser-for-urls-and-dois111729
+Node: Notes files114029
+Ref: #notes-files114179
+Node: Configuring files for storing notes115667
+Ref: #configuring-files-for-storing-notes115845
+Node: Hooks118800
+Ref: #hooks118963
+Node: Upgrading from earlier Ebib versions120360
+Ref: #upgrading-from-earlier-ebib-versions120583
+Node: Customising the notes file format121493
+Ref: #customising-the-notes-file-format121721
+Node: Displaying notes125729
+Ref: #displaying-notes125920
+Node: Using org-capture to record notes127265
+Ref: #using-org-capture-to-record-notes127456
+Node: Managing a reading list133452
+Ref: #managing-a-reading-list133614
+Node: Managing Keywords136629
+Ref: #managing-keywords136785
+Node: Using a Canonical Keywords List138392
+Ref: #using-a-canonical-keywords-list138550
+Node: Window Management140688
+Ref: #window-management140853
+Node: Copying Entries to the Kill Ring143988
+Ref: #copying-entries-to-the-kill-ring144187
+Node: Printing the Database146910
+Ref: #printing-the-database147083
+Node: Customisation150526
+Ref: #customisation150642
+Node: Modifying Key Bindings151856
+Ref: #modifying-key-bindings151983
End Tag Table
diff -Nru ebib-2.39.4/manual/ebib.text ebib-2.40.3/manual/ebib.text
--- ebib-2.39.4/manual/ebib.text 2023-11-03 00:02:21.000000000 +0000
+++ ebib-2.40.3/manual/ebib.text 2023-11-17 07:31:45.000000000 +0000
@@ -323,6 +323,8 @@
You can also save a database to another name with [`w`]{.key}. This command is similar to [`C-x C-w`]{.key} in Emacs: the new `.bib` file becomes associated with the database. This command can also be prefixed with [`C-u`]{.key} in order to overwrite any existing file without asking for confirmation.
+Note that by default, Ebib uses a single TAB to indent fields inside BibTeX entries. If you prefer to use spaces, set the option `ebib-save-indent-as-bibtex`. When this option is set, Ebib uses the value of the variables `bibtex-entry-offset` and `bibtex-field-indentation` to compute how many spaces to use to indent fields.
+
### Exporting Entries ### {.unlisted .unnumbered }
diff -Nru ebib-2.39.4/manual/news.text ebib-2.40.3/manual/news.text
--- ebib-2.39.4/manual/news.text 2023-11-03 00:02:21.000000000 +0000
+++ ebib-2.40.3/manual/news.text 2023-11-17 07:31:45.000000000 +0000
@@ -1,5 +1,11 @@
% Ebib News
+## Version 2.40, November 2023 ##
+
+- New user option `ebib-save-indent-as-bibtex`: use spaces for indenting fields,
+ and use the same indentation that `bibtex-mode` would use.
+- Various bug fixes.
+
## Version 2.39, September 2022 ##
- New user option `ebib-field-edit-functions` allows one to customise the way fields are edited.