|
From: | John Kitchin |
Subject: | Re: [O] Citations, continued |
Date: | Sun, 1 Feb 2015 17:06:23 -0500 |
Here's my personal opinion about how we might solve them.
As for the first problem, I think a good case can be made for adding new
syntax to Org to represent citations, instead of repurposing/extending
existing syntax (most notably, the link syntax).
Here's why. Citations are complicated, and it's clear that some sort of
new syntax is needed to represent them. Even link-based solutions
introduce new syntax `inside' the link syntax, such as using `::' to
separate pre-text and post-text in a link description, as org-ref does.
Thus, the issue is not *whether* there should be additional syntax, but
just *how constrained* it should be. In particular, the question is
whether we want to make citation syntax a subset of link syntax, or
whether citations and links should be distinct types of syntactic
elements.
It seems to me that the needs of citation users are wide enough and
complicated enough that it is worth shedding the constraints imposed by
the link syntax. Eventually, packing all the representations we need
for a general solution (citation type, pre- and post-text, suppressing
author name, etc. etc.) into the link syntax will tend to make citations
unreadable.
Moreover, citations are not really links, even though it is often useful
to treat them (or parts of them) as links. For example, a link can only
point to one target; yet a single citation often points to multiple
sources. And what if you need different pre- or post-text for different
sources within the same citation, like ``See @Doe1999 for an overview; a
more extensive discussion is in @Foobar2000''?
Finally, it seems to me that Org strives to be a document format which
is usable independently of any particular export format. This counts in
favor of having citation syntax as a first-class citizen in Org; at
present, Org documents can only contain citations through a combination
of extensions and external tools.
For these reasons, I would support a separate citation syntax, but one
that can behave like a link when useful. For example, suppose we
borrowed the Pandoc [ ... @key1 ...; ... @key2 ...] syntax. When point
is on address@hidden', C-c C-o could be bound to find the key in the reference
database, or another useful action, depending on the reference database
format.
'("cite" "nocite" ;; the default latex cite commands ;; natbib cite commands, http://ctan.unixbrain.com/macros/latex/contrib/natbib/natnotes.pdf "citet" "citet*" "citep" "citep*" "citealt" "citealt*" "citealp" "citealp*" "citenum" "citetext" "citeauthor" "citeauthor*" "citeyear" "citeyear*" "Citet" "Citep" "Citealt" "Citealp" "Citeauthor" ;; biblatex commands ;; http://ctan.mirrorcatalogs.com/macros/latex/contrib/biblatex/doc/biblatex.pdf "Cite" "parencite" "Parencite" "footcite" "footcitetext" "textcite" "Textcite" "smartcite" "Smartcite" "cite*" "parencite*" "supercite" "autocite" "Autocite" "autocite*" "Autocite*" "Citeauthor*" "citetitle" "citetitle*" "citedate" "citedate*" "citeurl" "fullcite" "footfullcite" ;; "volcite" "Volcite" cannot support the syntax "notecite" "Notecite" "pnotecite" "Pnotecite" "fnotecite" ;; multicites. Very limited support for these. "cites" "Cites" "parencites" "Parencites" "footcites" "footcitetexts" "smartcites" "Smartcites" "textcites" "Textcites" "supercites" "autocites" "Autocites" ;; for the bibentry package "bibentry" )
[see address@hidden p. 34-35; also address@hidden chap. 3].
As I mentioned in the earlier thread, I think the Pandoc syntax is a
good place to start, and I think it would be valuable to have the two
syntaxes be compatible. But even Pandoc's citation syntax might not be
general enough to satisfy everyone's needs, so the first step for
introducing citation syntax to Org should be compiling a list of all the
things such a syntax should represent.
The other problems, I think, must wait until a stable citation syntax
emerges -- export support in particular. (Using an existing syntax from
another project could help ease the transition here: if people can
export citations using an existing tool, they'll be able to switch to
that syntax immediately, and use the external tool in the meantime while
Org-internal support for it catches up.)
I hope this is a useful starting point for further discussion!
Best,
Richard
[Prev in Thread] | Current Thread | [Next in Thread] |