Counterpoint: advisor said no.
"Just use Word, everyone else does. I have never heard of this latex thing, so must be just some trendy useless overengineered software that does Word's job but worse. Word can track changes just fine, and you can leave comments." proceeds to strikethrough, highlight, and inline comment everything instead of using either of those features "I want to read what you wrote, not fight technology" proceeds to email you three separate times after forgetting to attach v28 about how a graphic looks wrong because Word ate it
Dude was shall we say, hands on about certain things. My dissertation is still embargoed because he is paranoid about being scooped. Joke's on him, everything that hasn't been published is not exciting enough to meet his own metric for publishability.
Haha my first thought seeing this meme is "do you want to start writing LaTeX by hand? Because this is how you start..."
I wrote mine in LaTeX, highly recommend.
I mean, I spent years writing LaTeX for school so it was real simple and mindless. YMMV
I also added a Makefile for mine (LaTeX), and it would add the commit hash to the front page (with an asterisk if the repository had uncommitted changes).
So, if I gave a draft to someone and got feedback, I'd know exactly which revision it was.
Makefile in other comments. You'll need something like this on the title page (this assumes you use my Makefile which puts the version in
VERSION.tex
[that's the literal name of the file, not a placeholder]):{\bf{\color{red}DOCUMENT REVISION:}} {\color{blue}\input{VERSION}}
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) &
I also had some Makefiles in other directories, e.g., for my
media/
I had:MAKE = make -s RECURS = svgs/ recurs: $(RECURS) @$(foreach DIR, $(RECURS), \ echo "MAKE (CD) $(CURDIR)/$(DIR)"; \ $(MAKE) -C $(DIR) $(MAKECMDGOALS);) @echo "MAKE (CD) $(CURDIR)/" all: recurs clean: allclean: recurs clean
and for
media/svgs/
:SVG_FILES := $(wildcard *.svg) PDFDIR := ./ PDF_FILES := $(patsubst %.svg,$(PDFDIR)/%.pdf,$(SVG_FILES)) all: $(PDF_FILES) clean: @rm -f $(PDF_FILES) @echo "SH (RM) Tidying up derived PDFs" allclean: clean $(PDFDIR)/%.pdf: %.svg @inkscape -T --export-pdf=$@ $< @echo "INK (PDF) $<"
I recently read a tutorial titled: "how to annoy your collaborators: a git CI pipeline for LaTeX" ;)