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]

Reply via email to