5 ms·
I do something similar, here's my Makefile -- I have scripts that build figures in a separate directory, /figures. I'm sure it could be terser, but it does the
by graphene 9y ago
I do something similar, here's my Makefile -- I have scripts that build figures in a separate directory, /figures. I'm sure it could be terser, but it does the job for me.
texfiles = acronyms.tex analytical_mecs_procedure.tex analytical_mecs.tex \
anderson_old.tex background.tex chaincap.tex \
conclusions.tex cvici.tex gold_chain_test.tex introduction.tex \
main.tex mcci_manual.tex methods.tex moljunc.tex \
tb_sum_test.tex times_procedure.tex tm_mcci_workflow.tex tmo.tex \
vici_intro.tex
# dynamically generated figures
all: main.pdf
main.pdf: $(texfiles) figures/junction_occupations.pdf figures/overlaps_barplot.pdf \
figures/transmission_comparison.pdf \
figures/wigner_distributions.pdf
pdflatex main.tex && bibtex main && pdflatex main.tex && pdflatex main.tex
figures/junction_occupations.pdf: figures/junction_occupations.hs
ghc --make figures/junction_occupations.hs
figures/junction_occupations -w 800 -h 400 -o figures/junction_occupations.svg
inkscape -D -A figures/junction_occupations.pdf figures/junction_occupations.svg
figures/overlaps_barplot.pdf: figures/overlaps_barplot.py
python figures/overlaps_barplot.py
figures/transmission_comparison.pdf: figures/transmission_comparison.py
python figures/transmission_comparison.py
figures/wigner_distributions.pdf: figures/wigner_distributions.py
python figures/transmission_comparison.py
clean:
rm *.log *.aux *.blg *.bbl *.dvi main.pdf
- majewsky 9y agofigures/%.pdf: figures/%.py python $<
- xelxebar 9y agoI noticed that you have some file dependencies not encoded in the targets. Also, you might like reading up on Automatic Variables ($@, $^, $<, etc). Anyway, just for fun I tried rewriting your script in a way that should Just Work a little better. texfiles = $(wildcard *.tex) figures_ink = figures/junction_occupations.pdf figures_py = figures/overlaps_barplot.pdf \ figures/transmission_comparison.pdf \ figures/wigner_distributions.pdf figures = $(figures_ink) $(figures_py) main.pdf: main.tex $(texfiles) $(figures) pdflatex $< bibtex $(<:*.tex=*) pdflatex $< pdflatex $< figures/junction_occupations: %: %.hs ghc --make $^ figures/junction_occupations.svg: figures/junction_occupations $< -w 800 -h 400 -o $@ $(figures_ink): %.pdf: %.svg inkscape -D -A $@ $^ $(figures_py): %.pdf: %.py python $^ clean: rm *.log *.aux *.blg *.bbl *.dvi main.pdf
- new299 9y agoYes, I don't think I'll get a chance to dig out my Makefile. But my Makefile was very much like this.
- kurlberg 9y agoCheck out latexmk: it keeps track of having to run bibtex etc, and runs latex "enough times" so that all equation refs etc have stabilised. (Latexmk -pdf to build a pdf, default is dvi.)