Nelle statistiche di questo sito, molto spesso trovo degli accessi che provvengono da Google dopo aver ricercato parole del tipo "calendario con santi". Grazie a Marco Galiazzo sono finalmente in grado di dare una soluzione a questo quesito.
Ci sono vari modi per automatizzare questa attività ma questa un'ottima oportunità per saperne qualche cosa in più su come InDesign gestisce XML. Una volta completato questo tutorial potrete cominciare ad investigare utilizzi più complessi di questa favolosa tecnologia.
Creare un calendario (oppure un planning o un’agenda) è uno un lavoro molto noioso e ripetitivo: seleziona, formatta, seleziona, formatta, e così via… Operazioni da ripetere centinaia di volte, con il rischio di sbagliare, anche una sola volta, vanificando l’operazione, e di conseguenza ore e ore passate a verificare la correttezza di dati sempre uguali. Poi, se capita di dover creare più di un impaginato, o crearne uno in un altro formato, il problema si moltiplica.
Le modalità per affrontare questo tipo di lavoro sono tre: completamente a mano con gli strumenti a disposizione in InDesign, usando script creati appositamente, oppure traendo vantaggio dall’utilizzo di XML, un formato che aggiunge “cervello” all’impaginato e consente che si “impagini da solo”.
In questo tutorial tratteremo la terza via: vedremo, passo per passo come si possono utilizzare le funzionalità XML di InDesign per creare un intero calendario in poco più di un click!
XML
Queste tre lettere stanno per Extensible MarkUp Language (linguaggio di marcatura estensibile), e contrariamente a quanto si può pensare, non bisogna essere un genio della programmazione per poterne trarre vantaggio.
Per farla breve, possiamo dire che l’idea che sta alla base di XML è che ogni frammento d’informazione deve essere descritto con una “etichetta” che si chiama Tag. Frammenti d’informazione (come ad esempio Nome e Cognome, Data di nascita) possono essere poi raggruppati in descrizioni più ampie (ad esempio Persona).
Se seguite questa logica, pensando ad un calendario, capirete come in XML dovrete definire ogni Giorno con un Numero, un Nome, un Santo, una Luna, per poi specificare che un’insieme di giorni compone un Mese, il quale ha un Nome e un Numero (e magari un’immagine che lo rappresenta come vedremo dopo). Per finire, un insieme di Mesi forma un Anno, il quale ha un Numero che lo caratterizza.
Materiale di supporto
Download Calendario_XML.zip. Questo file contiene:
- la sorgente XML per l’anno 2008
- il documento InDesign prima dell’importazione in formato .inx
- il documento InDesign dopo l’importazione in formato . inx
Nota: il formato .inx può essere aperto anche da InDesign CS2.
Marcatura di un Anno
Ogni singolo frammento d’informazione all’interno di un file XML è caratterizzato da due tag, uno di apertura e uno di chiusura, che ne formano l’etichetta. Ad esempio: <nome>giovedì</nome> significa che il termine “giovedì” è per l’appunto un “nome”.
Un Giorno, essendo caratterizzato da vari frammenti d’informazione, deve essere raggruppato con una etichetta che ne definisca il gruppo:
<giorno>
<numero>22</numero>
<nome>giovedì</nome>
<santo>Santa Rita da Cascia</santo>
</giorno>
Sappiamo anche che un Mese ha un suo numero e un suo nome ed è composto di un numero variabile di giorni che va da 28 a 31. Tutto questo in XML si scrive così:
<mese>
<numero>5</numero>
<nome>Maggio</maggio>
<giorni>
<giorno>
<numero>1</numero>
<nome> Giovedì </nome>
<santo>San Giuliano Papa</santo>
</giorno>
<giorno>
<numero>2</numero>
<nome>Venerdì</nome>
<santo>Santa Clotile martire</santo>
</giorno>
. . . . . .
. . . . . .
<giorno>
<numero>22</numero>
<nome>Giovedì</nome>
<santo>Santa Rita da Cascia</santo>
</giorno>
<giorno>
<numero>31</numero>
<nome>Sabato</nome>
<santo>Santa Rita da Cascia</santo>
</giorno>
</giorni>
</mese>
Passando ad un livello superiore, l’insieme dei Mesi compone un Anno, caratterizzato ancora da un nome:
<anno>
<nome>2007</nome>
<mesi>
. . . . . .
. . . . . .
<mese>
<numero>5</numero>
<nome>Maggio</maggio>
<giorni>
. . . . . .
. . . . . .
<giorno>
<numero>22</numero>
<nome>Giovedì</nome>
<santo>Santa Rita da Cascia</santo>
</giorno>
. . . . . .
. . . . . .
</giorni>
</mese>
. . . . . .
. . . . . .
</mesi>
</anno>
Aprite il file "anno_2008.xml" con qualsiasi editor di testo per rendervi conto come fatta la struttura per l’anno intero.
Contenuto e Forma
Per usare al meglio XML con lo scopo di facilitare la pubblicazione d’informazioni, è fondamentale mantenere nettamente distinti il contenuto (i dati veri e propri) e la loro forma (la posizione nella pagina, la dimensione, il carattere o qualsiasi attributo grafico). Il mondo dell’editoria è abituato a lavorare fondendo dall’inizio il contenuto dell’informazione con la sua forma; lavorando con XML è necessario un piccolo cambiamento, non sempre semplice, di mentalità.
Se per il contenuto del calendario avete già le idee chiare, anche per quanto riguarda la forma (l’impaginazione) è necessaria una fase preliminare di analisi. Dovete cercare di estrarre tutti gli elementi che in qualche modo sono ripetuti, e cercare, quando possibile, di abbinarli ad un elemento della struttura dei dati. Per esempio, se avete deciso che tutti i mesi avranno la stessa impostazione grafica, potete pensare di abbinare il layout della pagina al tag "mese", per poi passare ai "giorni". Dato che tutti i giorni hanno la stessa organizzazione e la stessa forma, potrete abbinare il blocchetto "giorno" all’omonimo livello strutturale.
Strumenti fondamentali per la gestione della forma sono le Pagine Mastro e gli Stili di Paragrafo e di Carattere. È importante pianificarli bene prima di cominciare ad applicare la forma al contenuto.
InDesign e XML
Le proprietà XML in InDesign si controllano da parti diverse dell’applicazione, spesso nascoste o non molto evidenti. Dopo aver creato un documento nuovo per la pagina di calendario, importate il file "anno_2008.xml" (File > Importa XML). Si aprirà la schermata di dialogo “Opzioni di importazione XML” (Fig. 01) nella quale è necessario selezionare alcune opzioni (per il dettaglio di queste opzioni vedere la tabella a fine di questo tutorial). In questa prima fase date per buone le scelte di default e fate clic su OK per importare i dati in formato XML.
Fig. 1 (fare clic per ingrandire)
Facendo click sulla doppia freccia che sta nell’angolo in basso a sinistra della finestra del documento si apre la visualizzazione struttura (alt-mela-1), quindi estendete la visualizzazione dei vari livelli d’informazione fino a visualizzare un giorno intero (Fig. 02). Il file XML contiene molti più dati di quanti vorrete usare nell’impaginato. Per quanto riguarda il mese, vi basterà il nome e la foto, per il giorno vi limiterete al numero (data), nome e santo. Gli altri dati possono essere utili per calendari più complessi.
Creazione del modello
Il primo passo per la creazione del modello è quello di semplificare la struttura importata con il file XML, togliendo tutti gli elementi che sono ripetitivi, per lasciarne solo uno per tipologia. Cestinate tutti i mesi, tranne il primo, e tutti i giorni del mese che rimane, tranne il primo (selezionandoli e facendo clic sul cestino in alto). Avete adesso una struttura ridotta che contiene tutti i modelli degli elementi ripetitivi (mese e giorno) che popoleranno l’intero anno. Visto che non serve togliete anche il numero del mese, mentre nell’unico giorno rimane solo “numero”, “nome” e “santo” (Fig. 03). Il calendario non conterrà tutte le informazioni contenute nel file XML, ed InDesign escluderà automaticamente gli elementi non presenti nella struttura modello.
Il passo successivo è la creazione della grafica di base con i così detti “elementi segnaposto". Nella Pagina Mastro è necessario definire gli ingombri delle cornici di testo nelle quali andranno a fluire i dati, e la loro opportuna concatenazione. In questo caso, ad ogni pagina del calendario corrisponde un mese, quindi nella pagina mastro dovrete specificare un posto per il nome del mese, uno per l’immagine e un altro per la sequenza dei giorni (Fig. 04). Le cornici devono essere concatenate perché, in questo modo, InDesign potrà creare automaticamente le pagine necessarie per far fluire tutti i dati (12 mesi) in sequenza: Nome Mese > Foto Mese > Giorni Mese.
Predisposizione per elementi ripetuti
Creata la Pagina Mastro, passiamo alla pagina del documento. Prima di tutto dovrete scollegare dalla pagina mastro le tre cornici (con la pagina selezionata nella Palette Pagine scegliere “Ignora tutti gli elementi pagina mastro” nel menu della Palette). Selezionate quindi una delle cornici e trascinatela sul tag “anno” nella finestra struttura. Vi verrà chiesto di specificare quale tag desiderate applicare al flusso di testo: scegliete “mesi”. La cornice così marcata prenderà il colore abbinato al tag mesi nella Palette Tag (per visualizzare l’evidenziazione verificate che nel menù Visualizza>Struttura sia attiva l’opzione “Mostra cornici con tag”). Notate come nella struttura il nuovo tag mesi è posto sotto tutti gli altri tag esistenti. Per rendere il lavoro più facile trascinatelo sopra il tag mesi che era già presente (Fig. 5).
Nella prima cornice del nostro flusso scrivete il testo del mese che ha il nome più lungo (Settembre) e applicategli la formattazione che preferite. Se volete dare un colore (o qualsiasi altro attributo) alla cornice, ricordatevi di farlo sulla Pagina Mastro: le proprietà del testo vanno assegnate nella pagina del documento, quelle delle cornici nella pagina mastro. Subito dopo l’ultima lettera del nome del mese dovrete fare in modo che l’elemento successivo, l’immagine, ricada nella cornice seguente, inserite quindi un carattere di interruzione cornice (Testo>Inserisci carattere di interruzione>Interruzione di cornice). Inserite adesso nel documento una delle immagini rappresentative dei mesi, tagliatela (Mela-x) e, col puntatore del testo inserito nella seconda cornice incollatela (Mela-v); l’immagine diventerà a tutti gli effetti un oggetto ancorato.
Nota: nella struttura XML, abbinato ad ogni mese c’è un’immagine che porta il nome del mese più l’estensione .jpg. Quest’immagine sarà ricercata da InDesign all’interno della cartella nella quale è contenuto il file XML. Inoltre, è importante che tutte le immagini dei mesi abbiano la stessa dimensione.
Inserite nuovamente un’interruzione di cornice (Testo>Inserisci carattere di interruzione>Interruzione di cornice) dopo l’immagine. Questo porterà il cursore del testo nella terza ed ultima cornice nella quale dobbiamo inserire tre testi (numero, giorno, santo) e dare l’opportuna formattazione, tenendo presente che questa formattazione sarà poi applicata a tutti giorni successivi.
Dopo aver deciso la forma grafica di tutti i componenti, è opportuno creare tutti gli stili necessari (Stile di paragrafo per il nome del mese, uno per il singolo giorno e tre Stili di carattere per le componenti del giorno). Ora che tutti i campioni di dati sono presenti, e la loro forma è stata correttamente abbinata da degli stili e a delle mastro, è necessario dare “cervello” al documento e definire cosa è cosa. In questo passaggio eseguirete il binding, l’abbinamento tra diversi elementi di puro contenuto (la struttura) e alcuni elementi di pura forma presenti nel documento.
Usando la Palette Tag (Finestra > Tag), si darà significato ad ogni singolo elemento. Si può fare in modalità di visualizzazione standard, ma è consigliato di passare nell’Editor brani (Mela-y) per avere un riscontro più dettagliato. Tenete sempre d’occhio la struttura, e ricordatevi che la sequenza di testo è già stata definita come “mesi”.
Con il cursore di testo in uno delle tre cornici, dopo aver attivato l’Editor brani, troverete tutti i testi pronti per essere marcati con i tag (Fig. 6). Il testo, oltre che a far parte dei “mesi”, è anche un elemento del singolo “mese”.
Dovrete quindi raccogliere tutti gli elementi nel tag “mese”. Selezionando tutto e applicando il tag mese (scegliendolo nella Palette Tag), vedrete che questo va ad intervenire sul tag della cornice cambiandolo da “mesi” a “mese”, e questo non è l’effetto desiderato (questo capita quando si applica un tag a tutti quanti gli elementi appartenenti già ad un tag superiore). Per evitare questo, è necessario inserire un singolo carattere all’inizio del testo per poterlo escludere dalla selezione ed applicare il tag mese (una volta applicato il tag questo carattere si deve cancellare) (Fig. 7).
Applicante quindi il tag “nome” al frammento di testo “Settembre”, “immagine” all’oggetto ancorato (non si visualizzano i tag), “numero” alla data, “nome” al giorno e, “santo” al santo. Come si può vedere nella struttura originale di esempio, numero, nome e santo sono contenuti all’interno del tag “giorni”; nell’Editor brani, selezionare tutti tre elementi (inclusi i loro tag) e dalla Palette Tag applicare il tag “giorni” (anche qui è necessario usare il trucco della lettera per evitare che “giorni” venga cambiati in “Giorno”). In questo modo si avrà un risultato che si può visualizzare coerentemente sia nell’Editor Brani che nella struttura (Fig. 8).
Per fare in modo che dopo ogni giorno si vada a capo, nell’editor brani, prima della chiusura del “giorno”, inseriamo un a-capo di conclusione del paragrafo (qui è utile attivare i caratteri nascosti: Testo > Mostra caratteri nascosti) e una Interruzione di pagina dopo “mese”. Dopo aver verificato che la nuova parte di struttura creata partendo dalla cornice di testo mesi corrisponde esattamente alla parte creata in fase di importazione dell’XML (Fig. 9), non resta che eliminare il tag mesi dell’importazione e lasciare nella struttura solo il tag mesi abbinato alla cornice di testo, testi ed immagini.
Accertatevi di aver salvato, prima di procedere all’importazione dell’XML. Se la prima volta non vi riesce l’importazione, basterà scegliere File > Versione precedente.
Reimportate l’XML, selezionando tutte le opzioni che ci vengono chieste nella finestra di dialogo Opzioni importazione XML. InDesign impiegherà un po’ di tempo per elaborare, ma alla fine riempirà la nostra prima pagina con i dati del mese di gennaio e la relativa foto. Per fare in modo che siano generate anche tutte le altre pagine, basterà creare una nuova pagina basata sulla mastro che contiene le cornici. Poi, dopo aver fatto click sul segno rosso di testo in eccesso in basso a destra della cornice dei giorni, puntare nella pagina vuota alla prima delle tre cornici concatenate (quella del nome del mese) e, mantenendo premuto il tasto maiuscole, dopo aver verificato che il cursore abbia la forma di una freccia a serpente racchiusa tra parentesi tonde, aspettare che InDesign lavori per voi!
La creazione della tredicesima pagina è d’obbligo, in quanto il comando di interruzione pagina è incluso nell’ultima parte della dodicesima pagina. Cancellarla non sarà di certo un problema.
Quindi, se tutti i passaggi precedenti sono stati fatti in modo corretto, con due soli click, uno d’importazione e un altro di propagazione è possibile realizzare un calendario, un planning o un’agenda.
Con la stessa logica si possono realizzare impaginati molto più complessi, sia calendari, ma anche cataloghi, riviste, libri. Questo è solo l’inizio, ma si tratta di un’ottima base d’apprendimento per lavorare con XML. Per esigenze di strutturazione ed importazione di dati più complessi è utile riferimento il libro di Marco Galiazzo, Guida al Cross Media Publishing.
Opzioni di Importazione XML.
|
Le immagini sono del mosaico pavimentale della Cattedrale di Otranto (1163). Servono solo come segna posto per fare vedere come effettivamente ogni mese ha automaticamente una immagine diversa.











