Comment on LPT Do it.

<- View Parent
qjkxbmwvz@startrek.website ⁨5⁩ ⁨months⁩ ago

Sure thing. This also includes the beamer bit which I used for my defense. It’s all pretty hacky but hope it’s useful!

#
# Errors aren't handled gracefully (tex doesn't write to stderr, it seems)
# If you encounter errors, use "make verbose"
#
# For small changes (probably those without references), use "make quick"
#
# Thanks to https://gist.github.com/Miliox/4035649 for dependency outline

TEX = pdflatex
BTEX = biber
MAKE = make -s
TEXFLAGS = -halt-on-error
# $(MAIN).log is dumb if we have multiple targets!
SILENT = > /dev/null || cat $(MAIN).log
SILENT_NOER = 2>/dev/null 1>/dev/null
EDITOR = vim -p
PDFVIEW = evince
MAIN = main
PRES = presentation
ALL = $(MAIN).pdf
RECURS = media/ manuscripts/
VERSION := $(shell git rev-parse --short HEAD | cut -c 1-4)$(shell git diff-index --quiet HEAD && (echo -n ' ';git log -1 --format=[%cd]) || (echo -n '* '; date -u '+[%c]'))

all: recurs $(ALL)
pres: $(PRES).pdf
scratch: scratch.pdf

scratch.pdf: scratch.tex
	@echo "TEX	(final)	$<"
	@$(TEX) $(TEXFLAGS) $< $(SILENT)

verbose: SILENT = ''
verbose: $(ALL)

recurs: $(RECURS)
	@$(foreach DIR, $(RECURS), \
		echo "MAKE	(CD)	$(CURDIR)/$(DIR)"; \
		$(MAKE) -C $(DIR) $(MAKECMDGOALS);)
	@echo "MAKE	(CD)	./"

clean:
	@echo "SH	(RM)	Not recursing; 'make allclean' to clear generated files."
	@rm -f *.aux *.log *.out *.pdf *.bbl *.blg *.toc *.lof *.lot *.bcf *.run.xml

allclean: recurs
	@echo "SH	(RM)	A clean directory is a happy directory"
	@rm -f *.aux *.log *.out *.pdf *.bbl *.blg *.toc *.lof *.lot *.bcf *.run.xml
version:
	@echo "SH      (ver) $(VERSION)"
	@echo $(VERSION) > VERSION.tex

nixpages: main.pdf
	@echo "PDF     (pdftk)"
	@pdftk main.pdf cat 1 4-end output final.pdf

quick: $(MAIN).tex version
	@echo "TEX	(final)	$<"
	@$(TEX) $(TEXFLAGS) $< $(SILENT)

$(MAIN).pdf: $(MAIN).tex $(MAIN).bbl all.tex tex/abstract.tex tex/intro.tex tex/appendix.tex tex/some_section.tex tex/some_other_section.tex
	@echo "TEX	(draft)	$<"
	@$(TEX) $(TEXFLAGS) --draftmode  $< $(SILENT)
	@echo "TEX	(final)	$<"
	@$(TEX) $(TEXFLAGS) $< $(SILENT)

$(MAIN).bbl: $(MAIN).aux
	@echo "BIB	(bib)	$(MAIN)"
	@$(BTEX) $(MAIN) > /dev/null
	
$(MAIN).aux: $(MAIN).tex $(MAIN).bib version
	@echo "TEX	(draft)	$<"
	@$(TEX) $(TEXFLAGS) --draftmode  $< $(SILENT)

$(PRES).pdf: $(PRES).tex $(PRES).bbl tex/beamer*.tex tex/slides/*.tex
	@echo "TEX	(draft)	$<"
	@$(TEX) $(TEXFLAGS) --draftmode  $< $(SILENT)
	@echo "TEX	(final)	$<"
	@$(TEX) $(TEXFLAGS) $< $(SILENT)
$(PRES).bbl: $(PRES).aux
	@echo "BIB	(bib)	$(PRES)"
	@$(BTEX) $(PRES) > /dev/null
$(PRES).aux: $(PRES).tex $(MAIN).bib
	@echo "TEX	(draft)	$<"
	@$(TEX) $(TEXFLAGS) --draftmode  $< $(SILENT)

edit:
	@echo "EDIT	(fork)	$(EDITOR)"
	@$(EDITOR) ./tex/*.tex *.tex

view:
	@echo "VIEW	(fork)	$(PDFVIEW)"
	@$(PDFVIEW) $(ALL) $(SILENT_NOER) &

source
Sort:hotnewtop