both, of course :)
i prefer to do it by hand (and in some environments you can also define aliases/macros so that the different constructs you're dealing with are typeset consistently and you don't have to re-type everything)