File esterni / personalizzare indice analitico

  • Creatore
    Topic
  • #93930
    Up
    0
    Down
    ::


    Sperando, come al solito, di non ripetere un argomento già fatto.
    Domanda: come è possibile, se lo è, far scrivere alcune informazioni in un file esterno durante la compilazione, un po’ come succede con gli indici, gli indici analitici etc ma senza usare gli stessi?

    Spiegazione: ho scritto, e mantengo, per la mia parrocchia un libretto con i canti con gli accordi da chitarra e non, usando il pacchetto Songs di Latex. Tale pacchetto mi elabora anche un indice dei canti in ordine alfabetico e con il numero del canto (NON la pagina) a destra. Quello che avrei voluto fare, e che non sono ancora riuscito a fare, è un “elenco tematico” cioè un elenco alfabetico di tutti i canti di ingresso seguito da tutti i canti per l’alleluia ecc con la possibilità che alcuni canti compaiano in più sezioni. Lì per lì la soluzione mi sembrava quella di creare un’indice analitico del tipo \index{Offertorio!Venite a me} \index{Offertorio!Ecco quel che abbiamo}… Il motivo per cui tale soluzione non mi soddisfa è che non riesco a non far stampare i numeri di pagina e, per come è organizzato il mio libretto, tali numeri sono inutili se non fuorvianti.
    Per cui quello che ho pensato (dopo molte altre prove di vario tipo) è di “scrivermi” a mano il file di indice analitico. Tuttavia per rendere le cose flessibili volevo fare in modo che la scrittura di tale file venisse fatta durante la compilazione. Cioè pensavo di mettere nel file .txt di ciascuno canto qualcosa tipo \index{Offetorio!Venite} così che il canto compaia nell’indice solo se il canto stesso viene compilato.
    Da qui il post. Quello che mi piacerebbe fare è poter scrivere in un altro file, mano a mano che la compilazione va avanti, le informazioni che mi servono in modo da poter poi includere tale file nel processo di compilazione stessa e avere l’indice tematico che desidero. In alternativa (forse più semplice) come fare in modo che l’indice analitico non metta il numero di pagina della voce?

    Spero di essere stato chiaro ed esauriente. Disponibile come sempre a maggiori chiarimenti se quanto scritto non fosse abbastanza chiaro.
    Ecco i sintomi. Attendo la diagnosi.
    Saluti. Davide

