emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Rasmus <rasmus@gmx.us>
To: emacs-orgmode@gnu.org
Subject: Re: Citations, continued
Date: Mon, 02 Feb 2015 20:55:11 +0100	[thread overview]
Message-ID: <87iofkdr6o.fsf@pank.eu> (raw)
In-Reply-To: 87sieokx8e.fsf@berkeley.edu

Hi,

Richard Lawrence <richard.lawrence@berkeley.edu> writes:

> Here is the citation syntax proposal I have mentioned in a couple of
> posts now.

Thanks.  I think it's a good start, but I find it too far away from Org in
some respects.  Hence comments follow.

> ** Backend-agnostic formatting properties
> *** Selecting specific fields
> Selecting specific fields to display could be done by appending field
> names to cite keys after colons, much like Org tags:
> #+BEGIN_QUOTE
> [See @Doe99, pp. 34--45; also @Doe00:year, section 6] 
>
> [See their article in @Doe99:journal:year.] 
> #+END_QUOTE

First, I think we should use @key for inline and (@key) for parenthesis
expressions.  This give us two short keys.  [@Key ⋯] can be reserved for
complicated references.

I don't like "@Doe99:journal:year".  It's too unlike existing syntax.

Rather, I'd just introduce types as hinted previously, [@Doe99 :type
my-journal-year-type].  Org can provide as many predefined :type as we
care for, and let the user define the rest as necessary.

> Note that this would make for an extension of Pandoc syntax.  This
> extension is not a strict superset, since Pandoc allows internal `:'
> characters in cite keys, and thus would treat `@Doe99:journal:year' as
> a single key, rather than treating the key as ending at the first
> colon, with other data afterward.

Compatibility with pandoc is a non-issue IMO.  If that's necessary we can
use ox.

> When specific fields are requested, ONLY data from those fields should
> appear in the exported document.  Backends would choose how to export
> these citations based on the selected fields.

What happens when a field is undefined?

> *** Non-cited works that should appear in the bibliography
> A special field selector `:nocite' would be one way to achieve
> citations that, for whatever reason, should appear in the Org source
> and in the exported bibliography, but should not appear in the
> exported text where they are placed.  This would allow referencing
> them at relevant places in the document, like:
> #+BEGIN_QUOTE
> Smith said a lot of things, but no one can remember what they
> were. [@Smith79:nocite]
> #+END_QUOTE

I think R-markdown uses something like [-@Smith79].  Again, I don't like
the [@key:nocite].


> One drawback of this syntax is that it does not provide an easy way to
> list all the nocite references, since the user would have to add
> `:nocite' to each one individually.  This is not a huge problem for
> small numbers of refernces, but it would also be nice to have some
> equivalent of LaTeX's \nocite{*}.  On this point, see the proposal for
> non-inline citation definitions below.

#+NOCITE: key1 ⋯ keyN

> ** Non-inline citation definitions and backend-specific formatting
> [...]
> #+BEGIN_QUOTE
>     Doe provides an interesting analysis. [cite:1]
>     ...
>     * Citations
>     [cite:1] See @Doe99, pp. 34--45; also @Doe2000:year, ch. 1.
> #+END_QUOTE

This is cool.  I'd use it in some cases.

> That is, a citation /pointer/ would occur inline in the document text,
> which refers (via a number or a label) to a citation /definition/ in a
> specially-named subtree.

It would refer to it anywhere.  No reason to make it different from
footnotes.

> *** Backend-specific formatting
> In general, it would be nice to avoid formatting properties which are
> specific to a particular export backend when a backend-agnostic
> solution is available, but some backend-specific formatting needs are
> probably inevitable, so we need a syntax for specifying them.
>
> Another advantage of the non-inline citation syntax is that it would
> allow using the existing #+ATTR_BACKEND syntax to specify
> backend-specific formatting properties, since the citation definitions
> would be block-level elements:
> #+BEGIN_QUOTE
>     * Citations
>
>     #+ATTR_LATEX: :command citet
>     #+ATTR_HTML: :class my-citation
>     [cite:1] See @Doe99, pp. 34--45; @Foobar2000, ch.1.
> #+END_QUOTE

Why not.  Since footnote-definition is a greater element it /does/ take
affiliated keywords, but I have never seen this used.

For inline maybe something like this:
    [@Key :type_html my-citation :type_latex citet] 


