Con il comando compattamento ho cercato di introdurre un semplice algoritmo di ottimizzazione degli spazi.
Cliccando sul comando nella barra strumenti (oppure da menu Strumenti->Compatta…, possiamo ottenere un compattamento delle immagini presenti sul foglio verso l'alto della pagina.
Il comando compatta… (cmd - enter) mostra questo dialogo:
Ci sono tre tipi di compattamento:
Aggiungi pagine necessarie (ideale per stampanti a foglio singolo)
Espandi / contrai area di stampa (adatto a plotters con alimentazione a rotolo)
Compatta in area (definita dall'utente)
Aggiungi pagine:
In questo caso l'algoritmo cerca di riempire la pagina attuale dall'alto verso il basso. Quando non c'è più spazio, una nuova pagina è generata e il riempimento continua su questa e così via fino a che l'ultima immagine non è a posto. Alla fine, se sono state necessarie più pagine, il cassetto laterale delle pagine viene aperto.
Espandi / contrai:
Le immagini sono distribuite su un'unica pagina che verrà adattata sfruttando la larghezza massima possibile (ampiezza del rotolo) ed usando la lunghezza minima necessaria.
Per questo particolare compito (autoridimensionamento del foglio), 4 nuovi campi si sono resi necessari nel dialogo di impostazione margini, contenenti i valori minimi e massimi che il foglio può assumere per la stampante in uso.
Con queste informazioni l'algoritmo può regolarsi su come espandere / ridurre il foglio per una massima ottimizzazione della disposizione delle immagini sul foglio [vedi nota a fondo pagina].
Compatta in area:
Le immagini vengono disposte all'interno di un'area che sta all'utente definire: all'uscita del dialogo viene mostrato il messaggio:
A questo punto dovremo definire con il mouse un rettangolo (clic e trascina) da riempire con le immagini da compattare. Possiamo servirci, prima di cominciare, dello zoom della finestra, di un suo scorrimento e di tutto quel che occorre per poter tracciare agevolmente l'area.
Al rilascio del mouse, se possibile, le immagini da impacchettare saranno raccolte nell'area definita.
Le altre opzioni presenti nel dialogo sono descritte di seguito:
Gap: con questo valore stabiliamo un distacco minimo tra le immagini (per avere spazio per ritagliarle ecc.).
Consenti la rotazione di 90°: con questa opzione, l'algoritmo di compattamento sa che un'immagine può essere ruotata e, se c'è convenienza, in termini di minor spazio necessario, alcune immagini potrebbero risultare ruotate alla fine del processo.
Non considerare i margini: ci sono parecchie situazioni in cui le dimensioni dell'immagine coincidono con quelle dalla pagina (pensa ad un PDF A4). In tali casi, il normale compattamento (un'immagine per pagina), non funzionerebbe a meno che non escludiamo i margini dal calcolo. In questo modo è l'intera pagina ad essere considerata dall'algoritmo, di conseguenza, se l'immagine coincide con la pagina, il compattamento avrà luogo. Nota importante: se, nonostante tutto, appare ancora un avvertimento dicendo che non c'è spazio per il compattamento, questo può esser dovuto a pochi millesimi di differenza tra le dimensioni della pagina e dell'immagine. Controlla e imposta i valori delle rispettive dimensioni usando (temporaneamente) come unità di misura i punti invece dei pollici o dei centimetri. Spero di risolvere più elegantemente questo piccolo problema nella prossima versione.
Compatta oggetti selezionati: con questa opzione possiamo agire su immagini selezionate (ad esempio per riempire una determinata area con alcune immagini lasciando inalterato il resto). Da notare che nel caso di compattamento automatico all'inserimento (vedi paragrafo inserimento avanzato, le immagini appena importate sono le sole selezionate).
Compatta tutti gli oggetti: questo è il funzionamento di default del compattamento. Agisce su tutti gli oggetti presenti nel documento, indipendentemente dalla loro selezione.
Registra impostazioni nelle preferenze: cliccando qui si salvano le impostazioni appena usate nelle preferenze. Queste impostazioni sono usate in alcune operazioni automatiche, per esempio nelle opzioni di inserimento immagini (vedi paragrafo inserimento avanzato). Suggerimento: il dialogo di compattamento appena visto può essere bypassato tenendo premuto il tasto alt (option) mentre clicchiamo sullo strumento . Ovviamente i parametri di compattamento usati in questo caso saranno quelli prelevati dalle attuali preferenze.
Disclaimer: l'algoritmo di compattamento da me implementato in FitPlot è lungi dall'esser perfetto. Questo tipo di problemi è noto in informatica come 2D bin packing problem o problema dei pacchi, in due dimensioni. Sfortunatamente non esiste una soluzione certa a meno di non enumerare tutte le combinazioni possibili, pagando il conto con tempi di calcolo che incrementano in maniera fattoriale con il numero delle immagini da sistemare! L'algoritmo usato da FitPlot è molto veloce e funzionerà bene nella maggior parte dei casi. Ci possono tuttavia essere delle situazioni dove una nostra semplice occhiata può intravedere una disposizione migliore di quella trovata dal programma. Spero di poter migliorare in futuro questa funzionalità. Ogni suggerimento da esperti sul tema è bene accetto.
Impostazione margini per compattamento
Dal menu Strumenti->Imposta Margini… riempi i campi in basso:
Per quel che riguarda le dimensioni minime, puoi vedere nei formati disponibili per il plotter / stampante in questione (nel menu Formato di Stampa…) e scegli il più piccolo della lista.
Per le dimensioni massime, invece, la larghezza dovrebbe corrispondere alla larghezza del rotolo / foglio caricato (24", 36", 42" ecc.), l'altezza può essere un valore arbitrariamente lungo (io ho impostato [e stampato] 6 metri sul mio HP 500 PS). NOTA: Se tutti i campi di minima e massima dim. del foglio sono lasciati (o reimpostati) a 0, non saranno considerati dall'algoritmo di compattamento.