# Latex Makefile using latexmk # Modified by Dogukan Cagatay # Originally from : http://tex.stackexchange.com/a/40759 # # Change only the variable below to the name of the main tex file. PROJNAME=univalent-categories MAIN=main.tex # You want latexmk to *always* run, because make does not have all the info. # Also, include non-file targets in .PHONY so they are run regardless of any # file of the given name existing. .PHONY: $(PROJNAME).pdf all clean preview # The first rule in a Makefile is the one executed by default ("make"). It # should always be the "all" rule, so that "make" and "make all" are identical. all: $(PROJNAME).pdf preview: $(MAIN) latexmk -pvc -jobname=$(PROJNAME) -pdf -xelatex $< # CUSTOM BUILD RULES # In case you didn't know, '$@' is a variable holding the name of the target, # and '$<' is a variable holding the (first) dependency of a rule. # "raw2tex" and "dat2tex" are just placeholders for whatever custom steps # you might have. %.tex: %.raw ./raw2tex $< > $@ %.tex: %.dat ./dat2tex $< > $@ # MAIN LATEXMK RULE # -pdf tells latexmk to generate PDF directly (instead of DVI). # -pdflatex="" tells latexmk to call a specific backend with specific options. # -use-make tells latexmk to call make for generating missing files. # -interactive=nonstopmode keeps the pdflatex backend from stopping at a # missing file reference and interactively asking you for an alternative. $(PROJNAME).pdf: $(MAIN) latexmk -jobname=$(PROJNAME) -pdf -xelatex -use-make $< cleanall: latexmk -C clean: latexmk -c