From: Rasmus <rasmus@gmx.us>
To: emacs-orgmode@gnu.org
Subject: Re: Citation syntax: a revised proposal
Date: Tue, 03 Mar 2015 16:41:30 +0100 [thread overview]
Message-ID: <874mq2rsut.fsf@pank.eu> (raw)
In-Reply-To: <87sidm2kny.fsf@gmail.com> (Aaron Ecay's message of "Tue, 03 Mar 2015 14:57:37 +0000")
Hi,
> I’m not sure I’m happy about the citations/citation proposal (under any
> assignment of different names to the pieces). A citations containing
> only one citation is degenerate: it can never have a :prefix or :suffix
> (these will rather be attached to the lone daughter citation).
This is one of my concerns. Getting [cite: pre @k post] right. I
mentioned it in another post, but Nicolas seemed not to worry about it.
> That’s a smell in my book.
I my book it's very pleasant since it means that I can use the same
function no matter the amount of "keys" within the citation. It's always
a list that you map on. You don't even need a cond, though in some cases
the length of the list may be nice to have.
> It also makes the latex export more complicated: a one-daughter
> citations should export as \textcite etc., whereas a multi-daughter one
> will be \multicite. From my perspective it would be more
> straightforward to only have the citations wrapper be generated if there
> are actually multiple citations. But I don’t know how that would affect
> the parser, so you should do what seems best to you.
With biblatex, which is the only latex backend that has sophisticated
notes functionality, this scheme makes it *super easy*! Here's the latex
part of the hack I use for citation "in production":
;; type is e.g. textcite, and citations look like
;; [[cite: common pre; pre0 @key0 post0; pre1 @key1 post1; common post ]]
(if (org-export-derived-backend-p backend 'latex)
(format "\\%s%s%s%s%s"
type (if (> (length citations) 1) "s" "")
common-pre common-post
(mapconcat
(lambda (cite)
(let ((pre (org-string-nw-p (plist-get cite :pre)))
(post (org-string-nw-p (plist-get cite :post))))
(concat (cond
((and pre post)
(format "[%s][%s]" pre post))
(post (format "[%s]" post))
(pre (format "[%s][]" pre))
(t ""))
(format "{%s}" (plist-get cite :key)))))
citations ""))
⋯
It works well irrespective of the number of citations because a citation
is a list of keys.
> Another tangentially related issue is what does (org-element-context)
> return when point is in a multi-citation. It would be nice if it
> returned the citation daughter, rather than the wrapping citations
> element. This would make implementing goto-citation-at-point very
> easy.
This is a technical detail that I don't know enough about to have an
opinion on. If it would not be as you say it should be easy enough to
extract :begin and :end from daughters and figure out which one point it
on.
>> As little as possible, though a highlevel API is nice, e.g. being able to
>> make a citepos using (concat (citeauthor cite) "'s" (citeyear cite)).
>
> I think I have an idea for this (though based on string templates rather
> than list forms).
OK. Although I don't want to make you angry, do you know
reftex-format-citation? It's what I use for citations outside of latex.
>> I haven't tried org-ref, but isn't it just reftex?
>
> I haven’t either, but my impression is that, while perhaps based on
> reftex, there’s a lot of spit and polish that goes into making it work
> nicely. It would be nice to be able to “steal” that because...
I think *that* part of reftex is fairly easy to bend. Still, Reftex has
some quirkiness. Initially I think it's OK.
Here's John's setup:
https://github.com/jkitchin/org-ref/blob/master/org-ref.org#org-mode--reftex-setup
> In the long term I’d be happy if we built something out of more easily
> composable pieces.
I agree.
>> Another idea would be to use the ox-export dispatcher code, somehow...
>
> If this was a composable piece I’d be happy (I haven’t looked at it).
Isn't it? Maybe I remember wrongly.
> There was also an attempt to factor the menu code out of magit (called
> makey IIRC). I’ve used it for some small things, but it wasn’t terribly
> pleasant.
Magit isn't part of ELPA... There's the new hydra thing in ELPA (haven't
tried it), which seems similar to the export dispatcher.
> What about XEmacs? That’s another stumbling block.
I don't know. I don't even have it installed to be honest...
–Rasmus
--
Summon the Mothership!
next prev parent reply other threads:[~2015-03-03 15:41 UTC|newest]
Thread overview: 163+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-15 2:29 Citation syntax: a revised proposal Richard Lawrence
2015-02-15 2:45 ` Richard Lawrence
2015-02-15 3:57 ` Thomas S. Dye
2015-02-15 16:40 ` Richard Lawrence
2015-02-15 19:43 ` Thomas S. Dye
2015-02-16 3:34 ` Matt Price
2015-02-16 8:56 ` Nicolas Goaziou
2015-02-16 9:57 ` Rasmus
2015-02-17 17:18 ` Richard Lawrence
2015-02-17 18:11 ` Rasmus
2015-02-18 0:44 ` Matt Price
2015-02-18 3:38 ` Richard Lawrence
2015-02-18 2:24 ` Thomas S. Dye
2015-02-18 4:03 ` Richard Lawrence
2015-02-18 9:00 ` Stefan Nobis
2015-02-18 10:11 ` Eric S Fraga
2015-02-18 14:19 ` Nicolas Goaziou
2015-02-18 16:38 ` Richard Lawrence
2015-02-18 18:44 ` Samuel Wales
2015-02-18 18:46 ` Samuel Wales
2015-02-18 20:54 ` Aaron Ecay
2015-02-18 21:21 ` Samuel Wales
2015-02-18 21:24 ` John Kitchin
2015-02-18 19:42 ` Nicolas Goaziou
2015-02-18 20:47 ` Aaron Ecay
2015-02-18 22:43 ` Rasmus
2015-02-18 22:35 ` Rasmus
2015-02-19 17:06 ` Richard Lawrence
2015-02-20 0:10 ` Nicolas Goaziou
2015-02-20 16:44 ` Richard Lawrence
2015-02-20 19:45 ` Samuel Wales
2015-02-20 20:01 ` Rasmus
2015-02-20 22:33 ` Samuel Wales
2015-02-21 11:58 ` Rasmus
2015-02-21 17:25 ` Thomas S. Dye
2015-02-27 0:56 ` Samuel Wales
2015-02-27 8:55 ` Stefan Nobis
2015-02-27 9:56 ` Rasmus
2015-02-21 3:12 ` Richard Lawrence
2015-02-21 12:00 ` Rasmus
2015-02-21 20:19 ` Samuel Wales
2015-02-21 20:36 ` Samuel Wales
2015-02-25 13:59 ` Aaron Ecay
2015-02-25 16:57 ` Richard Lawrence
2015-02-25 22:37 ` Nicolas Goaziou
2015-02-26 5:10 ` Richard Lawrence
2015-03-01 20:35 ` Nicolas Goaziou
2015-03-01 21:31 ` Rasmus
2015-03-02 0:24 ` Thomas S. Dye
2015-03-02 8:57 ` Eric S Fraga
2015-03-02 1:37 ` Thomas S. Dye
2015-03-02 9:23 ` Rasmus
2015-03-02 19:11 ` Aaron Ecay
2015-03-02 20:15 ` Rasmus
2015-03-03 3:14 ` Richard Lawrence
2015-03-03 5:33 ` Avram Lyon
2015-03-03 17:27 ` Richard Lawrence
2015-03-03 17:56 ` Avram Lyon
2015-03-04 16:41 ` Richard Lawrence
2015-03-03 9:24 ` Rasmus
2015-03-03 9:39 ` Rasmus
2015-03-03 14:12 ` Aaron Ecay
2015-03-02 18:50 ` Richard Lawrence
2015-03-02 20:14 ` Nicolas Goaziou
2015-03-02 20:34 ` Rasmus
2015-03-02 22:17 ` Nicolas Goaziou
2015-03-02 22:33 ` Rasmus
2015-03-02 22:45 ` Nicolas Goaziou
2015-03-02 23:05 ` Rasmus
2015-03-02 23:27 ` Nicolas Goaziou
2015-03-02 23:42 ` Rasmus
2015-03-03 2:48 ` Richard Lawrence
2015-03-03 8:43 ` Nicolas Goaziou
2015-03-03 16:59 ` Richard Lawrence
2015-03-04 0:43 ` Matt Price
2015-03-08 0:16 ` Nicolas Goaziou
2015-03-03 14:23 ` Aaron Ecay
2015-03-02 18:54 ` Aaron Ecay
2015-03-02 20:26 ` Nicolas Goaziou
2015-03-03 2:53 ` Richard Lawrence
2015-03-03 8:38 ` Nicolas Goaziou
2015-03-03 9:13 ` Rasmus
2015-03-03 16:12 ` Richard Lawrence
2015-03-03 14:25 ` Aaron Ecay
2015-03-02 20:53 ` Rasmus
2015-03-03 14:57 ` Aaron Ecay
2015-03-03 15:41 ` Rasmus [this message]
2015-03-03 15:58 ` Ken Mankoff
2015-03-03 16:08 ` Rasmus
2015-03-03 17:13 ` Richard Lawrence
2015-03-10 3:44 ` Aaron Ecay
2015-03-10 9:49 ` Rasmus
2015-03-11 1:51 ` Aaron Ecay
2015-03-11 6:04 ` Thomas S. Dye
2015-03-10 16:31 ` Richard Lawrence
2015-03-11 2:21 ` Aaron Ecay
2015-03-11 17:33 ` Richard Lawrence
2015-03-13 18:13 ` Richard Lawrence
2015-03-17 5:15 ` Richard Lawrence
2015-03-17 9:27 ` Andreas Leha
2015-03-17 16:26 ` Richard Lawrence
2015-03-17 20:42 ` Andreas Leha
2015-03-17 21:34 ` Richard Lawrence
2015-03-18 1:12 ` Matt Price
2015-03-18 15:19 ` Richard Lawrence
2015-02-25 18:08 ` Thomas S. Dye
2015-02-26 21:30 ` Aaron Ecay
2015-02-26 23:50 ` Thomas S. Dye
2015-02-27 8:49 ` Stefan Nobis
2015-02-27 16:35 ` Richard Lawrence
2015-02-27 10:09 ` Rasmus
2015-03-02 5:48 ` Thomas S. Dye
2015-03-02 12:22 ` Aaron Ecay
2015-03-02 13:53 ` Thomas S. Dye
2015-03-02 19:02 ` Aaron Ecay
2015-02-20 5:27 ` Melanie Bacou
2015-02-20 16:49 ` Richard Lawrence
2015-02-24 7:08 ` Vaidheeswaran C
2015-02-25 4:29 ` Richard Lawrence
2015-02-25 5:57 ` Vaidheeswaran C
2015-02-15 11:17 ` Tory S. Anderson
2015-02-15 11:57 ` Rasmus
2015-02-15 17:05 ` Richard Lawrence
2015-02-16 8:53 ` Stefan Nobis
2015-02-16 17:52 ` Thomas S. Dye
2015-02-15 17:23 ` Nicolas Goaziou
2015-03-09 10:40 ` Sebastien Vauban
2015-03-09 10:50 ` Vaidheeswaran C
2015-02-15 17:19 ` Nicolas Goaziou
2015-02-15 17:37 ` Rasmus
2015-02-15 17:55 ` Nicolas Goaziou
2015-02-15 19:30 ` John Kitchin
2015-02-15 18:07 ` Richard Lawrence
2015-02-15 18:25 ` Nicolas Goaziou
2015-02-15 19:05 ` Aaron Ecay
2015-02-15 19:18 ` Nicolas Goaziou
2015-02-15 19:38 ` Aaron Ecay
2015-02-15 20:13 ` Nicolas Goaziou
2015-02-15 20:23 ` Rasmus
2015-02-16 9:07 ` Stefan Nobis
2015-02-16 16:59 ` Richard Lawrence
2015-02-16 17:43 ` Nicolas Goaziou
2015-02-16 18:39 ` Rasmus
2015-02-16 19:16 ` Thomas S. Dye
2015-02-16 19:40 ` Rasmus
2015-02-15 20:49 ` John Kitchin
2015-02-16 16:18 ` Richard Lawrence
2015-02-16 18:21 ` John Kitchin
2015-02-16 12:05 ` Eric S Fraga
2015-02-16 13:10 ` William Denton
2015-02-16 13:42 ` John Kitchin
2015-02-16 16:19 ` Nicolas Goaziou
2015-02-16 17:28 ` John Kitchin
2015-02-16 18:49 ` Rasmus
2015-02-16 19:16 ` John Kitchin
2015-02-23 7:26 ` Vaidheeswaran
2015-02-16 16:35 ` Jorge A. Alfaro-Murillo
2015-02-16 17:56 ` Stefan Nobis
2015-02-16 18:24 ` John Kitchin
2015-02-16 18:39 ` Jorge A. Alfaro-Murillo
2015-02-16 19:19 ` Jorge A. Alfaro-Murillo
2015-02-17 6:47 ` Stefan Nobis
2015-02-16 16:45 ` 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:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=874mq2rsut.fsf@pank.eu \
--to=rasmus@gmx.us \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* 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 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.