Hi John and all,

John Kitchin <jkitc...@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


Reply via email to