If addresses are hashes of public keys, how are signatures verified? I've skimmed through the https://en.bitcoin.it/wiki/Protocol_specification and it seems that when sending someone bitcoins, I would sign the transaction data (not quite sure which parts exactly) with my private key, so that people could verify it with my public key, but my address is a digest of my public key, so where do people get my public key from?
The transaction's INPUT has ScriptSig which is both the signature as well as the public key.


http://en.bitcoin.it/wiki/Transaction#Data