Document: BTXHAK ["Designing BibTeX Styles" by Oren Patashnik]
This document starts (and ends) with Section 5, because in reality it is the final section of `` ing'' (Patashnik 1988), the general documentation for . But that document was meant for all users, while this one is just for style designers, so the two are physically separate. Still, you should be completely familiar with `` ing'', and all references in this document to sections and section numbers assume that the two documents are one.
This section, along with the standard-style documentation file btxbst.doc, should explain how to modify existing style files and to produce new ones. If you're a serious style hacker you should be familiar with van Leunen (van Leunen 1979) for points of style, with Lamport (Lamport 1986) and Knuth (Knuth 1984) for formatting matters, and perhaps with Scribe (Uni 1984) for compatibility details. And while you're at it, if you don't read the great little book by Strunk and White (Strunk & White 1979), you should at least look at its entries in the database and the reference list to see how handles multiple names.
To create a new style, it's best to start with an existing style that's close to yours, and then modify that. This is true even if you're simply updating an old style for version 0.99 (I've updated four nonstandard styles, so I say this with some experience). If you want to insert into a new style some function you'd written for an old (version 0.98i) style, keep in mind that the order of the arguments to the assignment (:=) function has been reversed. When you're finished with your style, you may want to try running it on the entire XAMPL.BIB database to make sure it handles all the standard entry types.
If you find any bugs in the standard styles, or if there are things you'd like to do with bibliography-style files but can't, please complain to Oren Patashnik.