Utilissimo tutorial, sto smanettandoci in preparazione di un corso intensivo di InDesign. Mi chiedevo, è possibile trovare da qualche parte sul web degli XML già pronti es. dell'ano 2009,2010 oppure altre cose di utilizzo "comune"? (pigrizia al potere :) )
Scritto da: Barcaro | 11/07/08 a 22:16
Eccellente!
Scritto da: Stefano | 28/08/08 a 06:23
Salve, seguendo passo passo il tutorial sono riuscito a ricreare una pagina per un'agenda (che comprende: mese, giorno della settimana e numero del giorno) che sto progettando. Il dilemma nasce adesso, come faccio a linkare le 365 pagine? esiste un metodo automatico o devo farlo manualmente?
Grazie
Scritto da: Giovanni | 17/10/08 a 12:35
Per linkare le 365 pagine, o meglio per fare in modo che Indesign crei 365 pagine, è sufficiente inseire l'interruzione di pagina all'interno del tag GIORNO, prima del tag di chiusura, anziché all'interno del tag mese.
Se l'interruzione è prima della fine del mese, l'importazione creerà 12 pagine (una per mese). Se l'interruzione è prima della fine del Giorno, l'importazione creerà 365 pagine (una per giorno).
Scritto da: Marco Galiazzo | 05/11/08 a 12:58
io ho fatto uno script per linux che genera calendari x ogni anno!!!!!!!
Scritto da: Vito Tafuni | 07/02/09 a 20:22
Ragazzi, scusate la mia estrema ignoranza... ma mi blocco al punto di creare la pagina master... mi date una mano?
Scritto da: Amedeo | 15/09/09 a 20:20