[prev in list] [next in list] [prev in thread] [next in thread]
List: koffice-devel
Subject: Re: Modifying KWord files / Interaction with KWord
From: Thomas Siegmund <sgmd () genetik ! biologie ! fu-berlin ! de>
Date: 2001-04-26 11:57:07
[Download RAW message or body]
Am Donnerstag, 26. April 2001 06:34 schrieb Pascal A. Niklaus:
>
> Do you know of a good way to define the citation formats used by the
> individual journals? I find the format EndNote uses a real pain, and often
> was not able to get what I really wanted, especially for book sections when
> sometimes you have book series, sometimes there is an 'Edition' field
> etc...
Hi Pascal,
>Do you know of a good way to define the citation formats used by the
>individual journals? I find the format EndNote uses a real pain, and often
>was not able to get what I really wanted, especially for book sections when
>sometimes you have book series, sometimes there is an 'Edition' field etc...
Yes, I guess this is because the authors of endnote were confronted with all
kind of problems they did not expect in the beginning. Then they made a lot
of rules and exceptions and exceptions from the exceptions to deal with them.
How about some kind of scripting language? The interpreter would have access
to all information in the current record and in all records cited in the
current document. A style would be a script in something like python.
Let's look at an example. I do not know the structure of your database. Let
us assume it we have these informations:
record number
title
last_name, first_names (repeated number_of_authors times)
year
journal
volume
issue
pages
Formatting of the record for the reference list would look like this
pseudocode:
// a simple style for any journal
set_style(plain)
// reset text formating to plain KWord default
if ( number_of_authors == 0)
print("Anonymous, ")
endif // end of author list
else (number_of_authors > 0)
for (n=1, n <= number_of authors, n++)
{
print(<last_name>)
if (<first_name>)
print(" ,")
print(initials(<first_name>))
// initials() is a function to extract the initials from
// <first_names> if neccessary
endif
if (current_author < number_of authors - 1)
print(", ")
endif
else if (current_author == number_of authors - 1)
print(", and ")
endif
else if (current_author == number_of authors)
print(": ")
endif
}
endif // end of author list
set_style(italic) // start of title
print (<title>)
set_style(plain)
print (", ")
print(abbreviated_journal(<journal>))
// we need a function to translate "Journal of Improbable Results" to
// "J. Imp. Res." or to "J Imp Res" or vice versa using a terms list
set_style(bold)
print(<volume>)
if(<issue>)
print(":")
print(<issue>)
endif
if(<pages>)
print(", ")
endif
set_style(plain)
print(<pages>)
print("\n") // end of record
The same mechanism could be used to create any kind of In-text-citation,
including something like 'Ibidem'.
I do not know If you will like this proposal, since it looks a bit
complicated. But the formatting of the references is the crucial part of a
bibliographic programm. It has to be at least as powerful as the best
commercial programms in this area, otherwise it will be mostly useless.
The disadvantages of such a solution are pretty clear: No GUI for styles, and
no chance to import them from existing solutions. But IMHO the worst
scripting language is better than a confusing GUI like endnote.
For you on the other hand, this would have the great advantage that you can
solve even most complicated formatting problems of all those weird journals
at once. Leave the complicated details out of KCite and let the style authors
deal with them ;-)
With best regards
Thomas
--
Freie Universität Berlin
Institut für Genetik
Arnimallee 7
14195 Berlin
Germany
Tel: +49 30 838 54868
_______________________________________________
Koffice-devel mailing list
Koffice-devel@master.kde.org
http://master.kde.org/mailman/listinfo/koffice-devel
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic