zasf

Risposte nei forum create

Stai visualizzando 4 risposte – dal 1 al 4 (di 4 totali)
  • Autore
    Risposte
  • Up
    0
    Down
    ::


    Grazie a entrambi, prendendo un po’ di qua e un po’ di la, dati i miei vincoli, la soluzione che mi piace di più è:


    PDFFIGURES = $(patsubst %.eps,%.pdf,$(wildcard ./Matlab/*.eps))

    %.pdf: %.eps
    epstopdf $*.eps > $*.pdf
    @cp Matlab/*.pdf $(TEXDIR)pictures/

    all: pdf

    pdf: $(BASENAME).pdf

    $(BASENAME).pdf: $(PDFFIGURES) $(TEXDIR)/$(BASENAME).tex
    @$(MAKE) -C $(TEXDIR)

    questo mi permette di preservare in $(TEXDIR) tutti i sorgenti utili a compilare il documento finale in pdf (.tex, figure in .pdf e Makefile), cosicchè con una ulteriore regolina nel Makefile principale posso anche ottenere uno zip snello distribuibile (senza la dir di Matlab, etc).

    Le figure .eps sono convertite in .pdf solo quando serve, inoltre il Makefile principale si accorge di cambiamenti in $(TEXDIR)/$(BASENAME).tex e quindi dalla root del progetto posso rifare il pdf ad ogni cambiamento del sorgente .tex. Il fatto che il file .tex debba essere uno solo non è una limitazione per me in quando i vari capitoli sono inseriti nel .tex principale tramite \input.

    Grazie ancora a tutti!

    Up
    0
    Down
    ::


    Ok, ho cambiato il Makefile così
    `PDFFIGURES = $(patsubst %.eps,%.pdf,$(wildcard ./Matlab/*.eps))

    all: pdf

    %.pdf: %.eps
    epstopdf $*.eps > $*.pdf
    @cp Matlab/*.pdf $(TEXDIR)pictures/

    pdf: $(BASENAME).pdf

    $(BASENAME).pdf: $(PDFFIGURES)
    @cd $(TEXDIR); make pdf`

    i file .pdf delle figure sono doppi ma è un buon compromesso (potrei anche solo linkarli), il risultato è ok visto che

    `matteo@burnt:~/documenti/ricerca/quaderno$ make
    epstopdf Matlab/3copule2.eps > Matlab/3copule2.pdf
    epstopdf Matlab/dhistonorm1.eps > Matlab/dhistonorm1.pdf
    epstopdf Matlab/dhistonorm2.eps > Matlab/dhistonorm2.pdf
    epstopdf Matlab/dscatter1.eps > Matlab/dscatter1.pdf
    epstopdf Matlab/dscatter2.eps > Matlab/dscatter2.pdf
    epstopdf Matlab/mhistonorm1.eps > Matlab/mhistonorm1.pdf
    epstopdf Matlab/mhistonorm2.eps > Matlab/mhistonorm2.pdf
    epstopdf Matlab/mprezzi.eps > Matlab/mprezzi.pdf
    epstopdf Matlab/mscatter1.eps > Matlab/mscatter1.pdf
    epstopdf Matlab/mscatter2.eps > Matlab/mscatter2.pdf
    epstopdf Matlab/qqplot2.eps > Matlab/qqplot2.pdf
    epstopdf Matlab/qqplot3.eps > Matlab/qqplot3.pdf
    epstopdf Matlab/rend.eps > Matlab/rend.pdf
    make[1]: Entering directory `/home/matteo/documenti/ricerca/quaderno/tex'
    pdflatex 1
    pdflatex 2
    pdflatex 3
    thumbpdf
    pdflatex 4
    make[1]: Leaving directory `/home/matteo/documenti/ricerca/quaderno/tex'`

    cambio qualcosa nel file .tex
    `
    matteo@burnt:~/documenti/ricerca/quaderno$ make
    make: Nothing to be done for `all'.
    matteo@burnt:~/documenti/ricerca/quaderno$ cd tex/
    matteo@burnt:~/documenti/ricerca/quaderno/tex$ make clean
    rm -f aux/*.aux aux/*.log aux/*.blg aux/*.bbl aux/*.toc aux/*.out aux/*.tpt *.pdf aux/quaderno.pdf *~
    matteo@burnt:~/documenti/ricerca/quaderno/tex$ cd ..
    matteo@burnt:~/documenti/ricerca/quaderno$ make
    make[1]: Entering directory `/home/matteo/documenti/ricerca/quaderno/tex'
    pdflatex 1
    pdflatex 2
    pdflatex 3
    thumbpdf
    pdflatex 4
    make[1]: Leaving directory `/home/matteo/documenti/ricerca/quaderno/tex'
    `

    Ora non mi lancia epstopdf se non ho cambiato i file .eps, però forse c’è qualcosa che non va nel ‘make pdf’, com’è possibile che se cambio il file ./tex/quaderno.tex e lancio ‘make’ mi dice che non c’è da far nulla?? I due Makefile sono “indentati” male?

    Sono alle prime armi con i Makefile ma lo strumento è troppo potente perchè non ci metta le mani sopra

    Up
    0
    Down
    ::


    Hum ok.. forse il problema è proprio il fatto che io sposto i file .pdf dalla directory ./Matlab a ./tex/pictures, di conseguenza make non trova nessun file .pdf e ogni volta lo rifa.

    Non ho nessun motivo per usare la dir ./tex/pictures, se non estetico, visto che vorrei tenere sotto la dir ./tex tutto ciò che riguarda il documento pdf senza “quello che ci sta dietro” come codice matlab, etc

    in risposta a: pdflatex mi sporca la cartella #8107
    Up
    0
    Down
    ::


    Ciao,

    anche se uso LaTex da poco tempo, mi sta dando parecchie soddisfazioni.

    Per evitare di cancellare i file ausiliari, ma evitare che “sporchino” la cartella principale, si potrebbe chiedere a pdflatex di metterli in una sottocartella.

    `#!/bin/bash
    AUXDIR=./aux/

    function makepdf () {
    if [ ! -e $AUXDIR ]
    then
    mkdir $AUXDIR
    fi
    pdflatex -output-directory=$AUXDIR $NOME.tex
    pdflatex -output-directory=$AUXDIR $NOME.tex
    pdflatex -output-directory=$AUXDIR $NOME.tex
    thumbpdf –verbose $NOME.tex
    pdflatex -output-directory=$AUXDIR $NOME.tex

    if [ -e $AUXDIR/$NOME.pdf ]
    then
    cp $AUXDIR/$NOME.pdf $NOME.pdf
    else
    echo “nella dir $AUXDIR non è stato creato nessun pdf, forse c'è qualche problema”
    fi
    }

    echo “Inserisci il nome del file .tex senza estensione”
    read NOME
    if [ -e $NOME.tex ]
    then
    export TEXINPUTS=.:./aux/:/usr/share/texmf-tetex//
    makepdf
    else
    echo “Il file specificato non esiste”
    fi`

    Matteo

Stai visualizzando 4 risposte – dal 1 al 4 (di 4 totali)

Go to top