Visualizzazione 9 filoni di risposte
  • Autore
    Risposte
    • #93931
      OldClaudio
      Partecipante
        Up
        0
        Down
        ::


        Vediamo se ho cpaito: tu vorresti mettere alla fine del libretto uno o più indici analitici che contengano i titoli dei canti separati per momenti della messa; questi titoli dovrebbero avere relazione solo con la messa aprticolare o dovrebbero via via contenere tutti i canti? I testi dei canti compaiono nel libretto? voglio dire il libretto della messa di domenica 13 aprile 2014 contiene solo i testi (e gli spartiti ?) dei canti che verranno effettivamente e lindice dei canti conterrà solo queli canti aprticolari. oppure l’indice tematico deve contenere tutti i canti presenti su un innario separato?

        Nel primo caso un indice tematico dei canti sarebbe superfluo; nel secondo sarebbe molto difficile da fare.

        Nel secondo caso infatti bisognerebbe fare riferimento al numero o alla pagine dell’inno sull’innario separato, separandolo per momenti della messa.; e a questo punto un ambiente longtable potebbe essere una soluzione migliore; una volta composto a mano il file .tex che contiene questa longtable, basta incorporarlo nel “messalino” domenicale e il gioco è fatto; Ovviamante i fedeli dovrebbero disporre sia del messalino della domenca specifica, sia l’innario generale.

        Se tutto ciò ha poco sense o non ne ha affatto, allora non ho capito quello che vuoi fare e ti chiedo scusa epr averti fatto perdere tempo per leggere queste note.

      • #93932
        Up
        0
        Down
        ::


        Come immaginavo nella mia testa era tutto chiaro ma quando lo ho messo per iscritto questa chiarezza è venuta meno. Mi scuso se non ci sono riuscito al primo colpo.
        Riprovo. Consideriamo il libretto “nella casa del padre” diffuso in moltissime parrocchie (almeno in Piemonte). Alla fine ci sono 2 indici (in particolare). Uno è quello alfabetico dei canti (e per questo sono a posto) l’altro si chiama “Prontuario per l’uso dei canti” ed elenca gli stessi canti suddividendoli in base al periodo dell’anno liturgico (Quaresima, avvento, pasqua…) e del momento della messa (offertorio, comunione, finale…). Questo secondo è quello che mi interessa. Il libretto che gestisco è una specie di “Nella casa del Padre” ad uso interno della mia comunità. Il libretto non viene fatto settimanalmente, anzi una volta stampato si attendono un discreto numero di aggiunte prima di stamparne una versione successiva. Il punto è che essendo ben fatto a volte alcuni miei amici me ne chiedono una versione per la loro comunità e quindi se riesco ad automatizzare alcuni processi posso fornire un prodotto migliore.
        Se può essere utile, fornisco la struttura del progetto: esiste una cartella in cui sono contenuti in file .txt separati tutti i vari canti (un file per canto). Il file .tex principale richiama questi canti (tutti o alcuni) e li organizza in un libretto (per ora circa 50 pagine A5) con l’indice alfabetico completo. La cartella con i Txt funge da repository e il file tex richiama quelli necessari.
        Quello che vorrei è che nel richiamarli venisse “scritta” la riga opportuna nel file che poi andrà a comporre l’indice analitico.
        L’idea di base è quella di un indice analitico (il mio primo tentativo) ma ho bisogno che non compaiano i numeri di pagina e non ho troppa voglia di modificare a mano il file .idx. Per questo cerco di sostituire, personalizzandolo, la funzione di \index. Penso mi basterebbe sapere che comando usare per scrivere una certa stringa in coda a un file o come modificare il comando \index in modo che non passi informazioni sulla pagina.
        Spero di essere stato più comprensibile.
        Aspetto fiducioso.
        Davide

      • #93933
        OldClaudio
        Partecipante
          Up
          0
          Down
          ::


          Continuo a non capire perché usi un file .txt invece di un file .tex, ma sembrerebbe che tu abbia già risolto il tuo problema.
          Quindi i problemi che restano sono quelli do organizzare un indice analitico suddiviso in periodi liturgici e fasi della messa.

          Direi che il problema si possa risolvere con un indice analitico gerachico e senza numero di pagina; per ottenere questo secondo risultato basta definire un comando con un argomento, per esempio`\newcommand\noPageNumber[1]{}`Al momento opportuno esso riceve in pasto il numero della pagina, ma non ne fa niente. Il primo risultato si ottiene con la formulazione del comando indiec da mettere dopo il titolo di ogni canto nel modo seguente:`\index{Avvento!Offertorio!Ecco quel che abbiamo|noPageNumber}` In questo modo il canto intitolato Ecco quel che abbiamo va subordinato alla voce Offertorio, la quale a sua volta è subordinata a Avvento.
          Una volta compilato con makeindex l’indice grezzo .idx per produrre l’indice composto .ind, quest’ultimo risulterà composto cosi (i puntini indicano degli spazi):

          Avvento
          …Offetorio
          ……Ecco quel che abbiamo
          ……Venite a me
          …Comunione
          ……Eccetera

          il tutto senza numeri di pagina, perché inghiottiti da \noPageNumber; nota che nella stringa di \index il backslash è sostituito da una barra verticale. I dule livelli precedenti sono separati da punti esclamativi. Ovviamente se lo stesso canto può apparire in periodi liturgici diversi, allora devi dargli altrettanti comandi \index, ognuno riferito al periodo liturgico appropriato.

          Puoi documentarti meglio consultando il file di documentazione mediante il comando texdoc makeindex dato nel terminale o prompt dei comandi.

          Aggiungo questa informazione: se usi il pacchetto imakeidx puoi comporre diversi indici “analitici” contemporaneamente; leggine la documentazione perché devi definire i vari indici che vuoi comporre e i vari comandi \index per inviare le informazioni specifiche a ciascun indice. Con una macro adeguata puoi risparmiarti molto lavoro senza dover ripetere le stesse cose in comandi simili, a scanso di errori e per sfruttare, appunto, il fatto che la piccola fatica per creare una macro, risparmia tanta fatica e tanti errori quando per ogni canto si dovessero ripetere cose simili per indici diversi.

        • #93934
          Up
          0
          Down
          ::


          A occhio direi che ci siamo. Farò qualche prova e vediamo. Ti ringrazio molto.
          Ho usato i file .txt perchè il libretto esisteva già prima che io la portassi in tex ed aveva una sua discreta consistenza. Mi sono fatto allora aiutare nella trascrizione dei vari canti da gente che non conosceva Latex e allora ho preferito evitare le estensioni che (forse) potevano creare ai trascrittori un po’ di confusione. Tutto qui.
          Per le macro: in linea teorica sarei d’accordo a usarle, ma non ho idea di qualche linguaggio usare, nè di come scriverle. La mia cultura specifica in materia non va molto oltre il “so che esistono le macro” e “ne ho fatte un paio (registrandole) con Excel”. Se potessi indicarmi una guida per neofiti su cui studiare potrei provare a leggerla e magari capirci qualcosa.
          Se va tutto bene penso che il post possa chiudersi qui con molti ringraziamenti da parte mia, altrimenti ci risentiamo.
          Ciao. Davide

          Ps resta la domanda se sia possibile crearsi file ausiliari personalizzati. Una specie di versione potenziata di \addcontentsline in cui non essere vincolati a toc, lot o lof.

        • #93935
          OldClaudio
          Partecipante
            Up
            0
            Down
            ::


            Davide, qui consigliamo sempre la guida L’Arte di scrivere con LaTeX da scaricare dalla sezione Documentazione di questo sito; Poi c’è la guida tematica da scaricare dall’apposita sotto sezione della Documentazione, Il LaTeX Reference Manual commentato e tradotto in italiano; non poché la trduzione e i commenti siano miei, ma in pratica lì c’è scritto tutto quel che ti serve; le macro LaTeX non sono le macro Excel, si tratta di cose completamante diverse; si chiamano anche comandi e si creano con \newcommand, o si modificano con \renewcommand.

            Ogni file che scrivi in LaTeX è personalizzato; ogni file che includi o importi in un main file LaTeX è personalizzatto; nel senso che \input{mio-file-personalizzato} importa il tuo file con estensione sottintesa .tex, dove tu ci hai scritto dentro quel che ti pare; più personale di così?

            Mi raccomando, non usare laTeX senza avere un discreta competneza del suo linguaggio; studiati bene le guide che ti ho indicato; non è necessario leggerle dalla prima di copertina all’ultima pagina del documento, ma è opportuno sapre che cosa contengano, come usare gli indici generali e analitico, come avere familiarità con il linguaggio specifico; poi il resto diventa semplice (abbastanza semplice- non c’è limite né al più semplice né al molto complicato…; è tutto così nella vita! 😉 )

          • #93936
            Up
            0
            Down
            ::


            Chiedo scusa di aver male interpretato. \newcommand, \renewcommand non mi sono sconosciuti, così come Latex in sè (ne conosco una piccola parte ma riesco a muovermi con una qualche autonomia). Quando hai parlato di macro credevo intendessi macro in perl o in lua o in qualche altro linguaggio “compatibile” (se si può dire) con Latex. Non pensavo ti riferissi “semplicemente” ai comandi Latex.
            Scusa il fraintendimento. Alcune guide le ho già scaricate e onestamente attendo la versione 1 (mi sembra siamo alla 0.99) della guida GUIT per stamparla e rilegarla con la dignità che merita. Forse mi sono già anche procurato il Latex Ref. Man. Se no me lo procuro.
            Comunque ho fatto qualche prova e per ora funziona. Ho in mente qualche piccola modifica: vediamo se viene.
            A presto.
            Davide

          • #93937
            OldClaudio
            Partecipante
              Up
              0
              Down
              ::


              Le cose che definisci con \newcommand o ridefinisci con \renewcommand, o con \def, o con \edef, o con \gdef o con \xdef si chiamano macro in gergo TeX; non me lo sono inventato, perché questo nome è stato usato da Knuth, il papà del sistema TeX (che contiene gli eseguibili tex, etex, pdftex, xetex, luatex, aleph, e tanti altri, come metapost, metafont, eccetera; insomma il sistema TeX è costituito da tutti gli eseguibili che si trovano in texlive/2013/bin// ).

              Insomma macro è un comando interpretato ed eseguito da un particolare interprete sia esso perl, lua o tex; ovviamante i linguaggi di ciascun inteprete sono diversi, quindi per scrivere macro bisogna conoscere il linguaggio specifico usato dall’interprete; le macro latex richiedono uno dei motoeri di interpretazione ed esecuzione il cui nome finisce con tex.

              Appena ho finito le lettere dell’alfabeto la GuidaGuIT prenderà il numero di versione 1.00, ma non vedrà mai la fine perché il sistema TeX è in continua evoluzione; per quel che riguarda LaTeX sia sul punto che l’interprete cambia linguaggio, pur mantenendo l’opportuna retrocompatibilità, perché il tanto atteso LaTeX 3 sembra in dirittura d’arrivo.

            • #93938
              franen
              Partecipante
                Up
                0
                Down
                ::


                Mi aggancio alla discussione, visto che si sta parlando di qualcosa a cui ho dedica un numero spropositato di ore: canzonieri liturgici con indici tematici.
                Sarebbe bello se fornissi un esempio del codice che usi e che vuoi modificare, ma intanto ti mostro io quanto ho fatto finora: https://www.dropbox.com/sh/uwbj86ctsqey65m/DqmouEvMv7
                Innanzitutto:
                Con songidx risulta difficile gestire titoli di canzoni che iniziano con lettere accentate, quindi lo ho abbandonato in favore di xindy. Con xindy riesco a creare un indice alfabetico generale e un indice tematico.
                L’approccio [tt]\index[tematico]Momento!Titolo[\tt]funziona, ma forse serve qualche accorgimento. Nel mio codice gestisco solo un livello di indicizzazione, cioè: Offertorio-Titolo. Se vuoi Tempo LIturgico-Offertorio-Titolo è più complesso, ma non credo ci siano problemi.

                Alcune cose da sottolineare per il mio codice:
                -usa songs 2.14, la versione 2.17 dà problemi con la codifica delle lettere accentate
                -compila con xelatex con l’opzione shell escape attiva, per lanciare xindy direttamente nella compilazione.
                -per creare un indice tematico occorre che nelle canzoni ci sia un comando [tt]\momenti{momenti1;momento2}}[/tt]. Ho inserito questo comando solo in alcune canzoni, a titolo di esempio. Volendo potresti attingere dalla riga %momenti{xxxx} e fare copia-incolla o scriverti uno script che lo faccia in automatico.
                -Ti do tutte la canzoni che ho scritto in codice compatibile con Songs, alcune sono scritte direttamente da me, altre da amici con cui ho collaborato per la creazione di canzonieri. Sono liberamente utilizzabili, e se anche tu ne avessi da condividere sarei felice di riceverle! (il mio indirizzo mail è nel colophon di questo canzoniere)

                Ora non riesco a spiegarti il codice, mi spiace, se vuoi proseguiamo la conversazione via mail!

                Buon lavoro.

                Francesco

              • #93939
                Up
                0
                Down
                ::


                Per OldClaudio
                Sono ben cosciente che lo sviluppo della guida non termina con la versione 1, ma avevo già stampato una versione della guida e volevo aspettare la versione 1 per un’altra stampa (ma mi rendo conto che sono fisime mie)

                Per Franen
                Esaminerò volentieri quanto mi hai proposto. Tuttavia ti chiedo di aver pazienza fino alle vacanze di Pasqua incipienti che forse ho qualche momento più tranquillo. Proporrei di continuare via mail per non intasare il forum (a meno che non ci siano altre richieste specifiche). Preparo magari anche un Tex più commentato di quello che ho fatto.
                Io sono riuscito ad avere una compilazione accettabile delle lettere accentate (forse pacioccando a mano il file di uscita) e sono riuscito, con molto gusto personale, a crearmi l’indice analitico della discussione con anche i numeri di canto a sinistra lasciando allineati i titoli (come vedrai poi dal pdf).

                Ci sentiamo presto.
                Davide

              • #93940
                Up
                0
                Down
                ::


                Perdonate il tempo che ci ho messo a rispondere. Ho risolto perfettamente il mio problema con il seguente codice, figlio, ovviamente, dei suggerimenti che mi sono stati offerti in questa discussione
                `
                \newindex{libretto}{libretto}
                \makeindex %per creare l'indice analitico
                \newcommand\MangiaPagine[1]{}
                \newcommand{\indicecanto}[2]{\index{{\Large \bfseries#1}!#2@\protect\makebox[2em][l]{\thesongnum} #2|MangiaPagine}}
                `

                Nei file dei canti dopo \beginsong{…} (vedi pacchetto songs) ho messo cose tipo
                `
                \indicecanto{Offertorio}{Ecco quel che abbiamo}
                `
                Facendo compilare e poi aggiornando l’indice ottenevo quanto volevo.

                La soluzione mi soddisfa a tal punto che sono tentato di utilizzare Xindy (se ho ben capito cosa fa) per gestirmi due diversi indici: uno senza suddivisioni con il semplice ordine alfabetico dei canti e uno come quello per sezioni.
                Alla prossima.
                Davide

            Visualizzazione 9 filoni di risposte
            • Devi essere connesso per rispondere a questo topic.

            Go to top