I'm trying to insert a bibliography for a research paper in Microsoft Word 2010. I'm using manage sources in the references toolbox to insert my sources. Word is formatting my sources the way I want them but, when I insert the bibliography it is always in alphabetic order.

I want to insert the bibliography so that the papers are in the order I cite them in the paper for example,

A sentence in my paper could end like this,

as can be seen in [1] and [2] among others.

I would then like the Bibliography to look like this,


[1] Morris, J., and S. Johnson. "Discrete Element Modeling." Journal of Geotechnical and Geoenvironmental Engineering (American Society of Civil Engineers), 2007.

[2] Kruggel-Emden, H., M. Sturm, Wirtz S., and Scherer V. "Selection of an appropriate time integration scheme for the discrete element method(DEM)." Computers and Chemical Engineering 32 (2008): 2263-2279.

However, I can't get the bibliography to stop inserting the references in alphabetic order. I know how to get the brackets and the numbers outside the references as shown above but, I don't know how to get the references in non-alphabetic order.

I have tried assigning numerical tags to each of the references in the manages sources section but, that did not work. Does anyone have any idea how to do this? I do not want to write out all the sources myself or sort the sources at the end with the function in the table menu.

3 Answers 3


In Microsoft Word 2010, Bibliography Styles are managed via XML template files.

It is not easy to change these files and you can damage your Bibliography function if you make a mistake.

  1. Save your document and exit Word completely (File -> Exit)

  2. Look for a template file with a name close to the Bibliography style you are using in the directory C:\Program Files\Microsoft Office\Office14\Bibliography\Style

  3. Make a backup copy of that file and name it unsorted.xml

  4. Open unsorted.xml in your favorite text editor

  5. Remove the line that contains <sortkey> and </sortkey>

  6. Search for the line that contains <stylename> and </stylename> and replace the style name between them with unsorted

  7. Open your document in Word and return to each of your citations and change the style to unsorted

This article has information on how to update the template files but does not specifically address the sort-key. This article has information on sortkey in the comments.


A kind programmer has written and released an open-source tool to manage Bibliography styles. It provides advanced formatting capabilities and automatic workarounds to overcome limitations in Word but it does not appear to provide an easy sort function.


The accepted answer here isn't accurate based on my installation of Word 2010. The styles come in *.xsl files, not *.xml. And the tags <sortkey/> and <stylename/> don't exist in the default styles that come with Word (although StyleName does show up in some <xsl:when/> tags). I'm not sure why that discrepancy exists. But here's how I solved this issue.

Somewhere in your bibliography style, you'll find a template for the bibliography as a whole. You can insert an xsl:sort there. My custom style looks like this:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:b="http://schemas.openxmlformats.org/officeDocument/2006/bibliography">
    ... other stuff ...
    <xsl:template match="b:Bibliography"> 
        <html xmlns="http://www.w3.org/TR/REC-html40"> 
                <xsl:apply-templates select ="*">
                    <!-- Sort according to the order in which the sources are used in the document. -->
                    <xsl:sort select="b:RefOrder"/>
    ... other stuff ...

RefOrder is the order in which they're cited. It's a tag that will exist regardless of whether it's defined in BIBFORM.XML (where source types such as Book or Website are defined).

The built-in APA style also uses xsl:sort but it's much more complicated. If you want to make a copy of an existing style, you will need to modify the <xsl:when> block that contains StyleName.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.