> *** Bibliography-only entries
> Non-inline definitions would also provide a convenient place to list
> non-cited references that should appear in the bibliography.  For
> example:
> #+BEGIN_QUOTE
>     * Citations
>     ...
>     [nocite:] @Doe99; @Foobar2000; @Baz98.
> #+END_QUOTE

As stated above, I find #+NOCITE more in line with current syntax.

> * Document metadata
> In addition to the syntax of citations themselves, the Org document
> would also need to represent the following metadata to support
> citations:
> 7. [@7] a pointer to one or more backend reference databases,
>    including in-document databases in org-bibtex format

If org-bibtex entries are present they should just take precedence.  That
way you can easily insert new entries and customize them for your project
and have a portable document.

> 8. a reference to a citation style or style file

> 9. a reference to a locale file

#+BIBLIOGRAPHY_FILES: file1 file2

> 10. an indication of where the bibliography should be found in the
>     exported document (equivalent to \printbibliography, etc. in
>     LaTeX)

From experience, the biblatex model of separating the loading of files,
styles and printing into different commands is a great advantage.

> ** #+BIBLIOGRAPHY: reference database, style, locale

I think more keywords are better.

> The point of specifying the style and locale as part of
> the #+BIBLIOGRAPHY definition is for compatibility with both LaTeX and
> Citation Style Language bibliography and citation formatting.

Local is defined by #+LANGUAGE.  AFAIK, Org doesn't support many
languages.  E.g. here's the definition of LANGUAGE in ox.el:

(:language "LANGUAGE" nil org-export-default-language t)

