From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rasmus Subject: Let's discuss citation and Org syntax Date: Tue, 21 May 2013 14:21:31 +0200 Message-ID: <878v38cylw.fsf@pank.eu> Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([208.118.235.92]:44742) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UelZi-0002mZ-KR for emacs-orgmode@gnu.org; Tue, 21 May 2013 08:21:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UelZd-0002zm-L7 for emacs-orgmode@gnu.org; Tue, 21 May 2013 08:21:54 -0400 Received: from plane.gmane.org ([80.91.229.3]:38876) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UelZd-0002zb-AK for emacs-orgmode@gnu.org; Tue, 21 May 2013 08:21:49 -0400 Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1UelZb-0008DY-Un for emacs-orgmode@gnu.org; Tue, 21 May 2013 14:21:47 +0200 Received: from dynamic-adsl-94-34-144-49.clienti.tiscali.it ([94.34.144.49]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 21 May 2013 14:21:47 +0200 Received: from rasmus by dynamic-adsl-94-34-144-49.clienti.tiscali.it with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 21 May 2013 14:21:47 +0200 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Hi, Now that 8.0 has shipped let's talk bibliography support. This follows directly upon the discussion around March[1]. The essence of the thread was that some people agreed that it would be nice to have support for citation commands build into Org (I'll summarize in the next post). But let me first restate my own take on the issue. IMO a nice format would be: (*) [KEYWORD PROPERTIES] I think we should allow for a more general approach than one just for citation and this is a good thing (IMO). The in-buffer display of (*) could be governed by org-buffer-format-KEYWORD (similar to gnus-user-format-function-LETTER) or just identity if no function is defined. Export could be handled by org-BACKEND-KEYWORD or org-export-KEYWORD. With officially recognized KEYWORDs something like citation could be a 'first-class citizen'. PROPERTIES could be a string like: optional-keyless-entry :prop1 one :prop2 two ... Perhaps, treatment of keyword, could even be handled by an in-buffer Org Babel function in the spirit of e.g. reproducible research (see below). This would be different from Org links in that (*) is more like a functions that allows for (i) pretty and informative display in buffer/export and (ii) easy user extension. I think there are many compelling use-cases for such a framework. 1. Citation: Take the keyword citetext which should be an 'official' KEYWORD. So for instance we could have [citetext BIBTEX-KEY :prenote note, w/comma :postnote blah]. In buffers, via org-in-buffer-format-citetext, it would be displayed as BIBTEX-KEY (note, w/comma, YEAR, blah) or something similar (depending to what extend bibtex.el would be leveraged; e.g. BIBTEX-KEY might show the author/editor key and YEAR would also depend on parsing a bibtex file) (obviouesly, there's some reference to a bibtex file somewhere). In LaTeX it would be exported as \citetext[note,w/comma][blah]{BIBTEX-KEY} In html it might utilize some tool that understand bibtex (there's a link to such a tool in the next post). In ASCII it could almost use what would be displayed in the buffer. 2. MY-FUN: MY-FUN is some function that does something with some properties, perhaps just a string (simple cases: [sc text] is used for small caps, or mayhaps [my-treat-dna-string DNA-STRING]). I might use it in a single file that I want to send to people or I might just use it in my notes. Currently it's implemented via org-emphasis-alist or as a link. Changing emphases is a hacks, and they are hard to export with the now more robust Org syntax and further permit little control over how they are displayed in-buffer. Links are more flexible but lacks display control and becomes somewhat painful with many arguments[2]. Also, MY-FUN doesn't take a 'description'. With (*) I could simply write [MY-FUN PROPERTIES]. Perhaps, I could even define org-BACKEND-MY-FUN in a babel block if it's only relevant to the current file. There's been some work and some discussion on this already, most notably Aaron already supplied some patches towards this end[3], but using a slightly different syntax more like the link syntax; e.g. textcite above would look like [[textcite:bibtex-key&&pre%3Dfoo&&post%3Dbar][whatever]] where whatever is ignored. The state of the discussion is to some extend summarized in the next post. It would love to hear whether other people find something like this to be a good idea? Would anyone find a use such a framework? Would (*) conflict with anyone's current usage of Org? Is (*) too ambitious and in terms of getting citation support? Is this is taking a musket to kill a butterfly? What are the the flaws in the above. I'm not a good (lisp) programmer, but I think I have a month off this summer where I could work on something like the above. Thanks for reading, Rasmus Footnotes: [1] http://mid.gmane.org/20130303070635.GA12112%40panahar [2] my citation links often look like postnote;prenote without showing the BIBTEX-KEY or citation format. [2] here http://mid.gmane.org/87lia0s7wi.fsf%40bzg.ath.cx and here http://mid.gmane.org/87wqthk7vj.fsf%40gmail.com. -- When in doubt, do it!