Bruce D'Arcus wrote:
But this all can get very tricky to deal with, particularly when you
consider things like substitution logic (what happens when there's no
author?), first/subsequent citations, and so forth. I worry how adding
this flexibility would impact implementations.
1. first/ subsequent citations - internal index variable
Lifescience citations are often of the form [number], but I believe it
is intelligent to have always an internal index, storing the citation
number. This could be accessed to detect IF citation is first, is last,
or there are more citations following.
2. implement simple conditional formatting in the styling engine, like
if('some condition')
'write this IF true'
else
'write this IF condition FLASE')
[could be written as a shorthand IF('condition', 'do-this-IF-TRUE',
'do-this-IF-FALSE') ]
=> therefore:
if(!'AuthorVar') "Anonymous" else 'AuthorVar'
These should be defined by the styles and NOT dealt automatically as
very complex formatting logic.
Similarly, we could see if an author name has already been used, using a
conditional logic, and output "ibid." IF that is the case.
Of course, everything should be done transparently by OOo Writer. There
is NO need for flags AND also NO need for any major changes in ODF.
(Actually I do not see the need for any change in ODF.)
The only changes would be in Writer: to accept styles for citations AND
to have a very flexible and powerful formatting engine. Yes, this last
issue will need some intelligent design, but I am sure it is doable.
Requirements for the style formatter:
1. variables
- index: %ii (internal index, in the order of appearance of the
citation), %ri (reference index, in order of appearance in the reference
list; this list could be sorted alphabetically, so %ii != %ri)
- various entries: %a (Author Name), %ae (Author et al.), %ia
(Initials + Name), %ai (Name, Initials)
%y (year), %id (number, IF author has more than one paper
published during the same year, else %id is not set)
... others (e.g. %c - citation as a whole)
2. conditional logic:
- if('condition', 'TRUE-statement', 'FALSE-statement')
- ifexist('condition', 'TRUE-condition', 'FALSE-condition'): e.g., IF
citation already defined previously
- if( (%ii-1)->'Author' == 'Author', "ibidem.", 'Author'): have access
to previous entries
Well, I will be thinking more thoroughly during the next days, but I
believe this is the way to go.
Leo
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]