I am not sure how many people will read this or make sense out of it. Anyways, here I go.
Rasmus <ras...@gmx.us> writes: > - textcite k :pre x :post y → K (pre, year, post) > - parencite k :p x :post y → (pre, K, year post) > - cite k :pre x :post y → K pre K year post > - footcite k :pre x :post y → [fn::pre K Year post.] > - citeauthor k :pre x :post y → pre K post > - citeyear k :pre x :post y → pre year post JabRef's command line doesn't take pre and post arguments. Both JabRef and Zotero use LibreOffice application APIs to insert citations. i.e., citations are introduced manually, by hand. But JabRef lets you "translate a key" be it k -> Author(k) or k->Date(k) or k->Author-Date(k) in a "context-free" manner. By "contex free", I mean, it wouldn't bother about whether the key occurs for the first time or whether it occurs for second time (think Ibid) etc. ---------------------------------------------------------------- Writing in Org should feel natural. It should be fuzzy but powerful. Specifically, it shouldn't read like Lisp. So having ":pre" and ":post" elements or going extra lengths to get the precise parenthesis (Is it [] or ()?) or the separators (Is it , or ;?) would be an overkill. The immediate requirement should be to create a good enough working draft that can be circulated among peers or sent to the publisher for a professional processing. Parser enhancements or introducing new syntax elements - that are heavy-weight - should be avoided all costs. What is needed is "expressivity" not "extensibility" Pre and Post are inherently positional. So, if one can identify where the middle part is - in all your examples it a Key or f(Key), for some "f" - then identifying a pre and post components should be easy provided the "cite span" is delineated by explicit markup or "natural" boundaries. ---------------------------------------------------------------- Approach 1: Delineate a "cite span" using [] Con: Parser enhancement could be non-trivial because it introduces a new Org-syntax delimiter. One can map this, \autocite[59][See also](Becker2010) => See also Becker, 59 to this Org syntax: [See also [cite:Becker2010] 59] Let pre and post occur in natural order but use extra markers to indicate a "span" or a stretch. ---------------------------------------------------------------- Approach 2: Delineate using natural boundaries. Con: Parser enhancement is pretty localized just footnote elements. Less bugs and better expressivity. Another variation could be #+BEGIN_SRC org [fn:Becker2010p59] and [fn:Becker2010p503] [fn:Becker2010p59] See also [cite:Becker2010] 59 [fn:Becker2010p503] See also [cite:Becker2010] 503 #+END_SRC Here Becker2010p59 and Becker2010p503 are opaque labels. They could as well be tom and harry, for example. #+BEGIN_SRC org [fn:tom] and [fn:dick] [fn:tom] See also [cite:Becker2010] 59. Some extra note, if the note is to be stored right within Org. [fn:dick] See also [cite:Becker2010] 503 #+END_SRC #+BEGIN_SRC org [fn:tom] and [fn:dick] #+ATTR_?: See also [cite:Becker2010] 59. [fn:tom] Some extra note, if the note is to be stored right within Org. [fn:dick] See also [cite:Becker2010] 503 #+END_SRC Here "the content of an object" is specified using a combination of "label" and "element". The leading sentence/phrase or paragraph of footnote definition, if it contains [cite: ] element, can assumed to specify pre and post. The rest of the sentence or paragraph can be a "note" that augments the specific citation. The [cite:...] elements itself delineates (by virtue of it's position) the pre and post elements. ---------------------------------------------------------------- The use of object designated with label + element could be used in conjunction with Image links as well. This is just what ASCII uses to translate links but with a "ATTR_" twist attached to the "labeled paragraph" See [Orgmode Logo] #+ATTR_HTML: Put whatever here. [Orgmode Logo] http://orgmode.org/org-mode-unicorn.png ----------------------------------------------------------------