emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: tsd@tsdye.com (Thomas S. Dye)
To: Richard Lawrence <richard.lawrence@berkeley.edu>
Cc: emacs-orgmode@gnu.org
Subject: Re: org-cite and org-citeproc
Date: Tue, 31 Mar 2015 14:41:25 -1000	[thread overview]
Message-ID: <m2iodgade2.fsf@tsdye.com> (raw)
In-Reply-To: <874mp0hlth.fsf@berkeley.edu> (Richard Lawrence's message of "Tue, 31 Mar 2015 14:57:30 -0700")

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

> Hi Tom and all,
> tsd@tsdye.com (Thomas S. Dye) writes:
>>> I know next to nothing about citations in general, so please bear with
>>> me: if multi-cite support means being able to condense citations (e.g.
>>> [1-3, 5, 9]), then bibtex can do at least some of that
>>> (e.g. http://texblog.org/2007/05/28/mulitple-reference-citation/).
>> Multiple citations with natbib are limited in the sense that individual
>> citations within them don't carry pre- and post-notes.  BibLaTeX does
>> away with this restriction.
> Just to clarify: our syntax allows both pre- and post-notes for each
> individual reference within a citation, plus common pre- and post-notes
> for the citation as a whole.  Is it only the latter which BibTeX does
> not support?  Or is it also that it can't handle pre- and post-notes for
> individual references when there is more than one work cited?  I don't
> think I've ever tried to do something that complicated with plain BibTeX.

IIUC, plain BibTeX just supports \cite, and it was the natbib style
that introduced parenthetical, \citep, and text, \citet, citation
commands.  The corresponding commands in BibLaTeX styles are \parencite
and \textcite.

With natbib, it is possible to give a pre-note and a post-note to the
citation as a whole, but not to individual citations within it.  In
order to support your syntax fully, I think BibLaTeX is needed.

> (Also, do you think it is important to support plain BibTeX at all?  It
> seems like we should not bother with this problem unless it's important
> for a lot of people.  I personally would be fine with just targeting
> BibLaTeX, and it sounds like Eric would be too.)

Well, one benefit of Aaron's function was to make this choice
superfluous, both now and in the future.  It binds the two citation
commands you've implemented to citation commands implemented in
CITATION_STYLE.  As Aaron notes, it should be easy to modify this (to
bind additional commands) when advanced citation support comes along.

>> The org-export-cite-add-citation-mode-latex function that Aaron Ecay
>> wrote allows the author to choose (implicitly) which package to use.  I
>> like this design because it can accommodate new packages without changes
>> to the Org mode code.
>> ,-------------------------------------------------------------------------
>> | Your comment inspired me to implement                                   
>> | org-export-cite-add-citation-mode-latex in the experimental citation    
>> | support I just pushed.  So you can do:                                  
>> |                                                                         
>> | (org-export-cite-add-citation-mode-latex "tsd"                          
>> | "\\mycitecommand[%s][%s]{%s}" "\\myparencitecommand[%s][%s]{%s}")       
>> |                                                                         
>> | Add to your document:                                                   
>> |                                                                         
>> | #+CITATION_MODE: tsd                                                    
>> |                                                                         
>> | And citations should just work with your chosen commands.  I’m sure when
>> | advanced citation support comes along (whether from subtypes or plists),
>> | a similarly simple wrapper can be implemented.                          
>> `-------------------------------------------------------------------------
>> I haven't found time to experiment with the citation developments or to
>> read through the developing code base.  Was this feature of Aaron's
>> experimental support subsequently dropped?
> No, I haven't touched that part of the code, and as far as I know that
> should still work.  However, I also haven't been able to make sense of
> how the CITATION_MODE and CITATION_STYLE keywords should work in
> non-LaTeX backends, so my code doesn't make any use of them, either.  

IIUC, CITATION_STYLE refers to the bibliography style file.
CITATION_MODE makes it possible for an author using your syntax to get
away from the Harvard mode citations that seem to be your target and use
another mode such as the footnote citations common in the humanities.

> If I understand correctly, the mode and the style are two pieces of
> information that jointly determine how citations should be formatted.
> The reason they are separated is that you can have multiple styles
> associated with a mode (or is it the other way around?).  Is it right to
> say that in LaTeX, choosing a mode and a style determines both
> which citation commands are available and what their behavior is?

Typically, a bibliography style file defines several citation commands,
which might belong to one or more modes.  It sounds to me as if the CSL
world conflates styles and modes, but I haven't looked closely.

> In the CSL world, both of these pieces of information seem to be
> determined by the choice of CSL stylesheet.  Thus, I went with a single
> keyword, CSL_FILE, to specify this information.  I guess one could also
> go the other way, and try to select a stylesheet based on CITATION_MODE
> and CITATION_STYLE, but I wasn't sure how to do that.  I also don't
> really know if it would be useful to provide a notion of `custom modes'
> outside of LaTeX; as far as I can see, all customization would just come
> down to selecting a different stylesheet.  But maybe I'm missing
> something important?

I think you might be able to merge CSL_FILE and CITATION_STYLE, since
they both point to a style file.


Thomas S. Dye

  reply	other threads:[~2015-04-01  0:41 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-28 18:53 Richard Lawrence
2015-03-31  8:16 ` Eric S Fraga
2015-03-31 19:13   ` Richard Lawrence
2015-03-31 19:34     ` Nick Dokos
2015-03-31 20:29       ` Thomas S. Dye
2015-03-31 21:57         ` Richard Lawrence
2015-04-01  0:41           ` Thomas S. Dye [this message]
2015-04-01 15:42             ` Richard Lawrence
2015-04-01 19:41               ` Thomas S. Dye
2015-04-02 15:57                 ` Richard Lawrence
2015-04-02 16:45                   ` Thomas S. Dye
2015-03-31 21:12     ` Eric S Fraga
2015-04-01  7:49       ` Andreas Leha
2015-04-02 14:29         ` Eric S Fraga
2015-04-02 15:11           ` Richard Lawrence
2015-04-02 19:26             ` Andreas Leha
2015-03-31 22:03     ` Rasmus
2015-04-01 14:39       ` Richard Lawrence
2015-04-02  0:08         ` Rasmus
2015-04-02 15:26           ` Richard Lawrence
2015-04-02 15:51 ` Aaron Ecay
2015-04-02 17:38   ` Richard Lawrence
2015-04-06 18:51     ` Richard Lawrence
2015-06-16 19:36       ` Matt Price
2015-06-18 22:44         ` Richard Lawrence
2015-04-02 19:17   ` Rasmus
2015-04-03  2:56     ` Richard Lawrence

Reply instructions:

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

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

  Avoid top-posting and favor interleaved quoting:

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

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

  git send-email \
    --in-reply-to=m2iodgade2.fsf@tsdye.com \
    --to=tsd@tsdye.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=richard.lawrence@berkeley.edu \


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


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