4 # full-sized image dimensions
15 $(DEST)/1TIT-atoms.mp4 \
16 $(DEST)/takamori-fig4b-fw-fh.png \
17 $(DEST)/skeletal-muscle-fw-fh.png \
18 $(DEST)/titin-fw-fh.png \
19 $(DEST)/1TIT-fw-fh.png \
20 $(DEST)/1TIT-tw-th.png \
21 $(DEST)/pirchi-fig1-fw-hh.png \
22 $(DEST)/afm-3d-fw-fh.png \
23 $(DEST)/contact-afm.ogv \
24 $(DEST)/afm-fw-fh.png \
25 $(DEST)/piezo-fw-fh.png \
26 $(DEST)/unfolding-fw-fh.png \
27 $(DEST)/unfolding-hw-fh.png \
28 $(DEST)/unfolding-hw-hh.png \
29 $(DEST)/expt-sawtooth-fw-fh.png \
30 $(DEST)/expt-sawtooth-hw-hh.png \
31 $(DEST)/carrion-vazquez-fig2-fw-fh.png \
32 $(DEST)/lu-fig1-fw-fh.png \
33 $(DEST)/apparatus-fw-fh.png \
34 $(DEST)/labview-fw-fh.png \
35 $(DEST)/pyafm-fw-fh.png \
36 $(DEST)/ants-fw-fh.png \
37 $(DEST)/cantilever.jpg \
39 $(DEST)/vibration-fw-fh.png \
40 $(DEST)/vibration-hw-fh.png \
41 $(DEST)/bump-fw-fh.png \
42 $(DEST)/florin-fig2-hw-fh.png \
43 $(DEST)/pbs-hist-hw-hh.png \
44 $(DEST)/sawsim-states-hw-fh.png \
45 $(DEST)/sawsim-states-hw-hh.png \
46 $(DEST)/monte-carlo-fw-fh.png \
47 $(DEST)/landscape-hw-hh.png \
48 $(DEST)/landscape-hw-fh.png \
49 $(DEST)/landscape-bell-hw-hh.png \
50 $(DEST)/kramers-integrand-hw-hh.png \
51 $(DEST)/wlc-model-hw-fh.png \
52 $(DEST)/fjc-model-hw-fh.png \
53 $(DEST)/fit-valley-fw-fh.png \
54 $(DEST)/1TIT-hbond-fw-fh.png \
55 $(DEST)/fit-valley-PBS-hw-hh.png \
56 $(DEST)/fit-valley-PBS-0.5M-CaCl2-hw-hh.png \
57 $(DEST)/pbs-0.5M-CaCl2-hist-fw-fh.png
59 # $(DEST)/landscape-cant-hw-hh.png
61 .PRECIOUS: $(DEST)/% $(DEST)/%.png $(DEST)/%.pdf
63 all: index.html $(THUMBNAILS)
66 rm -f index.html $(DEST)/* $(SRC)/pymol/*-0*.png
69 itex2MML < "$(<)" > "$(@)"
71 ## Get the high-resolution source into PNG format
74 $(DEST)/%: $(SRC)/binary/%
77 # TODO: re-render and crop?
78 $(DEST)/%: $(SRC)/matplotlib/%
81 # TODO: re-render and crop?
82 $(DEST)/%: $(SRC)/tikz/%
85 # TODO: extract from the VI? (probably not ;)
86 $(DEST)/%: $(SRC)/labview/%
90 $(DEST)/%.png: $(SRC)/binary/%.jpg
94 $(DEST)/%.png: $(SRC)/binary/%.pdf
95 convert -density 350 "$(<)" "$(@)"
97 # compile Asymptote graphics
98 $(DEST)/%.pdf: $(SRC)/asy/%.asy
99 asy -noprc -render=0 -f pdf -cd "$(<D)" -o "$(*).pdf" "$(*).asy"
100 mv "$(<D)/$(*).pdf" "$(@)"
102 # convert Asympote PDFs
103 $(DEST)/%.png: $(DEST)/%.pdf
104 convert -density 350 "$(<)" "$(@)"
106 # convert PyMol images
107 $(DEST)/%.png: $(SRC)/pymol/%.pml
108 cd "$(SRC)/pymol" && pymol -cq "$(*).pml"
109 mv "$(SRC)/pymol/$(*).png" "$(@)"
111 # convert PyMol images
112 $(DEST)/%.mp4: $(SRC)/pymol/%.pml
113 cd "$(SRC)/pymol" && pymol -cq "$(*).pml"
114 ffmpeg -y -r 20 -i "$(SRC)/pymol/$(*)-%4d.png" -s 640x480 -vcodec libx264 \
115 -preset slower -vpre ipod640 -b:v 800k -bt 800k -aspect 640:480 \
118 ## Convert to the desired geometry
120 # full width, full height
121 $(DEST)/%-fw-fh.png: $(DEST)/%.png
122 convert -format png -strip -quality 95 "$(<)" -thumbnail $(WIDTH)x$(HEIGHT) "$(@)"
124 # half width, full height
125 $(DEST)/%-hw-fh.png: $(DEST)/%.png
126 convert -format png -strip -quality 95 "$(<)" -thumbnail $(HALF_WIDTH)x$(HEIGHT) "$(@)"
128 # full width, half height
129 $(DEST)/%-fw-hh.png: $(DEST)/%.png
130 convert -format png -strip -quality 95 "$(<)" -thumbnail $(WIDTH)x$(HALF_HEIGHT) "$(@)"
132 # half width, half height
133 $(DEST)/%-hw-hh.png: $(DEST)/%.png
134 convert -format png -strip -quality 95 "$(<)" -thumbnail $(HALF_WIDTH)x$(HALF_HEIGHT) "$(@)"
136 # third width, third height
137 $(DEST)/%-tw-th.png: $(DEST)/%.png
138 convert -format png -strip -quality 95 "$(<)" -thumbnail $(THIRD_WIDTH)x$(THIRD_HEIGHT) "$(@)"