Re: Catalogo film

#52991
robitex
Amministratore del forum
    Up
    0
    Down
    ::


    Dovresti provare con una soluzione più artigianale, ovvero che non fa uso del pacchetto datatool, che forse non è così potente come si potrebbe sperare.

    Un file CSV può benissimo essere caricato in un foglio di calcolo. Si ottiene una tabella in cui le righe sono i record e la singola cella è un campo. A questo punto in un secondo foglio “ombra” inserisci le formule per trasformare un campo in un comando LaTeX: per esempio se nella cella A1 è contenuta la data di uscita del film, nella cella A1 del secondo foglio inserisco la formula:
    `= “\data{“& Foglio1!A1&”}`
    In questo modo basterà fare un copia incolla dal foglio ombra (che di fatto rappresenta una vista sui dati), in un editor e dare la definizione delle macro:

    Le macro di campo devono memorizzare l’argomento in una macro interna chiamata per esempio \my@data:
    `\makeatother
    \def\data#1{\def\my@data{#1}}
    \makeatletter`

    A questo punto posso costruire un unico comando per comporre il record in LaTeX come preferisci, dove all’interno compariranno le macro \my@nomecampo.

    Un esempio con tre campi chiarirà meglio:

    `
    % definizione delle macro di campo
    \makeatother
    \def\data#1{\def\my@data{#1}}
    \def\titolo#1{\def\my@titolo{#1}}
    \def\regia#1{\def\my@regia{#1}}

    % definizione del comando unico
    % di composizione del record
    \def\print{%
    Data di uscita nella sale: \my@data.

    Regia di: \my@regia

    Titolo dell'opera: \my@titolo

    Fine del record.
    }
    \makeatletter

    % nel documento dopo il copia incolla:
    \data{1987}\titolo{La scenata}\regia{Scenografo}\print
    \data{1492}\titolo{Sbarco in India}\regia{Colombo}\print
    \data{1992}\titolo{Barcellona}\regia{Olimpic Committee}\print
    \data{1982}\titolo{La finale}\regia{Bearzot}\print
    \data{2001}\titolo{2001 Odissea nella spazio}\regia{Stanley}\print
    `

    Questa soluzione ha il pregio di richiedere un minimo impegno di memoria perché viene memorizzato solo un record alla volta nelle macro interne che, contenendo il carattere @ non sono normalmente accessibili nel documento.
    Se ti interessa leggi con attenzione il seguente post http://www.guit.sssup.it/phpbb/viewtopic.php?t=3620 .

    Oppure puoi scrivere uno script che costruisca il sorgente LaTeX e lo compili, a partire dal file CSV (non è così difficile), anzi sembra un esperimento divertente.
    Ciao

    Go to top