Risposte nei forum create
-
AutoreRisposte
-
8 Marzo 2007 alle 20:09 in risposta a: [risolt]epstopdf in Makefile lanciato se le fig non cambiano #13486::
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!
8 Marzo 2007 alle 14:56 in risposta a: [risolt]epstopdf in Makefile lanciato se le fig non cambiano #13481::
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
8 Marzo 2007 alle 14:46 in risposta a: [risolt]epstopdf in Makefile lanciato se le fig non cambiano #13480::
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
::
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.texif [ -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
-
AutoreRisposte