This project is read-only.

ISO 690

Nov 19, 2010 at 5:05 PM


please can you help me? I have modified XSL file (, but I do not know how to do one thing. I need to put [author, year] before each source in the list of sources. 

And other question is.... is it possible to format list of sources not in block?

Thank you for your time and anwers.


Nov 19, 2010 at 11:17 PM

This is based on one of the styles that came with Word. I don't work with those due to their problematic maintenance. So I can give you a few pointers, but you will have to look for it yourself.

Look for the line

<xsl:when test="b:Bibliography">

A couple of lines below you will see

<xsl:for-each select="msxsl:node-set($SortedList)/b:Bibliography/b:Source">
  <xsl:element name="p">

Right after that line starts every entry in your bibliography. Here you could add something like (untested code!!!)

<xsl:value-of select="b:Author/b:Main/b:Last[1]" />
<xsl:text>, </xsl:text>
<xsl:value-of select="b:Year" />
<xsl:text>] </xsl:text>

Note that you should probably move this after the third and last attribute element (class).

I have no idea what you mean by "not in block". You will have to elaborate a bit more and perhaps provide an example.

Apr 3, 2012 at 2:03 PM

thanks, it works! :)

I would like to to put a tabulator after [author, year], is it possible?


Apr 3, 2012 at 2:23 PM

Using a tab can be done by inserting a tab character inside a cdata xml element. So something like


will probably work (not tested).

But what would be the point? You can't go using tabs for alignment. Not unless you know what the length of all the names would be in advance. Otherwise you will get something like:

[shortname, 2012]<tab>Text
[a_rather_long_name_which_is_more_than_a_tab_longer_than_the_shortest_name, 2012]<tab>Text

If alignment is your goal, you should go for a table like style. And if alignment is not your concern, then you probably should go with spaces. A tab is character-wise about the worst choice you can make.


Apr 3, 2012 at 2:36 PM

unfortunately <![CDATA[&#x9;]]> doesnt work. It writes &#x9;

Apr 3, 2012 at 2:40 PM

You did wrap them inside an xsl:text element? Normally the following should work IIRC:

<xsl:text disable-output-escaping="yes"><![CDATA[&#x9;]]></xsl:text>

Apr 3, 2012 at 2:51 PM

Thanks. :)

I have one more question. I use

<xsl:value-of select="b:Author/b:Main/b:Last[1]" />

and it wirites me first name and second name togehter. like "secondnamefirstname". Do you have any idea how to put there just second name?

Apr 3, 2012 at 2:57 PM

It shouldn't.

Have you entered the names correctly? Edit the source. Next to the author field, click on the 'Edit' button. Are each of the name on a separate line in the box at the bottom of the dialog? If not, then you didn't enter them correctly. Unless you know what you are doing, always enter the names using the 'Edit' button. Especially since there is a bug in Word 2007 / 2008 (and partially in 2010) when entering names as discussed at

Apr 3, 2012 at 3:05 PM

I checked it and it is fine... and I even entered a new source.

I guess the problem is with this part

Apr 3, 2012 at 3:17 PM

What is the xml format of b:Author/b:Main?

You might need something along the lines of b:Author/b:Main/b:Person[1]/b:Last . But without knowing the format it is just a wild guess.

Apr 3, 2012 at 3:21 PM

Here is the whole file Please can you write me the correct syntex, which should write "author"? :) 


Apr 3, 2012 at 7:18 PM

I'm not going to go over over 7000 lines of badly written code to find where you (or Microsoft) has hidden its formatting information.

It's going to be something close to what I suggested, just play around with it for a bit and you will find something. Maybe try something like


and/or throw in some position information to get the correct person.

Apr 4, 2012 at 12:48 PM

I know...that code is not good. And it was written by MS. :( Your sollution was correct.