Hi there, i was wondering if there is an alternate way to code ligatures...
Specifically, rather than using \u{a} to get a breve above an a, is there another way to do this.
(I already defined \u as something, and then discoved on reading through a draft chapter that teh breves had been replaced by something entirely different! .. and there's a lot less uses of a breve in my document so it'd be easier redefining that )
What you call a ligature is usually known as accent. Moreover you should never define a command with only one character in its name. As you now have experienced, this can cause problems.
I guess your main problem is that you want to type special language characters (like "ä", "ö", "ü" and "ß" for me in German) directly in your source. If so, use the inputenc package along with the fontenc package.
An alternative to inputenc is the selinput package from the oberdiek bundle. It chooses input encoding automatically by a list of given glyphs which are to be chosen from a glyph list. This is the way I set input encoding in my documents.
The fontenc package ensures correct hyphenation in your language, which you can set with the babel package.
LaTeX always converts characters to their internal representation first, which is "\u a" for ă. To change this, you have to redeclare the \u accent. How to do this depends on the chosen font selection, and it's generally not advisable to change such low-level commands. If you really need to redefine \u, then copy the original definition into a different macro:
Phi's solution worked a treat, the reason for using \u (and many other single letter commands, is i'm using many many vectors. However i now realise how careful i need to be about reassigning commands
I think this is OK because the two definitions never interfere: In text mode, the original command is still used; in math mode, your definition is used. This shouldn't cause problems because \u had been illegal in math mode before.