Guida alla creazione di Makefile per documenti LaTeX

  • Creatore
    Topic
  • #37362
    Up
    0
    Down
    ::


    Quando mi sono avvicinato al LaTeX ho impiegato un po’ di tempo per decidere quale programma utilizzare per comporre i documenti, dopo un po’ di prove ho deciso di usare semplicemente l’editor di testo del sistema per scrivere i documenti e il terminale per compilare. La compilazione dei documenti, però, a volte richiede che vengano eseguiti più comandi, a volta ripetitivi ma anche difficili da ricordare (per esempio non ricordo mai a memoria quali siano i comandi per compilare un documento che utilizza il pacchetto “frontespizio”).

    Chi ha sviluppato programmi (specie in C/C++) probabilmente sa che per la compilazione dei progetti è possibile utilizzare il programma make. Riporto la descrizione del programma fornita su Wikipedia

    make è una utility usata con i sistemi operativi della famiglia UNIX che automatizza il processo di conversione dei file da una forma ad un’altra, risolvendo le dipendenze e invocando programmi esterni per il lavoro necessario. […] Esso usa file chiamati “makefiles” per determinare il grafo delle dipendenze per un particolare output, e gli script necessari per la compilazione da passare alla shell.

    (http://it.wikipedia.org/wiki/make)

    make può essere usato non solo per compilare programmi, ma anche i documenti LaTeX, il problema è che su Internet è presente pochissima documentazione al riguardo, eppure vedo che sono molto usati (anche su questo forum ho trovato alcune richieste sui Makefile). Già da un po’ di tempo avevo una mezza idea di realizzare una guida su come creare Makefile per LaTeX e solo poche settimane fa mi sono finalmente deciso e un primo risultato lo trovate all’indirizzo http://elubuntu.altervista.org/LaTeX/Guide/make.pdf (qui i sorgenti). La guida a cui mi sono riferito è quella di GNU make (che trovate qui), cioè la versione del programma che si trova nei sistemi Mac OS X e GNU/Linux (su Windows dovrebbe poter essere installato da qui, però non ho provato. Sulla guida, per ora, non faccio proprio accenno a questo sistema operativo). Mi sono concentrato più sui contenuti che sulla forma, infatti solo nell’ultima rilettura ho trovato svariati errori ortografici, se ne individuate altri segnalate pure.

    I Makefile che sono illustrati sono relativamente semplici (date le mie conoscenze basilari sull’argomento), ma se ne possono realizzare di molto molto più complessi. Anche in questo caso, se avete consigli, suggerimenti su come ampliare e migliorare la guida siete i benvenuti. Potete anche scrivere voi nuove sezioni o capitoli aggiuntivi, la licenza della guida è CC-BY.

    Ho intenzione di ampliare in futuro (spero non troppo lontano) la guida con delle brevi appendici di cui trovate i titoli (provvisori) nel file make.tex dell’archivio.

    Ciao!

Visualizzazione 3 filoni di risposte
  • Autore
    Risposte
    • #37363
      Up
      0
      Down
      ::


      Ciao,
      hai provato latexmk?

      Giacomo

    • #37364
      dianoia
      Partecipante
        Up
        0
        Down
        ::


        Grazie mille, era da tempo che cercavo qualcosa per iniziare!

        Vorrei anche sottoporti un problema: quando si usa il pacchetto bibtopic con la prima esecuzione di pdflatex vengono generati tanti file aux quante sono le bibliografie inserite nel documento (per esempio tesi1.aux; tesi2.aux…).
        Questi file aux devono quindi essere compilati con bibtex.
        Bisognerebbe quindi scrivere una funzione che cerchi gli aux e li passi come argomenti a bibtex.
        Non essendo un esperto ho pensato ad un ciclo for che cerca i file $documeno[0-9].aux.
        Che ne pensi?
        Un ciclo for può essere inserito come regola di un makefile?

        Ho provato ed uso spesso latexmk ma devo dire che non mi soddifsta, anche perché non supporta bibtopic,

        Mi permetto anche di segnalare una ripetizione della parola “documento” a pag. 5 del tuo testo.

      • #37365
        Up
        0
        Down
        ::

        Ciao,
        hai provato latexmk?

        Giacomo

        Non lo conoscevo, mi sono documentato un po’ però a quanto ho capito dovrebbe avere la stessa funzione di texi2dvi e texi2pdf di cui parlo nella guida. Il problema di questi script è che non vanno oltre i comandi standard (per esempio, come sta scritto nella guida, texi2* non compilano correttamente documenti che utilizzano il pacchetto “frontespizio”, mentre con un Makefile basta aggiungere i comandi adatti). Con un Makefile è possibile anche molte altre cose, anche non strettamente legate alla compilazione.

        Grazie mille, era da tempo che cercavo qualcosa per iniziare!

        Grazie 🙂

        Vorrei anche sottoporti un problema: quando si usa il pacchetto bibtopic con la prima esecuzione di pdflatex vengono generati tanti file aux quante sono le bibliografie inserite nel documento (per esempio tesi1.aux; tesi2.aux…).
        Questi file aux devono quindi essere compilati con bibtex.
        Bisognerebbe quindi scrivere una funzione che cerchi gli aux e li passi come argomenti a bibtex.
        Non essendo un esperto ho pensato ad un ciclo for che cerca i file $documeno[0-9].aux.
        Che ne pensi?
        Un ciclo for può essere inserito come regola di un makefile?

        Mi prendi un po’ alla sprovvista sull’uso dei cicli perché, come ho precisato, non sono estremamente ferrato sui Makefile. Però, visto che i comandi presenti in una regola sono semplicemente comandi svolti dalla shell, immagino che sia possibile inserire cicli, mi documenterò.
        Nel caso specifico, comunque, potresti provare a utilizzare le funzioni wildcard e patusbst, però dovrei capire un po’ meglio come funziona. Per esempio, i file .aux che bisogna compilare hanno lo stesso nome base dei file .bib? Dalla compilazione vengono generati altri file? (In caso di risposta negativa a questa domanda dovrai utilizzare un phony target)

        Mi permetto anche di segnalare una ripetizione della parola “documento” a pag. 5 del tuo testo.

        Grazie, ho corretto nel mio documento, fra un po’ aggiorno quello presente nel sito.

      • #37366
        Up
        0
        Down
        ::


        grazie mille Elrond, la tengo d’acconto!
        ora mi sto muovendo come te: editor di testo per scrivere e makefile + shell per compilare

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

    Go to top