L’ambiente minipage ti permette di farlo; il pacchetto mdframed ti permette di creare un oggetto simile a minipage, incorniciato e colorato, che si può spezzare a fine pagina.
Listings serve appunto per il pretty printing dei codici; verbatim e alltt, oltre al pacchetto fancyvrb con il suo ambiente Verbatim permettono di inserire codice senza colori o con pochissimi colori (fancyvrb), ma quest’ultimo rimanda a listings per un tipo di composizione più elegante.
L’unico problema di listings è che non gestisce facilmente i codici UNICODE dei caratteri; siccome i codici sono costruiti essenzialmente con codici ASCII, questo non dovrebbe costituire un grosso problema, tranne nelle righe di commento dovo è facile che compaiano (in italiano e in altre lingue) lettere accentate o con altri diacritici e/o caratteri speciali.