suggestion for another APA modification

Aug 5, 2008 at 5:29 PM
Edited Aug 5, 2008 at 5:29 PM
Yves and others, here's another item missing from Word's APA fields -- the original publication date, especially for a book chapter or article. Here's an example:

Buñuel, L. (2002). Cinema, instrument of poetry. In C. Fowler (Ed.), The European cinema reader (pp. 45-48). London: Routledge. (Original work published 1953)

which would be cited as
Buñuel, L. (1953/2002)
I'm in the middle of writing 3 papers, but will try to play around with the "APA with Title" style when I get a chance. What has to be done to add a new field?

Thanks, Sue
Coordinator
Aug 5, 2008 at 9:46 PM
Edited Aug 5, 2008 at 9:54 PM
Sue,

The quick and dirty solution: add (Original work published 1953) to the Comments field and print that at the end of your citation. And for the in-text part, use the prefix switch. The clean solution would indeed be to (ab)use a field such as the 'YearAccessed' field for that.
 
You can add any field to an existing type of source or even create a new type of source using the BibType tool. Or since it is just one field and only for yourself, just search for bibform.xml and edit it yourself.

If it is not just for yourself, there is the issue of compatibility to consider. Firstly, there is an xml schema (shared-bibliography.xsd) which defines the different fields and the different source types. Adding new fields or types will result in the custom xml inside your docx no longer being valid. This does not really matter, since Word 2007 never validates custom xml, it might not even have access to the schema. Secondly, if you introduce a new type of sources, you cannot expect "older" bibliography styles to know how to handle the formatting. But then again, I guess most users of the bibliography tools stick to one formatting style anyway. So you could distribute a bibform together with the stylesheet and don't care about it.

Enough 'moral' considerations ...

I'm assuming you are going for the YearAccessed field. In APA.xsl you find the following code for the in-text citation:
< xsl:variable name="year0">
    <
xsl:value-of select="msxsl:node-set($ListPopulatedWithMain)/b:Citation/b:Source/b:Year" />
</
xsl:variable>
So this should become something similar to the following:

< xsl:variable name="year0">
    <!--
Verify that Year and YearAccessed both exist and are not empty. Also only do this for books. -->
    <
xsl:if test="string(msxsl:node-set($ListPopulatedWithMain)/b:Citation/b:Source/b:Year) and string(msxsl:node-set($ListPopulatedWithMain)/b:Citation/b:Source/b:YearAccessed) and msxsl:node-set($ListPopulatedWithMain)/b:Citation/b:Source/b:SourceType = 'Book'">
        <
xsl:value-of select="msxsl:node-set($ListPopulatedWithMain)/b:Citation/b:Source/b:YearAccessed" />
        <
xsl:text>/</xsl:text>
    </
xsl:if>
    <
xsl:value-of select="msxsl:node-set($ListPopulatedWithMain)/b:Citation/b:Source/b:Year" />
</
xsl:variable>

Then for the bibliography, the entire formatting for books is concentrated within the 'when' structure starting with:

< xsl:when test="b:SourceType='Book'">

So I guess you will have to go to the end of the when structure, and just before the tag closes, add something along the following lines:

< xsl:if test="string(b:YearAccessed)">
    <
xsl:text>(Original work published </xsl:text>
    <
xsl:value-of select="b:YearAccessed"/>
    <
xsl:text>)</xsl:text>
</
xsl:if>

I did not test any of the above code, its just some ideas which should help you along the way. 

Yves