Ik ben bezig een groot document met figuren in LaTeX aan het schrijven. Nu heb ik een Makefile gemaakt om de TeX source en de benodigde figuren naar PDF te converteren.
* De .tex files staan in de subdir texsrc
* De in XFig gemaakte plaatjes staan in de subdir Graphics/src. De daarvan afgeleide .pdf files komen in Graphics.
* Er zijn ook plaatjes die ik alleen in .eps heb. Ook daarvan moeten .pdfs gemaakt worden.
* De .bbl file bevat bibliografie-info.
Dit is de (wat uitgeklede) Makefile:
Het probleem is dat als ik de figures-dependency uit de regel voor $(TARGET).bbl haal, hij netjes zegt dat de file up-to-date is (als dat idd zo is
). Echter, als ik figures toevoeg runt hij altijd de pdflatex en de bibtex regel (niet de conversie van fig->pdf en eps->pdf, als dat niet nodig is).
Het .bbl target hangt wel van de aanwezigheid van de .pdf figuren af, want anders gaat pdflatex over z'n nek.
Dus: wat doe ik fout?
* De .tex files staan in de subdir texsrc
* De in XFig gemaakte plaatjes staan in de subdir Graphics/src. De daarvan afgeleide .pdf files komen in Graphics.
* Er zijn ook plaatjes die ik alleen in .eps heb. Ook daarvan moeten .pdfs gemaakt worden.
* De .bbl file bevat bibliografie-info.
Dit is de (wat uitgeklede) Makefile:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| SRCDIR = texsrc
IMGDIR = Graphics
IMGSRCDIR = $(IMGDIR)/src
TARGET = thesis
PDFEPSFIGURES = $(patsubst %.eps,%.pdf,$(wildcard $(IMGDIR)/*.eps))
PDFFIGFIGURES = $(patsubst $(IMGSRCDIR)/%.fig,$(IMGDIR)/%.pdf,$(wildcard $(IMGSRCDIR)/*.fig))
.PHONY: all bib pdf figures
all: pdf
bib: $(TARGET).bbl
pdf: $(TARGET).pdf
figures: $(PDFFIGFIGURES) $(PDFEPSFIGURES)
$(TARGET).bbl: bibliodb.bib plainnatlck.bst figures
pdflatex $(SRCDIR)/$(TARGET)
bibtex $(TARGET)
$(TARGET).pdf: $(SRCDIR)/*.tex $(TARGET).bbl figures TAGS
pdflatex $(SRCDIR)/$(TARGET)
@while ( grep "Rerun to " \
$(TARGET).log > /dev/null ); do \
echo '** Re-running LaTeX **'; \
pdflatex $(SRCDIR)/$(TARGET); \
done
pdflatex $(SRCDIR)/$(TARGET)
# (re)Make .pdf if .eps is newer
%.pdf: %.eps
epstopdf $*.eps > $*.pdf
# (re)Make .pdf if .fig is newer
%.pdf: src/%.fig
fig2dev -Lpdftex -p $*.pdf_t $< $@
fig2dev -Lpdftex_t -p $@ $< $*.pdf_t
# Verder staan er nog wat clean toestanden, maar die doen er niet toe. |
Het probleem is dat als ik de figures-dependency uit de regel voor $(TARGET).bbl haal, hij netjes zegt dat de file up-to-date is (als dat idd zo is
Het .bbl target hangt wel van de aanwezigheid van de .pdf figuren af, want anders gaat pdflatex over z'n nek.
Dus: wat doe ik fout?