> In keeping with other metadata keyword lines (like #+OPTIONS), I
> suggest a key:value syntax for the arguments to #+BIBLIOGRAPHY, like
> so:
> #+BEGIN_QUOTE
> #+BIBLIOGRAPHY: db:/path/to/some/file.bib style:chicago

The db is redundant.  E.g. #+INCLUDE automatically knows that the first
word is the file in question.

There may be many bib files, so there should be a #+BIBLIOGRAPHY_FILES.

I prefer :style chicago to be consistent with #+INCLUDE.

> #+BIBLIOGRAPHY: db:/path/to/some/file.bib style:plain locale:en_GB

Locale is "dangerous" as it can get out of sync with LANGUAGE.

> #+BIBLIOGRAPHY: db:"*Reference DB"

If the citation-key is defined in document use it.  Otherwise check
BIBLIOGRAPHY_FILES.

> In the last example, the leading "*" is meant to indicate that the
> reference database is a subtree with headline "Reference DB", whose
> branches are in org-bibtex format.

Too much micromanagement.  I prefer how footnote-definition works. 


> ** Bibliography placement
> The simplest solution seems to be just allowing the #+BIBLIOGRAPHY
> keyword to appear anywhere in the document, to be replaced on export
> with the formatted bibliography.  I think this is what ox-bibtex now
> does.  

#+TOC works the same way.

—Rasmus

-- 
C is for Cookie

  reply	other threads:[~2015-02-02 19:55 UTC|newest]

Thread overview: 104+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-31 18:26 Citations, continued Richard Lawrence
2015-01-31 18:42 ` Nicolas Goaziou
2015-02-01 22:07   ` Richard Lawrence
2015-02-02 13:52     ` Rasmus
2015-02-02 17:25       ` Richard Lawrence
2015-02-02 18:09         ` Rasmus
2015-02-02 15:45     ` Erik Hetzner
2015-02-01 22:06 ` John Kitchin
2015-02-02  1:41   ` Richard Lawrence
2015-02-02  4:43     ` Thomas S. Dye
2015-02-02 13:56       ` John Kitchin
2015-02-02 18:11         ` Thomas S. Dye
2015-02-02 19:38           ` John Kitchin
2015-02-02 19:51           ` John Kitchin
2015-02-02 22:47             ` Rasmus
2015-02-03  0:54             ` Thomas S. Dye
2015-02-03  1:36               ` John Kitchin
2015-02-02 14:17       ` Rasmus
2015-02-02 16:58       ` Richard Lawrence
2015-02-02 14:07   ` Rasmus
2015-02-02 13:51 ` Rasmus
2015-02-02 15:09 ` Matt Price
2015-02-02 18:02 ` Richard Lawrence
2015-02-02 19:55   ` Rasmus [this message]
2015-02-03  1:56     ` Richard Lawrence
2015-02-03  2:08       ` Vikas Rawal
2015-02-03 10:55         ` Rasmus
2015-02-04 10:35         ` Julian M. Burgos
2015-02-04 16:34           ` John Kitchin
2015-02-03 10:35       ` Rasmus
2015-02-03 12:00         ` Eric S Fraga
2015-02-03 16:27           ` Richard Lawrence
2015-02-03 17:25             ` Eric S Fraga
2015-02-03  3:58   ` Erik Hetzner
2015-02-03  4:41     ` Richard Lawrence
2015-02-03  7:30       ` Erik Hetzner
2015-02-03 16:11         ` Richard Lawrence
2015-02-04  6:30           ` Erik Hetzner
2015-02-04 12:06             ` Nicolas Goaziou
2015-02-04 16:45               ` Richard Lawrence
2015-02-06 10:27                 ` Nicolas Goaziou
2015-02-06 22:41                   ` Richard Lawrence
2015-02-07 22:43                     ` Nicolas Goaziou
2015-02-08  2:46                       ` Richard Lawrence
2015-02-08  9:46                         ` John Kitchin
2015-02-08 17:09                           ` Richard Lawrence
2015-02-08 22:23                             ` Thomas S. Dye
2015-02-09  8:46                               ` e.fraga
2015-02-09 10:50                               ` Rasmus
2015-02-09 11:20                                 ` Nicolas Goaziou
2015-02-09 11:37                                   ` Rasmus
2015-02-10  9:06                                     ` Nicolas Goaziou
2015-02-09 15:09                                 ` Thomas S. Dye
2015-02-10  8:55                                   ` Nicolas Goaziou
2015-02-10  9:22                                     ` Rasmus
2015-02-10  9:41                                       ` Nicolas Goaziou
2015-02-10 10:01                                         ` Rasmus
2015-02-10 15:32                                     ` Thomas S. Dye
2015-02-10  1:50                                 ` John Kitchin
2015-02-09 17:46                               ` Richard Lawrence
2015-02-09 20:13                                 ` Rasmus
2015-02-10  1:32                                 ` John Kitchin
2015-02-10  4:04                                   ` Richard Lawrence
2015-02-10  5:23                                     ` John Kitchin
2015-02-10  6:20                                       ` Thomas S. Dye
2015-02-08  9:58                         ` Nicolas Goaziou
2015-02-08 17:18                           ` Richard Lawrence
2015-02-08 18:18                             ` Nicolas Goaziou
2015-02-08  9:28                       ` Rasmus
2015-02-08 10:18                         ` Nicolas Goaziou
2015-02-08 10:50                           ` Rasmus
2015-02-08 12:36                             ` Nicolas Goaziou
2015-02-08 13:40                               ` Rasmus
2015-02-08 16:11                                 ` Nicolas Goaziou
2015-02-09 10:02                                   ` Rasmus
2015-02-08 17:02                                 ` Nicolas Goaziou
2015-02-08 17:29                                   ` Rasmus
2015-02-10  1:54                                   ` John Kitchin
2015-02-10  8:49                                     ` Nicolas Goaziou
2015-02-10  9:20                                       ` Rasmus
2015-02-10 10:05                                         ` Nicolas Goaziou
2015-02-10 10:36                                           ` Rasmus
2015-02-10 10:53                                           ` Andreas Leha
2015-02-10 15:03                                         ` John Kitchin
2015-02-10 15:54                                           ` Rasmus
2015-02-10 16:14                                             ` John Kitchin
2015-02-10 16:22                                         ` Richard Lawrence
2015-02-10 16:44                                           ` Stefan Nobis
2015-02-11  2:07                                             ` Richard Lawrence
2015-02-11 10:19                                               ` Stefan Nobis
2015-02-11 16:51                                                 ` Richard Lawrence
2015-02-13  2:31                                                   ` Matt Price
2015-02-11 10:47                                         ` Aaron Ecay
2015-02-11 11:32                                           ` Rasmus
2015-02-10 16:04                                       ` Richard Lawrence
2015-02-11  2:10                                         ` Thomas S. Dye
2015-02-11  2:48                                           ` Richard Lawrence
2015-02-11  3:53                                             ` Thomas S. Dye
2015-02-06 23:37                   ` Rasmus
2015-02-06 23:16                 ` Rasmus
2015-02-04 17:44               ` Erik Hetzner
2015-02-04 15:59             ` Richard Lawrence
2015-02-04 17:58               ` Erik Hetzner
2015-02-04 19:24                 ` Richard Lawrence

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87iofkdr6o.fsf@pank.eu \
    --to=rasmus@gmx.us \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).