* Citations, continued @ 2015-01-31 18:26 Richard Lawrence 2015-01-31 18:42 ` Nicolas Goaziou ` (4 more replies) 0 siblings, 5 replies; 104+ messages in thread From: Richard Lawrence @ 2015-01-31 18:26 UTC (permalink / raw) To: emacs-orgmode Hi all, I wanted to continue the discussion that began in this thread about adding citation support to Org: http://thread.gmane.org/gmane.emacs.orgmode/94352/focus=94412 Here are some thoughts I have after reviewing that discussion: 1) Lots of people seem to need/want better support for citations in Org documents. Other projects (Pandoc among them) already have support for citations which is good enough that at least some people are using them to fill this perceived gap in Org's support. 2) There are at least several different backend reference database formats (BibTeX, Zotero, etc.) used by Orgsters. Not all such databases use human-readable keys. Org also has a nice internal format for storing reference information: org-bibtex. 3) There are also several different frontend solutions for making citations in Org documents (org-ref, various `home-brewed' solutions, raw LaTeX \cite commands, etc.). The variety here is at least in part due to our different requirements for the format of exported documents: e.g., some people only care about exporting to LaTeX, others need something that will work for HTML or ODT; some people need to specify pre- and post-text for citations; some people need to specify citation types. 4) Because individual Orgsters have widely varying needs, there is some disagreement about what `proper' citation support should look like. (Do we need new syntax, or can existing syntax be used? Which features need to be supported by Org, and which can be provided by external tools? etc.) It seems there are three distinct but related problems: - representing citations in Org documents - exporting citations in an Org document to a backend document format like LaTeX, ODT, or HTML - searching for and manipulating keys in a reference database from within Org, and otherwise fostering good communication between such a database and citations in Org documents 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 `@key1', 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. 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 ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 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-01 22:06 ` John Kitchin ` (3 subsequent siblings) 4 siblings, 1 reply; 104+ messages in thread From: Nicolas Goaziou @ 2015-01-31 18:42 UTC (permalink / raw) To: Richard Lawrence; +Cc: emacs-orgmode Hello, Richard Lawrence <richard.lawrence@berkeley.edu> writes: > 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. See also <http://permalink.gmane.org/gmane.emacs.orgmode/72446> BTW, I agree that a dedicated syntax is needed, but we failed to find one so far. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-01-31 18:42 ` Nicolas Goaziou @ 2015-02-01 22:07 ` Richard Lawrence 2015-02-02 13:52 ` Rasmus 2015-02-02 15:45 ` Erik Hetzner 0 siblings, 2 replies; 104+ messages in thread From: Richard Lawrence @ 2015-02-01 22:07 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: emacs-orgmode Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > Richard Lawrence <richard.lawrence@berkeley.edu> writes: > >> ...so the first step for introducing citation syntax to Org should be >> compiling a list of all the things such a syntax should represent. > > See also > > <http://permalink.gmane.org/gmane.emacs.orgmode/72446> I reviewed that discussion, and also took a (relatively quick) look at the citation features provided by BibLaTeX and Citation Style Language processors. Here's what I've come up with for an initial list of requirements for citation syntax: A citation is a textual reference to one or more individual works, together with other information about those works, grouped together in a single place. Within a citation, each reference to an individual work needs to be capable of containing: 1) a database key that references the cited work 2) prefix / pre-text 3) suffix / post-text 4) references to page/chapter/section/whatever numbers and ranges. This is likely part of the prefix or suffix, but might be worth parsing separately for localization or link-following behavior. 5) a way of indicating backend-agnostic formatting properties. Examples of some properties users might want to specify are: - displaying only some fields (or suppressing some fields) from a reference record (e.g., journal, date, author) - indicating that the referenced works should *only* appear in the bibliography of the exported document (equivalent of LaTeX \nocite) Citations as a whole also need: 6) [@6] a way of indicating formatting properties for specific export backends. Examples of some properties that users might want to specify are: - a citation command to use for each individual reference (LaTeX; others?) - a multi-cite command to apply to all references together (LaTeX) - CSS or other styling class (HTML and derived backends; also ODT?) - properties describing how to treat emphasis and other formatting that cannot appear in plain text (ASCII and other plain text backends) 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 8) a reference to a citation style or style file 9) a reference to a locale file 10) an indication of where the bibliography should be found in the exported document (equivalent to \printbibliography, etc. in LaTeX) I would like to know if others can think of anything else that should go on this list. I am particularly interested in hearing from people who use (or want to use) citations with non-LaTeX export backends, since I am least familiar with how citations work in those types of documents. I have also been working on a proposal for citation syntax that I think will meet these requirements, which I will post separately. Best, Richard ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-01 22:07 ` Richard Lawrence @ 2015-02-02 13:52 ` Rasmus 2015-02-02 17:25 ` Richard Lawrence 2015-02-02 15:45 ` Erik Hetzner 1 sibling, 1 reply; 104+ messages in thread From: Rasmus @ 2015-02-02 13:52 UTC (permalink / raw) To: emacs-orgmode Richard Lawrence <richard.lawrence@berkeley.edu> writes: > Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > >> Richard Lawrence <richard.lawrence@berkeley.edu> writes: >> >>> ...so the first step for introducing citation syntax to Org should be >>> compiling a list of all the things such a syntax should represent. >> >> See also >> >> <http://permalink.gmane.org/gmane.emacs.orgmode/72446> > > Within a citation, each reference to an individual work needs to be > capable of containing: > 1) a database key that references the cited work > 2) prefix / pre-text > 3) suffix / post-text > 4) references to page/chapter/section/whatever numbers and ranges. > This is likely part of the prefix or suffix, but might be worth > parsing separately for localization or link-following behavior. > 5) a way of indicating backend-agnostic formatting properties. > Examples of some properties users might want to specify are: > - displaying only some fields (or suppressing some fields) from a > reference record (e.g., journal, date, author) Would this not be properties of the bibliography and not the citation? > Citations as a whole also need: > 6) [@6] a way of indicating formatting properties for specific export > backends. I think the idea would be /not/ to have to consider specific backends. If you want special properties (say bold) for HTML could it not be solved by a macro or a filter? Probably I'm misunderstanding. > ... > - CSS or other styling class (HTML and derived backends; also > ODT?) The user solves this by writing CSS. Of course citations would be wrapped in a span or whatever. > - properties describing how to treat emphasis and other > formatting that cannot appear in plain text (ASCII and other > plain text backends) IMO this is solved by ox-ascii.el already. > 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 This would be a huge win. > 8) a reference to a citation style or style file How does this work outside of LaTeX? > 9) a reference to a locale file There's already a #+BIBLIOGRAPHY or #+REFERENCES in ox-bibtex.el. But it's quite limited. > 10) an indication of where the bibliography should be found in the > exported document (equivalent to \printbibliography, etc. in > LaTeX) > I would like to know if others can think of anything else that should go > on this list. I am particularly interested in hearing from people who > use (or want to use) citations with non-LaTeX export backends, since I > am least familiar with how citations work in those types of documents. I would use citations in html and even odt. Put it's a hard problem 'cause there's nothing quite like bib(la)tex (to the best of my knowledge). > I have also been working on a proposal for citation syntax that I think > will meet these requirements, which I will post separately. Cool! Let me know if I can help. I have mainly worked on regexps for the syntax I proposed in another email. —Rasmus -- The second rule of Fight Club is: You do not talk about Fight Club ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-02 13:52 ` Rasmus @ 2015-02-02 17:25 ` Richard Lawrence 2015-02-02 18:09 ` Rasmus 0 siblings, 1 reply; 104+ messages in thread From: Richard Lawrence @ 2015-02-02 17:25 UTC (permalink / raw) To: emacs-orgmode Hi Rasmus and all, Rasmus <rasmus@gmx.us> writes: > Richard Lawrence <richard.lawrence@berkeley.edu> writes: >> Within a citation, each reference to an individual work needs to be >> capable of containing: >> 1) a database key that references the cited work >> 2) prefix / pre-text >> 3) suffix / post-text >> 4) references to page/chapter/section/whatever numbers and ranges. >> This is likely part of the prefix or suffix, but might be worth >> parsing separately for localization or link-following behavior. >> 5) a way of indicating backend-agnostic formatting properties. >> Examples of some properties users might want to specify are: > >> - displaying only some fields (or suppressing some fields) from a >> reference record (e.g., journal, date, author) > > Would this not be properties of the bibliography and not the citation? No, I mean things that can vary from one citation to the next -- like what you'd write in LaTeX as \citet{Doe99} once thought foo, but in his \citeyear{Doe2014}, he revises his position to bar. The second citation should only display the year, since the author's name has already been mentioned in the sentence. This type of formatting information would be nice to represent regardless of export backend. >> Citations as a whole also need: >> 6) [@6] a way of indicating formatting properties for specific export >> backends. > > I think the idea would be /not/ to have to consider specific backends. If > you want special properties (say bold) for HTML could it not be solved by > a macro or a filter? Probably I'm misunderstanding. I agree that we should probably want to minimize and segregate backend-specific formatting information, but it is inevitable that someone will need this ability; and I'm a `provide reasonable defaults, but also an escape hatch when you need it' kind of guy. The things I have in mind are things like telling the LaTeX backend to use a particular citation command for this citation, or the HTML backend to use/add a particular CSS class. Maybe this could be done with macros or filters, but I think that would prove complicated for all but the simplest cases, since citations have argument structure that filters might not necessarily `see'. >> 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 > > This would be a huge win. > >> 8) a reference to a citation style or style file > > How does this work outside of LaTeX? Well, Pandoc for example processes citations using the citeproc-hs implementation of the Citation Style Language, which is an XML format that allows describing how citations and bibliographies should be formatted. Thus, for example, you could tell Pandoc to process your citations in APA style, or any of the other styles in this repo: https://www.zotero.org/styles CSL is an XML format, and I shudder to think about implementing it in Elisp, but that's how its done. In fact, Pandoc uses this even for LaTeX output, rather than trying to map citations to the various \cite commands. >> 9) a reference to a locale file > > There's already a #+BIBLIOGRAPHY or #+REFERENCES in ox-bibtex.el. But > it's quite limited. Yes, I think we should leverage this but modify its syntax a bit. Best, Richard ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-02 17:25 ` Richard Lawrence @ 2015-02-02 18:09 ` Rasmus 0 siblings, 0 replies; 104+ messages in thread From: Rasmus @ 2015-02-02 18:09 UTC (permalink / raw) To: emacs-orgmode Hi, Richard Lawrence <richard.lawrence@berkeley.edu> writes: > Hi Rasmus and all, > > Rasmus <rasmus@gmx.us> writes: > >> Richard Lawrence <richard.lawrence@berkeley.edu> writes: > >>> Within a citation, each reference to an individual work needs to be >>> capable of containing: >>> 1) a database key that references the cited work >>> 2) prefix / pre-text >>> 3) suffix / post-text >>> 4) references to page/chapter/section/whatever numbers and ranges. >>> This is likely part of the prefix or suffix, but might be worth >>> parsing separately for localization or link-following behavior. >>> 5) a way of indicating backend-agnostic formatting properties. >>> Examples of some properties users might want to specify are: >> >>> - displaying only some fields (or suppressing some fields) from a >>> reference record (e.g., journal, date, author) >> >> Would this not be properties of the bibliography and not the citation? > > No, I mean things that can vary from one citation to the next -- like > what you'd write in LaTeX as > > \citet{Doe99} once thought foo, but in his \citeyear{Doe2014}, he > revises his position to bar. Okay, I misunderstood you then.q I though you wanted something like \AtEveryBibitem (of biblatex) which literally alters fields, e.g.: \AtEveryBibitem{\clearfield{month}}. >>> Citations as a whole also need: >>> 6) [@6] a way of indicating formatting properties for specific export >>> backends. >> I think the idea would be /not/ to have to consider specific backends. If >> you want special properties (say bold) for HTML could it not be solved by >> a macro or a filter? Probably I'm misunderstanding. > [...] > use a particular citation command for this citation, or the HTML backend > to use/add a particular CSS class. Maybe this could be done with macros > or filters, but I think that would prove complicated for all but the > simplest cases, since citations have argument structure that filters > might not necessarily `see'. I see. It's possible via macros. I don't have strong opinions on this. >>> 8) a reference to a citation style or style file >> >> How does this work outside of LaTeX? > > Well, Pandoc for example processes citations using the citeproc-hs It seems to use pandoc-citeproc which is based on citeproc-hs. > implementation of the Citation Style Language, which is an XML format > that allows describing how citations and bibliographies should be > formatted. Thus, for example, you could tell Pandoc to process your > citations in APA style, or any of the other styles in this repo: > > https://www.zotero.org/styles > > CSL is an XML format, and I shudder to think about implementing it in > Elisp, but that's how its done. In fact, Pandoc uses this even for > LaTeX output, rather than trying to map citations to the various \cite > commands. I wonder if Zotero can be used to format such citations. It can do something for rtf at least: https://www.zotero.org/support/rtf_scan —Rasmus -- A page of history is worth a volume of logic ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-01 22:07 ` Richard Lawrence 2015-02-02 13:52 ` Rasmus @ 2015-02-02 15:45 ` Erik Hetzner 1 sibling, 0 replies; 104+ messages in thread From: Erik Hetzner @ 2015-02-02 15:45 UTC (permalink / raw) To: Richard Lawrence; +Cc: emacs-orgmode On Sat, 31 Jan 2015 at 10:26:05 PST, Richard Lawrence <richard.lawrence@berkeley.edu> wrote: > > Hi all, > > […] > > 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. Hi Richard, It would probably be worth reviewing the discussions that led to the pandoc citation syntax: https://groups.google.com/d/msg/pandoc-discuss/v54VxMXtoWM/7ezu4xDSN8gJ Of the requirements you later mentioned: > 1) a database key that references the cited work > 2) prefix / pre-text > 3) suffix / post-text > 4) references to page/chapter/section/whatever numbers and ranges. > This is likely part of the prefix or suffix, but might be worth > parsing separately for localization or link-following behavior. > 5) a way of indicating backend-agnostic formatting properties. > Examples of some properties users might want to specify are: > - displaying only some fields (or suppressing some fields) from a > reference record (e.g., journal, date, author) > - indicating that the referenced works should *only* appear in > the bibliography of the exported document (equivalent of LaTeX > \nocite) pandoc syntax handles 1, 2, 3, 4 (locator, which is separate from suffix) and some of 5 (author suppression; I’m not sure the use cases for journal/date/etc. suppression). It does not handle \nocite, but this is something that they have discussed in the past and could easily be supported in org-mode using, e.g. a #+NO_CITE block. Personally I feel this covers the 99% of uses while being human readable and writable. I agree that citekey management is something that should be handle separately, as this will depend on the backend (bibtex file, zotero, etc.) Whether these citekeys are also links doesn’t really matter that much either and could depend on the backend. best, Erik -- Sent from my free software system <http://fsf.org/>. ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-01-31 18:26 Citations, continued Richard Lawrence 2015-01-31 18:42 ` Nicolas Goaziou @ 2015-02-01 22:06 ` John Kitchin 2015-02-02 1:41 ` Richard Lawrence 2015-02-02 14:07 ` Rasmus 2015-02-02 13:51 ` Rasmus ` (2 subsequent siblings) 4 siblings, 2 replies; 104+ messages in thread From: John Kitchin @ 2015-02-01 22:06 UTC (permalink / raw) To: Richard Lawrence; +Cc: emacs-orgmode@gnu.org [-- Attachment #1: Type: text/plain, Size: 9293 bytes --] > > > 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). > I think links are remarkable flexible, and solve most of the pre/post text issue. You can use literal links if you don't want to see them collapsed. Links already have a type, so they are easily differentiable from other links and elements. The only limitation I can see is your example below where I couldn't put two pre/post text citations in one link. I would write that as: See cite:Doe1999 for an overview; a more extensive discussion is in cite:Foobar2000 if the pre/post text is really critical somehow, you can do this. [[cite:Doe1999][See::for an overview]]; a more extensive discussion is in cite:Foobar2000 I guess this would also be ok in orgref: [[cite:Doe1999][See::for an overview]][[cite:Foobar2000][; a more extensive discussion is in]] Depending on your backend and citation style, it might be necessary to use Ref. citenum:Foobar2000 for it to look right on export. Either way, none of these are more readable than the first one I think, and they would probably all render the same in any backend. > 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. > Making anything unreadable should be avoided at all cost! > 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''? > An org link can point to many targets. An org-mode link executes code, which can give you many options to consider. In your example, I would consider that two citations. Even a single cite link in org-ref considers each comma-separated key a separate clickable entity; the code figures out which key you clicked on, and gives you several options of what to do with it, like open the entry, the pdf, etc... which it figures out how to do based on the key. > > 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 `@key1', 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. > How does the pandoc syntax handle different link types. e.g. the 40ish different types supported by biblatex? Links manage this easily, and with the export framework, you can convert them to all kinds of other formats. It looks to me like the pandoc syntax is too simple for that. '("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" ) I think you need a citation type for the backend, because you often need more than one type in a document, e.g. the regular citations, sometimes a citation number, author or year. For a pandoc like link you could consider (adapted from the pandoc examples): cite@key1,key2,key3 [optional pre text citenum@key optional post text] or a group like this [see citetext@item1 p. 34-35; also citet*@item3 chap. 3]. where optional text might include additional citations cite@key[citeauthor@key2, p. 30; see also Ref. citenum@key3)] I can't say I look forward to figuring out how to convert that to latex (or what the latex equivalent even is!)). There would have to be some mechanism to define new citation types, analogous to adding new link types. I suppose if org-element-map parsed these into data structures it might not be too bad. These look alot like replacing : with @ in a link to me, but maybe the added flexibility is worth it. The simplest cases would act like links. Looking back at this, I am not seeing a critical advantage over the links, other than eliminating the :: separator in the description. Except for the last example. I would never dream of writing a citation like that though! We never use pre/post text in citations in our work, and they don't even make sense with all citation formats, e.g. superscripted numbers. Maybe someone could provide some real life citation examples that links can't handle? I suspect a lot of pre/post text issues can be solved manually as: (see cite:key1, pg33-4; also cite:key2, chapter 3) and you will get what you want in the output. I have no idea how hard it would be to implement something like that syntax. 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 backend responsible for rendering the citation needs: 1. how to render the citation in the text (some hint about a type, pre and post text) 2. how to render the citation in the bibliography (it will get all the information from somewhere, based on the key of the citation, and prepare the citation). In Latex, you specify a style somewhere that says how to format a cite, cite*, citenum, etc... and what the bibliography entries look like (unless you use thebibliography, in which case you do that work yourself). in org-ref, it gets the type from a link, the key from the link, and pre/post text from the link, and converts that to the latex form needed by the latex bibliography backend. Something similar happens in the html export, except I build the bibliography from the bibtex file, and then go back and put html links in place for citations. nothing fancy. In word, I suppose there are little fields in the main document, and you run some function that fires up zotero/endnote/mendeley, etc... that does the formatting. > > 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! > So, after working through all that, I still think links are good enough for a large portion of citations. org should not try to solve all of these problems. That said, I would be interested again to see real life citation needs that links are too awkward to handle. > > Best, > Richard > > > [-- Attachment #2: Type: text/html, Size: 19589 bytes --] ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 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 14:07 ` Rasmus 1 sibling, 1 reply; 104+ messages in thread From: Richard Lawrence @ 2015-02-02 1:41 UTC (permalink / raw) To: John Kitchin; +Cc: emacs-orgmode@gnu.org Hi John and all, John Kitchin <jkitchin@andrew.cmu.edu> writes: >> 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). >> > > I think links are remarkable flexible, and solve most of the pre/post text > issue. You can use literal links if you don't want to see them collapsed. I agree; links *are* remarkably flexible. But I think that's actually sort of the problem in this case. It's easy to use the link syntax to implement a solution for citations that is `good enough' for 80+% of the use cases. That becomes a barrier to adopting something which better advances the goals of Org and its users. If I was implementing a citations solution just for my own Org documents, I would do it exactly the way org-ref does: use the link syntax, and put the pre- and post-text in the description, with a separator that's easy to remember, like [[cite:Doe1999][See::for an overview]] or more realistically: [[cite:Doe1999][Cf. a recent discussion in::, on sluicing.]] Does this work? Yes. Is it easy to implement on top of the existing features? Yes. Again, for my own personal use, this is exactly what I would do. But I would not want to see this syntax canonized as the official Org citation syntax. It feels like a hack, not a proper solution, and it definitely strikes me as less readable than [Cf. a recent discussion in @Doe1999, on sluicing.] especially if you have the default setup, where the URLS of links that have a description part are hidden. My point is not that the link syntax *can't* do enough. Rather, my point is that citations are conceptually distinct from links, and if we are going to adopt an official syntax for them, that syntax should reflect this conceptual distinction. This is better for document authors, because it is less work for us. It gives us the right tool for this particular job, instead of re-purposing a tool that, despite its power, is designed for a different job. It is thus better for the Org community as a whole. >> 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''? >> > > An org link can point to many targets. An org-mode link executes code, > which can give you many options to consider. In your example, I would > consider that two citations. Even a single cite link in org-ref considers > each comma-separated key a separate clickable entity; the code figures out > which key you clicked on, and gives you several options of what to do with > it, like open the entry, the pdf, etc... which it figures out how to do > based on the key. This is a good example of how extending the link syntax to citations will end up obscuring important conceptual distinctions, which makes more work for the user. Normally, when you click on a link (or follow it with C-c C-o), you don't have to pay attention to /where/ on the link you click. By making citation keys significant sub-parts of a link, you force the user to always pay attention to this for every link, at least until he or she determines whether the link is a citation link or a `real' link. (If that doesn't seem like a big deal, consider how it would affect someone who edits Org documents using a screen reader.) A link has two significant parts: a URL, and a description. A citation potentially has at least three significant parts for each work it references (key, pre-text and post-text). I am certainly not opposed to having parts of citations exhibit link-like behavior, though. I think it would be great if one could `follow' each reference key within a citation to do something useful with it, as org-ref does. I just think the link syntax is not the right underlying syntax to express this. It does not contain enough significant parts -- and giving it more significant parts makes links into something else. > How does the pandoc syntax handle different link types. e.g. the 40ish > different types supported by biblatex? Links manage this easily, and with > the export framework, you can convert them to all kinds of other formats. > It looks to me like the pandoc syntax is too simple for that. > ... > I think you need a citation type for the backend, because you often need > more than one type in a document, e.g. the regular citations, sometimes a > citation number, author or year. Yes, I agree here. As far as I can tell, the Pandoc syntax does not handle different types of citations within the same document, except in a limited way, via the distinctions between Smith says blah [@Smith99, p. 3]. @Smith99 [p. 3] say blah. Smith once thought foo [-@Smith99], but now thinks bar [-@Smith2014]. which basically correspond in the LaTeX world to natbib's \citep, \citet, and \citeyear in the default (Chicago) citation styling. Pandoc does not map these different citation types to LaTeX commands directly, though. Instead, it formats citations using citeproc-hs' implmentation of the Citation Style Language, then inserts the resulting text into the document where the citation is supposed to appear. I agree that some sort of fallback may be needed so that you can instruct the LaTeX exporter, in particular, which command to use for a given citation. But Org is a document format, not a nicer-looking frontend for LaTeX (as other people on this list have had to remind me in the past!). The official syntax should distinguish between citations, on the one hand, and instructions to particular backends for formatting them, on the other. Users should not have to learn the vagaries of LaTeX citation commands in order to represent citations in an Org document. There is existing syntax for giving instructions to particular export backends about how to format Org elements: the #+ATTR_BACKEND syntax. Something like this is the right way to pass citation formatting information to LaTeX when needed. Unfortunately, this can't be applied to inline citations directly, so something else is required. I have an idea about how to do this, which I will post when I finish writing it up. Best, Richard ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-02 1:41 ` Richard Lawrence @ 2015-02-02 4:43 ` Thomas S. Dye 2015-02-02 13:56 ` John Kitchin ` (2 more replies) 0 siblings, 3 replies; 104+ messages in thread From: Thomas S. Dye @ 2015-02-02 4:43 UTC (permalink / raw) To: Richard Lawrence; +Cc: emacs-orgmode@gnu.org, John Kitchin Aloha Richard, Richard Lawrence <richard.lawrence@berkeley.edu> writes: > My point is not that the link syntax *can't* do enough. Rather, my > point is that citations are conceptually distinct from links, and if we > are going to adopt an official syntax for them, that syntax should > reflect this conceptual distinction. This is better for document > authors, because it is less work for us. It gives us the right tool for > this particular job, instead of re-purposing a tool that, despite its > power, is designed for a different job. It is thus better for the Org > community as a whole. I agree that citations are conceptually distinct from links, but at the same time they share many features. Both can refer to something outside the Org mode document. Both can be replaced in the Org mode export with something from outside the Org mode document. The fact that links can be made to handle most users' citation needs is practical proof that the similarities are more than superficial. Now, I agree with you that Org mode links are not ideal for citations. Parsing the description is humbug and error-prone, and the descriptions look ungainly in the Org mode document. I never remember to click citation links in the "right" place! There is much room for improvement here. You and others are advocating a separate syntax for links and citations, which might indeed be the way to go. I can see it being much nicer than the current state of affairs with Org mode links. The downside is that it will mean learning another set of rules, in addition to the existing rules for links. Several years ago, Samuel Wales suggested an extensible syntax example using link features (https://lists.gnu.org/archive/html/emacs-orgmode/2010-08/msg00404.html). At the time it seemed to me that this was a Lisp-y approach because it solved particular problems by generalizing or abstracting a language feature to include particulars that had previously fallen outside its ken. I wanted something like this while I was working on implementing citation links for export to LaTeX. Would it be feasible to generalize Org mode's link syntax, or make it extensible, so the overlap of link with citation is complete? All the best, Tom -- Thomas S. Dye http://www.tsdye.com ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 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 14:17 ` Rasmus 2015-02-02 16:58 ` Richard Lawrence 2 siblings, 1 reply; 104+ messages in thread From: John Kitchin @ 2015-02-02 13:56 UTC (permalink / raw) To: Thomas S. Dye; +Cc: Richard Lawrence, emacs-orgmode@gnu.org, John Kitchin Thomas S. Dye writes: > Aloha Richard, > > Richard Lawrence <richard.lawrence@berkeley.edu> writes: > >> My point is not that the link syntax *can't* do enough. Rather, my >> point is that citations are conceptually distinct from links, and if we >> are going to adopt an official syntax for them, that syntax should >> reflect this conceptual distinction. This is better for document >> authors, because it is less work for us. It gives us the right tool for >> this particular job, instead of re-purposing a tool that, despite its >> power, is designed for a different job. It is thus better for the Org >> community as a whole. > > I agree that citations are conceptually distinct from links, but at the > same time they share many features. Both can refer to something outside > the Org mode document. Both can be replaced in the Org mode export with > something from outside the Org mode document. The fact that links can > be made to handle most users' citation needs is practical proof that the > similarities are more than superficial. > > Now, I agree with you that Org mode links are not ideal for citations. > Parsing the description is humbug and error-prone, and the descriptions > look ungainly in the Org mode document. I never remember to click > citation links in the "right" place! There is much room for improvement > here. I am not sure how much better it could get. What did you have in mind? I could imagine for a cite link with several citations the click action could give you an ido-completing/helm selection buffer and you choose what you want to do from there. In org-ref the click action is user definable, so you can get what you want. > > You and others are advocating a separate syntax for links and citations, > which might indeed be the way to go. I can see it being much nicer than > the current state of affairs with Org mode links. The downside is that > it will mean learning another set of rules, in addition to the existing > rules for links. > > Several years ago, Samuel Wales suggested an extensible syntax example > using link features > (https://lists.gnu.org/archive/html/emacs-orgmode/2010-08/msg00404.html). > At the time it seemed to me that this was a Lisp-y approach because it > solved particular problems by generalizing or abstracting a language > feature to include particulars that had previously fallen outside its > ken. I wanted something like this while I was working on implementing > citation links for export to LaTeX. > I am totally for this idea! I have been pondering how to make a link element with extra data in it for a while. > Would it be feasible to generalize Org mode's link syntax, or make it > extensible, so the overlap of link with citation is complete? > > All the best, > Tom -- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 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 0 siblings, 2 replies; 104+ messages in thread From: Thomas S. Dye @ 2015-02-02 18:11 UTC (permalink / raw) To: John Kitchin; +Cc: Richard Lawrence, emacs-orgmode@gnu.org Hi John, John Kitchin <jkitchin@andrew.cmu.edu> writes: >> Now, I agree with you that Org mode links are not ideal for citations. >> Parsing the description is humbug and error-prone, and the descriptions >> look ungainly in the Org mode document. I never remember to click >> citation links in the "right" place! There is much room for improvement >> here. > > I am not sure how much better it could get. What did you have in mind? I > could imagine for a cite link with several citations the click action > could give you an ido-completing/helm selection buffer and you choose > what you want to do from there. In org-ref the click action is user > definable, so you can get what you want. I didn't mean to imply any criticism of org-ref, which I haven't used. I've been using my own home-grown solution for several years now, have grown used to its limitations, and of course now have all those legacy documents to support ... It would be nice to have the link syntax extended or generalized to indicate pre- and post-note text, so my home-grown system would use links compatible with org-ref, say. I really like the direction Richard is heading for this reason. If the distinctions needed for citations were recognized in the Org mode core, then citation links used by different systems might be compatible with one another. More control over how links are displayed would be nice (perhaps let the user pass in a function?). When I first worked on setting up citations, I thought it would be great to color citation links differently from other links, and I still kind of like that idea. Also, in my setup, I don't want to see the full link because the bibtex keys are long and the full links really break up the flow of the text. Among other things, this means I can't be sure just looking at the buffer in its typical state what kind of link I'm using (footcite, parencite, textcite, etc.). A little indicator of some kind would be really nice here, but I haven't found an easy way to display one. I'm glad you like Samuel's idea about extensible syntax for links. I don't know if it is practical or not, but it was one of those ideas that seemed right on when I first read it. All the best, Tom -- T.S. Dye & Colleagues, Archaeologists 735 Bishop St, Suite 315, Honolulu, HI 96813 Tel: 808-529-0866, Fax: 808-529-0884 http://www.tsdye.com ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-02 18:11 ` Thomas S. Dye @ 2015-02-02 19:38 ` John Kitchin 2015-02-02 19:51 ` John Kitchin 1 sibling, 0 replies; 104+ messages in thread From: John Kitchin @ 2015-02-02 19:38 UTC (permalink / raw) To: Thomas S. Dye; +Cc: Richard Lawrence, emacs-orgmode@gnu.org, John Kitchin You can color your own links like this: (highlight-regexp "cite:\\([a-zA-Z0-9]*[-_:]*\\)*" 'dired-warning) (highlight-regexp "citenum:\\([a-zA-Z0-9]*[-_:]*\\)*" 'dired-marked) The regexps are not as robust as what org uses, the plain link on my system looks like: "\\<\\(Autocite[*s]?\\|Cite\\(?:a\\(?:l[pt]\\|uthor\\*?\\)\\|[pst]\\)?\\|Gls\\(?:pl\\)?\\|Notecite\\|P\\(?:arencites?\\|notecite\\)\\|ResearcherID\\|Smartcites?\\|Textcites?\\|a\\(?:dd\\(?:bibresource\\|ressbook\\)\\|ns\\|ssignment\\|ttachfile\\|utocite[*s]?\\)\\|b\\(?:bdb\\|ib\\(?:entry\\|liography\\(?:style\\)?\\|tex\\)\\)\\|cite\\(?:a\\(?:l\\(?:[pt]\\*\\|[pt]\\)\\|uthor\\*?\\)\\|date\\*?\\|num\\|p\\*\\|t\\(?:\\*\\|ext\\|itle\\*?\\)\\|url\\|year\\*?\\|[*pst]\\)?\\|do\\(?:cview\\|i\\)\\|e\\(?:l\\(?:feed\\|isp\\)\\|qref\\|xercise\\)\\|f\\(?:ile\\(?:\\+\\(?:\\(?:emac\\|sy\\)s\\)\\)?\\|notecite\\|oot\\(?:cite\\(?:s\\|texts?\\)?\\|fullcite\\)\\|tp\\|u\\(?:llcite\\|nc\\)\\)\\|g\\(?:ls\\(?:pl\\)?\\|nus\\|oogle\\)\\|https?\\|i\\(?:d\\|n\\(?:dex\\|fo\\)\\|rc\\)\\|l\\(?:abel\\|ist-of-\\(?:\\(?:figur\\|tabl\\)es\\)\\)\\|m\\(?:a\\(?:c-outlook\\|ilto\\)\\|c\\|essage\\|he\\|od\\|sx\\|u4e\\)\\|n\\(?:ameref\\|ew\\(?:glossaryentry\\|s\\)\\|ihmsid\\|o\\(?:bibliography\\|\\(?:te\\)?cite\\)\\)\\|orcid\\|p\\(?:a\\(?:geref\\|rencite[*s]?\\)\\|m\\(?:c?id\\)\\|notecite\\|rint\\(?:bibliography\\|index\\)\\|ydoc\\)\\|r\\(?:ef\\|mail\\)\\|s\\(?:hell\\|kim\\|link\\|martcites?\\|olution\\|upercites?\\)\\|t\\(?:extcites?\\|q-index\\)\\|x-together-item\\):\\([^ \n()<>]+\\(?:([[:word:]0-9_]+)\\|\\([^[:punct:] \n]\\|/\\)\\)\\)" But, if you put that in init files, then your links will be colored the way you want them. Thomas S. Dye writes: > Hi John, > > John Kitchin <jkitchin@andrew.cmu.edu> writes: > >>> Now, I agree with you that Org mode links are not ideal for citations. >>> Parsing the description is humbug and error-prone, and the descriptions >>> look ungainly in the Org mode document. I never remember to click >>> citation links in the "right" place! There is much room for improvement >>> here. >> >> I am not sure how much better it could get. What did you have in mind? I >> could imagine for a cite link with several citations the click action >> could give you an ido-completing/helm selection buffer and you choose >> what you want to do from there. In org-ref the click action is user >> definable, so you can get what you want. > > I didn't mean to imply any criticism of org-ref, which I haven't used. > I've been using my own home-grown solution for several years now, have > grown used to its limitations, and of course now have all those legacy > documents to support ... > > It would be nice to have the link syntax extended or generalized to > indicate pre- and post-note text, so my home-grown system would use > links compatible with org-ref, say. I really like the direction Richard > is heading for this reason. If the distinctions needed for citations > were recognized in the Org mode core, then citation links used by > different systems might be compatible with one another. > > More control over how links are displayed would be nice (perhaps let the > user pass in a function?). When I first worked on setting up citations, > I thought it would be great to color citation links differently from > other links, and I still kind of like that idea. Also, in my setup, I > don't want to see the full link because the bibtex keys are long and the > full links really break up the flow of the text. Among other things, > this means I can't be sure just looking at the buffer in its typical > state what kind of link I'm using (footcite, parencite, textcite, etc.). > A little indicator of some kind would be really nice here, but I haven't > found an easy way to display one. > > I'm glad you like Samuel's idea about extensible syntax for links. I > don't know if it is practical or not, but it was one of those ideas that > seemed right on when I first read it. > > All the best, > Tom -- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 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 1 sibling, 2 replies; 104+ messages in thread From: John Kitchin @ 2015-02-02 19:51 UTC (permalink / raw) To: Thomas S. Dye; +Cc: Richard Lawrence, emacs-orgmode@gnu.org, John Kitchin > I'm glad you like Samuel's idea about extensible syntax for links. I > don't know if it is practical or not, but it was one of those ideas that > seemed right on when I first read it. I am glad you mentioned, it was an inspiration! Although this is sure to move away from a standard new syntax, it is straightforward to subvert a link like the following example to get more readable pre/post text example. The quotes are necessary to get the list read correctly. Whether this is useful remains to be seen, but it was fun to work it out. #+BEGIN_SRC emacs-lisp :results silent (org-add-link-type "slink" ;; follow function (lambda (path) (let* ((data (read (concat "(" path ")"))) (head (car data)) (plist (cadr data))) (message-box "%s\n%s\n%s" head plist (plist-get plist :type)))) ;; format function (lambda (path description backend) (let* ((data (read (concat "(" path ")"))) (head (car data)) (plist (cadr data))) (format "\\%s[%s][%s]{%s}" (plist-get plist :type) (plist-get plist :pre) (plist-get plist :post) head)))) #+END_SRC [[slink:kitchin-2010 (:pre "See for example" :post "page 47" :type cite)]] Exports to: #+BEGIN_EXAMPLE \cite[See for example][page 47]{kitchin-2010} #+END_EXAMPLE > > All the best, > Tom -- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-02 19:51 ` John Kitchin @ 2015-02-02 22:47 ` Rasmus 2015-02-03 0:54 ` Thomas S. Dye 1 sibling, 0 replies; 104+ messages in thread From: Rasmus @ 2015-02-02 22:47 UTC (permalink / raw) To: emacs-orgmode John Kitchin <jkitchin@andrew.cmu.edu> writes: > #+BEGIN_SRC emacs-lisp :results silent > (org-add-link-type > "slink" ...) > #+END_SRC Thanks John, this is great! I managed to chop down my citation setup to the following: [[cite:key :pre pre :post post :type type]] with reasonable support for other backends. I only use bibtex and I used to separate pre/post with ";" so there's some legacy code in there. Everything is hard-coded to my system/taste, written quickly and (very) lightly tested, but maybe it will still be useful to somebody. . . —Rasmus (with-eval-after-load 'org (require 'reftex-cite) (defmacro rasmus/org-bib-add-type (type) ;; TODO: maybe this can be made more effective? ;; Seems to work OK... `(org-add-link-type ,type 'rasmus/org-bib-follow ,(lambda (path description backend) (funcall 'rasmus/org-bib-format path description backend ;; cite defaults to textcite (if (equal type "cite") "textcite" type))))) (mapc (lambda (type) (funcall 'rasmus/org-bib-add-type type)) '("cite" "textcite" "parentcite" "citeyear" "citeauthor")) (defun rasmus/org-bib-follow (path) "Find the pdf version of citation." (let* ((stream (read (format "(%s)" path)))) (rasmus/find-lit (car head)))) (defun rasmus/find-lit (key) "Open pdf file associated with KEY from `reftex-default-bibliography'." (let* ((bib (file-name-directory (car reftex-default-bibliography))) (file (concat bib path (concat "/" key ".pdf")))) (when (file-exists-p file) (find-file file)))) (defun rasmus/org-bib-format (path description backend &optional type*) "Format a org-link citation. Support links of the type [[type*:key :pre PRE :post POST :type TYPE**]] Or [[Key*:key][POST;PRE]] Based on John K's great post here: http://permalink.gmane.org/gmane.emacs.orgmode/94575" (let* ((key ;; key is a single symbol by assumption (and (string-match "\\` *\\([^ ]+\\) *" path) (prog1 (match-string 1 path) (setq path (replace-match "" nil nil path))))) ;; generate plist (data (read (format "(%s)" (replace-regexp-in-string "\\(:\\w+\\) \\([^:]+\\) ?" "\\1 \"\\2\" " path)))) (type (or (plist-get data :type) type* "textcite")) (pre (org-trim (or (plist-get data :pre) ;; support my "old" syntax (and description (cadr (split-string description ";"))) ""))) (post (org-trim (or (funcall (lambda (txt) (and txt (let ((res (string-to-number txt))) (if (zerop res) txt (concat (if (> (length txt) 1) "pp." "p.") " " txt))))) (plist-get data :post)) (and description (car (split-string description ";"))) ""))) (entry (or (save-window-excursion (bibtex-search-entry key t 0) (bibtex-parse-entry)) (error (format "unknown key: %s" key)))) (author (or (reftex-format-citation entry "%2a") "")) (year (or (reftex-format-citation entry "%y") ""))) (if (org-export-derived-backend-p backend 'latex) (format "\\%s[%s][%s]{%s}" type pre post key) ;; TODO: This should probably be wrapped in <cite>.</cite> with html... (cl-case (intern type) (parencite (format "(%s %s %s %s)" pre author (or (and (org-string-nw-p year) (concat year ", ")) "") post)) (citeyear (format "%s %s %s" pre year post)) (citeauthor (format "%s %s %s" pre author post)) (fullcite (reftex-format-citation entry reftex-cite-view-format)) (t ;; textcite (format "%s (%s%s%s)" author (and (org-string-nw-p pre) (concat pre " ")) year (and (org-string-nw-p post) (concat ", " post))))))))) -- Dung makes an excellent fertilizer ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 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 1 sibling, 1 reply; 104+ messages in thread From: Thomas S. Dye @ 2015-02-03 0:54 UTC (permalink / raw) To: John Kitchin; +Cc: Richard Lawrence, emacs-orgmode@gnu.org Hi John, Wow. It's inspiring to see Samuel's idea in action. Presumably, something like this would also be possible? ;; follow function (lambda (path) (let* ((data (read (concat "(" path ")"))) (head (car data)) (plist (cadr data))) (funcall (plist-get plist :follow) head))) [[slink:kitchin-2010 (:pre "See for example" :post "page 47" :type cite :follow #'ebib-open-org-link)]] All the best, Tom John Kitchin <jkitchin@andrew.cmu.edu> writes: >> I'm glad you like Samuel's idea about extensible syntax for links. I >> don't know if it is practical or not, but it was one of those ideas that >> seemed right on when I first read it. > > I am glad you mentioned, it was an inspiration! Although this is sure to > move away from a standard new syntax, it is straightforward to subvert a > link like the following example to get more readable pre/post text > example. The quotes are necessary to get the list read > correctly. Whether this is useful remains to be seen, but it was fun to > work it out. > > #+BEGIN_SRC emacs-lisp :results silent > (org-add-link-type > "slink" > ;; follow function > (lambda (path) > (let* ((data (read (concat "(" path ")"))) > (head (car data)) > (plist (cadr data))) > (message-box "%s\n%s\n%s" head plist (plist-get plist :type)))) > ;; format function > (lambda (path description backend) > (let* ((data (read (concat "(" path ")"))) > (head (car data)) > (plist (cadr data))) > (format "\\%s[%s][%s]{%s}" > (plist-get plist :type) > (plist-get plist :pre) > (plist-get plist :post) > head)))) > #+END_SRC > > > > Exports to: > > #+BEGIN_EXAMPLE > \cite[See for example][page 47]{kitchin-2010} > #+END_EXAMPLE > > > > >> >> All the best, >> Tom > > -- > Professor John Kitchin > Doherty Hall A207F > Department of Chemical Engineering > Carnegie Mellon University > Pittsburgh, PA 15213 > 412-268-7803 > @johnkitchin > http://kitchingroup.cheme.cmu.edu > > -- Thomas S. Dye http://www.tsdye.com ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-03 0:54 ` Thomas S. Dye @ 2015-02-03 1:36 ` John Kitchin 0 siblings, 0 replies; 104+ messages in thread From: John Kitchin @ 2015-02-03 1:36 UTC (permalink / raw) To: Thomas S. Dye; +Cc: Richard Lawrence, emacs-orgmode@gnu.org Thanks! I had been thinking about how to do that for a while, and seeing Samuel's idea crytallized it for me. Thanks Samuel, and Tom for remembering it from long ago. yes that should also be possible. once you open the rabbit hole of embedded lisp, many things are possible ;) even beyond citations. One note might be related to security that is worth thinking about. org is conservative in the beginning in making you choose to turn off the questions asking do you want to run this for babel, shell and elisp. In your example, you are opening a hole I think. Suppose this is buried deep in the document ;) [[slink:kitchin-2010 (:pre "See for example" :post "page 47" :type cite :follow (lambda (x) (message-box "I could be a shell command. please please please click me or export me!")))]] I tried it, and indeed it runs that function. ... Anyway, that is totally possible by many other means right now with links, so it is not totally new, but it is probably worth thinking about a little since code execution like this could make it out to the export. Anyway, I look forward to seeing where it goes! Thomas S. Dye writes: > Hi John, > > Wow. It's inspiring to see Samuel's idea in action. > > Presumably, something like this would also be possible? > > ;; follow function > (lambda (path) > (let* ((data (read (concat "(" path ")"))) > (head (car data)) > (plist (cadr data))) > (funcall (plist-get plist :follow) head))) > > [[slink:kitchin-2010 (:pre "See for example" :post "page 47" :type > cite :follow #'ebib-open-org-link)]] > > All the best, > Tom > > John Kitchin <jkitchin@andrew.cmu.edu> writes: > >>> I'm glad you like Samuel's idea about extensible syntax for links. I >>> don't know if it is practical or not, but it was one of those ideas that >>> seemed right on when I first read it. >> >> I am glad you mentioned, it was an inspiration! Although this is sure to >> move away from a standard new syntax, it is straightforward to subvert a >> link like the following example to get more readable pre/post text >> example. The quotes are necessary to get the list read >> correctly. Whether this is useful remains to be seen, but it was fun to >> work it out. >> >> #+BEGIN_SRC emacs-lisp :results silent >> (org-add-link-type >> "slink" >> ;; follow function >> (lambda (path) >> (let* ((data (read (concat "(" path ")"))) >> (head (car data)) >> (plist (cadr data))) >> (message-box "%s\n%s\n%s" head plist (plist-get plist :type)))) >> ;; format function >> (lambda (path description backend) >> (let* ((data (read (concat "(" path ")"))) >> (head (car data)) >> (plist (cadr data))) >> (format "\\%s[%s][%s]{%s}" >> (plist-get plist :type) >> (plist-get plist :pre) >> (plist-get plist :post) >> head)))) >> #+END_SRC >> >> >> >> Exports to: >> >> #+BEGIN_EXAMPLE >> \cite[See for example][page 47]{kitchin-2010} >> #+END_EXAMPLE >> >> >> >> >>> >>> All the best, >>> Tom >> >> -- >> Professor John Kitchin >> Doherty Hall A207F >> Department of Chemical Engineering >> Carnegie Mellon University >> Pittsburgh, PA 15213 >> 412-268-7803 >> @johnkitchin >> http://kitchingroup.cheme.cmu.edu >> >> -- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-02 4:43 ` Thomas S. Dye 2015-02-02 13:56 ` John Kitchin @ 2015-02-02 14:17 ` Rasmus 2015-02-02 16:58 ` Richard Lawrence 2 siblings, 0 replies; 104+ messages in thread From: Rasmus @ 2015-02-02 14:17 UTC (permalink / raw) To: emacs-orgmode tsd@tsdye.com (Thomas S. Dye) writes: > You and others are advocating a separate syntax for links and citations, > which might indeed be the way to go. I can see it being much nicer than > the current state of affairs with Org mode links. The downside is that > it will mean learning another set of rules, in addition to the existing > rules for links. So we bump the version number? The [[cite:key]] would not stop working. > Several years ago, Samuel Wales suggested an extensible syntax example > using link features > (https://lists.gnu.org/archive/html/emacs-orgmode/2010-08/msg00404.html). > At the time it seemed to me that this was a Lisp-y approach because it > solved particular problems by generalizing or abstracting a language > feature to include particulars that had previously fallen outside its > ken. I wanted something like this while I was working on implementing > citation links for export to LaTeX. > > Would it be feasible to generalize Org mode's link syntax, or make it > extensible, so the overlap of link with citation is complete? I like :key entry-links and it would be powerful. Certain like types would also need to support custom display functions. You could then implement a cite-operator '@' as a handler for a generalized link. —Rasmus -- Governments should be afraid of their people ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-02 4:43 ` Thomas S. Dye 2015-02-02 13:56 ` John Kitchin 2015-02-02 14:17 ` Rasmus @ 2015-02-02 16:58 ` Richard Lawrence 2 siblings, 0 replies; 104+ messages in thread From: Richard Lawrence @ 2015-02-02 16:58 UTC (permalink / raw) To: emacs-orgmode tsd@tsdye.com (Thomas S. Dye) writes: > You and others are advocating a separate syntax for links and citations, > which might indeed be the way to go. I can see it being much nicer than > the current state of affairs with Org mode links. The downside is that > it will mean learning another set of rules, in addition to the existing > rules for links. Yes, I agree, and I see the import of this concern. Links and citations have enough similarities that some more generalized syntax could probably cover them both, as you suggest below. The main upside, as I see it, of adopting a totally different syntax for citations is that we have the option to adopt a syntax that is already known to be good enough (for some set of uses) and to work with other tools (like Pandoc). But this is a `merely practical' concern and maybe does not outweight the considerations above. > Several years ago, Samuel Wales suggested an extensible syntax example > using link features > (https://lists.gnu.org/archive/html/emacs-orgmode/2010-08/msg00404.html). > At the time it seemed to me that this was a Lisp-y approach because it > solved particular problems by generalizing or abstracting a language > feature to include particulars that had previously fallen outside its > ken. I wanted something like this while I was working on implementing > citation links for export to LaTeX. > > Would it be feasible to generalize Org mode's link syntax, or make it > extensible, so the overlap of link with citation is complete? This is an interesting idea! I think the minimal change that would be necessary would be to allow the new extended links (call them `elinks' for short) to be defined in such a way that they can have varying numbers of significant parts, depending on the type. An elink definition for a given type would specify a number and order of parts. All elinks would use the same syntax to delimit the parts. To keep things simple and more or less consistent with the existing syntax, we could just surround each part with square brackets, and assume that only the first part is required. Thus, the relevant definitions could look like: href: URL DESCRIPTION cite: KEY PRE-TEXT POST-TEXT with examples like: [href: [http://www.google.com]] [href: [http://www.google.com][Evil search engine]] [cite: [Smith99]] [cite: [Smith99][Cf.]] [cite: [Smith99][Cf.][for a discussion]] though this doesn't quite solve the readability problem with having optional pre and post text appear after the key. In theory, this syntax could even allow complicated nestings: multi-cite: CITE-ELINK ... [multi-cite: [cite: [Smith99]] [cite: [Doe2000]] [cite: [Foobar2014][a summary appears in]] [cite: [Baz2014][][which is available at [href: [http://baz.org]]]] though that might quickly get unwieldy (especially for non-Lispers). :) Link handlers would become functions that accept one argument plus a &rest list, and the choice of link handler would dispatch on the type. An alternative to the brackets would be to use something like plist syntax for the optional arguments (as Samuel originally suggested and Rasmus has echoed). Links would really just start to look like Lisp function calls. I'm just spitballing here; not sure I'd ultimately endorse something like this, but I think it's worthwhile to explore the question of how link and citation syntax could usefully be generalized. Best, Richard ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-01 22:06 ` John Kitchin 2015-02-02 1:41 ` Richard Lawrence @ 2015-02-02 14:07 ` Rasmus 1 sibling, 0 replies; 104+ messages in thread From: Rasmus @ 2015-02-02 14:07 UTC (permalink / raw) To: emacs-orgmode John Kitchin <jkitchin@andrew.cmu.edu> writes: > See cite:Doe1999 for an overview; a more extensive discussion is in > cite:Foobar2000 This is ok and supported by ox-bibtex.el. > if the pre/post text is really critical somehow, you can do this. > > [[cite:Doe1999][See::for an overview]]; a more extensive discussion is in > cite:Foobar2000 This is displayed as "See::for an overview" with an underline, which is not really good enough. > I guess this would also be ok in orgref: > [[cite:Doe1999][See::for an overview]][[cite:Foobar2000][; a more extensive > discussion is in]] Which is displayed as See::for an overview; a more extensive discussion is in Which is formidably unreadable! > How does the pandoc syntax handle different link types. We can make it more powerful as necessary. > We never use pre/post text in citations in our work, and they don't even > make sense with all citation formats, e.g. superscripted numbers. Maybe > someone could provide some real life citation examples that links can't > handle? [[cite:key][prenote postnote]] Per your examples above. > I suspect a lot of pre/post text issues can be solved manually as: > > (see cite:key1, pg33-4; also cite:key2, chapter 3) > and you will get what you want in the output. Note that \parencite[pre][post]{key} becomes (see author, year post). I don't know how to construct this in a simple way as (see author (year) post) is not good enough. > In word, I suppose there are little fields in the main document, and you > run some function that fires up zotero/endnote/mendeley, etc... that does > the formatting. I guess... >> >> 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! >> > > So, after working through all that, I still think links are good enough for > a large portion of citations. Not surprisingly I disagree. It "breaks" whenever you have pre and post notes. Author-Year is pretty common and pre and post is pretty damn important. Readability is important and links fail at this step for any citation but the most simple ones. Links are "hard" to type outside of Emacs and logically/syntax-wise unpleasant and are displayed poorly within Emacs. —Rasmus -- The second rule of Fight Club is: You do not talk about Fight Club ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-01-31 18:26 Citations, continued Richard Lawrence 2015-01-31 18:42 ` Nicolas Goaziou 2015-02-01 22:06 ` John Kitchin @ 2015-02-02 13:51 ` Rasmus 2015-02-02 15:09 ` Matt Price 2015-02-02 18:02 ` Richard Lawrence 4 siblings, 0 replies; 104+ messages in thread From: Rasmus @ 2015-02-02 13:51 UTC (permalink / raw) To: emacs-orgmode Richard Lawrence <richard.lawrence@berkeley.edu> writes: > 2) There are at least several different backend reference database > formats (BibTeX, Zotero, etc.) used by Orgsters. Not all such databases > use human-readable keys. Org also has a nice internal format for > storing reference information: org-bibtex. Human readable keys are not a deal-breaker IMO. Important is bibtex and an entity-like display (e.g. Org displays \alpha as α etc.). > 4) Because individual Orgsters have widely varying needs, there is some > disagreement about what `proper' citation support should look like. (Do > we need new syntax, or can existing syntax be used? Which features need > to be supported by Org, and which can be provided by external tools? > etc.) > > It seems there are three distinct but related problems: > 1. representing citations in Org documents > 2. exporting citations in an Org document to a backend document format > like LaTeX, ODT, or HTML > 3. searching for and manipulating keys in a reference database from > within Org, and otherwise fostering good communication between > such a database and citations in Org documents I would add: 4a. Support backends ... 4b. ... and represent them internally. 5. Formatting of citations. 6. Nice representation in org-mode similar to entities. As John K said, it is much preferable to have external tools handle 5. If there exist an external tool that can format handle formatting based on a given backend, problem 2. and 5. disappear more or less. If 5. is solved in elisp (e.g. using bibtex.el), problem 2. is "easy" across all backends, but results might only be easily clickable/dynamic in html. 1 → is an org-element.el problem. 3 → is easy for bibtex at least via Reftex. My understanding is that Zotero also has well-supported selection functionality. 4b → allows for easy sharing of complete documents. > 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). +1. > 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 `@key1', 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. I think we should use "almost-pandoc" cf. http://permalink.gmane.org/gmane.emacs.orgmode/94412 Namely [@bibtex-key :key value] with handy shortcuts. E.g. for latex constructs @key → \textcite{key} (@key) → \parencite{key} [@key :key value] → ? [@key :type mytype] → \mytype{key} [-@key] → \nocite{key} (pre @key post) → \parencite[pre][post]{key} (pre @key post :key value) → ? Something like (pre1 @key1 post1 pre1 @key2 post2) is hard to represent though ('cause it disallows). Perhaps (pre1 @key1 post1) (pre2 @key2 post2) could be merged like how subscripts are collected? > 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. I think allowing for arbitrary keys is abstract enough to solve all issues. It would also be easy to add user-written support. > The other problems, I think, must wait until a stable citation syntax > emerges -- export support in particular. +1. —Rasmus -- It was you, Jezebel, it was you ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-01-31 18:26 Citations, continued Richard Lawrence ` (2 preceding siblings ...) 2015-02-02 13:51 ` Rasmus @ 2015-02-02 15:09 ` Matt Price 2015-02-02 18:02 ` Richard Lawrence 4 siblings, 0 replies; 104+ messages in thread From: Matt Price @ 2015-02-02 15:09 UTC (permalink / raw) To: Org Mode [-- Attachment #1: Type: text/plain, Size: 6903 bytes --] I have very little of substance to say, but many thanks to Richard for raising the level of discourse to a much more sophisticated one than I was able to achieve in my initial post. I don't feel qualified to comment on whether links or a new citation syntax is appropriate. But I do think that Richard and the rest of you have identified the key features that any future syntax should follow. I guess I would emphasize that Richard's insistence on the experience of a document writer is very important -- it should be straightforward to add citations from whatever sources we use, to read and work with those citations in org itself, and to export them painlessly to the other major formats in which our work is shared (I think the main ones right now and for the foreseeable future are LaTex, ODT/Docx, and HTML). And that should be true even for people who are not so good at fiddling with presentation details. From my perspective, citation support is really the only writerly feature "missing" from org; if it can be put in place, I will be thrilled and thankful. Finally, I did want to describe one other syntax I've recently learned about, which is used by Zotero's odf-scan plugin ( http://zotero-odf-scan.github.io/zotero-odf-scan/); these are text citations of this type: {pre | -Author (Date) | p. XX | post | ZOTEROKEY } The scanner will convert these to ODT citations, and multiple citations strung together will be formatted as a multi-source citation. I find these pretty easy to read, though there is certainly room for improvement. On Sat, Jan 31, 2015 at 1:26 PM, Richard Lawrence < richard.lawrence@berkeley.edu> wrote: > Hi all, > > I wanted to continue the discussion that began in this thread about > adding citation support to Org: > http://thread.gmane.org/gmane.emacs.orgmode/94352/focus=94412 > > Here are some thoughts I have after reviewing that discussion: > > 1) Lots of people seem to need/want better support for citations in Org > documents. Other projects (Pandoc among them) already have support for > citations which is good enough that at least some people are using them > to fill this perceived gap in Org's support. > > 2) There are at least several different backend reference database > formats (BibTeX, Zotero, etc.) used by Orgsters. Not all such databases > use human-readable keys. Org also has a nice internal format for > storing reference information: org-bibtex. > > 3) There are also several different frontend solutions for making > citations in Org documents (org-ref, various `home-brewed' solutions, > raw LaTeX \cite commands, etc.). The variety here is at least in part > due to our different requirements for the format of exported documents: > e.g., some people only care about exporting to LaTeX, others need > something that will work for HTML or ODT; some people need to specify > pre- and post-text for citations; some people need to specify citation > types. > > 4) Because individual Orgsters have widely varying needs, there is some > disagreement about what `proper' citation support should look like. (Do > we need new syntax, or can existing syntax be used? Which features need > to be supported by Org, and which can be provided by external tools? > etc.) > > It seems there are three distinct but related problems: > - representing citations in Org documents > - exporting citations in an Org document to a backend document format > like LaTeX, ODT, or HTML > - searching for and manipulating keys in a reference database from > within Org, and otherwise fostering good communication between > such a database and citations in Org documents > > 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 `@key1', 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. > > 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 > > > [-- Attachment #2: Type: text/html, Size: 7917 bytes --] ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-01-31 18:26 Citations, continued Richard Lawrence ` (3 preceding siblings ...) 2015-02-02 15:09 ` Matt Price @ 2015-02-02 18:02 ` Richard Lawrence 2015-02-02 19:55 ` Rasmus 2015-02-03 3:58 ` Erik Hetzner 4 siblings, 2 replies; 104+ messages in thread From: Richard Lawrence @ 2015-02-02 18:02 UTC (permalink / raw) To: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 13112 bytes --] Hi all, Here is the citation syntax proposal I have mentioned in a couple of posts now. I have attached it as an Org document for better readability, and also reproduced the text below. Let me know what you think! Best, Richard #+TITLE: A Proposal for Org citation syntax #+AUTHOR: Richard Lawrence * Introduction In brief, the proposal is: 1. Use the Pandoc syntax for basic, inline citations. 2. Extend the Pandoc syntax modestly to accommodate backend-agnostic formatting of inline citations. 3. Also allow non-inline citation definitions, with a syntax comparable to non-inline footnotes, to accommodate backend-specific formatting. Basing this proposal on the Pandoc syntax is a `merely practical' choice. It might not be the most Org-like, and it might produce too much conceptual divergence between citations and links. But it is a syntax that is already well-tested and known to work elsewhere, and which has easily-scriptable tools for processing it (namely, Pandoc's own), which Org users could rely on in the meantime, while Org's own implementation of this syntax catches up. Beyond the features provided by the basic Pandoc syntax, I have tried to ensure that the other features are as Org-like as possible, are already in use in Org documents, and (I hope) could be implemented with minimal work. * Citation syntax (I repeat the list of requirements I posted earlier here, for easy reference; so far, I don't think anyone has suggested we need any others.) A citation is a textual reference to one or more individual works, together with other information about those works, grouped together in a single place. Within a citation, each reference to an individual work needs to be capable of containing: 1. a database key that references the cited work 2. prefix / pre-text 3. suffix / post-text 4. references to page/chapter/section/whatever numbers and ranges. This is likely part of the prefix or suffix, but might be worth parsing separately for localization or link-following behavior. 5. a way of indicating backend-agnostic formatting properties. Examples of some properties users might want to specify are: - displaying only some fields (or suppressing some fields) from a reference record (e.g., journal, date, author) - indicating that the referenced works should *only* appear in the bibliography of the exported document (equivalent of LaTeX \nocite) Citations as a whole also need: 6. [@6] a way of indicating formatting properties for specific export backends. Examples of some properties that users might want to specify are: - a citation command to use for each individual reference (LaTeX; others?) - a multi-cite command to apply to all references together (LaTeX) - CSS or other styling class (HTML and derived backends; also ODT?) - properties describing how to treat emphasis and other formatting that cannot appear in plain text (ASCII and other plain text backends) ** Starting point I assume, to start, the basic Pandoc [ ... @key1 ...; ... @key2 ...] syntax for inline citations, documented [[http://pandoc.org/README.html#citations][here]]. This defines a syntax for inline citations that allows grouping multiple individual references together between brackets, with semicolons as separators. Previous discussions have suggested beginning citation definitions with a tag, like [cite: ...] or [citation: ...], by analogy with footnotes and links. As far as I can see, the tag doesn't really provide any advantages for inline citations, and is just unnecessary markup. This is because the syntax of citations is (or should be) more constrained than footnotes or links; a citation is already recognizable, and parseable as such, by the required presence of a reference key. The tag would also immediately break compatibility with the basic Pandoc syntax if it were required for inline citation definitions, a result which I am trying to avoid in this proposal. A syntax for /non-inline/ citation definitions, however, comparable to the syntax for footnotes, would make good use of such a tag. This is what I propose below. ** 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 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. (More compatible but uglier alternatives for the field selector include `!', `{', `}', and `^'. If an alternative is desired, I suggest `@Doe99{journal,year}'.) 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. I would think the default behavior during export should be something like: get the reference record from the database, then pass it and a list of the requested fields to a user-customizable function which is expected to return a string to insert in the output. (The default function could, say, intersperse the requested field data with whitespace and add parentheses. More sophisticated functions could rely on external tools to format the citation using the Citation Style Language.) Of course, this assumes that the exporter has a way of querying the reference database, which would be fine for bibtex and org-bibtex databases, but may not be a good assumption in general. Specific backends could also do something different with field selectors when it makes sense to do so. For example, the LaTeX backend could choose \citeyear as the command to place in the exported document when just `:year' is requested in the citation. *** 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 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. ** Non-inline citation definitions and backend-specific formatting The syntax proposed above assumes citations are defined inline. A complementary alternative would be to treat citations like (non-inline) footnotes, with an inline reference and a definition elsewhere in the document. This could be convenient for citations that have lots of pre- or post-text. In that case, a citation could look like: #+BEGIN_QUOTE Doe provides an interesting analysis. [cite:1] ... * Citations [cite:1] See @Doe99, pp. 34--45; also @Doe2000:year, ch. 1. #+END_QUOTE 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. The definition begins by repeating the pointer, and has the same syntax as proposed above, minus the enclosing square brackets. This approach could peacefully coexist with the above proposal for inline citations, in the same way that inline and non-inline footnote definitions now peacefully coexist. *** 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 This automatically makes the syntax readily extensible as new needs come up and target formats evolve. (Originally, I had thought about how to extend the inline citation definition syntax above to include backend-specific formatting information. But everything I came up with seemed pretty ugly, and not worth the extra syntax it would require. When I realized that non-inline definitions could leverage the existing syntax for backend-specific properties, I tossed that part of the proposal, though I'm happy to share it if anyone wants to see it.) Thus, I propose that, for authors who /need/ backend-specific formatting, this should be the way to do it. The above inline citation syntax should remain limited to uses where no backend-specific behavior is required. Note however that there is a tension here with the proposal above for backend-agnostic field selectors. I am not sure what should happen if, say, the user selects individual fields in the citation but also requests an incompatible citation command for a particular backend. *** 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 a special case, #+BEGIN_QUOTE * Citations [nocite:*] #+END_QUOTE could introduce bibliography entries for everything in the reference database. * 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 8. a reference to a citation style or style file 9. a reference to a locale file 10. an indication of where the bibliography should be found in the exported document (equivalent to \printbibliography, etc. in LaTeX) ** #+BIBLIOGRAPHY: reference database, style, locale The #+BIBLIOGRAPHY keyword already exists, in ox-bibtex.el (in contrib), though its current syntax does not quite meet all the above needs. I suggest changing the syntax to support in-file databases and a locale file. 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. 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 #+BIBLIOGRAPHY: db:/path/to/some/file.bib style:plain locale:en_GB #+BIBLIOGRAPHY: db:"*Reference DB" #+END_QUOTE 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. By specifying where the reference data is (and implicitly what format it is in, e.g., via the file extension), link-following and export behavior for citations can differ depending on the format of this database. For example, if the database is a .bib file, `following' a citation key could mean finding the corresponding entry in this file. If the database is an in-document tree in org-bibtex format, following a key could mean jumping to the headline whose :CUSTOM_ID: property agrees with that key. Likewise, if the database is in a format that the exporter knows how to read, then export backends could potentially look up information from it to create bibliography entries and citations in the exported document, possibly relying on an external tool (like citeproc-*) to transform them into the requested style. This would be particularly useful for non-LaTeX backends (which is what ox-bibtex.el focuses on at the moment). ** Bibliography placement The other issue is that Org documents must say where the bibliography should appear in exported documents. A reasonable default would be placing the bibliography at the end of the document. But some documents, in particular long ones, may need more flexibility in specifying where to place the bibliography. 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. [-- Attachment #2: proposal.org --] [-- Type: text/plain, Size: 12909 bytes --] # Created 2015-02-02 Mon 09:49 #+TITLE: A Proposal for Org citation syntax #+AUTHOR: Richard Lawrence * Introduction In brief, the proposal is: 1. Use the Pandoc syntax for basic, inline citations. 2. Extend the Pandoc syntax modestly to accommodate backend-agnostic formatting of inline citations. 3. Also allow non-inline citation definitions, with a syntax comparable to non-inline footnotes, to accommodate backend-specific formatting. Basing this proposal on the Pandoc syntax is a `merely practical' choice. It might not be the most Org-like, and it might produce too much conceptual divergence between citations and links. But it is a syntax that is already well-tested and known to work elsewhere, and which has easily-scriptable tools for processing it (namely, Pandoc's own), which Org users could rely on in the meantime, while Org's own implementation of this syntax catches up. Beyond the features provided by the basic Pandoc syntax, I have tried to ensure that the other features are as Org-like as possible, are already in use in Org documents, and (I hope) could be implemented with minimal work. * Citation syntax (I repeat the list of requirements I posted earlier here, for easy reference; so far, I don't think anyone has suggested we need any others.) A citation is a textual reference to one or more individual works, together with other information about those works, grouped together in a single place. Within a citation, each reference to an individual work needs to be capable of containing: 1. a database key that references the cited work 2. prefix / pre-text 3. suffix / post-text 4. references to page/chapter/section/whatever numbers and ranges. This is likely part of the prefix or suffix, but might be worth parsing separately for localization or link-following behavior. 5. a way of indicating backend-agnostic formatting properties. Examples of some properties users might want to specify are: - displaying only some fields (or suppressing some fields) from a reference record (e.g., journal, date, author) - indicating that the referenced works should *only* appear in the bibliography of the exported document (equivalent of LaTeX \nocite) Citations as a whole also need: 6. [@6] a way of indicating formatting properties for specific export backends. Examples of some properties that users might want to specify are: - a citation command to use for each individual reference (LaTeX; others?) - a multi-cite command to apply to all references together (LaTeX) - CSS or other styling class (HTML and derived backends; also ODT?) - properties describing how to treat emphasis and other formatting that cannot appear in plain text (ASCII and other plain text backends) ** Starting point I assume, to start, the basic Pandoc [ ... @key1 ...; ... @key2 ...] syntax for inline citations, documented [[http://pandoc.org/README.html#citations][here]]. This defines a syntax for inline citations that allows grouping multiple individual references together between brackets, with semicolons as separators. Previous discussions have suggested beginning citation definitions with a tag, like [cite: ...] or [citation: ...], by analogy with footnotes and links. As far as I can see, the tag doesn't really provide any advantages for inline citations, and is just unnecessary markup. This is because the syntax of citations is (or should be) more constrained than footnotes or links; a citation is already recognizable, and parseable as such, by the required presence of a reference key. The tag would also immediately break compatibility with the basic Pandoc syntax if it were required for inline citation definitions, a result which I am trying to avoid in this proposal. A syntax for /non-inline/ citation definitions, however, comparable to the syntax for footnotes, would make good use of such a tag. This is what I propose below. ** 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 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. (More compatible but uglier alternatives for the field selector include `!', `{', `}', and `^'. If an alternative is desired, I suggest `@Doe99{journal,year}'.) 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. I would think the default behavior during export should be something like: get the reference record from the database, then pass it and a list of the requested fields to a user-customizable function which is expected to return a string to insert in the output. (The default function could, say, intersperse the requested field data with whitespace and add parentheses. More sophisticated functions could rely on external tools to format the citation using the Citation Style Language.) Of course, this assumes that the exporter has a way of querying the reference database, which would be fine for bibtex and org-bibtex databases, but may not be a good assumption in general. Specific backends could also do something different with field selectors when it makes sense to do so. For example, the LaTeX backend could choose \citeyear as the command to place in the exported document when just `:year' is requested in the citation. *** 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 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. ** Non-inline citation definitions and backend-specific formatting The syntax proposed above assumes citations are defined inline. A complementary alternative would be to treat citations like (non-inline) footnotes, with an inline reference and a definition elsewhere in the document. This could be convenient for citations that have lots of pre- or post-text. In that case, a citation could look like: #+BEGIN_QUOTE Doe provides an interesting analysis. [cite:1] ... * Citations [cite:1] See @Doe99, pp. 34--45; also @Doe2000:year, ch. 1. #+END_QUOTE 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. The definition begins by repeating the pointer, and has the same syntax as proposed above, minus the enclosing square brackets. This approach could peacefully coexist with the above proposal for inline citations, in the same way that inline and non-inline footnote definitions now peacefully coexist. *** 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 This automatically makes the syntax readily extensible as new needs come up and target formats evolve. (Originally, I had thought about how to extend the inline citation definition syntax above to include backend-specific formatting information. But everything I came up with seemed pretty ugly, and not worth the extra syntax it would require. When I realized that non-inline definitions could leverage the existing syntax for backend-specific properties, I tossed that part of the proposal, though I'm happy to share it if anyone wants to see it.) Thus, I propose that, for authors who /need/ backend-specific formatting, this should be the way to do it. The above inline citation syntax should remain limited to uses where no backend-specific behavior is required. Note however that there is a tension here with the proposal above for backend-agnostic field selectors. I am not sure what should happen if, say, the user selects individual fields in the citation but also requests an incompatible citation command for a particular backend. *** 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 a special case, #+BEGIN_QUOTE * Citations [nocite:*] #+END_QUOTE could introduce bibliography entries for everything in the reference database. * 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 8. a reference to a citation style or style file 9. a reference to a locale file 10. an indication of where the bibliography should be found in the exported document (equivalent to \printbibliography, etc. in LaTeX) ** #+BIBLIOGRAPHY: reference database, style, locale The #+BIBLIOGRAPHY keyword already exists, in ox-bibtex.el (in contrib), though its current syntax does not quite meet all the above needs. I suggest changing the syntax to support in-file databases and a locale file. 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. 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 #+BIBLIOGRAPHY: db:/path/to/some/file.bib style:plain locale:en_GB #+BIBLIOGRAPHY: db:"*Reference DB" #+END_QUOTE 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. By specifying where the reference data is (and implicitly what format it is in, e.g., via the file extension), link-following and export behavior for citations can differ depending on the format of this database. For example, if the database is a .bib file, `following' a citation key could mean finding the corresponding entry in this file. If the database is an in-document tree in org-bibtex format, following a key could mean jumping to the headline whose :CUSTOM_ID: property agrees with that key. Likewise, if the database is in a format that the exporter knows how to read, then export backends could potentially look up information from it to create bibliography entries and citations in the exported document, possibly relying on an external tool (like citeproc-*) to transform them into the requested style. This would be particularly useful for non-LaTeX backends (which is what ox-bibtex.el focuses on at the moment). ** Bibliography placement The other issue is that Org documents must say where the bibliography should appear in exported documents. A reasonable default would be placing the bibliography at the end of the document. But some documents, in particular long ones, may need more flexibility in specifying where to place the bibliography. 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. ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-02 18:02 ` Richard Lawrence @ 2015-02-02 19:55 ` Rasmus 2015-02-03 1:56 ` Richard Lawrence 2015-02-03 3:58 ` Erik Hetzner 1 sibling, 1 reply; 104+ messages in thread From: Rasmus @ 2015-02-02 19:55 UTC (permalink / raw) To: emacs-orgmode 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 ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-02 19:55 ` Rasmus @ 2015-02-03 1:56 ` Richard Lawrence 2015-02-03 2:08 ` Vikas Rawal 2015-02-03 10:35 ` Rasmus 0 siblings, 2 replies; 104+ messages in thread From: Richard Lawrence @ 2015-02-03 1:56 UTC (permalink / raw) To: emacs-orgmode Hi Rasmus and all, Thanks for your comments! Rasmus <rasmus@gmx.us> writes: >> ** 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. That sounds fine to me. I think you may be using `inline' differently than me, though: do you mean `author's name appears in the text (not in parentheses)'? (I was using it to talk about where the citation definition appears in the document, not where the author's name appears relative to parentheses.) > I don't like "@Doe99:journal:year". It's too unlike existing syntax. I agree it's a little clunky, but I think most of the time there would just be one selector. I was thinking of this on analogy with heading properties and tags...is there a better existing syntax to refer to a property value? > 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. I don't like this, because it seems like a lot more work for me as a user to achieve something that should be simple, and it trades specifying /what/ data I want for describing it more indirectly. Suppose I'm writing a document, and I know I just want to reference the journal and year of a particular publication, in that order. Being a studious keeper of my org-bibtex database, I already know that these fields are called "journal" and "year". But if, in addition to reference database field names, I have to remember names for /types/ of /combinations/ of field names, that's too much. I'll end up taking endless trips to the manual to figure out which type I need in this case. Do I need :type journal-before-year? :type journal-and-year? etc. This feels a bit too much like having to remember (or look up) all the different LaTeX citation commands. I expect that many of the common cases would have the same name, but then I still have to remember which of my uses are `common'. And [@Doe99:year] is less verbose than [@Doe99 :type year]. What about just separating the field names off, as keys? Like: [See Doe's review @Doe99 :journal :year] >> 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? I guess I would suggest the same thing as happens in LaTeX: you get a nice, bold "??" in the output where the missing data should be. >> *** 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]. Doesn't [-@Smith79] mean something different, namely, "cite @Smith79 without the author name"? It produces output like: "(1979)". The idea is that the :nocite selector produces no output, like LaTeX's \nocite. I don't know how important it is to have this, though. >> *** 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. Right, that's the point here...(were you disagreeing?) > For inline maybe something like this: > [@Key :type_html my-citation :type_latex citet] Actually, this is a lot like the syntax I was thinking about for the inline case, but in the end I thought it was too complicated and new to be worth it, when the #+ATTR_BACKEND syntax will already work for the out-of-line case. I'm not opposed to something like this in principle, but I really think we should try to keep the inline case very simple and obvious to use, even if that means restricting its expressiveness a bit. >> *** 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. That's fine with me. >> * 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. I can't think of any reason why that wouldn't work. >> 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. OK. I'd even be happy with #+BIBLIOGRAPHY: #+BIBLIGRAPHY_STYLE: #+PRINT_BIBLIOGRAPHY: where the first could be specified as many times as desired, to indicate external reference databases. >> 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) Ah, OK, I didn't know about #+LANGUAGE. Is there any reason why the locale of the bibliography might be different than the locale of the document? (I'm monolingual, I'm afraid, so I doubt I could think of one if there were...) Best, Richard ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 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-03 10:35 ` Rasmus 1 sibling, 2 replies; 104+ messages in thread From: Vikas Rawal @ 2015-02-03 2:08 UTC (permalink / raw) To: Richard Lawrence; +Cc: org-mode mailing list Org-ref is very functional and has so far been able to deal with much of my needs. So, I just hope we are not trying to fix something that is not broken. The real need in the context of citations is to somehow extend the bibtex/biblatex integration to other export formats (odt/html, most importantly). Will all the new stuff that is being proposed take us in that direction? Vikas > On 03-Feb-2015, at 7:26 am, Richard Lawrence <richard.lawrence@berkeley.edu> wrote: > > Hi Rasmus and all, > > Thanks for your comments! > > Rasmus <rasmus@gmx.us> writes: > >>> ** 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 ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-03 2:08 ` Vikas Rawal @ 2015-02-03 10:55 ` Rasmus 2015-02-04 10:35 ` Julian M. Burgos 1 sibling, 0 replies; 104+ messages in thread From: Rasmus @ 2015-02-03 10:55 UTC (permalink / raw) To: emacs-orgmode Vikas Rawal <vikaslists@agrarianresearch.org> writes: > Org-ref is very functional and has so far been able to deal with much > of my needs. So, I just hope we are not trying to fix something that > is not broken. IMO for the same reason it is attractive to limit *bold* to imply bold. [At one point it was possible to alter the (export) interpretation of emphases]. Home-brewed solution are not stable compared to syntax. Getting ad-hoc citations in Org is very and there might be as many implementations as there are users. E.g. org-ruby would not (I hope) support [MY-CITE:MY-DOI]... > The real need in the context of citations is to somehow extend the > bibtex/biblatex integration to other export formats (odt/html, most > importantly). Will all the new stuff that is being proposed take us in > that direction? That is /a/ problem but not /the/ problem. E.g. some people prefer Zotero. Some might prefer DOI. If you can live with \cite-only there's already ox-bibtex.el that will support bibtex citations in html. —Rasmus -- May contains speling mistake ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 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 1 sibling, 1 reply; 104+ messages in thread From: Julian M. Burgos @ 2015-02-04 10:35 UTC (permalink / raw) To: org-mode mailing list Thanks everyone for thinking about citations. I wish I knew enough lisp to make a contribution to this work... for now I can only sit on the side and clap. I am also a big fan of org-ref. Although my needs are not complex (basically citing from a BibLatex file and exporting to LaTex), I found that having "actionable" citations is tremendously useful. In particular, clicking on the citation allows to open the pdf file with the reference, the .bib file, or an org mode file with notes. I hope this feature is kept in whatever new org-mode reference system you guys develop. Keep up the good work! All the best, Julian Vikas Rawal writes: > Org-ref is very functional and has so far been able to deal with much of my needs. So, I just hope we are not trying to fix something that is not broken. > > The real need in the context of citations is to somehow extend the bibtex/biblatex integration to other export formats (odt/html, most importantly). Will all the new stuff that is being proposed take us in that direction? > > Vikas > > > >> On 03-Feb-2015, at 7:26 am, Richard Lawrence <richard.lawrence@berkeley.edu> wrote: >> >> Hi Rasmus and all, >> >> Thanks for your comments! >> >> Rasmus <rasmus@gmx.us> writes: >> >>>> ** 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 -- Julian Mariano Burgos, PhD Hafrannsóknastofnun/Marine Research Institute Skúlagata 4, 121 Reykjavík, Iceland Sími/Telephone : +354-5752037 Bréfsími/Telefax: +354-5752001 Netfang/Email: julian@hafro.is ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-04 10:35 ` Julian M. Burgos @ 2015-02-04 16:34 ` John Kitchin 0 siblings, 0 replies; 104+ messages in thread From: John Kitchin @ 2015-02-04 16:34 UTC (permalink / raw) To: Julian M. Burgos; +Cc: org-mode mailing list None of those features need to change, don't worry! Julian M. Burgos writes: > Thanks everyone for thinking about citations. I wish I knew enough lisp > to make a contribution to this work... for now I can only sit on the > side and clap. > > I am also a big fan of org-ref. Although my needs are not complex > (basically citing from a BibLatex file and exporting to LaTex), I found > that having "actionable" citations is tremendously useful. In > particular, clicking on the citation allows to open the pdf file with > the reference, the .bib file, or an org mode file with notes. I hope > this feature is kept in whatever new org-mode reference system you guys > develop. > > Keep up the good work! > All the best, > > Julian > > Vikas Rawal writes: > >> Org-ref is very functional and has so far been able to deal with much of my needs. So, I just hope we are not trying to fix something that is not broken. >> >> The real need in the context of citations is to somehow extend the bibtex/biblatex integration to other export formats (odt/html, most importantly). Will all the new stuff that is being proposed take us in that direction? >> >> Vikas >> >> >> >>> On 03-Feb-2015, at 7:26 am, Richard Lawrence <richard.lawrence@berkeley.edu> wrote: >>> >>> Hi Rasmus and all, >>> >>> Thanks for your comments! >>> >>> Rasmus <rasmus@gmx.us> writes: >>> >>>>> ** 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 -- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-03 1:56 ` Richard Lawrence 2015-02-03 2:08 ` Vikas Rawal @ 2015-02-03 10:35 ` Rasmus 2015-02-03 12:00 ` Eric S Fraga 1 sibling, 1 reply; 104+ messages in thread From: Rasmus @ 2015-02-03 10:35 UTC (permalink / raw) To: emacs-orgmode Richard Lawrence <richard.lawrence@berkeley.edu> writes: > Hi Rasmus and all, > > Thanks for your comments! > > Rasmus <rasmus@gmx.us> writes: >>> #+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. > > That sounds fine to me. I think you may be using `inline' differently > than me, though: do you mean `author's name appears in the text (not in > parentheses)'? (I was using it to talk about where the citation > definition appears in the document, not where the author's name appears > relative to parentheses.) I applied my usecase which is \textcite and \parentcite. The point it that you have got two types of citations at hand: could be \textcite and \footcite if you care more for that. >> I don't like "@Doe99:journal:year". It's too unlike existing syntax. > > I agree it's a little clunky, but I think most of the time there would > just be one selector. I was thinking of this on analogy with heading > properties and tags...is there a better existing syntax to refer to a > property value? Perhaps it's similar to properties and tags. I have key values in mind which are either key:value or :key value as in OPTIONS lines and MY_KEYWORD lines... Perhaps it is not the correct reference. >> 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. > > I don't like this, because it seems like a lot more work for me as a > user to achieve something that should be simple, and it trades > specifying /what/ data I want for describing it more indirectly. > > Suppose I'm writing a document, and I know I just want to reference the > journal and year of a particular publication, in that order. Being a > studious keeper of my org-bibtex database, I already know that these > fields are called "journal" and "year". But if, in addition to > reference database field names, I have to remember names for /types/ of > /combinations/ of field names, that's too much. Reftex will do this for you. > I'll end up taking endless trips to the manual to figure out which type > I need in this case. Do I need :type journal-before-year? :type > journal-and-year? etc. This feels a bit too much like having to > remember (or look up) all the different LaTeX citation commands. Might be true. I don't expect that problem much. > What about just separating the field names off, as keys? Like: > > [See Doe's review @Doe99 :journal :year] That looks much better ("Org-ish"), though it implies [See Doe's review @Doe99 :journal nil :year nil] Which is kind of the opposite of the desired... Or perhaps I'm just misreading it. >>> 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? > > I guess I would suggest the same thing as happens in LaTeX: you get a > nice, bold "??" in the output where the missing data should be. Or better, throw an error. >> I think R-markdown uses something like [-@Smith79]. Again, I don't like >> the [@key:nocite]. > > Doesn't [-@Smith79] mean something different, namely, "cite @Smith79 > without the author name"? It produces output like: "(1979)". Thanks for the clarification. >>> #+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. > > Right, that's the point here...(were you disagreeing?) No. >> For inline maybe something like this: >> [@Key :type_html my-citation :type_latex citet] > > Actually, this is a lot like the syntax I was thinking about for the > inline case, but in the end I thought it was too complicated and new to > be worth it, when the #+ATTR_BACKEND syntax will already work for the > out-of-line case. I'm not opposed to something like this in principle, > but I really think we should try to keep the inline case very simple and > obvious to use, even if that means restricting its expressiveness a bit. The thing is it makes it very readable and obvious. You can fix display issues separately if you want. >> From experience, the biblatex model of separating the loading of files, >> styles and printing into different commands is a great advantage. > > OK. I'd even be happy with > > #+BIBLIOGRAPHY: > #+BIBLIGRAPHY_STYLE: > #+PRINT_BIBLIOGRAPHY: > > where the first could be specified as many times as desired, to indicate > external reference databases. Yeah, I had those in an earlier draft. My only issue is that #+PRINT_BIBLIOGRAPHY: is awkward if nothing comes after the ':'. >>> 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) > > Ah, OK, I didn't know about #+LANGUAGE. Is there any reason why the > locale of the bibliography might be different than the locale of the > document? (I'm monolingual, I'm afraid, so I doubt I could think of one > if there were...) AFAIK, #+LANGUAGE is a single element, e.g. 'en' or 'de'. With ox-latex you can load several languages via babel and org-latex-packages-alist. Loading locals via other mechanism seems like a bug. —Rasmus -- With monopolies the cake is a lie! ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-03 10:35 ` Rasmus @ 2015-02-03 12:00 ` Eric S Fraga 2015-02-03 16:27 ` Richard Lawrence 0 siblings, 1 reply; 104+ messages in thread From: Eric S Fraga @ 2015-02-03 12:00 UTC (permalink / raw) To: Rasmus; +Cc: emacs-orgmode On Tuesday, 3 Feb 2015 at 11:35, Rasmus wrote: [...] I'm enjoying following this thread. I look forward to the community converging on some solution. For me, any solution will likely do just fine as my use of citations is quite straightforward. I seldom, if ever, have pre or post text but I do use a couple of alternative citation types (author, year; year only). I have only one suggestion to keep in mind: >>> What happens when a field is undefined? >> >> I guess I would suggest the same thing as happens in LaTeX: you get a >> nice, bold "??" in the output where the missing data should be. > > Or better, throw an error. A *warning* would be better than an error, i.e. something that does indicate a problem but that doesn't stop the export completing. LaTeX does this (as noted above). When writing long articles, I often have dangling references which I don't resolve until later. I don't want to interrupt the writing part (i.e. the creative process) by getting caught up in bookkeeping. It's sometimes hard enough to just get started... ;-) Interestingly, I have just had a paper accepted for publication which was written *entirely* in org. I used the [[cite:fraga-etal-2014]] approach for handling citations. The paper made significant use of babel to have everything in one place (data, code, results). Very pleasing and painless experience. I did have to resort to LaTeX specific commands a few times but mostly for the preamble (title, authors, etc.). I would share the org file except that it has proprietary data. thanks, eric -- : Eric S Fraga (0xFFFCF67D), Emacs 24.4.1, Org release_8.3beta-727-ga1cdc6.dirty ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-03 12:00 ` Eric S Fraga @ 2015-02-03 16:27 ` Richard Lawrence 2015-02-03 17:25 ` Eric S Fraga 0 siblings, 1 reply; 104+ messages in thread From: Richard Lawrence @ 2015-02-03 16:27 UTC (permalink / raw) To: emacs-orgmode Hi Eric and all, Eric S Fraga <e.fraga@ucl.ac.uk> writes: > On Tuesday, 3 Feb 2015 at 11:35, Rasmus wrote: > I'm enjoying following this thread. I look forward to the community > converging on some solution. Me too! > For me, any solution will likely do just fine as my use of citations is > quite straightforward. I seldom, if ever, have pre or post text but I > do use a couple of alternative citation types (author, year; year only). Just to clarify: these are only `alternative' citation types if you're not using a citation style where they are the default types, like Chicago, right? I assume you are using a numeric style, like ACM? (This raises an interesting question, actually: what does the Pandoc syntax do with author suppression for numeric citation styles? Does [-@Smith99] still output the year, or does it produce the same numeric reference as [@Smith99]?) > I have only one suggestion to keep in mind: > >>>> What happens when a field is undefined? >>> >>> I guess I would suggest the same thing as happens in LaTeX: you get a >>> nice, bold "??" in the output where the missing data should be. >> >> Or better, throw an error. > > A *warning* would be better than an error, i.e. something that does > indicate a problem but that doesn't stop the export completing. LaTeX > does this (as noted above). Agreed. Something easily greppable, but not process-stopping. > Interestingly, I have just had a paper accepted for publication which > was written *entirely* in org. I used the [[cite:fraga-etal-2014]] > approach for handling citations. The paper made significant use of > babel to have everything in one place (data, code, results). Very > pleasing and painless experience. I did have to resort to LaTeX > specific commands a few times but mostly for the preamble (title, > authors, etc.). Cool! Best, Richard ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-03 16:27 ` Richard Lawrence @ 2015-02-03 17:25 ` Eric S Fraga 0 siblings, 0 replies; 104+ messages in thread From: Eric S Fraga @ 2015-02-03 17:25 UTC (permalink / raw) To: Richard Lawrence; +Cc: emacs-orgmode On Tuesday, 3 Feb 2015 at 08:27, Richard Lawrence wrote: [...] >> For me, any solution will likely do just fine as my use of citations is >> quite straightforward. I seldom, if ever, have pre or post text but I >> do use a couple of alternative citation types (author, year; year only). > > Just to clarify: these are only `alternative' citation types if you're > not using a citation style where they are the default types, like > Chicago, right? I assume you are using a numeric style, like ACM? It depends on the journal I am writing for. For those with numeric styles (Chicago), i.e. "blah blah [1]", there are no alternatives so I just use [[cite:blah]]; for journals expecting a Harvard (natbib) style (blah, 1999), I will use both citet "Blah et al. (1999)" and citep "(Blah et al, 1999)" as appropriate. I prefer numeric styles but it's not typically up to me. Harvard styles are a throwback to typewriters (and people using Word etc. without any automated reference software ;-). IMO, of course! So there needs to be some way to distinguish between styles, as already noted I think (although much of the discussion has been about how to include extra information...). -- : Eric S Fraga (0xFFFCF67D), Emacs 25.0.50.1, Org release_8.3beta-750-gb6fce5.dirty ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-02 18:02 ` Richard Lawrence 2015-02-02 19:55 ` Rasmus @ 2015-02-03 3:58 ` Erik Hetzner 2015-02-03 4:41 ` Richard Lawrence 1 sibling, 1 reply; 104+ messages in thread From: Erik Hetzner @ 2015-02-03 3:58 UTC (permalink / raw) To: Richard Lawrence; +Cc: emacs-orgmode [-- Attachment #1: Type: text/plain, Size: 3072 bytes --] On Mon, 2 Feb 2015 at 10:02:41 PST, Richard Lawrence <richard.lawrence@berkeley.edu> wrote: > > Hi all, > > Here is the citation syntax proposal I have mentioned in a couple of > posts now. I have attached it as an Org document for better > readability, and also reproduced the text below. Let me know what you > think! Hi Richard, I am really, really glad to see people discussing citations in org-mode. But I have some concerns about this proposal. Before extensions are proposed to the pandoc format, I think it is important to understand how flexible the combination of pandoc, and what citeproc provides. I believe that pandoc can cover most of what you want. I also believe it would be a mistake to start from the idea of a pandoc-style citation syntax that deviates from pandoc. Better instead to start from what pandoc does now and find out what isn’t working for org-mode users before extending pandoc, especially in ways that are not compatible with pandoc. And if extensions are proposed, it would be best to propose them on the pandoc-discuss mailing list. It would be wonderful for users if the syntax in pandoc-markdown and org-mode could stay aligned. For more info on the flexibility of pandoc+citeproc, see http://johnmacfarlane.net/pandoc/README.html#citations and http://johnmacfarlane.net/pandoc/demos.html. It is also important to distinguish what are features of the citeproc style (e.g. inline v. footnote citations) and what are determined by the author and thus should be present in the syntax (e.g. use or do not use a suffix or locator). From the example document: 1. @item1 says blah. 2. @item1 [p. 30] says blah. 3. @item1 [p. 30, with suffix] says blah. 4. @item1 [-@item2 p. 30; see also @item3] says blah. 5. A citation group [see @item1 p. 34-35; also @item3 chap. 3]. 6. Another one [see @item1 p. 34-35]. 7. Citation with a suffix and locator [@item1 pp. 33, 35-37, and nowhere else]. 8. A citation without locators [@item3]. 9. Citation with suffix only [@item1 and nowhere else]. 10. Like a citation without author: [-@item1], and now Doe with a locator [-@item2 p. 44]. How this is rendered depends on the note style. In chicago author date it will have: 1. Doe (2005) says blah. 2. Doe (2005, 30) says blah. 3. Doe (2005, 30, with suffix) says blah. 4. Doe (2005; 2006, 30; see also Doe and Roe 2007) says blah. 5. A citation group (see Doe 2005, 34–35; also Doe and Roe 2007, chap. 3). 6. Another one (see Doe 2005, 34–35). 7. Citation with a suffix and locator (Doe 2005, 33, 35–37, and nowhere else). 8. A citation without locators (Doe and Roe 2007). 9. Citation with suffix only (Doe 2005 and nowhere else). 10. Like a citation without author: (2005), and now Doe with a locator (2006, 44). with a bibliography, while in chicago fullnote bibliography everything will be in footnotes (this is easier to see in HTML: http://johnmacfarlane.net/pandoc/demo/example24b.html) or attached. best, Erik [-- Attachment #2: example24b.html --] [-- Type: text/html, Size: 4458 bytes --] [-- Attachment #3: Type: text/plain, Size: 56 bytes --] -- Sent from my free software system <http://fsf.org/>. ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-03 3:58 ` Erik Hetzner @ 2015-02-03 4:41 ` Richard Lawrence 2015-02-03 7:30 ` Erik Hetzner 0 siblings, 1 reply; 104+ messages in thread From: Richard Lawrence @ 2015-02-03 4:41 UTC (permalink / raw) To: emacs-orgmode Hi Erik and all, Erik Hetzner <egh@e6h.org> writes: > I am really, really glad to see people discussing citations in > org-mode. But I have some concerns about this proposal. > > Before extensions are proposed to the pandoc format, I think it is > important to understand how flexible the combination of pandoc, and > what citeproc provides. I believe that pandoc can cover most of what > you want. > I also believe it would be a mistake to start from the idea of a > pandoc-style citation syntax that deviates from pandoc. Better instead > to start from what pandoc does now and find out what isn’t working for > org-mode users before extending pandoc, especially in ways that are > not compatible with pandoc. Actually, I totally agree. For my own use, I would be completely happy with just using the Pandoc syntax for citations in Org, without any modifications. The only reason I proposed anything else was that it seemed like other people already know that they need more than the Pandoc syntax provides. I think the main realistic cases are those where, in LaTeX, you'd use commands like \citetitle, \citedate, or \citejournal -- citation commands that pull in just a particular field from the reference, because that is what the context around the citation requires. I don't see a way to do that in the Pandoc syntax. (But am I missing something?) Hence my proposed field-selectors extension. Personally, I need commands like these so little that I am happy to do without them. So maybe my proposal was a bit hasty. Could we hear from other people about how badly they need what such commands provide? > And if extensions are proposed, it would be best to propose them on > the pandoc-discuss mailing list. It would be wonderful for users if > the syntax in pandoc-markdown and org-mode could stay aligned. Yes, I again totally agree. If people here settle on a syntax that is close, but not quite the same as, Pandoc's, I will certainly do that. Best, Richard ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-03 4:41 ` Richard Lawrence @ 2015-02-03 7:30 ` Erik Hetzner 2015-02-03 16:11 ` Richard Lawrence 0 siblings, 1 reply; 104+ messages in thread From: Erik Hetzner @ 2015-02-03 7:30 UTC (permalink / raw) To: Richard Lawrence; +Cc: emacs-orgmode Hi Richard, On Mon, 2 Feb 2015 at 20:41:06 PST, Richard Lawrence <richard.lawrence@berkeley.edu> wrote: > > Hi Erik and all, > > Actually, I totally agree. For my own use, I would be completely happy > with just using the Pandoc syntax for citations in Org, without any > modifications. Great! > The only reason I proposed anything else was that it seemed like other > people already know that they need more than the Pandoc syntax provides. > I think the main realistic cases are those where, in LaTeX, you'd use > commands like \citetitle, \citedate, or \citejournal -- citation > commands that pull in just a particular field from the reference, > because that is what the context around the citation requires. I don't > see a way to do that in the Pandoc syntax. (But am I missing > something?) Hence my proposed field-selectors extension. If this is needed (and I still have a hard time seeing the use cases, but I am not an academic) perhaps it could mimic the -@doe (suppress author) syntax already used in pandoc (e.g. +title@doe). But citeproc-js/hs only support suppress author or author only, so these would not work in a pandoc export, nor any other that might depend on citeproc-js. > Personally, I need commands like these so little that I am happy to do > without them. So maybe my proposal was a bit hasty. Could we hear from > other people about how badly they need what such commands provide? > > > And if extensions are proposed, it would be best to propose them on > > the pandoc-discuss mailing list. It would be wonderful for users if > > the syntax in pandoc-markdown and org-mode could stay aligned. > > Yes, I again totally agree. If people here settle on a syntax that is > close, but not quite the same as, Pandoc's, I will certainly do that. Again, this is great. I really do appreciate your getting this proposal out there. I hope that I can finish porting my pandoc parser to elisp within a week or so, so we can have an implementation to start with. best, Erik -- Sent from my free software system <http://fsf.org/>. ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-03 7:30 ` Erik Hetzner @ 2015-02-03 16:11 ` Richard Lawrence 2015-02-04 6:30 ` Erik Hetzner 0 siblings, 1 reply; 104+ messages in thread From: Richard Lawrence @ 2015-02-03 16:11 UTC (permalink / raw) To: emacs-orgmode Hi Erik and all, Erik Hetzner <egh@e6h.org> writes: > On Mon, 2 Feb 2015 at 20:41:06 PST, > Richard Lawrence <richard.lawrence@berkeley.edu> wrote: >> The only reason I proposed anything else was that it seemed like other >> people already know that they need more than the Pandoc syntax provides. >> I think the main realistic cases are those where, in LaTeX, you'd use >> commands like \citetitle, \citedate, or \citejournal -- citation >> commands that pull in just a particular field from the reference, >> because that is what the context around the citation requires. I don't >> see a way to do that in the Pandoc syntax. (But am I missing >> something?) Hence my proposed field-selectors extension. > > If this is needed (and I still have a hard time seeing the use cases, > but I am not an academic) perhaps it could mimic the -@doe (suppress > author) syntax already used in pandoc (e.g. +title@doe). But > citeproc-js/hs only support suppress author or author only, so these > would not work in a pandoc export, nor any other that might depend on > citeproc-js. Yes. I'll have to take a look at the Pandoc citeproc code and see how easy it would be to add support for something like this. If there are Org people that need citation types that select specific fields, I imagine there are Pandoc people who do as well. The ideal would be if citeproc would take care of proper formatting of all such citation types, given just an ordered list of the fields that should appear. I don't know if CSL supports this, though; do you? The +title@doe syntax would work, but I don't personally think that's any easier to read (or parse) than @doe:title, or @doe+title (which actually is another option I had thought of, given the +/- syntax for tag matching in Org). > Again, this is great. I really do appreciate your getting this > proposal out there. I hope that I can finish porting my pandoc parser > to elisp within a week or so, so we can have an implementation to > start with. Thanks for taking the first step on this! I had a brief look at your parser code when you posted it the other day. I don't know if you are familiar with Org's parser, in org-element.el. The important thing will be to have a parser for citations return a data structure in the format used by org-element. In the language of org-element, I think a citation is an object (as opposed to an element). I am somewhat (but not super-) familiar with org-element and Elisp, so if you want some help with this, let me know. Best, Richard ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-03 16:11 ` Richard Lawrence @ 2015-02-04 6:30 ` Erik Hetzner 2015-02-04 12:06 ` Nicolas Goaziou 2015-02-04 15:59 ` Richard Lawrence 0 siblings, 2 replies; 104+ messages in thread From: Erik Hetzner @ 2015-02-04 6:30 UTC (permalink / raw) To: Richard Lawrence; +Cc: emacs-orgmode Hi Richard, On Tue, 3 Feb 2015 at 08:11:19 PST, Richard Lawrence <richard.lawrence@berkeley.edu> wrote: > […] > Yes. I'll have to take a look at the Pandoc citeproc code and see how > easy it would be to add support for something like this. If there are > Org people that need citation types that select specific fields, I > imagine there are Pandoc people who do as well. The ideal would be if > citeproc would take care of proper formatting of all such citation > types, given just an ordered list of the fields that should appear. I > don't know if CSL supports this, though; do you? I’m not entirely sure what you mean. The authors of citeproc have come up with a huge number of styles which seem to satisfy people’s needs. What appears in the in-text citation is configurable, see: http://citationstyles.org/downloads/specification-csl101-20120903.html#citation > The +title@doe syntax would work, but I don't personally think that's > any easier to read (or parse) than @doe:title, or @doe+title (which > actually is another option I had thought of, given the +/- syntax for > tag matching in Org). The only advantage of it is that it doesn’t break existing cite keys, which can contain :, and it is closer to existing syntax. But for the time being it’s something I wouldn’t worry about. > Thanks for taking the first step on this! I had a brief look at your > parser code when you posted it the other day. > > I don't know if you are familiar with Org's parser, in org-element.el. > The important thing will be to have a parser for citations return a data > structure in the format used by org-element. In the language of > org-element, I think a citation is an object (as opposed to an element). > I am somewhat (but not super-) familiar with org-element and Elisp, so > if you want some help with this, let me know. I concentrated on getting the parser to recognize valid citations first. I have now finished this part (excepting any bugs, of course :) and will need to add code to generate a proper parse tree. Then it can be integrated into org-element.el. best, Erik -- Sent from my free software system <http://fsf.org/>. ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-04 6:30 ` Erik Hetzner @ 2015-02-04 12:06 ` Nicolas Goaziou 2015-02-04 16:45 ` Richard Lawrence 2015-02-04 17:44 ` Erik Hetzner 2015-02-04 15:59 ` Richard Lawrence 1 sibling, 2 replies; 104+ messages in thread From: Nicolas Goaziou @ 2015-02-04 12:06 UTC (permalink / raw) To: Erik Hetzner; +Cc: Richard Lawrence, emacs-orgmode Hello, Erik Hetzner <egh@e6h.org> writes: > I concentrated on getting the parser to recognize valid citations > first. I have now finished this part (excepting any bugs, of course :) > and will need to add code to generate a proper parse tree. Then it can > be integrated into org-element.el. The point of "org-element.el" is to generate a parse tree. If you generate it yourself, you do not need the library. Therefore, I'm not sure to understand the "integration" part. Also, AFAIU, the syntax for valid citations is not defined explicitly so far. For example, I don't think it was discussed if any subset of Org objects (e.g., macros or bold text) is allowed in a citation. Is there any document we could merge into Org syntax document? Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-04 12:06 ` Nicolas Goaziou @ 2015-02-04 16:45 ` Richard Lawrence 2015-02-06 10:27 ` Nicolas Goaziou 2015-02-06 23:16 ` Rasmus 2015-02-04 17:44 ` Erik Hetzner 1 sibling, 2 replies; 104+ messages in thread From: Richard Lawrence @ 2015-02-04 16:45 UTC (permalink / raw) To: emacs-orgmode Hi Nicolas, Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > Also, AFAIU, the syntax for valid citations is not defined explicitly so > far. For example, I don't think it was discussed if any subset of Org > objects (e.g., macros or bold text) is allowed in a citation. This is a good question that, as you say, deserves more discussion. I am not sure, but I am *thinking* that inline citations are objects (not elements) that can contain some other objects. Specifically I think we need the following categories, all of which would be objects: - key - prefix / pre-text - suffix / post-text - locator - individual citation - bracketed citation - unbracketed citation These should have a grammar like the following, based on my (reverse-engineered) understanding of the Pandoc syntax for citations: - A bracketed citation is a list of one or more individual citations, separated by ';' if there are two or more, and surrounded by '[' ']' - An individual citation is formatted like: PREFIX KEY LOCATOR SUFFIX The key is obligatory, and the prefix, locator and suffix are optional. - A key optionally begins with '-', and obligatorily contains '@' followed by a string of charcters which begins with a letter or '_', and may contain alphanumeric characters and the following internal punctuation characters: :.#$%&-+?<>~/ - A prefix or suffix is a text object (that may contain markup like emphasis or macros) - An unbracketed citation consists of a key, optionally followed by a locator which is enclosed in '[' ']' I am not sure about the syntax of locators. In particular, I do not know if they should allow internal markup, I do not know if they have an internal syntax, and I do not know if a comma is required to separate them from a key in a bracketed citation. Best, Richard ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-04 16:45 ` Richard Lawrence @ 2015-02-06 10:27 ` Nicolas Goaziou 2015-02-06 22:41 ` Richard Lawrence 2015-02-06 23:37 ` Rasmus 2015-02-06 23:16 ` Rasmus 1 sibling, 2 replies; 104+ messages in thread From: Nicolas Goaziou @ 2015-02-06 10:27 UTC (permalink / raw) To: Richard Lawrence; +Cc: emacs-orgmode Richard Lawrence <richard.lawrence@berkeley.edu> writes: Thanks for this reverse engineering. > Specifically I think we need the following categories, all of which > would be objects: > - key > - prefix / pre-text > - suffix / post-text > - locator > - individual citation > - bracketed citation > - unbracketed citation > > These should have a grammar like the following, based on my > (reverse-engineered) understanding of the Pandoc syntax for citations: > > - A bracketed citation is a list of one or more individual citations, > separated by ';' if there are two or more, and surrounded by '[' ']' > - An individual citation is formatted like: PREFIX KEY LOCATOR SUFFIX > The key is obligatory, and the prefix, locator and suffix > are optional. > - A key optionally begins with '-', and obligatorily contains '@' > followed by a string of charcters which begins with a letter or '_', > and may contain alphanumeric characters and the following internal > punctuation characters: > :.#$%&-+?<>~/ > - A prefix or suffix is a text object (that may contain markup like > emphasis or macros) > - An unbracketed citation consists of a key, optionally followed by a > locator which is enclosed in '[' ']' I don't think all should be objects. For example, prefix and suffix can be properties in a `full-citation' object (like :tag in items). IIUC, we need three objects (I'm not wedded to the names): - short-citation (aka unbracketed citation), with :cite-key and :locator properties, both being strings and :suppress-author as a boolean ; - full-citation (aka individual citation), with, in addition to the properties above, :prefix and :suffix, both being parsed string. Since full citations can only exist in a bracketed citation, there is no reason to create a third object type for the latter. It acts as a mere container only useful for lexer. > I am not sure about the syntax of locators. In particular, I do not > know if they should allow internal markup, I do not know if they have an > internal syntax, and I do not know if a comma is required to separate > them from a key in a bracketed citation. This needs to be decided indeed. Is there any reason to allow markup there? My only concern is speed. A bracketed citation can induce a lot of backtracking since it can be triggered each time a square bracket is opened, which is not too uncommon, I think. Basically, at each "[", we need to find corresponding "]", and if there is, any key between the two. That's some overhead. Also, syntax is ambiguous. For example, in [[http://orgmode.org][some @key]] it is not clear if @key should be treated as a short-citation in a link description, or included in a full citation with "[http://orgmode.org][some " as its prefix. I mean, the answer is clear for you and me, but not necessarily at lexer's level. For example, Eric's parser chose the former, which is good, but also disallows square brackets in prefix, which rules out some objects from this location (mainly links and footnotes). That's why I suggested the [cite: ...] part in the first place, which you dismissed quickly. It reduces backtracking a lot and can solve easily some confusing situations. Of course I understand the need for compatibility with existing Pandoc syntax, but I wouldn't want us to shoot ourselves in the foot. Even if we don't use "cite:" markup, I think we should carefully specify current syntax to avoid loopholes. Regards, -- Nicolas Goaziou ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-06 10:27 ` Nicolas Goaziou @ 2015-02-06 22:41 ` Richard Lawrence 2015-02-07 22:43 ` Nicolas Goaziou 2015-02-06 23:37 ` Rasmus 1 sibling, 1 reply; 104+ messages in thread From: Richard Lawrence @ 2015-02-06 22:41 UTC (permalink / raw) To: emacs-orgmode Hi Nicolas and all, Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > Richard Lawrence <richard.lawrence@berkeley.edu> writes: > > Thanks for this reverse engineering. > >> Specifically I think we need the following categories, all of which >> would be objects: >> - key >> - prefix / pre-text >> - suffix / post-text >> - locator >> - individual citation >> - bracketed citation >> - unbracketed citation >> >> These should have a grammar like the following, based on my >> (reverse-engineered) understanding of the Pandoc syntax for citations: >> >> - A bracketed citation is a list of one or more individual citations, >> separated by ';' if there are two or more, and surrounded by '[' ']' >> - An individual citation is formatted like: PREFIX KEY LOCATOR SUFFIX >> The key is obligatory, and the prefix, locator and suffix >> are optional. >> - A key optionally begins with '-', and obligatorily contains '@' >> followed by a string of charcters which begins with a letter or '_', >> and may contain alphanumeric characters and the following internal >> punctuation characters: >> :.#$%&-+?<>~/ >> - A prefix or suffix is a text object (that may contain markup like >> emphasis or macros) >> - An unbracketed citation consists of a key, optionally followed by a >> locator which is enclosed in '[' ']' > > I don't think all should be objects. For example, prefix and suffix can > be properties in a `full-citation' object (like :tag in items). Yes, sorry, this was dumb of me...for some reason, I was thinking "everything in Org syntax has to be an object or an element, and these aren't elements, so they're objects". But obviously, some of these categories are merely internal or merely represent properties of objects. > IIUC, we need three objects (I'm not wedded to the names): > > - short-citation (aka unbracketed citation), with :cite-key > and :locator properties, both being strings and :suppress-author as > a boolean ; > > - full-citation (aka individual citation), with, in addition to the > properties above, :prefix and :suffix, both being parsed string. > Since full citations can only exist in a bracketed citation, there is no > reason to create a third object type for the latter. It acts as a mere > container only useful for lexer. I think this is not quite right: in my original terminology, `individual citation' is just an intermediate category. A bracketed/full citation contains at least one, but may contain many, `individual' citations, like: [See @Doe99, p. 3; also @Doe2000, p. 989.] This is a bracketed/full citation containing two individual citations, each with their own prefix and suffix. >> I am not sure about the syntax of locators. In particular, I do not >> know if they should allow internal markup, I do not know if they have an >> internal syntax, and I do not know if a comma is required to separate >> them from a key in a bracketed citation. > > This needs to be decided indeed. Is there any reason to allow markup > there? I had a look at the Pandoc parser; see: https://github.com/jgm/pandoc/blob/master/src/Text/Pandoc/Readers/Markdown.hs (Citation stuff starts at line 1843.) My Haskell is about as good as my German (which is to say: not very), but I think I learned a few interesting things. First, from what I can tell, there is actually no separate category of `locators', despite the documentation. There's just the suffix, which is anything between the key and `;' or `]'. (The bareloc function seems to just look for a regular suffix. But I could be missing something.) Thus, maybe we can drop that. Also, it appears that you can write things like @Smith99 [p. 33; see also @Doe2014] says something interesting. That is, an in-text citation with a suffix may also contain further citations in the brackets, after the suffix for the in-text citations. > My only concern is speed. A bracketed citation can induce a lot of > backtracking since it can be triggered each time a square bracket is > opened, which is not too uncommon, I think. Basically, at each "[", we > need to find corresponding "]", and if there is, any key between the > two. That's some overhead. Good point. I hadn't thought about this at all. > Also, syntax is ambiguous. For example, in > > [[http://orgmode.org][some @key]] > > it is not clear if @key should be treated as a short-citation in a link > description, or included in a full citation with > "[http://orgmode.org][some " as its prefix. I mean, the answer is clear > for you and me, but not necessarily at lexer's level. For example, > Eric's parser chose the former, which is good, but also disallows square > brackets in prefix, which rules out some objects from this location > (mainly links and footnotes). Yes, good point. Also, inline export snippets (@@latex: ...@@) could prove problematic. I do think it's important to allow some markup in the prefix and suffix, because there are obvious uses where you might want emphasis, etc. My initial thought is that a prefix or suffix should only allow: - Entities and LaTeX fragments - Line breaks? - Macros - Text markup I'd also be happy without macros and line breaks, personally. > That's why I suggested the [cite: ...] part in the first place, which > you dismissed quickly. It reduces backtracking a lot and can solve > easily some confusing situations. > > Of course I understand the need for compatibility with existing Pandoc > syntax, but I wouldn't want us to shoot ourselves in the foot. Even if > we don't use "cite:" markup, I think we should carefully specify current > syntax to avoid loopholes. Another interesting thing I learned from the Pandoc source is that, should we want to adopt "[cite: ...]" syntax, I think it would be pretty trivial for Pandoc to support it. (Worst case, they can copy-and-paste the Markdown citation parser and then add "cite:" in a couple of places.) So if this is necessary on the Org side for performance or ambiguity reasons, I am not against it. One question, though, is how this should work with in-text citations. Should I have to write: @Smith99 [cite:p. 33] or @Smith99 [cite:p. 33; see also @Doe2014] ? Best, Richard ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 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:28 ` Rasmus 0 siblings, 2 replies; 104+ messages in thread From: Nicolas Goaziou @ 2015-02-07 22:43 UTC (permalink / raw) To: Richard Lawrence; +Cc: emacs-orgmode Richard Lawrence <richard.lawrence@berkeley.edu> writes: >> Since full citations can only exist in a bracketed citation, there is no >> reason to create a third object type for the latter. It acts as a mere >> container only useful for lexer. > > I think this is not quite right: in my original terminology, `individual > citation' is just an intermediate category. A bracketed/full citation > contains at least one, but may contain many, `individual' citations, > like: > > [See @Doe99, p. 3; also @Doe2000, p. 989.] > > This is a bracketed/full citation containing two individual citations, > each with their own prefix and suffix. You're right. I was confused about citations. > I do think it's important to allow some markup in the prefix and suffix, > because there are obvious uses where you might want emphasis, etc. > > My initial thought is that a prefix or suffix should only allow: > - Entities and LaTeX fragments > - Line breaks? > - Macros > - Text markup > > I'd also be happy without macros and line breaks, personally. Fine. What about the following set? bold code entity italic latex-fragment line-break strike-through subscript superscript underline superscript >> That's why I suggested the [cite: ...] part in the first place, which >> you dismissed quickly. It reduces backtracking a lot and can solve >> easily some confusing situations. >> >> Of course I understand the need for compatibility with existing Pandoc >> syntax, but I wouldn't want us to shoot ourselves in the foot. Even if >> we don't use "cite:" markup, I think we should carefully specify current >> syntax to avoid loopholes. > > Another interesting thing I learned from the Pandoc source is that, > should we want to adopt "[cite: ...]" syntax, I think it would be pretty > trivial for Pandoc to support it. (Worst case, they can copy-and-paste > the Markdown citation parser and then add "cite:" in a couple of > places.) So if this is necessary on the Org side for performance or > ambiguity reasons, I am not against it. > > One question, though, is how this should work with in-text citations. > Should I have to write: > > @Smith99 [cite:p. 33] > > or > > @Smith99 [cite:p. 33; see also @Doe2014] > > ? To be clear, much like Rasmus, I don't like much in-text citations syntax above. Actually, I would suggest to mimic footnotes, and handle in-text citations with the same syntax as named footnotes. Using the example from Erik Hetzner in the same thread, what about: 1. [cite:@item1] says blah. 2. [cite:@item1: p. 30] says blah. 3. [cite:@item1: p. 30, with suffix] says blah. 4. [cite:@item1: -@item2 p. 30; see also @item3] says blah. 5. A citation group [cite:: see @item1 p. 34-35; also @item3 chap. 3]. 6. Another one [cite::see @item1 p. 34-35]. 7. Citation with a suffix and locator [cite:: @item1 pp. 33, 35-37, and nowhere else]. 8. A citation without locators [cite:: @item3]. 9. Citation with suffix only [cite:: @item1 and nowhere else]. 10. Like a citation without author: [cite:: -@item1], and now Doe with a locator [cite:: -@item2 p. 44]. As a reminder, here is a possible output from the text above 1. Doe (2005) says blah. 2. Doe (2005, 30) says blah. 3. Doe (2005, 30, with suffix) says blah. 4. Doe (2005; 2006, 30; see also Doe and Roe 2007) says blah. 5. A citation group (see Doe 2005, 34–35; also Doe and Roe 2007, chap. 3). 6. Another one (see Doe 2005, 34–35). 7. Citation with a suffix and locator (Doe 2005, 33, 35–37, and nowhere else). 8. A citation without locators (Doe and Roe 2007). 9. Citation with suffix only (Doe 2005 and nowhere else). 10. Like a citation without author: (2005), and now Doe with a locator (2006, 44). Note that space after the second colon is not mandatory. More explicitly, syntax would be either [cite:IN-TEXT-KEY] or [cite:IN-TEXT-KEY?:SPACE* CITATIONS] where CITATIONS is any number of PREFIX? KEY SUFFIX? separated with semi-colons. It is slightly more verbose, but also more regular and faster to parse. Regards, ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-07 22:43 ` Nicolas Goaziou @ 2015-02-08 2:46 ` Richard Lawrence 2015-02-08 9:46 ` John Kitchin 2015-02-08 9:58 ` Nicolas Goaziou 2015-02-08 9:28 ` Rasmus 1 sibling, 2 replies; 104+ messages in thread From: Richard Lawrence @ 2015-02-08 2:46 UTC (permalink / raw) To: Richard Lawrence, emacs-orgmode@gnu.org Hi Nicolas, I just want to say thanks for continuing the conversation, by the way: I know this thread has gotten long, but I'm glad people are still paying attention, and Nicolas, your opinion counts for a lot. On Sat, Feb 7, 2015 at 2:43 PM, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote: > What about the following set? > > bold code entity italic latex-fragment line-break strike-through > subscript superscript underline superscript That would work fine for me in prefixes and suffixes. > To be clear, much like Rasmus, I don't like much in-text citations > syntax above. Actually, I would suggest to mimic footnotes, and handle > in-text citations with the same syntax as named footnotes. > > Using the example from Erik Hetzner in the same thread, what about: > > 1. [cite:@item1] says blah. > 2. [cite:@item1: p. 30] says blah. > 3. [cite:@item1: p. 30, with suffix] says blah. > 4. [cite:@item1: -@item2 p. 30; see also @item3] says blah. > 5. A citation group [cite:: see @item1 p. 34-35; also @item3 chap. 3]. > 6. Another one [cite::see @item1 p. 34-35]. > 7. Citation with a suffix and locator [cite:: @item1 pp. 33, 35-37, and nowhere else]. > 8. A citation without locators [cite:: @item3]. > 9. Citation with suffix only [cite:: @item1 and nowhere else]. > 10. Like a citation without author: [cite:: -@item1], and now Doe > with a locator [cite:: -@item2 p. 44]. > > explicitly, syntax would be either > > [cite:IN-TEXT-KEY] > > or > > [cite:IN-TEXT-KEY?:SPACE* CITATIONS] > > where CITATIONS is any number of > > PREFIX? KEY SUFFIX? > > separated with semi-colons. > > It is slightly more verbose, but also more regular and faster to parse. I guess I could live with this, but to be honest, I much prefer the Pandoc way. The Pandoc syntax has a nice congruence between the source file and the output: if a cite key is inside the brackets in the source, the reference is inside the brackets in the output, and if it's outside in the source, it's outside in the output. This convention seems natural, easy to remember, and very readable -- at least if, like me (and I would guess many others), you use author names in cite keys. By contrast, I'm used to thinking of footnote labels as having no direct correlation with the output, so it seems incongruent to use the analogous position in citation syntax to represent in-text citations. So as an author, I prefer the Pandoc way, but I understand there are other considerations. If we must have the tag for performance reasons, I would prefer using two different tags to represent the two cases; I suggest borrowing (from LaTeX's natbib package) "citet" for in-text and "citep" for bracketed citations , but I don't really care as long as they're easy to type, and it's easy to change one to the other. What do others think? Best, Richard ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-08 2:46 ` Richard Lawrence @ 2015-02-08 9:46 ` John Kitchin 2015-02-08 17:09 ` Richard Lawrence 2015-02-08 9:58 ` Nicolas Goaziou 1 sibling, 1 reply; 104+ messages in thread From: John Kitchin @ 2015-02-08 9:46 UTC (permalink / raw) To: Richard Lawrence; +Cc: emacs-orgmode@gnu.org My only concern is that it remains possible to support this relatively full set of citation options on export: (defcustom org-ref-cite-types '("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" ) "List of citation types known in org-ref" :type '(repeat :tag "List of citation types" string) :group 'org-ref) which we are currently able to do. I never type any of those in, org-ref does it automatically from a key selection tool. From a user point of view, these to me look almost identical to link syntax, which could be confusing. [cite:IN-TEXT-KEY] [cite:IN-TEXT-KEY?:SPACE* CITATIONS] I don't see the payoff in adding it. you can already have those as links, and export to pandoc syntac trivial in the first case. The payoff only comes from item 4 in the list below, with a nested citation, which I have never seen in the wild in scientific publications. Perhaps it is more common in other fields. I don't personally find the pandoc notation easier to understand, eg [@item] and [-@item] vs \cite{item} and \citeauthor{item} The congruence you mention is not relevant for superscripted references, there are no brackets or parentheses in that case. Richard Lawrence writes: > Hi Nicolas, > > I just want to say thanks for continuing the conversation, by the way: > I know this thread has gotten long, but I'm glad people are still > paying attention, and Nicolas, your opinion counts for a lot. > > On Sat, Feb 7, 2015 at 2:43 PM, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote: > >> What about the following set? >> >> bold code entity italic latex-fragment line-break strike-through >> subscript superscript underline superscript > > That would work fine for me in prefixes and suffixes. > >> To be clear, much like Rasmus, I don't like much in-text citations >> syntax above. Actually, I would suggest to mimic footnotes, and handle >> in-text citations with the same syntax as named footnotes. >> >> Using the example from Erik Hetzner in the same thread, what about: >> >> 1. [cite:@item1] says blah. >> 2. [cite:@item1: p. 30] says blah. >> 3. [cite:@item1: p. 30, with suffix] says blah. >> 4. [cite:@item1: -@item2 p. 30; see also @item3] says blah. >> 5. A citation group [cite:: see @item1 p. 34-35; also @item3 chap. 3]. >> 6. Another one [cite::see @item1 p. 34-35]. >> 7. Citation with a suffix and locator [cite:: @item1 pp. 33, 35-37, and nowhere else]. >> 8. A citation without locators [cite:: @item3]. >> 9. Citation with suffix only [cite:: @item1 and nowhere else]. >> 10. Like a citation without author: [cite:: -@item1], and now Doe >> with a locator [cite:: -@item2 p. 44]. >> >> explicitly, syntax would be either >> >> [cite:IN-TEXT-KEY] >> >> or >> >> [cite:IN-TEXT-KEY?:SPACE* CITATIONS] >> >> where CITATIONS is any number of >> >> PREFIX? KEY SUFFIX? >> >> separated with semi-colons. >> >> It is slightly more verbose, but also more regular and faster to parse. > > I guess I could live with this, but to be honest, I much prefer the Pandoc way. > > The Pandoc syntax has a nice congruence between the source file and > the output: if a cite key is inside the brackets in the source, the > reference is inside the brackets in the output, and if it's outside in > the source, it's outside in the output. This convention seems > natural, easy to remember, and very readable -- at least if, like me > (and I would guess many others), you use author names in cite keys. > > By contrast, I'm used to thinking of footnote labels as having no > direct correlation with the output, so it seems incongruent to use the > analogous position in citation syntax to represent in-text citations. > > So as an author, I prefer the Pandoc way, but I understand there are > other considerations. If we must have the tag for performance > reasons, I would prefer using two different tags to represent the two > cases; I suggest borrowing (from LaTeX's natbib package) "citet" for > in-text and "citep" for bracketed citations , but I don't really care > as long as they're easy to type, and it's easy to change one to the > other. > > What do others think? > > Best, > Richard -- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-08 9:46 ` John Kitchin @ 2015-02-08 17:09 ` Richard Lawrence 2015-02-08 22:23 ` Thomas S. Dye 0 siblings, 1 reply; 104+ messages in thread From: Richard Lawrence @ 2015-02-08 17:09 UTC (permalink / raw) To: John Kitchin; +Cc: emacs-orgmode@gnu.org Hi John and all, On Sun, Feb 8, 2015 at 1:46 AM, John Kitchin <jkitchin@andrew.cmu.edu> wrote: > My only concern is that it remains possible to support this relatively > full set of citation options on export: > ... > which we are currently able to do. I never type any of those in, org-ref > does it automatically from a key selection tool. My original proposal was that we achieve this by allowing splitting citations into an in-line pointer and out-of-line definition. Since the out-of-line definition would be a greater element, it could take #+ATTR_BACKEND properties, which could be used for this, like so: The literature is divided on this point. [cite:1] #+ATTR_LATEX: :command autocites [cite:1] For Position A see @Doe99; @Smith99; for Position B see @Foobar87. What I like about this is that it separates the citation part from the LaTeX-specific part, and it leverages existing syntax for the LaTeX-specific part. Something like this seems right to me. Would that work for you, most of the time? I am not sure we could do this under Nicolas' current proposal, but maybe we could. Also, I realize now that this out-of-line definition style doesn't mesh super well with any way of expressing the distinction between bracketed and in-text citations that has been suggested, so it still needs a bit more thought, at least if this style can be used for in-text citations. > From a user point of view, these to me look almost identical to link > syntax, which could be confusing. I'm not overly worried about this, because it doesn't seem worse than distinguishing links and footnotes. (Highlighting can help, too.) > I don't personally find the pandoc notation easier to understand, eg > [@item] and [-@item] > > vs > > \cite{item} and \citeauthor{item} Well, I think it's a *little* better than straight LaTeX syntax. As far as readability goes, it's nice that you can put the prefix and suffix in the order they will read ("see @Doe99 for more" vs. "\cite[see][for more]{Doe99}"). But the main advantage is not that it is easier to understand (it isn't, at least not if you already know LaTeX), but that it is abstracted from LaTeX syntax, or any other target format's syntax. We're looking to make citations first-class syntactic citizens in Org. (We *could* even do that just by adopting LaTeX syntax as our own...but I don't know if anyone would plump for that. :) > The congruence you mention is not relevant for superscripted references, > there are no brackets or parentheses in that case. True. Do you use superscripted references a lot? I never use them, personally. Best, Richard ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-08 17:09 ` Richard Lawrence @ 2015-02-08 22:23 ` Thomas S. Dye 2015-02-09 8:46 ` e.fraga ` (2 more replies) 0 siblings, 3 replies; 104+ messages in thread From: Thomas S. Dye @ 2015-02-08 22:23 UTC (permalink / raw) To: Richard Lawrence; +Cc: emacs-orgmode@gnu.org, John Kitchin Aloha all, I'm having a hard time relating the various syntax proposals to a common, shared goal for Org mode users. This might just be me--I often struggle to understand conversations on the Org mode list. However, I'm also convinced that lack of clearly shared goals really gets in the way of project success. So, because I'd like to see Org mode settle on a citation syntax, I'll risk exposing my limitations by describing what I think a reasonable goal might be and then offer some comments on a recent post. IIUC, Org mode citation syntax needs to capture four pieces of information for an *individual* citation: a =key= into one or more stores of bibliographic information; a =citation-command= that is understood by the =citation-style= specified for the document; a =pre-note= of arbitrary text in any language; and a =post-note= of arbitrary text in any language. At least, this is how the LaTeX world accommodates the almost unconstrained and ever-growing variability in bibliographic styles in the wild. Note that =key= and =citation-command= are limited for any one document by the keys used in the store of bibliographic information and the commands defined for the citation style. In practice, though, both =key= and =citation-command= are arbitrarily complex, because there are no universal constraints on either the content of keys used by current and future bibliographic information stores, or the commands defined by current and future citation styles. Also, there is no guarantee that the Org mode author created any of the keys and it is likely that the Org mode author did not name any of the citation commands. When I have targeted a specific citation style (typically specified by a publisher) and a particular group of objects to cite, I want Org mode to 1) treat me kindly when I am creating a citation for my document, 2) give me just enough information in the Org mode buffer so I can easily identify the four pieces of information I've entered *without having to do anything except read*, and 3) help me change from one citation command to another when I'm editing. During citation creation I want access to all the keys in the bibliographic store(s), enough information so I can unambiguously identify the object associated with each key, easy access to all the commands defined by the citation style, and no constraints at all on what I can write for the pre-note and post-note. I want this part to be as verbose as possible, but limited to the information that I really need. When I look at the citation in the Org mode buffer I want to 1) see the pre-note and post-note, preferably in the correct relationship to the citation, 2) know what citation command I selected, and 3) know which object I've cited. *I don't want to see the key*; the keys I create myself are long and ugly and those created by others are typically long, ugly, and (for me) often indecipherable. I also don't want to see the citation command, just an indicator that distinguishes among the handful or so possibilities allowed by the citation style and actually used in the document. When I'm rewriting or editing, I often need to change the citation command, usually to switch between, e.g., (Lawrence 2014) and Lawrence (2014). In my current setup this is one of the actions that has its own hot key (I have only a few hot keys because I have a hard time remembering them). Now that I've specified goals, there are a few comments interspersed below. Richard Lawrence <richard.lawrence@berkeley.edu> writes: > Hi John and all, > > On Sun, Feb 8, 2015 at 1:46 AM, John Kitchin <jkitchin@andrew.cmu.edu> wrote: >> My only concern is that it remains possible to support this relatively >> full set of citation options on export: >> ... >> which we are currently able to do. I never type any of those in, org-ref >> does it automatically from a key selection tool. I'd rather just see the citation commands associated with a particular citation style. I've been switching from natbib to biblatex over the last few years (natbib at work with my colleagues there, and biblatex for my research documents not associated with work) and I want Org mode to remember which one I'm using, if possible, so I don't have to think about it. > > My original proposal was that we achieve this by allowing splitting > citations into an in-line pointer and out-of-line definition. Since > the out-of-line definition would be a greater element, it could take > #+ATTR_BACKEND properties, which could be used for this, like so: > > The literature is divided on this point. [cite:1] > > #+ATTR_LATEX: :command autocites > [cite:1] For Position A see @Doe99; @Smith99; for Position B see @Foobar87. > This is extremely problematic for me. IIUC, I'd often need to click on [cite:1] to learn what I'd cited and then I'd need to click again to figure out which object was associated with each key. I want to be able to jump directly to the entry in the bibliographic store from the in-text citation, and I want to jump into the bibliographic store only when I want to pick out some specific information from the entry. > What I like about this is that it separates the citation part from the > LaTeX-specific part, and it leverages existing syntax for the > LaTeX-specific part. Something like this seems right to me. I don't think the citation command should be thought of as LaTeX specific, but rather as one of the four pieces of information required to create arbitrarily complex citations in the output. IIUC, it should be possible to generate the required information for any document preparation system from the information potentially supplied by =pre-note=, =post-note=, =citation-command=, and =key=. All the best, Tom -- Thomas S. Dye http://www.tsdye.com ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-08 22:23 ` Thomas S. Dye @ 2015-02-09 8:46 ` e.fraga 2015-02-09 10:50 ` Rasmus 2015-02-09 17:46 ` Richard Lawrence 2 siblings, 0 replies; 104+ messages in thread From: e.fraga @ 2015-02-09 8:46 UTC (permalink / raw) To: Thomas S. Dye; +Cc: Richard Lawrence, emacs-orgmode@gnu.org, John Kitchin Tom, thanks for this contribution. From my point of view, you have summarised the requirements very well. I agree with them completely, especially the need to expose and to hide the right information when perusing the org file. -- Eric S Fraga (GnuPG: 0xC89193D8FFFCF67D) ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 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 ` (2 more replies) 2015-02-09 17:46 ` Richard Lawrence 2 siblings, 3 replies; 104+ messages in thread From: Rasmus @ 2015-02-09 10:50 UTC (permalink / raw) To: emacs-orgmode Aloha Tom, Were obviously have similar requirements. However, there's one point where I'm entirely on the same page as you. I want to figure out if that's 'cause I haven't thought carefully enough about it, or because I have simpler requirements. tsd@tsdye.com (Thomas S. Dye) writes: > I don't think the citation command should be thought of as LaTeX > specific, but rather as one of the four pieces of information required > to create arbitrarily complex citations in the output. IIUC, it should > be possible to generate the required information for any document > preparation system from the information potentially supplied by > =pre-note=, =post-note=, =citation-command=, and =key=. The question: In any given document, do you typically need more than two types of citations, i.e. {citet, citep} OR {textcite, parentcite}? I do use other citation types, in particular a genitive version of textcite, but not very often. That was why I initially wanted something like this: simple inline: @KEY complex inline: [PRE @KEY POST :key VAL] parent: (PRE @KEY POST :key VAL) Where :type was the only key I was clever enough to think about (heavily biased by LaTeX). Then you would be able to put in the top of your document what "inline" and that "parent" means. Note, as Nicolas rightly pointed out that (·) shouldn't be used for syntax, so the above is to understand needs. In any case, if you, or Eric, or anybody else for that matter, often rely on much more than two types of citations in any given document perhaps this is better: [TYPE: PRE @KEY POST :key VAL] :key VAL may not be needed at all (but e.g. the new cool \textcites()()[][]{} commands have even more arguments). That's essentially the "generalized link" you were talking about earlier. Display in the buffer is indeed something that should be tackled, but this is an issue of overlays, like entities, and not the immediate issue. But I have it in mind as well. It's tough though, when you have other citations types than author-year. Cheers, Rasmus -- Lasciate ogni speranza, voi che leggete questo. ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-09 10:50 ` Rasmus @ 2015-02-09 11:20 ` Nicolas Goaziou 2015-02-09 11:37 ` Rasmus 2015-02-09 15:09 ` Thomas S. Dye 2015-02-10 1:50 ` John Kitchin 2 siblings, 1 reply; 104+ messages in thread From: Nicolas Goaziou @ 2015-02-09 11:20 UTC (permalink / raw) To: Rasmus; +Cc: emacs-orgmode Rasmus <rasmus@gmx.us> writes: > The question: > > In any given document, do you typically need more than two types of > citations, i.e. {citet, citep} OR {textcite, parentcite}? > > I do use other citation types, in particular a genitive version of > textcite, but not very often. That was why I initially wanted something > like this: > > simple inline: @KEY > complex inline: [PRE @KEY POST :key VAL] > parent: (PRE @KEY POST :key VAL) > > Where :type was the only key I was clever enough to think about (heavily > biased by LaTeX). Then you would be able to put in the top of your > document what "inline" and that "parent" means. Note, as Nicolas rightly > pointed out that (·) shouldn't be used for syntax, so the above is to > understand needs. In any case, if you, or Eric, or anybody else for that > matter, often rely on much more than two types of citations in any given > document perhaps this is better: > > [TYPE: PRE @KEY POST :key VAL] > > :key VAL may not be needed at all (but e.g. the new cool > \textcites()()[][]{} commands have even more arguments). That's > essentially the "generalized link" you were talking about earlier. This is an important issue indeed. It seems to me that :type is a LaTeX-only feature and, as such, should be handled in "ox-latex". In the general case, I think that Org should only support inline and parenthesized citations. If more than two different keys are needed in a single document, use of custom links or raw LaTeX would then be unavoidable. OTOH, this gives us very readable citations within the buffer in most cases. ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-09 11:20 ` Nicolas Goaziou @ 2015-02-09 11:37 ` Rasmus 2015-02-10 9:06 ` Nicolas Goaziou 0 siblings, 1 reply; 104+ messages in thread From: Rasmus @ 2015-02-09 11:37 UTC (permalink / raw) To: emacs-orgmode Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > Rasmus <rasmus@gmx.us> writes: > >> The question: >> >> In any given document, do you typically need more than two types of >> citations, i.e. {citet, citep} OR {textcite, parentcite}? >> >> I do use other citation types, in particular a genitive version of >> textcite, but not very often. That was why I initially wanted something >> like this: >> >> simple inline: @KEY >> complex inline: [PRE @KEY POST :key VAL] >> parent: (PRE @KEY POST :key VAL) >> >> Where :type was the only key I was clever enough to think about (heavily >> biased by LaTeX). Then you would be able to put in the top of your >> document what "inline" and that "parent" means. Note, as Nicolas rightly >> pointed out that (·) shouldn't be used for syntax, so the above is to >> understand needs. In any case, if you, or Eric, or anybody else for that >> matter, often rely on much more than two types of citations in any given >> document perhaps this is better: >> >> [TYPE: PRE @KEY POST :key VAL] >> >> :key VAL may not be needed at all (but e.g. the new cool >> \textcites()()[][]{} commands have even more arguments). That's >> essentially the "generalized link" you were talking about earlier. > > This is an important issue indeed. > > It seems to me that :type is a LaTeX-only feature and, as such, should > be handled in "ox-latex". In the general case, I think that Org should > only support inline and parenthesized citations. Not necessarily. I could do: (defun rasmus/gentive-citation (citation-element backend) (case backend ...) ...) (add-to-list 'org-cite-types 'rasmus/gentive-citation ) E.g. for genitive citations such as "Smith's (1984) model", which can be mostly emulated using primitives (:author and :year) if biblatex is not available. > If more than two different keys are needed in a single document, use of > custom links or raw LaTeX would then be unavoidable. OTOH, this gives us > very readable citations within the buffer in most cases. Perhaps. But then we are back at not having proper support across backends—which might be unavoidable in any case. Yet, aim high! —Rasmus -- Tack, ni svenska vakttorn. Med plutonium tvingar vi dansken på knä! ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-09 11:37 ` Rasmus @ 2015-02-10 9:06 ` Nicolas Goaziou 0 siblings, 0 replies; 104+ messages in thread From: Nicolas Goaziou @ 2015-02-10 9:06 UTC (permalink / raw) To: Rasmus; +Cc: emacs-orgmode Rasmus <rasmus@gmx.us> writes: > Not necessarily. I could do: > > (defun rasmus/gentive-citation (citation-element backend) > (case backend ...) ...) > > (add-to-list 'org-cite-types 'rasmus/gentive-citation ) > > E.g. for genitive citations such as "Smith's (1984) model", which can be > mostly emulated using primitives (:author and :year) if biblatex is not > available. As explained in another message, I'd like to avoid custom citations (portability issues). >> If more than two different keys are needed in a single document, use of >> custom links or raw LaTeX would then be unavoidable. OTOH, this gives us >> very readable citations within the buffer in most cases. > > Perhaps. But then we are back at not having proper support across > backends—which might be unavoidable in any case. Yet, aim high! Obtaining reasonable support for citations in every major back-end is already aiming high in my book. Anyway, I'm fine with having more powerful citation syntax for LaTeX, but let's keep the syntax as simple as possible. As I once was told, Org is not a programming language. Regards, ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-09 10:50 ` Rasmus 2015-02-09 11:20 ` Nicolas Goaziou @ 2015-02-09 15:09 ` Thomas S. Dye 2015-02-10 8:55 ` Nicolas Goaziou 2015-02-10 1:50 ` John Kitchin 2 siblings, 1 reply; 104+ messages in thread From: Thomas S. Dye @ 2015-02-09 15:09 UTC (permalink / raw) To: Rasmus; +Cc: emacs-orgmode Aloha Rasmus, Rasmus <rasmus@gmx.us> writes: > In any given document, do you typically need more than two types of > citations, i.e. {citet, citep} OR {textcite, parentcite}? Yes, I typically use what I call a multicite to get multiple citations with biblatex. It just inserts {key}. I precede two or more of these with a placeholder--π for parencites, † for textcites, or ƒ for footcites--and then use a filter to insert \parencites, etc. This is crude, and wouldn't work in a more general setting, but it serves for the work I do. BTW, parencites et al. were a major step forward in biblatex, IMO. Note that CSL doesn't yet support multiple citations. hth, Tom -- Thomas S. Dye http://www.tsdye.com ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-09 15:09 ` Thomas S. Dye @ 2015-02-10 8:55 ` Nicolas Goaziou 2015-02-10 9:22 ` Rasmus 2015-02-10 15:32 ` Thomas S. Dye 0 siblings, 2 replies; 104+ messages in thread From: Nicolas Goaziou @ 2015-02-10 8:55 UTC (permalink / raw) To: Thomas S. Dye; +Cc: emacs-orgmode, Rasmus tsd@tsdye.com (Thomas S. Dye) writes: > Yes, I typically use what I call a multicite to get multiple citations > with biblatex. It just inserts {key}. I precede two or more of these > with a placeholder--π for parencites, † for textcites, or ƒ for > footcites--and then use a filter to insert \parencites, etc. This is > crude, and wouldn't work in a more general setting, but it serves for > the work I do. If you write something like [cite: pre1 @k1 post1; pre2 @k2 post2] wouldn't it possible to guess you want to use multicite? IOW, does using "multicite" really implies a change in the syntax? Regards, ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-10 8:55 ` Nicolas Goaziou @ 2015-02-10 9:22 ` Rasmus 2015-02-10 9:41 ` Nicolas Goaziou 2015-02-10 15:32 ` Thomas S. Dye 1 sibling, 1 reply; 104+ messages in thread From: Rasmus @ 2015-02-10 9:22 UTC (permalink / raw) To: emacs-orgmode Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > If you write something like > > [cite: pre1 @k1 post1; pre2 @k2 post2] > > wouldn't it possible to guess you want to use multicite? IOW, does using > "multicite" really implies a change in the syntax? To fully support multicite you need keyless citations in the beginning and the end of the list, e.g. [cite: common pre; pre1 @k1 post1; pre2 @k2 post2; common post] Of course, for textcite it's easy to replicate wihtout. For parencites and footcites, less so. —Rasmus -- May contains speling mistake ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-10 9:22 ` Rasmus @ 2015-02-10 9:41 ` Nicolas Goaziou 2015-02-10 10:01 ` Rasmus 0 siblings, 1 reply; 104+ messages in thread From: Nicolas Goaziou @ 2015-02-10 9:41 UTC (permalink / raw) To: Rasmus; +Cc: emacs-orgmode Rasmus <rasmus@gmx.us> writes: > Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > >> If you write something like >> >> [cite: pre1 @k1 post1; pre2 @k2 post2] >> >> wouldn't it possible to guess you want to use multicite? IOW, does using >> "multicite" really implies a change in the syntax? > > To fully support multicite you need keyless citations in the beginning and > the end of the list, e.g. > > [cite: common pre; pre1 @k1 post1; pre2 @k2 post2; common post] > > Of course, for textcite it's easy to replicate wihtout. For parencites > and footcites, less so. I think [cite: common pre; pre1 @k1 post1; pre2 @k2 post2; common post] is regular and readable enough. So, there's no need to add special support for multicite. Regards, ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-10 9:41 ` Nicolas Goaziou @ 2015-02-10 10:01 ` Rasmus 0 siblings, 0 replies; 104+ messages in thread From: Rasmus @ 2015-02-10 10:01 UTC (permalink / raw) To: emacs-orgmode Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > I think > > [cite: common pre; pre1 @k1 post1; pre2 @k2 post2; common post] > > is regular and readable enough. So, there's no need to add special > support for multicite. Definitely. In latex you'd just use multicite whenever more than two keys within one cite-group. [cite: common pre; pre1 @k1 post1; pre2 @k2 post2; common post] → \textcites(common pre)(common post)[pre1][post1]{k1}[pre2][post2]{k2} ^^^ And: [cite: @k1; k2] → \textcites()()[][]{k1}[][]{k2} or \textcites{k1}{k2} —Rasmus -- Lasciate ogni speranza o voi che entrate: siete nella mani di'machellaio ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-10 8:55 ` Nicolas Goaziou 2015-02-10 9:22 ` Rasmus @ 2015-02-10 15:32 ` Thomas S. Dye 1 sibling, 0 replies; 104+ messages in thread From: Thomas S. Dye @ 2015-02-10 15:32 UTC (permalink / raw) To: Rasmus; +Cc: emacs-orgmode Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > tsd@tsdye.com (Thomas S. Dye) writes: > >> Yes, I typically use what I call a multicite to get multiple citations >> with biblatex. It just inserts {key}. I precede two or more of these >> with a placeholder--π for parencites, † for textcites, or ƒ for >> footcites--and then use a filter to insert \parencites, etc. This is >> crude, and wouldn't work in a more general setting, but it serves for >> the work I do. > > If you write something like > > [cite: pre1 @k1 post1; pre2 @k2 post2] > > wouldn't it possible to guess you want to use multicite? IOW, does using > "multicite" really implies a change in the syntax? > > > Regards, Yes, but it doesn't capture the citation command, AFAICT. Something like [cite: pre1 @k1 post1; pre2 @k2 post2 :command paren|text|foot] would do. All the best, Tom -- T.S. Dye & Colleagues, Archaeologists 735 Bishop St, Suite 315, Honolulu, HI 96813 Tel: 808-529-0866, Fax: 808-529-0884 http://www.tsdye.com ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-09 10:50 ` Rasmus 2015-02-09 11:20 ` Nicolas Goaziou 2015-02-09 15:09 ` Thomas S. Dye @ 2015-02-10 1:50 ` John Kitchin 2 siblings, 0 replies; 104+ messages in thread From: John Kitchin @ 2015-02-10 1:50 UTC (permalink / raw) To: Rasmus; +Cc: emacs-orgmode Rasmus writes: > The question: > > In any given document, do you typically need more than two types of > citations, i.e. {citet, citep} OR {textcite, parentcite}? > > I do use other citation types, in particular a genitive version of > textcite, but not very often. That was why I initially wanted something > like this: We often use cite, citenum in one document. I don't use citeauthor, but have manually written something like "Doe et al said... cite:Doe99", which could be written with a citeauthor like command I think. There are similar use cases for a citeyear command. It is not too far fetched to see these four types in a document, in addition to a citep command. > > simple inline: @KEY > complex inline: [PRE @KEY POST :key VAL] > parent: (PRE @KEY POST :key VAL) > > Where :type was the only key I was clever enough to think about (heavily > biased by LaTeX). Then you would be able to put in the top of your > document what "inline" and that "parent" means. Note, as Nicolas rightly > pointed out that (·) shouldn't be used for syntax, so the above is to > understand needs. In any case, if you, or Eric, or anybody else for that > matter, often rely on much more than two types of citations in any given > document perhaps this is better: > > [TYPE: PRE @KEY POST :key VAL] > > :key VAL may not be needed at all (but e.g. the new cool > \textcites()()[][]{} commands have even more arguments). That's > essentially the "generalized link" you were talking about earlier. > > Display in the buffer is indeed something that should be tackled, but this > is an issue of overlays, like entities, and not the immediate issue. But > I have it in mind as well. It's tough though, when you have other > citations types than author-year. > > Cheers, > Rasmus -- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-08 22:23 ` Thomas S. Dye 2015-02-09 8:46 ` e.fraga 2015-02-09 10:50 ` Rasmus @ 2015-02-09 17:46 ` Richard Lawrence 2015-02-09 20:13 ` Rasmus 2015-02-10 1:32 ` John Kitchin 2 siblings, 2 replies; 104+ messages in thread From: Richard Lawrence @ 2015-02-09 17:46 UTC (permalink / raw) To: emacs-orgmode Hi Tom and all, tsd@tsdye.com (Thomas S. Dye) writes: > IIUC, Org mode citation syntax needs to capture four pieces of > information for an *individual* citation: a =key= into one or more > stores of bibliographic information; a =citation-command= that is > understood by the =citation-style= specified for the document; a > =pre-note= of arbitrary text in any language; and a =post-note= of > arbitrary text in any language. At least, this is how the LaTeX world > accommodates the almost unconstrained and ever-growing variability in > bibliographic styles in the wild. I think the key, pre-note and post-note are common ground, and everyone agrees that they need to be represented in a citation syntax. I am a bit more hesitant about the citation command, though. My reasons for hestitation are the same as other people have expressed here, but I think it might be useful to summarize. As Tom notes, there is basically unlimited complexity in the LaTeX world for citation commands. There's a different subset of commands for every distinction you might want to express in a given style. The trouble is that there is close to zero support for this complexity in the other export formats that Org supports. As far as I am aware (though I could be wrong), HTML, ODT, and other document formats barely even have a way of indicating that a piece of text is a citation. (HTML5 does have a "cite" element, but it seems to be basically an unconstrained semantic element.) Many of us (including me) are exporting to LaTeX, and if that is what you are doing, it is natural to want to have access to all the distinctions that LaTeX provides. But if we try to capture those distinctions in a high-level Org citation syntax, then we have two problems: (a) finding the right syntax to express those distinctions, and (b) exporting citations that make use of those distinctions to non-LaTeX formats, which provide little support for them. The more distinctions we try to capture, the more difficult these problems will be to solve. Thus, I think the right question to ask is: which distinctions are both *simple enough* and *important enough* that they are worth encoding in Org syntax and supporting in non-LaTeX backends? I think that is the right place to draw the line between features of citations that are encoded in `citation syntax proper' vs. `escape hatches' that give more information about how to format a citation in a particular backend. My sense is that a lot of the complexity in LaTeX citations should fall in the latter category, but we need to think more about what falls in the first category. One clear candidate for the first category that I think everyone agrees on is the distinction between in-text vs. parenthetical citations (\citet vs. \citep and similar in LaTeX). For my own case, this is the only distinction I need to be directly expressed in syntax. Nicolas expressed a similar opinion: > It seems to me that :type is a LaTeX-only feature and, as such, should > be handled in "ox-latex". In the general case, I think that Org should > only support inline and parenthesized citations. But in response to a question from Rasmus, Tom also suggested that multi-cites are a candidate, in addition to the in-text/parenthetical distinction: > Yes, I typically use what I call a multicite to get multiple citations > with biblatex. I myself never use these, so I don't understand exactly what would be required to support them properly in non-LaTeX backends, and I can't speak to which category they belong to. Are there other candidates we should discuss? What other distinctions are so important that they are worth figuring out how to express in syntax that can be exported by all backends? As for supporting the `escape hatch' category, it seems that more thought is needed here, too. Right now, the #+ATTR_BACKEND syntax is the only way I know of to specify arbitrary export properties for a piece of Org syntax. But it only applies to greater elements, and Tom at least does not think it is sufficient to only allow specifying the citation command, in particular, in an out-of-line (because greater element) citation definition. So maybe we need some kind of inline syntax for backend-specific properties of citations, perhaps along the lines that Rasmus has suggested. I think this could be a good idea; my only concern is that we make a clear separation between this syntax and the main syntax for citations. There are two reasons for this: if we don't clearly make this separation, then (1) it becomes much harder to figure out and agree on which distinctions should be expressed in `the' citation syntax; and (2) there is a danger that the complexity of backend-specific properties will bleed over into the main citation syntax, which all backends have to support. Best, Richard ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-09 17:46 ` Richard Lawrence @ 2015-02-09 20:13 ` Rasmus 2015-02-10 1:32 ` John Kitchin 1 sibling, 0 replies; 104+ messages in thread From: Rasmus @ 2015-02-09 20:13 UTC (permalink / raw) To: emacs-orgmode Richard Lawrence <richard.lawrence@berkeley.edu> writes: > tsd@tsdye.com (Thomas S. Dye) writes: > >> IIUC, Org mode citation syntax needs to capture four pieces of >> information for an *individual* citation: a =key= into one or more >> stores of bibliographic information; a =citation-command= that is >> understood by the =citation-style= specified for the document; a >> =pre-note= of arbitrary text in any language; and a =post-note= of >> arbitrary text in any language. At least, this is how the LaTeX world >> accommodates the almost unconstrained and ever-growing variability in >> bibliographic styles in the wild. > > I think the key, pre-note and post-note are common ground, and everyone > agrees that they need to be represented in a citation syntax. False. There has been discussions as to whether prenote should be included for inline citations. > Thus, I think the right question to ask is: which distinctions are both > *simple enough* and *important enough* that they are worth encoding in > Org syntax and supporting in non-LaTeX backends? I think that is the > right place to draw the line between features of citations that are > encoded in `citation syntax proper' vs. `escape hatches' that give more > information about how to format a citation in a particular backend. Ideally we find TOOL that can handle this. Worse case: bibtex.el, but hopefully something less bare-bone, that knows about styles would be great. E.g. "Zotero for html" or similar. > My sense is that a lot of the complexity in LaTeX citations should fall > in the latter category, but we need to think more about what falls in > the first category. I don't know. If you think of a type as a receipt it makes sense to allow it to some extend, I guess. Most LaTeX "receipts" very easy to use 'cause somebody took care of the details. > But in response to a question from Rasmus, Tom also suggested that > multi-cites are a candidate, in addition to the in-text/parenthetical > distinction: Multicite is pretty easy. A couple of days ago I showed that you can even do it with the current link syntax. Examples: \textcites(pre-both)(post-both)[pre1][post1]{bohringer14}[pre2][post2]{davis14} → pre-both Böhringer et al. (pre1 2014, post1) and Davis and Schiraldi (pre2 2014, post2), post-both \parencites(pre-both)(post-both)[pre1][post1]{bohringer14}[pre2][post2]{davis14} → (pre-both pre1 Böhringer et al. 2014, post1; pre2 Davis and Schiraldi 2014, post2, post-both) But multicite is surely a ox-latex feature, but it's just a convenience wrapper around normal cite commands which can be constructed using primitives, namely :author, :year :pre and :post. You could imagine something like [cite: pre-both; pre1 @k1 post1; pre2 @k2 post2; post-both] Which could be simplified to [cite: pre-both pre1 @k1 post1; pre2 @k2 post2 post-both] > As for supporting the `escape hatch' category, it seems that more > thought is needed here, too. Right now, the #+ATTR_BACKEND syntax is > the only way I know of to specify arbitrary export properties for a > piece of Org syntax. From a user perspective, links take a backend argument. > So maybe we need some kind of inline syntax for backend-specific > properties of citations, perhaps along the lines that Rasmus has > suggested. I think this could be a good idea; my only concern is that > we make a clear separation between this syntax and the main syntax for > citations. There are two reasons for this: if we don't clearly make > this separation, then (1) it becomes much harder to figure out and agree > on which distinctions should be expressed in `the' citation syntax; and > (2) there is a danger that the complexity of backend-specific properties > will bleed over into the main citation syntax, which all backends have > to support. Those are indeed valid concerns. One reason why I like :type is that all complexity is hidden away somewhere else. Much like links. This may not be a good thing. I'm heating up on (my interpretation) of Nicolas idea: [cite: pre-both; pre1 @k1 post1; pre2 @k2 post2; post-both] It's still an improvement (though small) over links, and you might still get one "free" type which can be expressed as [@k]. —Rasmus -- What will be next? ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 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 1 sibling, 1 reply; 104+ messages in thread From: John Kitchin @ 2015-02-10 1:32 UTC (permalink / raw) To: Richard Lawrence; +Cc: emacs-orgmode Richard Lawrence writes: > Hi Tom and all, > > tsd@tsdye.com (Thomas S. Dye) writes: > >> IIUC, Org mode citation syntax needs to capture four pieces of >> information for an *individual* citation: a =key= into one or more >> stores of bibliographic information; a =citation-command= that is >> understood by the =citation-style= specified for the document; a >> =pre-note= of arbitrary text in any language; and a =post-note= of >> arbitrary text in any language. At least, this is how the LaTeX world >> accommodates the almost unconstrained and ever-growing variability in >> bibliographic styles in the wild. > > I think the key, pre-note and post-note are common ground, and everyone > agrees that they need to be represented in a citation syntax. > > I am a bit more hesitant about the citation command, though. My reasons > for hestitation are the same as other people have expressed here, but I > think it might be useful to summarize. I think the critical point is that the syntax must be user extendable. It should be possible to add these different types, even if most people do not use them. Otherwise, links will continue to be used anyway. > > As Tom notes, there is basically unlimited complexity in the LaTeX world > for citation commands. There's a different subset of commands for every > distinction you might want to express in a given style. > > The trouble is that there is close to zero support for this complexity > in the other export formats that Org supports. As far as I am aware > (though I could be wrong), HTML, ODT, and other document formats barely > even have a way of indicating that a piece of text is a citation. > (HTML5 does have a "cite" element, but it seems to be basically an > unconstrained semantic element.) This should not prevent us from making a syntax that can be simple for these backends, and functional for Latex. > > Many of us (including me) are exporting to LaTeX, and if that is what > you are doing, it is natural to want to have access to all the > distinctions that LaTeX provides. But if we try to capture those > distinctions in a high-level Org citation syntax, then we have two > problems: (a) finding the right syntax to express those distinctions, > and (b) exporting citations that make use of those distinctions to > non-LaTeX formats, which provide little support for them. The more > distinctions we try to capture, the more difficult these problems will > be to solve. Again, user extendability is the key to this. You would not use these for export to other formats, and you do not want to have to use one notation for some backends, and another for latex. One also does not use the sophisticated machinery of latex by accident. So I don't think we lose anything by making it possible. > > Thus, I think the right question to ask is: which distinctions are both > *simple enough* and *important enough* that they are worth encoding in > Org syntax and supporting in non-LaTeX backends? I think that is the > right place to draw the line between features of citations that are > encoded in `citation syntax proper' vs. `escape hatches' that give more > information about how to format a citation in a particular backend. I think the new citations should support an export mechanism like links do. Each backend whould be responsible to take the information it gets, and use it to create what it needs. Syntax like [see cite@Doe99 for example] contains all that information, and is pretty readable. > > My sense is that a lot of the complexity in LaTeX citations should fall > in the latter category, but we need to think more about what falls in > the first category. > > One clear candidate for the first category that I think everyone agrees > on is the distinction between in-text vs. parenthetical citations > (\citet vs. \citep and similar in LaTeX). For my own case, this is the > only distinction I need to be directly expressed in syntax. If these are the default types, I think it is fine. It should be possible to define new types though. It should be possible to define this: [citeauthor@Doe99] showed in [citeyear@Doe99] that this was possible. An alternative approach is illustrated in Ref. [citenum@Doe100]. > > Nicolas expressed a similar opinion: > >> It seems to me that :type is a LaTeX-only feature and, as such, should >> be handled in "ox-latex". In the general case, I think that Org should >> only support inline and parenthesized citations. I don't think it is a latex only feature. Word could have this feature too where you differentiate between types, and html, and ascii, etc... This is handled by the backend. > > But in response to a question from Rasmus, Tom also suggested that > multi-cites are a candidate, in addition to the in-text/parenthetical > distinction: > >> Yes, I typically use what I call a multicite to get multiple citations >> with biblatex. If a multicite is something that might render as [1-3] or [1,6,9] in a backend then yes, multicite is a necessary capability for most scientific publications. These could look like (I am mixing :/@ below just to see what it looks like): [cite:key1,key2] or [cite:key1; cite:key2] [cite@key1,key2] or [cite@key1; cite@key2] [cite@key1; see also cite@key2] > > I myself never use these, so I don't understand exactly what would be > required to support them properly in non-LaTeX backends, and I can't > speak to which category they belong to. > > Are there other candidates we should discuss? What other distinctions > are so important that they are worth figuring out how to express in > syntax that can be exported by all backends? I think the examples above cover a lot of the use cases we have considered. Maybe there is some subtle issues of a citation in a citation, or of other markup in a citation, e.g. bold/italics, that I overlooked. I am pretty sure all those formats can be integrated pretty easily into something like org-ref for inserting citations. As long as some part of them is clickable, with a user-defined action, e.g. the cite@key part, then functionally this would be the same as what we have with links in org-ref. converting multicites this way to latex might be a little tricky, but I think it is doable. > > As for supporting the `escape hatch' category, it seems that more > thought is needed here, too. Right now, the #+ATTR_BACKEND syntax is > the only way I know of to specify arbitrary export properties for a > piece of Org syntax. But it only applies to greater elements, and Tom > at least does not think it is sufficient to only allow specifying the > citation command, in particular, in an out-of-line (because greater > element) citation definition. > > So maybe we need some kind of inline syntax for backend-specific > properties of citations, perhaps along the lines that Rasmus has > suggested. I think this could be a good idea; my only concern is that > we make a clear separation between this syntax and the main syntax for > citations. There are two reasons for this: if we don't clearly make > this separation, then (1) it becomes much harder to figure out and agree > on which distinctions should be expressed in `the' citation syntax; and > (2) there is a danger that the complexity of backend-specific properties > will bleed over into the main citation syntax, which all backends have > to support. > > Best, > Richard -- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-10 1:32 ` John Kitchin @ 2015-02-10 4:04 ` Richard Lawrence 2015-02-10 5:23 ` John Kitchin 0 siblings, 1 reply; 104+ messages in thread From: Richard Lawrence @ 2015-02-10 4:04 UTC (permalink / raw) To: emacs-orgmode Hi John and all, John Kitchin <jkitchin@andrew.cmu.edu> writes: > I think the critical point is that the syntax must be user > extendable. It should be possible to add these different types, even if > most people do not use them. Otherwise, links will continue to be used > anyway. I completely agree. Some form of user extensibility is needed, not only because our existing needs are complex and diverse, but because it's hard for each of us to know how those needs will change in the future. My concern is just that we clearly distinguish the `main' or `proper' citation syntax from the user-extensible part, as I said here: >> So maybe we need some kind of inline syntax for backend-specific >> properties of citations, perhaps along the lines that Rasmus has >> suggested. I think this could be a good idea; my only concern is that >> we make a clear separation between this syntax and the main syntax for >> citations. There are two reasons for this: if we don't clearly make >> this separation, then (1) it becomes much harder to figure out and agree >> on which distinctions should be expressed in `the' citation syntax; and >> (2) there is a danger that the complexity of backend-specific properties >> will bleed over into the main citation syntax, which all backends have >> to support. To put it a different way, I think the main citation syntax should express all and only those features that are important enough that they should be supported `out of the box' -- i.e., without any user extension or customization -- for all backends. Anything else should be possible to express via whatever syntax we decide on for user extensions, but I think there should be a really clear line between the two. > I think the new citations should support an export mechanism like links > do. Each backend whould be responsible to take the information it gets, > and use it to create what it needs. Syntax like [see cite@Doe99 for > example] contains all that information, and is pretty readable. > It should be possible to define new types though. It should be > possible to define this: [citeauthor@Doe99] showed in [citeyear@Doe99] > that this was possible. An alternative approach is illustrated in > Ref. [citenum@Doe100]. Rasmus has also expressed support for something like this, and I can see that it is important for a user to be able to define types which are backend-independent (and can thus be exported differently for different backends by some user-supplied function), much like links. On the other hand, before we adopt such a facility, it's important to think about what the interface would look like. What can reasonably be expected of the user function? What information needs to be given to it? (Just the citation and its properties? a reference to the bibligraphy file? a data structure representing the referenced work?) What happens when the user doesn't define behavior for a particular backend? I don't quite like the examples you have illustrated here because they don't make the distinction I was urging above, between the `main' citation syntax and the user-extensible part. As a result it's really unclear to an author/editor, when reading the document, which backends can be expected to support which citations, and which citations can be expected to break if all you have is a default setup. (Imagine you didn't write the document or the custom citation type!) From the exporter's perspective, it's also really unclear what should happen when there's no behavior defined for, say, the "citeauthor" type for the HTML backend. If it defaults to just a "normal" citation, the output is very likely to be unreadable in the general case, but what other option is there? It's easy (and correct) to say: "These are the user's problems." But we're all users, so let's think some more about how to make things easy for ourselves. :) For these reasons, I'd prefer something like Rasmus' suggestion; maybe syntax like [@Doe99 :custom-type author-only] showed in [@Doe99 :custom-type year-only] that this was possible. An alternative approach is illustrated in [@Doe :custom-type refnum]. where, basically, ":custom-type" is a nice big flag that says: "Here be dragons: you are responsible for exporting this citation yourself." > If a multicite is something that might render as [1-3] or [1,6,9] in a > backend then yes, multicite is a necessary capability for most > scientific publications. Can you (or Tom, or someone else) make the case that it is important enough to have multicites that non-LaTeX backends should support them out of the box? (I'm not doubting it, I just don't have any idea why since I don't use them myself.) Best, Richard ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-10 4:04 ` Richard Lawrence @ 2015-02-10 5:23 ` John Kitchin 2015-02-10 6:20 ` Thomas S. Dye 0 siblings, 1 reply; 104+ messages in thread From: John Kitchin @ 2015-02-10 5:23 UTC (permalink / raw) To: Richard Lawrence; +Cc: emacs-orgmode Richard Lawrence writes: > > My concern is just that we clearly distinguish the `main' or `proper' > citation syntax from the user-extensible part, as I said here: > > Rasmus has also expressed support for something like this, and I can see > that it is important for a user to be able to define types which are > backend-independent (and can thus be exported differently for different > backends by some user-supplied function), much like links. > > On the other hand, before we adopt such a facility, it's important to > think about what the interface would look like. What can reasonably be > expected of the user function? What information needs to be given to it? > (Just the citation and its properties? a reference to the bibligraphy > file? a data structure representing the referenced work?) What happens > when the user doesn't define behavior for a particular backend? The pieces of information we have converged on (I think) are key, pre text, post text, command, and that could be packaged in some data structure. You also need the backend, and there is a final piece that is important and that is the bibliography database(s). In org-ref we use a bibliography link or rely on a default variable setting if that is not found. Another option is #+BIBLIOGRAPHY: information. The user function should take that information, and provide the formatted string to replace the citation. As with latex, the function may have to run a few times, e.g. to get the citations, construct the bibliography, and then go back through the text to put in the formatted numbers, author-year, etc... in latex we have the convenience to let latex/bibtex handle that, and other backends would need to duplicate at least some of that capability. This can also be used to specify where a bibliography should be placed in the document. For undefined behavior, the only thing that can happen is the the same thing that happens with links. Nothing. > I don't quite like the examples you have illustrated here because they > don't make the distinction I was urging above, between the `main' > citation syntax and the user-extensible part. As a result it's really > unclear to an author/editor, when reading the document, which backends > can be expected to support which citations, and which citations can be > expected to break if all you have is a default setup. (Imagine you > didn't write the document or the custom citation type!) From the > exporter's perspective, it's also really unclear what should happen when > there's no behavior defined for, say, the "citeauthor" type for the HTML > backend. If it defaults to just a "normal" citation, the output is very > likely to be unreadable in the general case, but what other option is > there? That is true enough. That is already the case for every custom link anyone makes in org-mode. the default behavior there is that the link is dead and exports as plain text. This is also the case in Latex, if you do not use the right package, sometimes you cannot get the right format out. > > It's easy (and correct) to say: "These are the user's problems." But > we're all users, so let's think some more about how to make things easy > for ourselves. :) > > For these reasons, I'd prefer something like Rasmus' suggestion; maybe > syntax like > > [@Doe99 :custom-type author-only] showed in [@Doe99 :custom-type year-only] > that this was possible. An alternative approach is illustrated in > [@Doe :custom-type refnum]. > > where, basically, ":custom-type" is a nice big flag that says: "Here be > dragons: you are responsible for exporting this citation yourself." > >> If a multicite is something that might render as [1-3] or [1,6,9] in a >> backend then yes, multicite is a necessary capability for most >> scientific publications. > > Can you (or Tom, or someone else) make the case that it is important > enough to have multicites that non-LaTeX backends should support them > out of the box? (I'm not doubting it, I just don't have any idea why > since I don't use them myself.) My case is that if this is not supported out of the box, we could not use the citation syntax for any of our scientific publishing needs. In a recently published paper we had four citations with 4 references in it, four with three references, 10 with two references and 15 single citations. That is probably typical in our work, and in review work it is common to have even more than four references in a citation. This is a feature of modern publications because of tools like Endnote, zotero, etc... which make it trivial to add citations, and independent of the ultimate format (which is usually pdf, but sometimes html, and sometimes Word). If the new syntax allows us to handle citations the way links do today, I can see a transition pathway to the new syntax. If not, I doubt it can be adopted for scientific writing if you need two syntaxes for citations. There are other, important types of writing this may support, and maybe it makes sense to have separate approaches. > > Best, > Richard -- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-10 5:23 ` John Kitchin @ 2015-02-10 6:20 ` Thomas S. Dye 0 siblings, 0 replies; 104+ messages in thread From: Thomas S. Dye @ 2015-02-10 6:20 UTC (permalink / raw) To: John Kitchin; +Cc: Richard Lawrence, emacs-orgmode John Kitchin <jkitchin@andrew.cmu.edu> writes: >> Can you (or Tom, or someone else) make the case that it is important >> enough to have multicites that non-LaTeX backends should support them >> out of the box? (I'm not doubting it, I just don't have any idea why >> since I don't use them myself.) > > My case is that if this is not supported out of the box, we could not > use the citation syntax for any of our scientific publishing needs. In > a recently published paper we had four citations with 4 references in > it, four with three references, 10 with two references and 15 single > citations. That is probably typical in our work, and in review work it > is common to have even more than four references in a citation. This is > a feature of modern publications because of tools like Endnote, zotero, > etc... which make it trivial to add citations, and independent of the > ultimate format (which is usually pdf, but sometimes html, and sometimes > Word). > > If the new syntax allows us to handle citations the way links do today, > I can see a transition pathway to the new syntax. If not, I doubt it can > be adopted for scientific writing if you need two syntaxes for > citations. There are other, important types of writing this may support, > and maybe it makes sense to have separate approaches. My experience echoes John's--many citations in my archaeology work refer to multiple objects. However, this was possible in bibtex. The problem solved by multicites in biblatex is that they make it possible to associate a pre-note and a post-note to each object in a citation with multiple objects. This is often useful in author-date styles, but it is absolutely essential in the footnote styles used in the humanities. In history, for example, citation practice differs substantially from the sciences. Scientists tend to use fine-grained citations to support specific statements. Historians tend to make a paragraph-long argument which ends in a footnote that might look something like this "1. For the popularity of pork in eighteenth century England see Foo 1923, Bar 1946, and references therein; animal husbandry in Oceania is discussed at length by Baz 1963." I don't know what word-processing (document preparation) software is prevalent in history or the humanities generally, though my guess is Word, not LaTeX. All the best, Tom -- Thomas S. Dye http://www.tsdye.com ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-08 2:46 ` Richard Lawrence 2015-02-08 9:46 ` John Kitchin @ 2015-02-08 9:58 ` Nicolas Goaziou 2015-02-08 17:18 ` Richard Lawrence 1 sibling, 1 reply; 104+ messages in thread From: Nicolas Goaziou @ 2015-02-08 9:58 UTC (permalink / raw) To: Richard Lawrence; +Cc: emacs-orgmode@gnu.org Richard Lawrence <richard.lawrence@berkeley.edu> writes: > On Sat, Feb 7, 2015 at 2:43 PM, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote: > >> What about the following set? >> >> bold code entity italic latex-fragment line-break strike-through >> subscript superscript underline superscript > > That would work fine for me in prefixes and suffixes. Fair enough. > I guess I could live with this, but to be honest, I much prefer the > Pandoc way. Actually, there is another, shorter possibility: - in-text citation [KEY] or [KEY suffix] [@item1] or [@item1 p. 30] or [@item1 p. 30, with suffix] - out-text citation [cite: prefix? key suffix?; prefix2? key2 suffix2? ...] [cite: see @item1 p. 34-35] or [cite: @item1 pp. 33, 35-37, and nowhere else] or [cite: -@item1 p. 44] or even [cite: see @item1 p. 34-35; also @item3 chap. 3] IMO it is quite readable. > The Pandoc syntax has a nice congruence between the source file and > the output: if a cite key is inside the brackets in the source, the > reference is inside the brackets in the output, and if it's outside in > the source, it's outside in the output. This convention seems > natural, easy to remember, and very readable -- at least if, like me > (and I would guess many others), you use author names in cite keys. This can be partly (i.e. visually) solved with overlays, e.g., you write [@item1: p. 30] and you see @item1 (p. 30) in the buffer. IMO, this is overkill, though. > So as an author, I prefer the Pandoc way, but I understand there are > other considerations. If we must have the tag for performance > reasons, I would prefer using two different tags to represent the two > cases; I suggest borrowing (from LaTeX's natbib package) "citet" for > in-text and "citep" for bracketed citations , but I don't really care > as long as they're easy to type, and it's easy to change one to the > other. IMO, my current proposal is clearer. Also, you can switch to in-text to out-text (or the other way) just by adding (or removing) cite: at the beginning of the citation. Regards, ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-08 9:58 ` Nicolas Goaziou @ 2015-02-08 17:18 ` Richard Lawrence 2015-02-08 18:18 ` Nicolas Goaziou 0 siblings, 1 reply; 104+ messages in thread From: Richard Lawrence @ 2015-02-08 17:18 UTC (permalink / raw) To: Richard Lawrence, emacs-orgmode@gnu.org Hi Nicolas and all, On Sun, Feb 8, 2015 at 1:58 AM, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote: > > - in-text citation > > [KEY] or [KEY suffix] > > [@item1] or [@item1 p. 30] or [@item1 p. 30, with suffix] > > - out-text citation > > [cite: prefix? key suffix?; prefix2? key2 suffix2? ...] > > [cite: see @item1 p. 34-35] or [cite: @item1 pp. 33, 35-37, and > nowhere else] or [cite: -@item1 p. 44] or even [cite: see @item1 p. > 34-35; also @item3 chap. 3] > > IMO it is quite readable. Yes, I like this better than your first proposal, or the citet/citep approach. But doesn't the first case pose the same performance problems as the Pandoc syntax, since it does away with the tag? Or are you thinking it's easier to parse because the key occurs immediately after the bracket, without a prefix...? Best, Richard ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-08 17:18 ` Richard Lawrence @ 2015-02-08 18:18 ` Nicolas Goaziou 0 siblings, 0 replies; 104+ messages in thread From: Nicolas Goaziou @ 2015-02-08 18:18 UTC (permalink / raw) To: Richard Lawrence; +Cc: emacs-orgmode@gnu.org Richard Lawrence <richard.lawrence@berkeley.edu> writes: > But doesn't the first case pose the same performance problems as the > Pandoc syntax, since it does away with the tag? Or are you thinking > it's easier to parse because the key occurs immediately after the > bracket, without a prefix...? Correct. It is easier to dismiss false positives. Regards, ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-07 22:43 ` Nicolas Goaziou 2015-02-08 2:46 ` Richard Lawrence @ 2015-02-08 9:28 ` Rasmus 2015-02-08 10:18 ` Nicolas Goaziou 1 sibling, 1 reply; 104+ messages in thread From: Rasmus @ 2015-02-08 9:28 UTC (permalink / raw) To: emacs-orgmode Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > Using the example from Erik Hetzner in the same thread, what about: > > 1. [cite:@item1] says blah. > 2. [cite:@item1: p. 30] says blah. Why is "p." stripped here? > 3. [cite:@item1: p. 30, with suffix] says blah. > 4. [cite:@item1: -@item2 p. 30; see also @item3] says blah. If item{1,2} have the same author biblatex[-chicago?] is smart enough to compress it to "author (year1, year2)". So this example seems like a downgrade if "-" is required to get the suggested output. > 5. A citation group [cite:: see @item1 p. 34-35; also @item3 chap. 3]. Why is chap. *not* stripped here? > 6. Another one [cite::see @item1 p. 34-35]. > 7. Citation with a suffix and locator [cite:: @item1 pp. 33, 35-37, and nowhere else]. Where does suffix and locator end here. E.g. what is the output of [cite:: @item1 33, pp. 35-37, and nowhere else]. > 9. Citation with suffix only [cite:: @item1 and nowhere else]. How do I know this is a suffix? Is locator a regexp like \`[p\.0-9 ]+? What is [cite:@K s. 12] or [cite:@K side.? 12]? > 10. Like a citation without author: [cite:: -@item1], and now Doe > with a locator [cite:: -@item2 p. 44]. > 2. Doe (2005, 30) says blah. > 5. A citation group (see Doe 2005, 34–35; also Doe and Roe 2007, chap. 3). > 7. Citation with a suffix and locator (Doe 2005, 33, 35–37, and nowhere else). > Note that space after the second colon is not mandatory. More > explicitly, syntax would be either > > [cite:IN-TEXT-KEY] > > or > > [cite:IN-TEXT-KEY?:SPACE* CITATIONS] > > where CITATIONS is any number of > > PREFIX? KEY SUFFIX? > > separated with semi-colons. What if I need several text cite keys. Say @K{1,2} is the same author A, and @K3 is B. Then [cite:@K1,@K2,@K3] should/could be something like A (Y1, Y2), and B (Y3). How do I express this? Some comments. 1. Am I supposed to distinguish between a text citations and parenthesis citation based on a single ":"? That's hard. Why not distinguish based on the initial label? E.g. {textcite, parentcite} or {citet, citep}. 2. The idea of locator /and/ suffix is confusing. The fact that your examples suggest seemingly random dropping of data from locator makes me want to avoid it even more. It's a 'can of worms' to use a frequently emerging expression from this list. 3. This is almost full circle. The proposal above seems no better (and IMO worse) than e.g. the generalized links that Tom suggested, e.g. [TYPE: KEY :pre PRE :post SUF] or [TYPE: PRE @KEY POST]. Or [[TYPE: KEY :pre PRE :post SUF]] or [[TYPE: PRE @KEY POST]]. 4. The reason for suggested syntax seems to be support some benchmark like A1 (Y1, Y2 also A2, Y3). I have never come across a nested citation like this. I have seen either (A1 Y1, Y2 and A2, Y3) or A1 (Y1, Y2) and A2 (Y3). . . 5. . . . Yet I still don't know how to get A1 (PRE Y2) with the above. Is the benchmark correct? If parsing speed is key here I think that [citet: pre1 @k1 post1; pre2 @k2 post2] and [citep: pre1 @k1 post1; pre2 @k2 post2] are clearer solutions. But this is clearly closer to a LaTeX than pandoc. —Rasmus -- Dung makes an excellent fertilizer ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-08 9:28 ` Rasmus @ 2015-02-08 10:18 ` Nicolas Goaziou 2015-02-08 10:50 ` Rasmus 0 siblings, 1 reply; 104+ messages in thread From: Nicolas Goaziou @ 2015-02-08 10:18 UTC (permalink / raw) To: Rasmus; +Cc: emacs-orgmode Rasmus <rasmus@gmx.us> writes: > Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > >> Using the example from Erik Hetzner in the same thread, what about: >> >> 1. [cite:@item1] says blah. >> 2. [cite:@item1: p. 30] says blah. > > Why is "p." stripped here? I don't understand. Anyway, I now suggest [@item1] and [@item1 p. 30] >> 3. [cite:@item1: p. 30, with suffix] says blah. >> 4. [cite:@item1: -@item2 p. 30; see also @item3] says blah. > > If item{1,2} have the same author biblatex[-chicago?] is smart enough to > compress it to "author (year1, year2)". So this example seems like a > downgrade if "-" is required to get the suggested output. [@item1 -@item2 p. 30] Downgrade is a bit strong. >> 5. A citation group [cite:: see @item1 p. 34-35; also @item3 chap. 3]. > > Why is chap. *not* stripped here? I do not understand either. > Where does suffix and locator end here. E.g. what is the output of > > [cite:: @item1 33, pp. 35-37, and nowhere else]. [cite: @item1 pp. 33, 35-37, and nowhere else] suffix and locator are merged (AFAIU, in practice, there is no distinction between locator and suffix): "pp. 33, 35-37, and nowehere else". >> 9. Citation with suffix only [cite:: @item1 and nowhere else]. > > How do I know this is a suffix? Is locator a regexp like > \`[p\.0-9 ]+? See above. > What is [cite:@K s. 12] or [cite:@K side.? 12]? See above. > What if I need several text cite keys. Say @K{1,2} is the same author A, > and @K3 is B. Then [cite:@K1,@K2,@K3] should/could be something like > A (Y1, Y2), and B (Y3). How do I express this? Since A and B do not appear in the same parenthesis, two citations are needed: [@K1 -@K2], and [@K3] > Some comments. > > 1. Am I supposed to distinguish between a text citations and parenthesis > citation based on a single ":"? That's hard. Why not distinguish > based on the initial label? E.g. {textcite, parentcite} or {citet, > citep}. In fact, you're right, we don't need the colon, hence my other proposal. > 2. The idea of locator /and/ suffix is confusing. The fact that your > examples suggest seemingly random dropping of data from locator makes > me want to avoid it even more. It's a 'can of worms' to use a > frequently emerging expression from this list. Again, there's no real need to extract a locator. At least, not at the parser level. > 3. This is almost full circle. The proposal above seems no better (and > IMO worse) than e.g. the generalized links that Tom suggested, e.g. > [TYPE: KEY :pre PRE :post SUF] or [TYPE: PRE @KEY POST]. > Or [[TYPE: KEY :pre PRE :post SUF]] or [[TYPE: PRE @KEY POST]]. In [type: KEY :pre PRE :post SUF], PRE comes after KEY, which impedes readability, IMO. Double brackets are link syntax: there will be conflict if TYPE belongs to `org-link-types'. > 5. . . . Yet I still don't know how to get A1 (PRE Y2) with the above. > Is the benchmark correct? You can't. Is this needed? > If parsing speed is key here I think that > [citet: pre1 @k1 post1; pre2 @k2 post2] and [citep: pre1 @k1 post1; pre2 @k2 post2] > are clearer solutions. But this is clearly closer to a LaTeX than > pandoc. If "A1 (PRE Y2)" is really needed, then yes, I think that's good enough. Otherwise I think [@k1] is terse and nice. Regards, ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-08 10:18 ` Nicolas Goaziou @ 2015-02-08 10:50 ` Rasmus 2015-02-08 12:36 ` Nicolas Goaziou 0 siblings, 1 reply; 104+ messages in thread From: Rasmus @ 2015-02-08 10:50 UTC (permalink / raw) To: emacs-orgmode Hi, Thanks for the quick reply. A very colorful (in Gnus at least) reply follows. >>> 1. [cite:@item1] says blah. >>> 2. [cite:@item1: p. 30] says blah. >> >> Why is "p." stripped here? > > I don't understand. Anyway, I now suggest This is what I'm talking about: >>> 2. [cite:@item1: p. 30] says blah. >>> ... ^^^^ >>> 2. Doe (2005, 30) says blah. >>> ^^^ >>> 3. [cite:@item1: p. 30, with suffix] says blah. >>> 4. [cite:@item1: -@item2 p. 30; see also @item3] says blah. >> >> If item{1,2} have the same author biblatex[-chicago?] is smart enough to >> compress it to "author (year1, year2)". So this example seems like a >> downgrade if "-" is required to get the suggested output. > > [@item1 -@item2 p. 30] > > Downgrade is a bit strong. If I have to think about the /formatting/ out output rather than the /contents/ downgrade is not too strong (IMO). In the example above, why not [@item1 @item2 p. 30]? Another issue is that it's not transpose-words safe. E.g. this output seems bad: [-@k1 @k2 30] => Y1 A2 (Y2, 30). >>> 5. A citation group [cite:: see @item1 p. 34-35; also @item3 chap. 3]. >> >> Why is chap. *not* stripped here? > > I do not understand either. Compare to example 1 where p. is stripped. Here chap. is /not/ stripped. >>> 5. A citation group (see Doe 2005, 34–35; also Doe and Roe 2007, chap. 3). >> Where does suffix and locator end here. E.g. what is the output of >> >> [cite:: @item1 33, pp. 35-37, and nowhere else]. > > [cite: @item1 pp. 33, 35-37, and nowhere else] > > suffix and locator are merged (AFAIU, in practice, there is no > distinction between locator and suffix): "pp. 33, 35-37, and nowehere > else". But in your previous examples data is stripped from the locator. If there's no difference I think it would be better to not talk about this locator 'cause it's extremely confusing. >>> 9. Citation with suffix only [cite:: @item1 and nowhere else]. >> >> How do I know this is a suffix? Is locator a regexp like >> \`[p\.0-9 ]+? > > See above. >> What is [cite:@K s. 12] or [cite:@K side.? 12]? > > See above. See also above. From you explanation I would guess that at least these two examples are wrong. Is that correct? >>> 2. [cite:@item1: p. 30] says blah. >>> 2. Doe (2005, 30) says blah. >>> 3. [cite:@item1: p. 30, with suffix] says blah. >>> 3. Doe (2005, 30, with suffix) says blah. >> What if I need several text cite keys. Say @K{1,2} is the same author A, >> and @K3 is B. Then [cite:@K1,@K2,@K3] should/could be something like >> A (Y1, Y2), and B (Y3). How do I express this? > > Since A and B do not appear in the same parenthesis, two citations are > needed: > > [@K1 -@K2], and [@K3] This is a minor downgrade from biblatex. The year thing is worse. >> Some comments. >> >> 1. Am I supposed to distinguish between a text citations and parenthesis >> citation based on a single ":"? That's hard. Why not distinguish >> based on the initial label? E.g. {textcite, parentcite} or {citet, >> citep}. > > In fact, you're right, we don't need the colon, hence my other proposal. This is much better. >> 2. The idea of locator /and/ suffix is confusing. The fact that your >> examples suggest seemingly random dropping of data from locator makes >> me want to avoid it even more. It's a 'can of worms' to use a >> frequently emerging expression from this list. > > Again, there's no real need to extract a locator. At least, not at the > parser level. Let's stop talking about this locator then. It appears nowhere else in LaTeX or Org documentation. >> 5. . . . Yet I still don't know how to get A1 (PRE Y2) with the above. >> Is the benchmark correct? > > You can't. Is this needed? It's not unheard of. I have used it in the past. In LaTeX it's something like: \citet[C]{k} → A (Y, C) \citet[B][]{k} → A (B, Y) \citet[B][C]{k} → A (B, Y, C) >> If parsing speed is key here I think that >> [citet: pre1 @k1 post1; pre2 @k2 post2] and [citep: pre1 @k1 post1; pre2 @k2 post2] >> are clearer solutions. But this is clearly closer to a LaTeX than >> pandoc. > > If "A1 (PRE Y2)" is really needed, then yes, I think that's good enough. > Otherwise I think [@k1] is terse and nice. It's nice. @k1 / [pre @k1 post] for text and (pre @k1 post) for parentheses expressions is nicer, but that's details. I trust your judgment on the technical merit of one idea versus the next. Thanks, Rasmus -- El Rey ha muerto. ¡Larga vida al Rey! ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-08 10:50 ` Rasmus @ 2015-02-08 12:36 ` Nicolas Goaziou 2015-02-08 13:40 ` Rasmus 0 siblings, 1 reply; 104+ messages in thread From: Nicolas Goaziou @ 2015-02-08 12:36 UTC (permalink / raw) To: Rasmus; +Cc: emacs-orgmode Rasmus <rasmus@gmx.us> writes: >>>> 2. [cite:@item1: p. 30] says blah. >>>> ... ^^^^ >>>> 2. Doe (2005, 30) says blah. >>>> ^^^ According to Erik, this is just a possible output. It belongs to export configuration. >>>> 3. [cite:@item1: p. 30, with suffix] says blah. >>>> 4. [cite:@item1: -@item2 p. 30; see also @item3] says blah. >>> >>> If item{1,2} have the same author biblatex[-chicago?] is smart enough to >>> compress it to "author (year1, year2)". So this example seems like a >>> downgrade if "-" is required to get the suggested output. >> >> [@item1 -@item2 p. 30] >> >> Downgrade is a bit strong. > > If I have to think about the /formatting/ out output rather than the > /contents/ downgrade is not too strong (IMO). In the example above, why > not [@item1 @item2 p. 30]? All back-end may not be smart enough to compress years. However, it is probably equivalent for those that can. > Another issue is that it's not transpose-words safe. E.g. this output > seems bad: [-@k1 @k2 30] => Y1 A2 (Y2, 30). This citation is invalid. The point of [@k1] is that the author is mandatory, since it is in-text, so [-@k1] doesn't make sense. Also, it is not possible (as in Pandoc) to extract only year from a bibliography entry, so there's no way to have Y1 so far. > But in your previous examples data is stripped from the locator. If > there's no difference I think it would be better to not talk about this > locator 'cause it's extremely confusing. Again, I was re-using examples. Let's forget about the "locator". > See also above. From you explanation I would guess that at least these > two examples are wrong. Is that correct? > >>>> 2. [cite:@item1: p. 30] says blah. >>>> 2. Doe (2005, 30) says blah. >>>> 3. [cite:@item1: p. 30, with suffix] says blah. >>>> 3. Doe (2005, 30, with suffix) says blah. They are not wrong. The output may decide to strip "p. ". This is not our problem at this stage of the discussion. >>> What if I need several text cite keys. Say @K{1,2} is the same author A, >>> and @K3 is B. Then [cite:@K1,@K2,@K3] should/could be something like >>> A (Y1, Y2), and B (Y3). How do I express this? >> >> Since A and B do not appear in the same parenthesis, two citations are >> needed: >> >> [@K1 -@K2], and [@K3] > > This is a minor downgrade from biblatex. The year thing is worse. Org doesn't pretend to replace either LaTeX or biblatex. If extracting data from an entry is required, then I suggest to extend key syntax, e.g.: @K1:year But, again, if this is a LaTeX-only feature, org-ref and even raw LaTeX code is good enough. We shouldn't try to implement every possible feature, or we will fail. So, it is only an option if it can be implemented in most major export back-ends. > It's not unheard of. I have used it in the past. In LaTeX it's something like: > > \citet[C]{k} → A (Y, C) > \citet[B][]{k} → A (B, Y) > \citet[B][C]{k} → A (B, Y, C) I understand, but would it be needed to have both A (Y, C) and A (B, Y) in the same document? Otherwise, [@k text] can be treated either as A (text, Y) or A (Y, text) consistently throughout the document, according to bibliographic style. In any case, if we allow @key:tag syntax, then it is possible to do [@k:author] [cite: B -@k C] and get A (B, Y, C) > It's nice. @k1 / [pre @k1 post] for text and (pre @k1 post) for > parentheses expressions is nicer, but that's details. I trust your > judgment on the technical merit of one idea versus the next. [pre @k1 post] is slower to parse. (pre @k1 post) is worse because "(" is probably more common than "[". Really, round brackets should not be used for Org syntax. I haven't much against @k1, but it introduces more false positives than [@k1]. Regards, ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-08 12:36 ` Nicolas Goaziou @ 2015-02-08 13:40 ` Rasmus 2015-02-08 16:11 ` Nicolas Goaziou 2015-02-08 17:02 ` Nicolas Goaziou 0 siblings, 2 replies; 104+ messages in thread From: Rasmus @ 2015-02-08 13:40 UTC (permalink / raw) To: emacs-orgmode Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: >> Another issue is that it's not transpose-words safe. E.g. this output >> seems bad: [-@k1 @k2 30] => Y1 A2 (Y2, 30). > > This citation is invalid. The point of [@k1] is that the author is > mandatory, since it is in-text, so [-@k1] doesn't make sense. In that case I prefer the explicit extraction of keys below, since I don't understand why [-@k1] is invalid ("in her seminal -@k @k:journal article, @k:author demonstrated that ⋯"). Probably I don't understand pandoc well enough... >> See also above. From you explanation I would guess that at least these >> two examples are wrong. Is that correct? >> >>>>> 2. [cite:@item1: p. 30] says blah. >>>>> 2. Doe (2005, 30) says blah. >>>>> 3. [cite:@item1: p. 30, with suffix] says blah. >>>>> 3. Doe (2005, 30, with suffix) says blah. > > They are not wrong. The output may decide to strip "p. ". This is not > our problem at this stage of the discussion. It seemed to be the main characteristics of this "locator" that you all were talking about... >>>> What if I need several text cite keys. Say @K{1,2} is the same author A, >>>> and @K3 is B. Then [cite:@K1,@K2,@K3] should/could be something like >>>> A (Y1, Y2), and B (Y3). How do I express this? >>> >>> Since A and B do not appear in the same parenthesis, two citations are >>> needed: >>> >>> [@K1 -@K2], and [@K3] >> >> This is a minor downgrade from biblatex. The year thing is worse. > > Org doesn't pretend to replace either LaTeX or biblatex. Of course not. That would be idiotic. But I would rather try to imitate the state-of-the-art, which in my book is biblatex, not pandocs. > If extracting data from an entry is required, then I suggest to extend > key syntax, e.g.: > > @K1:year Extracting from a plist-like thingy is easy. What is hard is proper formatting of things like author, e.g. how many author to include, adding "and" etc. It would be amazing to let TOOL handle this! Unfortunately, good TOOL is scare outside of the latex-world (maybe Zotero? I don't know how commandline friend it is). >> it's not unheard of. I have used it in the past. In LaTeX it's something like: >> >> \citet[C]{k} → A (Y, C) >> \citet[B][]{k} → A (B, Y) >> \citet[B][C]{k} → A (B, Y, C) > I understand, but would it be needed to have both A (Y, C) and A (B, Y) > in the same document? Sure, why not? The citation is often an active part of the sentence in author-year style ("⋯ as AUTHOR-TEAM (see e.g. 1993, chapter 3) ⋯"). In my experience postnotes are much more common, though. > In any case, if we allow @key:tag syntax, then it is possible to do > > [@k:author] [cite: B -@k C] > > and get > > A (B, Y, C) OK. I don't particularly like it. E.g. when I find out that the abstract of @k was misleading and that @KK is the right citation I have to carefully change @k to @KK two places. This is probably minor, though. >> It's nice. @k1 / [pre @k1 post] for text and (pre @k1 post) for >> parentheses expressions is nicer, but that's details. I trust your >> judgment on the technical merit of one idea versus the next. > > [pre @k1 post] is slower to parse. Is that because you'd have to check all occurrences or [⋯]? > (pre @k1 post) is worse because "(" is probably more common than > "[". Really, round brackets should not be used for Org syntax. Probably true. > I haven't much against @k1, but it introduces more false positives than > [@k1]. It could check if k1 is a known key and interpret "@k1" accordingly. In my limited experience with bibtex.el it's only a bit slow to look up a key the first time. But who knows how this scale on very citation-intensive documents. On the interwebs some people use @USERNAME a lot (maybe it's a google thing?). That might speak against this. —Rasmus PS: Here's a quick link "proof-of-concept" (not really) with biblatex only, and cite it textcitation. Documents with this type of syntax are indeed pleasant to the eye. [[cite: pre1 @bohringer14 post1; pre2 @davis14 post2]] → \textcites[pre1][post1]{bohringer14}[pre2][post2]{davis14} (org-add-link-type "cite" 'identity (lambda (path description backend) (funcall 'rasmus/org-bib-format path description backend "textcite"))) (defun rasmus/interpret-cite-string (string) (mapcar (lambda (data) (string-match "\\([^@]*\\)@\\([^ \t]*\\)\\([^@]*\\)" data) (list :key (match-string 2 data) :pre (org-trim (or (match-string 1 data) "")) :post (org-trim (or (match-string 3 data) "")))) (org-split-string string ";"))) (defun rasmus/org-bib-format (path description backend type) (let ((citations (rasmus/interpret-cite-string path))) (if (org-export-derived-backend-p backend 'latex) (format "\\%s%s%s" type (if (> (length citations) 1) "s" "") (mapconcat (lambda (cite) (format "[%s][%s]{%s}" (plist-get cite :pre) (plist-get cite :post) (plist-get cite :key))) citations ""))))) -- Summon the Mothership! ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 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 1 sibling, 1 reply; 104+ messages in thread From: Nicolas Goaziou @ 2015-02-08 16:11 UTC (permalink / raw) To: Rasmus; +Cc: emacs-orgmode Rasmus <rasmus@gmx.us> writes: > In that case I prefer the explicit extraction of keys below, since I don't > understand why [-@k1] is invalid ("in her seminal -@k @k:journal article, > @k:author demonstrated that ⋯"). Probably I don't understand pandoc well > enough... In the initial suggestion @k:journal or @k:author was not possible. In pandoc, AFAIU, in-text means author is outside parenthesis. Nothing fancier. So [-@k1] would mean: "author" is outside parenthesis, but should not be displayed anyway. > It seemed to be the main characteristics of this "locator" that you all > were talking about... See, you are talking again about locator... > Of course not. That would be idiotic. But I would rather try to imitate > the state-of-the-art, which in my book is biblatex, not pandocs. I'm sure biblatex is powerful, but it's clearly not the state-of-the-art in readability, and I guess only `latex' would support its features. Really my concerns are about parsing speed and readability within the document. Heavy biblatex users will eventually have to fall-back to LaTeX-specific syntax at some point anyway. >> If extracting data from an entry is required, then I suggest to extend >> key syntax, e.g.: >> >> @K1:year > > Extracting from a plist-like thingy is easy. I don't understand. > What is hard is proper formatting of things like author, e.g. how many > author to include, adding "and" etc. It would be amazing to let TOOL > handle this! Unfortunately, good TOOL is scare outside of the > latex-world (maybe Zotero? I don't know how commandline friend it is). In any case, this is not the job of Org. At the moment, the goal is to find a readable syntax that allows to present citation information to external processors (biblatex, zotero...). >> I understand, but would it be needed to have both A (Y, C) and A (B, Y) >> in the same document? > > Sure, why not? I don't know. Pandoc doesn't allow it, and, apparently, nobody complained enough to add this feature to Pandoc citations. So, either it is not that useful, or Pandoc citations are hardly used. >> [pre @k1 post] is slower to parse. > > Is that because you'd have to check all occurrences or [⋯]? Correct. Also, it is ambiguous with link syntax (e.g., if pre begin with "[") and footnotes syntax. >> I haven't much against @k1, but it introduces more false positives than >> [@k1]. > > It could check if k1 is a known key and interpret "@k1" accordingly. No it couldn't. Org doesn't know about keys. Or, more precisely, syntax mustn't depend on known keys. I don't want to make the same mistake as export blocks (i.e., #+begin_html doesn't mean the same thing if "ox-html" is loaded or not). @k1, for some subset of chars within k1, would always be parsed a key, valid or not. Again, this is not particularly wrong, but it may introduce false positive from time to time. However, in these cases, we could use entities to escape "@" from the key. Regards, ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-08 16:11 ` Nicolas Goaziou @ 2015-02-09 10:02 ` Rasmus 0 siblings, 0 replies; 104+ messages in thread From: Rasmus @ 2015-02-09 10:02 UTC (permalink / raw) To: emacs-orgmode Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > In the initial suggestion @k:journal or @k:author was not possible. In > pandoc, AFAIU, in-text means author is outside parenthesis. Nothing > fancier. So [-@k1] would mean: "author" is outside parenthesis, but > should not be displayed anyway. If [-@k1] has non-obvious, interchangeable meanings depending on where it happens to be typed I like it even less. "-@" seems flaky and over-complicated IMO. > Really my concerns are about parsing speed and readability within the > document. Agreed. > Heavy biblatex users will eventually have to fall-back to > LaTeX-specific syntax at some point anyway. That's unfortunate. >>> I understand, but would it be needed to have both A (Y, C) and A (B, Y) >>> in the same document? >> >> Sure, why not? > > I don't know. Pandoc doesn't allow it, and, apparently, nobody > complained enough to add this feature to Pandoc citations. So, either it > is not that useful, or Pandoc citations are hardly used. Perhaps Org-Mode users write more sophisticated documents See Tom's post for a more careful analysis of what data a citation contains. > Also, it is ambiguous with link syntax (e.g., if pre begin with "[") and > footnotes syntax. So don't allow footnotes and links within citations. Emphasis is enough. This is a less severe loss than PRENOTE. Also, nested citations can be dropped: e.g. A1 (Y1, POST1, PRE1 A2 Y2 POST2) if that makes parsing easier. >>> I haven't much against @k1, but it introduces more false positives than >>> [@k1]. >> >> It could check if k1 is a known key and interpret "@k1" accordingly. > > No it couldn't. Org doesn't know about keys. Or, more precisely, syntax > mustn't depend on known keys. I don't want to make the same mistake as > export blocks (i.e., #+begin_html doesn't mean the same thing if > "ox-html" is loaded or not). That's valid. I remember having run into this (and maybe even report it as a bug). —Rasmus -- With monopolies the cake is a lie! ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-08 13:40 ` Rasmus 2015-02-08 16:11 ` Nicolas Goaziou @ 2015-02-08 17:02 ` Nicolas Goaziou 2015-02-08 17:29 ` Rasmus 2015-02-10 1:54 ` John Kitchin 1 sibling, 2 replies; 104+ messages in thread From: Nicolas Goaziou @ 2015-02-08 17:02 UTC (permalink / raw) To: Rasmus; +Cc: emacs-orgmode Rasmus <rasmus@gmx.us> writes: > PS: Here's a quick link "proof-of-concept" (not really) with biblatex > only, and cite it textcitation. Documents with this type of syntax are > indeed pleasant to the eye. > > [[cite: pre1 @bohringer14 post1; pre2 @davis14 post2]] As pointed out already, the double square bracket is not needed, and can introduce ambiguity with links. I'm fine with [cite: pre1 @bohringer14 post1; pre2 @davis14 post2] but how do you distinguish between in-text and in-parenthesis? Also, how do you extract year or journal from the key (since you suggested these features in the first place)? Regards, ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-08 17:02 ` Nicolas Goaziou @ 2015-02-08 17:29 ` Rasmus 2015-02-10 1:54 ` John Kitchin 1 sibling, 0 replies; 104+ messages in thread From: Rasmus @ 2015-02-08 17:29 UTC (permalink / raw) To: emacs-orgmode Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > Rasmus <rasmus@gmx.us> writes: > >> PS: Here's a quick link "proof-of-concept" (not really) with biblatex >> only, and cite it textcitation. Documents with this type of syntax are >> indeed pleasant to the eye. >> >> [[cite: pre1 @bohringer14 post1; pre2 @davis14 post2]] > > As pointed out already, the double square bracket is not needed, and can > introduce ambiguity with links. Hence the double warning: >>"proof-of-concept" (not really) > I'm fine with > > [cite: pre1 @bohringer14 post1; pre2 @davis14 post2] > > but how do you distinguish between in-text and in-parenthesis? In the above with "citet" and "citep" or similar. The above was only meant to try out the [PRE @KEY POST; PRE @KEY POST] format and show that it indeed is nice. That's all. > Also, how do you extract year or journal from the key (since you > suggested these features in the first place)? Actually, I first suggested only having /types/ of citations. Richard suggested extraction of fields. —Rasmus -- The right to be left alone is a human right ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 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 1 sibling, 1 reply; 104+ messages in thread From: John Kitchin @ 2015-02-10 1:54 UTC (permalink / raw) To: Nicolas Goaziou; +Cc: emacs-orgmode, Rasmus Nicolas Goaziou writes: > Rasmus <rasmus@gmx.us> writes: > >> PS: Here's a quick link "proof-of-concept" (not really) with biblatex >> only, and cite it textcitation. Documents with this type of syntax are >> indeed pleasant to the eye. >> >> [[cite: pre1 @bohringer14 post1; pre2 @davis14 post2]] > > As pointed out already, the double square bracket is not needed, and can > introduce ambiguity with links. > > I'm fine with > > [cite: pre1 @bohringer14 post1; pre2 @davis14 post2] Why cannot there be a list of acceptable keywords eg [citenum: [citeyear: [citeauthor: which a backend would be responsible for handling, including a default handler for unknown keywords? > > but how do you distinguish between in-text and in-parenthesis? > > Also, how do you extract year or journal from the key (since you > suggested these features in the first place)? > > > Regards, -- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-10 1:54 ` John Kitchin @ 2015-02-10 8:49 ` Nicolas Goaziou 2015-02-10 9:20 ` Rasmus 2015-02-10 16:04 ` Richard Lawrence 0 siblings, 2 replies; 104+ messages in thread From: Nicolas Goaziou @ 2015-02-10 8:49 UTC (permalink / raw) To: John Kitchin; +Cc: emacs-orgmode, Rasmus John Kitchin <jkitchin@andrew.cmu.edu> writes: > Why cannot there be a list of acceptable keywords eg > > [citenum: > [citeyear: > [citeauthor: > > which a backend would be responsible for handling, including a default > handler for unknown keywords? It has the same problem as [pre @key post] syntax: it is slower to parser. This is because you cannot know beforehand the keyword, so you have to check almost every [...] in the document. Another option is to mimic custom links, if that's what you're thinking of, which means to store every user-defined keyword in a variable and build a regexp out of it. I dislike it even more because the document is not portable anymore, as it requires you to share your custom keywords. If year, or author, are needed, I suggested to append some optional parameter to the key, e.g., [cite: pre @key:year post] Note that it rules out colons from KEY syntax (but we can use another less common character, e.g. "|"). Regards, ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-10 8:49 ` Nicolas Goaziou @ 2015-02-10 9:20 ` Rasmus 2015-02-10 10:05 ` Nicolas Goaziou ` (3 more replies) 2015-02-10 16:04 ` Richard Lawrence 1 sibling, 4 replies; 104+ messages in thread From: Rasmus @ 2015-02-10 9:20 UTC (permalink / raw) To: emacs-orgmode Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > Another option is to mimic custom links, if that's what you're thinking > of, which means to store every user-defined keyword in a variable and > build a regexp out of it. I dislike it even more because the document is > not portable anymore, as it requires you to share your custom keywords. So, the (opinionated) useful defaults in biblatex are: cite(s), parencite(s), footcite(s), texcite(s), fullcite, footfullcite, nocite Citation types for extracting parts: citeauthor, citetitle, citeyear, citedate, citeurl, From natbib: citet (== textcite), citep (== parencite). Keys I don't care about, since they are quite biblatex specific: smartcite, autocide, parentcite*, uppercase variants. *volcites(s) (any objections?) In natbib: citealt, citalp, starred variants So that's 17 support keys and two aliases. I guess this would deter most authors from needing custom styles. > Note that it rules out colons from KEY syntax (but we can use another > less common character, e.g. "|"). The default bibtex.el style generates keys like "%A%y:%t", so I think ":" is no good, appealing as it is. —Rasmus Footnotes: ¹ which is just [cite: common pre; pre1 @k1 post1; ⋯; preN @kN postN; common post] -- Er du tosset for noge' lårt! ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 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 ` (2 subsequent siblings) 3 siblings, 2 replies; 104+ messages in thread From: Nicolas Goaziou @ 2015-02-10 10:05 UTC (permalink / raw) To: Rasmus; +Cc: emacs-orgmode Rasmus <rasmus@gmx.us> writes: > So, the (opinionated) useful defaults in biblatex are: > cite(s), parencite(s), footcite(s), texcite(s), fullcite, > footfullcite, nocite Isn't footcite/footfullcite a choice made at the document's level instead of per citation? If that's the case, it could go in a keyword, e.g., #+LATEX_CITATION: :style footcite > Citation types for extracting parts: > citeauthor, citetitle, citeyear, citedate, citeurl, Can't this be attached to the key, as a filter? > From natbib: > citet (== textcite), citep (== parencite). > > Keys I don't care about, since they are quite biblatex specific: > smartcite, autocide, parentcite*, uppercase variants. *volcites(s) (any objections?) > > In natbib: > citealt, citalp, starred variants > > So that's 17 support keys and two aliases. I guess this would deter most > authors from needing custom styles. Then what about [cite:command: common pre; pre1 @key1 post1; ... ; common post] where command is anything matching is constituted of alphanumeric characters only (this is just a guess, a proper regexp is yet to be determined). LaTeX back-end will see "command" and less advanced back-ends "cite", so that the same document can be exported through multiple back-ends. Also [cite: common pre; pre1 @key1 post1; ... ; common post] would be equivalent to [cite:default_command: common pre; pre1 @key1 post1; ... ; common post] where "default_command" would be set in a defcustom within "ox-latex.el". However, this syntax doesn't handle in-text citation for other back-ends than LaTeX. Hence the [@key post] proposal, or even @key [post], which I find more elegant than [citet: ...] / [citep: ...] > The default bibtex.el style generates keys like "%A%y:%t", so I think ":" > is no good, appealing as it is. Then "/" (filter) or "|" (pipe). Regards, ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-10 10:05 ` Nicolas Goaziou @ 2015-02-10 10:36 ` Rasmus 2015-02-10 10:53 ` Andreas Leha 1 sibling, 0 replies; 104+ messages in thread From: Rasmus @ 2015-02-10 10:36 UTC (permalink / raw) To: emacs-orgmode Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: >> So, the (opinionated) useful defaults in biblatex are: >> cite(s), parencite(s), footcite(s), texcite(s), fullcite, >> footfullcite, nocite > > Isn't footcite/footfullcite a choice made at the document's level > instead of per citation? If that's the case, it could go in a keyword, > e.g., > > #+LATEX_CITATION: :style footcite I guess you'd distinguish between fullcite and footfullcite then? I have only ever used fullcite for illustrative purposes, e.g. demonstrating the citation style. And I guess footcite is an alternative to {textcite, parencite}. >> Citation types for extracting parts: >> citeauthor, citetitle, citeyear, citedate, citeurl, > > Can't this be attached to the key, as a filter? Do you mean an ox-filter here or the slash "/"? It's more complex and but probably also prettier. "[@K/author]" looks nice. I haven't seen "/" in bibtex keys. In any case, an ox-filter is no good. You sometimes need it for constructing sentences, e.g. I like to keep out the year when it's obvious to ease reading:: A (Y) showed foo. Note that A assumed that ... > Then what about > > [cite:command: common pre; pre1 @key1 post1; ... ; common post] Could work. > where command is anything matching is constituted of alphanumeric > characters only (this is just a guess, a proper regexp is yet to be > determined). > > LaTeX back-end will see "command" and less advanced back-ends "cite", so > that the same document can be exported through multiple back-ends. OK. But what if I want to use, say, my "genitive" citation, "A's (Y)", in html? This is perhaps a question of whether we'll manage to find a tool to handle this for us, or we'll have to do it lisp. > However, this syntax doesn't handle in-text citation for other back-ends > than LaTeX. Hence the [@key post] proposal, or even @key [post], which > I find more elegant than > > [citet: ...] / [citep: ...] So [@key post] is equivalent to [cite:default_command: @key post]. Does it scale to an arbitrary length of keys, e.g. [@k1 post1; ⋯; @kN postN]? Could [@: pre1 @k1 post1; ⋯; preN @kN postN] be used if you need prenotes? Or only [cite:⋯]. Would you "expand" all short citations in the early ox parsing? I don't care for "@key [post]" >> The default bibtex.el style generates keys like "%A%y:%t", so I think ":" >> is no good, appealing as it is. > > Then "/" (filter) or "|" (pipe). Why do you write "filter" after the slash? Am I supposed to think about ox-filters? —Rasmus -- Governments should be afraid of their people ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-10 10:05 ` Nicolas Goaziou 2015-02-10 10:36 ` Rasmus @ 2015-02-10 10:53 ` Andreas Leha 1 sibling, 0 replies; 104+ messages in thread From: Andreas Leha @ 2015-02-10 10:53 UTC (permalink / raw) To: emacs-orgmode Hi, Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > Rasmus <rasmus@gmx.us> writes: > >> So, the (opinionated) useful defaults in biblatex are: >> cite(s), parencite(s), footcite(s), texcite(s), fullcite, >> footfullcite, nocite > > Isn't footcite/footfullcite a choice made at the document's level > instead of per citation? If that's the case, it could go in a keyword, > e.g., > > #+LATEX_CITATION: :style footcite > I have only used footcite in beamer presentations so far. It is quite common to show a fullframe image and have a footcitation. But I also mixed them with parencites, when a specicic item on the page is attributed to a given reference. Maybe one could debate about using something other that footcite for the former use case. So, I don't have too strong an opinion here. I just wanted to throw in a use-case where this decision was not made on the per-document level. Regards, Andreas ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-10 9:20 ` Rasmus 2015-02-10 10:05 ` Nicolas Goaziou @ 2015-02-10 15:03 ` John Kitchin 2015-02-10 15:54 ` Rasmus 2015-02-10 16:22 ` Richard Lawrence 2015-02-11 10:47 ` Aaron Ecay 3 siblings, 1 reply; 104+ messages in thread From: John Kitchin @ 2015-02-10 15:03 UTC (permalink / raw) To: Rasmus; +Cc: emacs-orgmode Rasmus writes: > Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > >> Another option is to mimic custom links, if that's what you're thinking >> of, which means to store every user-defined keyword in a variable and >> build a regexp out of it. I dislike it even more because the document is >> not portable anymore, as it requires you to share your custom keywords. > > So, the (opinionated) useful defaults in biblatex are: > cite(s), parencite(s), footcite(s), texcite(s), fullcite, > footfullcite, nocite > > Citation types for extracting parts: > citeauthor, citetitle, citeyear, citedate, citeurl, If citenum was also in that list, then I agree. It is not that likely there is little need for custom style. > > From natbib: > citet (== textcite), citep (== parencite). > > Keys I don't care about, since they are quite biblatex specific: > smartcite, autocide, parentcite*, uppercase variants. *volcites(s) > (any objections?) None from me. > > In natbib: > citealt, citalp, starred variants > > So that's 17 support keys and two aliases. I guess this would deter most > authors from needing custom styles. > >> Note that it rules out colons from KEY syntax (but we can use another >> less common character, e.g. "|"). > > The default bibtex.el style generates keys like "%A%y:%t", so I think ":" > is no good, appealing as it is. > > —Rasmus > > > Footnotes: > ¹ which is just > [cite: common pre; pre1 @k1 post1; ⋯; preN @kN postN; common post] -- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-10 15:03 ` John Kitchin @ 2015-02-10 15:54 ` Rasmus 2015-02-10 16:14 ` John Kitchin 0 siblings, 1 reply; 104+ messages in thread From: Rasmus @ 2015-02-10 15:54 UTC (permalink / raw) To: emacs-orgmode John Kitchin <jkitchin@andrew.cmu.edu> writes: > Rasmus writes: > >> Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: >> >>> Another option is to mimic custom links, if that's what you're thinking >>> of, which means to store every user-defined keyword in a variable and >>> build a regexp out of it. I dislike it even more because the document is >>> not portable anymore, as it requires you to share your custom keywords. >> >> So, the (opinionated) useful defaults in biblatex are: >> cite(s), parencite(s), footcite(s), texcite(s), fullcite, >> footfullcite, nocite >> >> Citation types for extracting parts: >> citeauthor, citetitle, citeyear, citedate, citeurl, > > If citenum was also in that list, then I agree. It is not that likely > there is little need for custom style. Ok, sorry I didn't check the natbib manual carefully. AFAIK you get numbers with biblatex without any author-year options so: \cite{k}, \parencite{k} → [Num] \textcite{k} → A [Num] Is this similar to \numcite? From natbib is seems to be intended for people who use author-year, but still wants numbers. Is that correct? —Rasmus -- Vote for proprietary math! ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-10 15:54 ` Rasmus @ 2015-02-10 16:14 ` John Kitchin 0 siblings, 0 replies; 104+ messages in thread From: John Kitchin @ 2015-02-10 16:14 UTC (permalink / raw) To: Rasmus; +Cc: emacs-orgmode > > Ok, sorry I didn't check the natbib manual carefully. AFAIK you get > numbers with biblatex without any author-year options so: > > \cite{k}, \parencite{k} → [Num] > \textcite{k} → A [Num] > > Is this similar to \numcite? From natbib is seems to be intended for > people who use author-year, but still wants numbers. Is that correct? I don't think so. It is just the number that the citation has in the bibliography, not in brackets or parens, and usually not superscripted. We use it to get something like this in the exported document: "This is seen in Ref. 9" With the other commands you get something like: "This is seen in Ref. [9]" or if you have a superscripted style: "This is seen in Ref. ^9" > > —Rasmus -- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-10 9:20 ` Rasmus 2015-02-10 10:05 ` Nicolas Goaziou 2015-02-10 15:03 ` John Kitchin @ 2015-02-10 16:22 ` Richard Lawrence 2015-02-10 16:44 ` Stefan Nobis 2015-02-11 10:47 ` Aaron Ecay 3 siblings, 1 reply; 104+ messages in thread From: Richard Lawrence @ 2015-02-10 16:22 UTC (permalink / raw) To: emacs-orgmode Rasmus <rasmus@gmx.us> writes: > So, the (opinionated) useful defaults in biblatex are: > cite(s), parencite(s), footcite(s), texcite(s), fullcite, > footfullcite, nocite So that is to say we need to be able to express the following distinctions (did I miss anything?): - in-text vs. parenthetical (parencite vs. textcite) - normal citation vs. multi-cite citation with common pre and post notes (-s variants) - producing a full bibliography entry, or not (-full- variants) - footnoted, or not (foot- variants) - producing output, or not (nocite) I am not sure about that the last two need to be represented in citation syntax itself. Do we need a separate way of indicating that a citation should appear in a footnote? Org already has footnote syntax...can't authors just put citations in an Org footnote? As for nocites, I liked your earlier suggestion that we have a #+NOCITE keyword (which could be specified multiple times). So I am not sure this needs to be in citation syntax proper, either. > Citation types for extracting parts: > citeauthor, citetitle, citeyear, citedate, citeurl, As I've said in other posts, I think maybe we should not think of these as `citation' commands and thus don't need to represent them in citation syntax. Instead I suggest we give authors tools to insert this information into documents directly. Best, Richard ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-10 16:22 ` Richard Lawrence @ 2015-02-10 16:44 ` Stefan Nobis 2015-02-11 2:07 ` Richard Lawrence 0 siblings, 1 reply; 104+ messages in thread From: Stefan Nobis @ 2015-02-10 16:44 UTC (permalink / raw) To: emacs-orgmode Richard Lawrence <richard.lawrence@berkeley.edu> writes: > Rasmus <rasmus@gmx.us> writes: >> Citation types for extracting parts: >> citeauthor, citetitle, citeyear, citedate, citeurl, > As I've said in other posts, I think maybe we should not think of > these as `citation' commands and thus don't need to represent them > in citation syntax. Instead I suggest we give authors tools to > insert this information into documents directly. This would render changes quite hard. Maybe I misspelled something in the database or I choosed the wrong reference: With above part extractors all I have to do at most is to replace the @key. But if data is copied verbatim, I have to search for all years, author names, titles, urls etc. Very error prone. I think, even citeauthor or citeurl are citations. A normal "\cite" command is nothing else than a short reference to all the detail data in the bibliography. And sometimes context allows to make these references even shorter, by only using the author name or a year etc. I don't really see the distinction between citation and indirection - each citation is as much an indirection as e.g. citeyear is. -- Until the next mail..., Stefan. ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-10 16:44 ` Stefan Nobis @ 2015-02-11 2:07 ` Richard Lawrence 2015-02-11 10:19 ` Stefan Nobis 0 siblings, 1 reply; 104+ messages in thread From: Richard Lawrence @ 2015-02-11 2:07 UTC (permalink / raw) To: emacs-orgmode Hi Stefan, Stefan Nobis <stefan-ml@snobis.de> writes: > Richard Lawrence <richard.lawrence@berkeley.edu> writes: > >> Rasmus <rasmus@gmx.us> writes: > >>> Citation types for extracting parts: >>> citeauthor, citetitle, citeyear, citedate, citeurl, > >> As I've said in other posts, I think maybe we should not think of >> these as `citation' commands and thus don't need to represent them >> in citation syntax. Instead I suggest we give authors tools to >> insert this information into documents directly. > > This would render changes quite hard. Maybe I misspelled something in > the database or I choosed the wrong reference: With above part > extractors all I have to do at most is to replace the @key. But if > data is copied verbatim, I have to search for all years, author names, > titles, urls etc. Very error prone. That's true, and I realize that's a disadvantage. (Though I think these are errors that, for the most part, normal proof-reading will correct anyway.) I know these commands are convenient, and that not having them would introduce this class of errors, but the question is whether they are so important that it's worth providing an equivalent for them in non-LaTeX backends. For my part, it seems like the convenience is not worth the effort that would be required to make the exporter handle these correctly in general. (For example, it seems the exporter would then have to worry about things like quoting and emphasizing document titles -- which means worrying about context, document type, locale and language, quotation styles, etc.) But maybe I'm wrong; can you make the case that it is indeed worth it? Best, Richard ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-11 2:07 ` Richard Lawrence @ 2015-02-11 10:19 ` Stefan Nobis 2015-02-11 16:51 ` Richard Lawrence 0 siblings, 1 reply; 104+ messages in thread From: Stefan Nobis @ 2015-02-11 10:19 UTC (permalink / raw) To: emacs-orgmode Richard Lawrence <richard.lawrence@berkeley.edu> writes: > I know these commands are convenient, and that not having them would > introduce this class of errors, but the question is whether they are > so important that it's worth providing an equivalent for them in > non-LaTeX backends. Hmmm... I don't see this as a big problem. Either the exporter or some tool has to be able to read from the bibliography database and has to understand at least parts of the available fields (e.g. author and year to enable author-year style citations). Based on this it should be easy to only output some of the fields (e.g. only author). > For my part, it seems like the convenience is not worth the effort > that would be required to make the exporter handle these correctly > in general. (For example, it seems the exporter would then have to > worry about things like quoting and emphasizing document titles -- > which means worrying about context, document type, locale and > language, quotation styles, etc.) Does the exporter really habe to worry about these things? But anyway: Some tool is needed to generate the bibliography with all its data - this tool has to handle all these details and therefore it should be not too hard to get partial data from it. BTW: I don't think any special formatting should be required - ASCII or even HTML would never look the same as a LaTeX generated PDF. So minor drawbacks are IMHO not as important as to be able to express important details in the source. I think, the syntax should be quite flexible (at least easy to extend, with compact, nice looking extension-syntax). If some backend lacks support for some feature, maybe someone finds the time to fix it (and then org-mode would rule the world :)). Otherwise a simple fallback (default citation style, output citation string unchanged,...) will be used. -- Until the next mail..., Stefan. ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-11 10:19 ` Stefan Nobis @ 2015-02-11 16:51 ` Richard Lawrence 2015-02-13 2:31 ` Matt Price 0 siblings, 1 reply; 104+ messages in thread From: Richard Lawrence @ 2015-02-11 16:51 UTC (permalink / raw) To: emacs-orgmode Stefan Nobis <stefan-ml@snobis.de> writes: > Richard Lawrence <richard.lawrence@berkeley.edu> writes: > >> I know these commands are convenient, and that not having them would >> introduce this class of errors, but the question is whether they are >> so important that it's worth providing an equivalent for them in >> non-LaTeX backends. > > Hmmm... I don't see this as a big problem. Either the exporter or some > tool has to be able to read from the bibliography database and has to > understand at least parts of the available fields (e.g. author and > year to enable author-year style citations). Based on this it should > be easy to only output some of the fields (e.g. only author). Well, a lot of the time, it probably is. But what if the author's name is, say, `John von Neumann' (to use a recently-mentioned example)? Then the exporter needs to figure out (1) whether to output the full name or just the last name; if the latter, (2) whether the last name is `Neumann' or `von Neumann'; and if the latter, (3) how to capitalize the last name in the context where it appears. > But anyway: Some tool is needed to generate the bibliography with all > its data - this tool has to handle all these details and therefore it > should be not too hard to get partial data from it. That is true. Some tool does have to do this, and there are tools that are designed for it outside of LaTeX (like CSL processors) that Org could rely on. But I really don't have any idea how easy it would be to make the exporter interact with them in a fine-grained way like this, or what constraints they would place on citation support in Org. Does anyone have a sense of this? > BTW: I don't think any special formatting should be required - ASCII > or even HTML would never look the same as a LaTeX generated PDF. So > minor drawbacks are IMHO not as important as to be able to express > important details in the source. That is true. The question we are trying to reach a consensus on is just what constitutes `important'. :) > I think, the syntax should be quite flexible (at least easy to extend, > with compact, nice looking extension-syntax). Yes, I agree. Still, as I said elsewhere, I think it's really important to draw a clear line between the `main' citation syntax, which encodes features that are important enough to support fully on all backends, and the syntax for extensions, which encode features that might only work on some backends or in one's personal setup. I think this is important for document portability and so authors and editors know what they can rely on. I also think it's important because I suspect the only way we're going to get a working Org citation syntax is if we try very hard to limit what goes into the first category to something (much) less than `everything we can now do with LaTeX'. We can always move more stuff into the first category later on, if it becomes clear that it's needed. I certainly don't mean to be telling people that the LaTeX features they are now relying on are not useful, or not important. (I apologize if I'm coming off that way!) I just think some of them might not be *so* useful that they are worth the effort to fully support on other backends, at least initially. > If some backend lacks support for some feature, maybe someone finds > the time to fix it (and then org-mode would rule the world > :)). Otherwise a simple fallback (default citation style, output > citation string unchanged,...) will be used. IMHO, this is really only acceptable for features that fall in the second category. If there are `core' features of Org citations that don't work on all backends, then there isn't really anything gained by using Org citations instead of just sticking with LaTeX (or another backend-specific citation format). I am personally totally fine with a syntax that allows you to say things like: [cite: see @Doe99 for more. :latex-command SomeEsotericCitationCommand] or [cite: see @Doe99 for more. :custom-type my-custom-type] as long as it is obvious to an author that these citations might not export correctly on all backends, in contrast to a citation makes use of only the `main' Org citation syntax. Individual authors are in a better position to decide when that tradeoff is acceptable to them. Best, Richard ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-11 16:51 ` Richard Lawrence @ 2015-02-13 2:31 ` Matt Price 0 siblings, 0 replies; 104+ messages in thread From: Matt Price @ 2015-02-13 2:31 UTC (permalink / raw) To: Org Mode, Erik Hetzner [-- Attachment #1: Type: text/plain, Size: 1010 bytes --] On Wed, Feb 11, 2015 at 11:51 AM, Richard Lawrence < richard.lawrence@berkeley.edu> wrote: > Stefan Nobis <stefan-ml@snobis.de> writes: > > > Richard Lawrence <richard.lawrence@berkeley.edu> writes: > > > > But anyway: Some tool is needed to generate the bibliography with all > > its data - this tool has to handle all these details and therefore it > > should be not too hard to get partial data from it. > > That is true. Some tool does have to do this, and there are tools that > are designed for it outside of LaTeX (like CSL processors) that Org > could rely on. But I really don't have any idea how easy it would be to > make the exporter interact with them in a fine-grained way like this, or > what constraints they would place on citation support in Org. Does > anyone have a sense of this? > > I think Erik Hetzner knows a lot about this -- he has done all that work on zotxt, which involves talking to Zotero's internal citeproc.js, which is, I think, the most widely-used CSL processor. Matt [-- Attachment #2: Type: text/html, Size: 1598 bytes --] ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-10 9:20 ` Rasmus ` (2 preceding siblings ...) 2015-02-10 16:22 ` Richard Lawrence @ 2015-02-11 10:47 ` Aaron Ecay 2015-02-11 11:32 ` Rasmus 3 siblings, 1 reply; 104+ messages in thread From: Aaron Ecay @ 2015-02-11 10:47 UTC (permalink / raw) To: Rasmus, emacs-orgmode Hi Rasmus, 2015ko otsailak 10an, Rasmus-ek idatzi zuen: [...] > Keys I don't care about, since they are quite biblatex specific: > smartcite, autocide, parentcite*, uppercase variants. *volcites(s) (any objections?) Smartcite is like footcite in regular text and parencite in footnotes. I think we probably want functionality like that, but it should be in lisp so that it works for all backends. The uppercase variants are important for correctness with names like “von Neumann”. When we write a sentence which begins “Von Neumann (19xx) claimed that...” the “von” must be capitalized, though it should be lowercase in non-sentence-initial position. Of course, we don’t need to copy the biblatex convention of capitalized command names to represent this in org. Perhaps a :capitalize t property could be added, assuming one of the proposals is adopted that allows the inclusion of a property list in the citation. -- Aaron Ecay ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-11 10:47 ` Aaron Ecay @ 2015-02-11 11:32 ` Rasmus 0 siblings, 0 replies; 104+ messages in thread From: Rasmus @ 2015-02-11 11:32 UTC (permalink / raw) To: emacs-orgmode Aaron Ecay <aaronecay@gmail.com> writes: > The uppercase variants are important for correctness with names like > “von Neumann”. When we write a sentence which begins “Von Neumann > (19xx) claimed that...” the “von” must be capitalized, though it > should be lowercase in non-sentence-initial position. Of course, we > don’t need to copy the biblatex convention of capitalized command > names to represent this in org. Perhaps a :capitalize t property > could be added, assuming one of the proposals is adopted that allows > the inclusion of a property list in the citation. So I guess Org cannot be used for game theory or CS papers. . . I guess, in ox-latex it should use magically use the uppercase variants depending on sentence-end or similar voodoo. Like textcites would automatically be used if there's more than one key. Anyway, you are right. But they should still not be exposed in the case a limited set of biblatex keys are adopted. —Rasmus -- In theory, practice and theory are the same. In practice they are not ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-10 8:49 ` Nicolas Goaziou 2015-02-10 9:20 ` Rasmus @ 2015-02-10 16:04 ` Richard Lawrence 2015-02-11 2:10 ` Thomas S. Dye 1 sibling, 1 reply; 104+ messages in thread From: Richard Lawrence @ 2015-02-10 16:04 UTC (permalink / raw) To: emacs-orgmode Hi Nicolas and all, Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > If year, or author, are needed, I suggested to append some optional > parameter to the key, e.g., > > [cite: pre @key:year post] I proposed exactly this earlier in the thread, but then I came to the conclusion that we shouldn't do it. Conceptually, something like `@key:year' isn't a citation, but merely indirection, because it doesn't actually provide the reader of the rendered document enough information to look up the reference. I think we can cut down on the number of `citation' types that the syntax should support if we distinguish citations from indirection like this. Practically speaking, I think this would also be too hard to implement correctly. Once you can say things like "@key:title", you have to worry about how this will be formatted in the exported document (in quotes? italics? etc.), and it's just not clear how to do that in general. Instead, I suggest that Org supports this kind of indirection via other means, perhaps by providing functions to look up the required data and insert it directly into the text, where the author can format it as desired. So I would suggest that we *don't* try to capture what LaTeX does with \citeyear, \citeauthor, etc. in the citation syntax. Best, Richard ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-10 16:04 ` Richard Lawrence @ 2015-02-11 2:10 ` Thomas S. Dye 2015-02-11 2:48 ` Richard Lawrence 0 siblings, 1 reply; 104+ messages in thread From: Thomas S. Dye @ 2015-02-11 2:10 UTC (permalink / raw) To: Richard Lawrence; +Cc: emacs-orgmode Richard Lawrence <richard.lawrence@berkeley.edu> writes: > Conceptually, something like `@key:year' isn't a citation, but merely > indirection, because it doesn't actually provide the reader of the > rendered document enough information to look up the reference. I think > we can cut down on the number of `citation' types that the syntax should > support if we distinguish citations from indirection like this. I don't think this concept holds in the LaTeX world. I'm fairly certain that citation commands like \citeauthor and \citeyear create an entry in the bibliography. All the best, Tom -- Thomas S. Dye http://www.tsdye.com ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-11 2:10 ` Thomas S. Dye @ 2015-02-11 2:48 ` Richard Lawrence 2015-02-11 3:53 ` Thomas S. Dye 0 siblings, 1 reply; 104+ messages in thread From: Richard Lawrence @ 2015-02-11 2:48 UTC (permalink / raw) To: emacs-orgmode Hi Tom and all, tsd@tsdye.com (Thomas S. Dye) writes: > Richard Lawrence <richard.lawrence@berkeley.edu> writes: > >> Conceptually, something like `@key:year' isn't a citation, but merely >> indirection, because it doesn't actually provide the reader of the >> rendered document enough information to look up the reference. I think >> we can cut down on the number of `citation' types that the syntax should >> support if we distinguish citations from indirection like this. > > I don't think this concept holds in the LaTeX world. I'm fairly certain > that citation commands like \citeauthor and \citeyear create an entry in > the bibliography. Fair enough. I just meant that something like "As the reader may verify, \citeyear{Doe99} fails to make any progress on this issue." doesn't render into a form that allows the reader to know which work is being talked about, even if that work appears in the bibliography; the author has to supply more context for it to make sense. Thus, \citeyear and friends are more of a convenience for the author than commands to produce a (complete) citation that the reader can use. But I don't really care so much about the right definition of "citation" as about the fact that supporting an equivalent for these commands in non-LaTeX backends strikes me as really hard, which makes me wonder if the effort required to support them is worth the convenience gained by representing them in the main citation syntax. It seems like it would be hard because providing equivalents for things like \citeauthor or \citetitle in, say, HTML would require the exporter to know a *lot* about how to format names and titles in the context where those citations appear. This is a very non-trivial problem. But perhaps the exporter could rely on an external CSL processor for things like this? I don't really know if CSL can handle this kind of `partial' citation -- if it can, and if CSL is part of the plan for exporting citations in non-LaTeX backends, then I have no real objection to representing them in the citation syntax, because they are indeed convenient. Best, Richard ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-11 2:48 ` Richard Lawrence @ 2015-02-11 3:53 ` Thomas S. Dye 0 siblings, 0 replies; 104+ messages in thread From: Thomas S. Dye @ 2015-02-11 3:53 UTC (permalink / raw) To: Richard Lawrence; +Cc: emacs-orgmode Richard Lawrence <richard.lawrence@berkeley.edu> writes: > Hi Tom and all, > > tsd@tsdye.com (Thomas S. Dye) writes: > >> Richard Lawrence <richard.lawrence@berkeley.edu> writes: >> >>> Conceptually, something like `@key:year' isn't a citation, but merely >>> indirection, because it doesn't actually provide the reader of the >>> rendered document enough information to look up the reference. I think >>> we can cut down on the number of `citation' types that the syntax should >>> support if we distinguish citations from indirection like this. >> >> I don't think this concept holds in the LaTeX world. I'm fairly certain >> that citation commands like \citeauthor and \citeyear create an entry in >> the bibliography. > > Fair enough. I just meant that something like > > "As the reader may verify, \citeyear{Doe99} fails to make any progress > on this issue." > > doesn't render into a form that allows the reader to know which work is > being talked about, even if that work appears in the bibliography; the > author has to supply more context for it to make sense. Thus, \citeyear > and friends are more of a convenience for the author than commands to > produce a (complete) citation that the reader can use. > > But I don't really care so much about the right definition of "citation" > as about the fact that supporting an equivalent for these commands in > non-LaTeX backends strikes me as really hard, which makes me wonder if > the effort required to support them is worth the convenience gained by > representing them in the main citation syntax. > > It seems like it would be hard because providing equivalents for things > like \citeauthor or \citetitle in, say, HTML would require the exporter > to know a *lot* about how to format names and titles in the context > where those citations appear. This is a very non-trivial problem. > > But perhaps the exporter could rely on an external CSL processor for > things like this? I don't really know if CSL can handle this kind of > `partial' citation -- if it can, and if CSL is part of the plan for > exporting citations in non-LaTeX backends, then I have no real objection > to representing them in the citation syntax, because they are indeed > convenient. > > Best, > Richard Couldn't the syntax be extensible so it accommodates any citation command? Perhaps each backend could support an appropriate set of commands and fallback to a default if the user tries an unsupported command? If a LaTeX user wants all the citation commands for an html document, there are converters such as tex4ht. Org mode doesn't need to reinvent that wheel. I expect that ox-latex will often need to support new citation commands as the humanities continue to develop styles based on biblatex. Perhaps we should view extensible syntax as "backend extensible" rather than "user extensible"? All the best, Tom -- Thomas S. Dye http://www.tsdye.com ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-06 10:27 ` Nicolas Goaziou 2015-02-06 22:41 ` Richard Lawrence @ 2015-02-06 23:37 ` Rasmus 1 sibling, 0 replies; 104+ messages in thread From: Rasmus @ 2015-02-06 23:37 UTC (permalink / raw) To: emacs-orgmode Hi, Nicolas Goaziou <mail@nicolasgoaziou.fr> writes: > - full-citation (aka individual citation), with, in addition to the > properties above, :prefix and :suffix, both being parsed string. Full-citation is confusing. A full citation is (to me) what you have in the bibliography. > Since full citations can only exist in a bracketed citation, there is no > reason to create a third object type for the latter. It acts as a mere > container only useful for lexer. Maybe I'm misunderstanding, but if you by bracketed citation mean a parentheses expression your claim in false. This is a valid and common enough citation: Smith (see e.g. 1991, pp. 31) \textcite[see in particular][pp. 31]{smith} On the other hand if "bracketed" refers to how it's written in the source, how do I get both AUTHOR (PRE YEAR SUF) and (PRE AUTHOR, YEAR SUF) citations in the same document? > . For example, > Eric's parser chose the former, which is good, but also disallows square > brackets in prefix, which rules out some objects from this location > (mainly links and footnotes). \textcite[test\footnote{test}][]{key} won't compile either, though you could probably work around if you really wanted to. > Of course I understand the need for compatibility with existing Pandoc > syntax, but I wouldn't want us to shoot ourselves in the foot. Even if > we don't use "cite:" markup, I think we should carefully specify current > syntax to avoid loopholes. I /don't/ understand why comparability with pandoc is needed. For better or worse Org is a different markup. How would cite: work with prefix, posfix and citationtype? —Rasmus -- There are known knowns; there are things we know that we know ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-04 16:45 ` Richard Lawrence 2015-02-06 10:27 ` Nicolas Goaziou @ 2015-02-06 23:16 ` Rasmus 1 sibling, 0 replies; 104+ messages in thread From: Rasmus @ 2015-02-06 23:16 UTC (permalink / raw) To: emacs-orgmode Hi, I realize you list Pandoc features, but I will still point out some issues with this syntax. Richard Lawrence <richard.lawrence@berkeley.edu> writes: > Specifically I think we need the following categories, all of which > would be objects: > - key > - prefix / pre-text > - suffix / post-text > - locator What is the point of an locator? Why not just suffix? Presumably, if I want to put pp. in front of my page numbers or whatever I can do it with a filter or manually. > These should have a grammar like the following, based on my > (reverse-engineered) understanding of the Pandoc syntax for citations: > ... > - A key optionally begins with '-', and obligatorily contains '@' > followed by a string of charcters which begins with a letter or '_', > and may contain alphanumeric characters and the following internal > punctuation characters: > :.#$%&-+?<>~/ I fail to understand this feature. The Pandoc manual uses something like this an example: A said X in @-key; which I think is bad practice. In latex you'd write \citeauthor{key} said X in \citeyear{key}. Unless we can access other keys, why adopt a special operator for year? Why not title or author which are e.g. useful when using number citations?q > - An unbracketed citation consists of a key, optionally followed by a > locator which is enclosed in '[' ']' This is another, to me, illogical structure. [A @key B] @key [B] It is not obvious that [B] relates to @key in the second example. –Rasmus -- This message is brought to you by the department of redundant departments ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-04 12:06 ` Nicolas Goaziou 2015-02-04 16:45 ` Richard Lawrence @ 2015-02-04 17:44 ` Erik Hetzner 1 sibling, 0 replies; 104+ messages in thread From: Erik Hetzner @ 2015-02-04 17:44 UTC (permalink / raw) To: Nicolas Goaziou, Richard Lawrence, emacs-orgmode On Wed, 4 Feb 2015 at 04:06:36 PST, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote: > > Hello, > > Erik Hetzner <egh@e6h.org> writes: > > > I concentrated on getting the parser to recognize valid citations > > first. I have now finished this part (excepting any bugs, of course :) > > and will need to add code to generate a proper parse tree. Then it can > > be integrated into org-element.el. > > The point of "org-element.el" is to generate a parse tree. If you > generate it yourself, you do not need the library. Therefore, I'm not > sure to understand the "integration" part. > > Also, AFAIU, the syntax for valid citations is not defined explicitly so > far. For example, I don't think it was discussed if any subset of Org > objects (e.g., macros or bold text) is allowed in a citation. Is there > any document we could merge into Org syntax document? Hi Nicolas, I didn’t mean to push too far ahead. I’m hoping that when we have working code, we can work out some of these tricky issues and get the syntax properly documented. Embedding italic text and links in citations is, for instance, something that I think is important to support. Regarding org-element.el, I meant that this code would extend org-element to generate org-element.el compatible objects for the citations. Does that make sense? I admit that I have not read org-element.el carefully, so I might be wrong about how to proceed. The pandoc grammar is, I believe, more complicated than any structure currently present in org-mode, and so the parser was a little trickier. best, Erik -- Sent from my free software system <http://fsf.org/>. ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-04 6:30 ` Erik Hetzner 2015-02-04 12:06 ` Nicolas Goaziou @ 2015-02-04 15:59 ` Richard Lawrence 2015-02-04 17:58 ` Erik Hetzner 1 sibling, 1 reply; 104+ messages in thread From: Richard Lawrence @ 2015-02-04 15:59 UTC (permalink / raw) To: emacs-orgmode Erik Hetzner <egh@e6h.org> writes: >> The ideal would be if citeproc would take care of proper formatting >> of all such citation types, given just an ordered list of the fields >> that should appear. I don't know if CSL supports this, though; do >> you? > > I’m not entirely sure what you mean. The authors of citeproc have come > up with a huge number of styles which seem to satisfy people’s needs. > What appears in the in-text citation is configurable, see: > > http://citationstyles.org/downloads/specification-csl101-20120903.html#citation Sorry, I wasn't clear. What I mean is, is there a way to tell an implementation of CSL "hey, this particular citation right here should only contain the author (or year, or journal...) of the referenced work, even though the citation style for this document is (e.g.) numeric?" The link you referenced makes it seem like the <citation> element describes how citations should be formatted for a whole document, but maybe I don't understand it. (Can there be multiple citation formatting styles specified by a CSL stylesheet? or multiple stylesheets used to format the citations in a document?) The idea is, a citation like "As Doe says in @Doe99:title, ..." should render like "As Doe says in /The Title/, ...", not like "As Doe says in Doe (1999), ...", even if "@Doe99" citations in the document generally render like the latter. I suspect this must be possible with citeproc/CSL, but I don't actually know, since Pandoc doesn't provide syntax for this kind of case. Best, Richard ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-04 15:59 ` Richard Lawrence @ 2015-02-04 17:58 ` Erik Hetzner 2015-02-04 19:24 ` Richard Lawrence 0 siblings, 1 reply; 104+ messages in thread From: Erik Hetzner @ 2015-02-04 17:58 UTC (permalink / raw) To: Richard Lawrence; +Cc: emacs-orgmode On Wed, 4 Feb 2015 at 07:59:46 PST, Richard Lawrence <richard.lawrence@berkeley.edu> wrote: > > Erik Hetzner <egh@e6h.org> writes: > > >> The ideal would be if citeproc would take care of proper formatting > >> of all such citation types, given just an ordered list of the fields > >> that should appear. I don't know if CSL supports this, though; do > >> you? > > > > I’m not entirely sure what you mean. The authors of citeproc have come > > up with a huge number of styles which seem to satisfy people’s needs. > > What appears in the in-text citation is configurable, see: > > > > http://citationstyles.org/downloads/specification-csl101-20120903.html#citation > > Sorry, I wasn't clear. What I mean is, is there a way to tell an > implementation of CSL "hey, this particular citation right here should > only contain the author (or year, or journal...) of the referenced work, > even though the citation style for this document is (e.g.) numeric?" > > The link you referenced makes it seem like the <citation> element > describes how citations should be formatted for a whole document, but > maybe I don't understand it. (Can there be multiple citation formatting > styles specified by a CSL stylesheet? or multiple stylesheets used to > format the citations in a document?) > > The idea is, a citation like "As Doe says in @Doe99:title, ..." should > render like "As Doe says in /The Title/, ...", not like "As Doe says in > Doe (1999), ...", even if "@Doe99" citations in the document generally > render like the latter. I suspect this must be possible with > citeproc/CSL, but I don't actually know, since Pandoc doesn't provide > syntax for this kind of case. Hi Richard, Thanks for the reply. I believe there is some discussion of this here: https://groups.google.com/d/msg/pandoc-discuss/QcAnk7hsZD8/e9MYHu0BA5IJ and probably elsewhere on the pandoc-discuss list if you search the archives. It’s not supported in existing citeproc implementations, but I think it would be possible to support something like this. On the other hand, this is also something that is easily done by hand, so I don’t know if it’s worth the trouble. best, Erik -- Sent from my free software system <http://fsf.org/>. ^ permalink raw reply [flat|nested] 104+ messages in thread
* Re: Citations, continued 2015-02-04 17:58 ` Erik Hetzner @ 2015-02-04 19:24 ` Richard Lawrence 0 siblings, 0 replies; 104+ messages in thread From: Richard Lawrence @ 2015-02-04 19:24 UTC (permalink / raw) To: emacs-orgmode Erik Hetzner <egh@e6h.org> writes: > On Wed, 4 Feb 2015 at 07:59:46 PST, > Richard Lawrence <richard.lawrence@berkeley.edu> wrote: >> The idea is, a citation like "As Doe says in @Doe99:title, ..." should >> render like "As Doe says in /The Title/, ...", not like "As Doe says in >> Doe (1999), ...", even if "@Doe99" citations in the document generally >> render like the latter. I suspect this must be possible with >> citeproc/CSL, but I don't actually know, since Pandoc doesn't provide >> syntax for this kind of case. > It’s not supported in existing citeproc implementations, but I think > it would be possible to support something like this. On the other > hand, this is also something that is easily done by hand, so I don’t > know if it’s worth the trouble. Actually, I've changed my mind; it occurs to me that there is a good argument for /not/ adopting this syntax. First of all, the cases it is meant to cover are not really cases of /citations/ so much as cases of /indirections/. Writing "@Doe99:title" instead of the title of the work is just to aid the author; it does not produce enough information in the output to let the reader look up the referenced work, so it isn't really a citation. Second, it would be difficult to get the formatting of these selected fields right in general. Should titles be emphasized, or put in quotes? When do we insert commas between fields? etc. Instead, I think Org should provide functions that provide the same aid to document authors without the indirection, functions like: - org-get-fields-from-citation - org-insert-fields-from-citation-at-point - org-replace-citation-at-point-with-fields These would take care of looking up the desired data in the reference database and inserting it into the Org document, where the author could format it as desired. Furthermore, if someone *really* needs the indirection, I think it would be relatively straightforward to implement as an export filter, especially if the above functions are provided. This case should be uncommon enough that users can be expected to handle it themselves. So, unless someone thinks it's really important to find a workable solution, I hereby drop this (the `field selectors') part of my proposal. That means citations in the inline case can remain fully compatible with Pandoc. Best, Richard ^ permalink raw reply [flat|nested] 104+ messages in thread
end of thread, other threads:[~2015-02-13 2:31 UTC | newest] Thread overview: 104+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 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 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
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.