Secondo me stiamo confondendo due concetti importanti (tranne Enrico, che però è stato telegrafico).
Una cosa è dire che l’oggetto mobile è largo \columnwidth oppure \textwidth; un’altra è dire che l’immagine che è stata inserita delntro l’oggetto mobile ha ampiezza \columnwidth o \textwidth.
Lamport nella sua spiegazione dice che figure* e table* sono composti dentro una scatola \parbox larga \textwidth; ta parlando di oggetto mobile, non dell’immagine che vi è contenuta. e volendo si potrebbe scalare questi’ultimo a una frazione di \hsize, che è la giustezza dentro la scatola che forma l’oggetto mobile.
Componendo a due colonne gli oggetti obili senza asterisco sono inseriti nella colonna come oggetti mobili inscatolati dentro delle \parbox larghe \columnwidth, mentre quelli asteriscati sono formati da scatole larghe quanto \textwidth; in entrambi i casi si potrebbe poi scalare l’immagine ad una frazione di \hsize.
Naturalmente è sempre meglio non pasticciare con i parametri interni come \hsize !
Ha ragione Lorenzo quando sottolinea che se venisse in mente di cambiare impaginazione da una colonna a due colonne bisogna comunque rivedere tutto quanto per essere sicuri dhe le immagini rimpicciolite a causa del fattore di scala rispetto a \columnwidth siano ancora leggibili. Ma questo è un altro punto.
L’idea principale è che il layout di pagina deve essere scelto in anticipo e non a “metà dell’opra”, poi riferirsi a \columnwidth o a \textwidth potrebbe non avere più una grande rilevanza, se non a due colonne.
Con multicolumn le cose sono diverse, perché in realtà non sono concessi oggetti mobili in colonna, ma solo in testa. Per mettere con multicolum oggetti in colonna bisogna tenerli fissi, oppure interrompere le due colonne e metterli a piena pagina dove si vuole (in testa, al piede, al centro), ma cadono dove le due colonne sono interrotte e l’interruzione non è mobile. In sostanza l’ambiente multicolumn non è adatto per gestire figure e tabelle mobili. Va benissimo per indici generali e analitici, e per pochi altri casi isolati, ma non per comporre un testo in generale; il suo unico vantaggio è quello di pareggiare le colonne quando viene terminato.
Per pareggiare le colonne in composizione twocolumn bisogna agire a mano nella versione finale e definitiva, perché qualunque correzione del testo che vari il numero di righe dell’ultima pagina implica che bisogna spostare il “fine colonna”. Nella classe arstexnica c’è un comando (\balance o \pareggia) che lo fa; ovviamente non è documentato, perché lo usa solo l’editor di ogni fascicolo di AT. Il trucco è quello di inserire un “whatsit”, un altro degli oggetti sconosciuti del nucleo di TeX.