diff --git a/.gitignore b/.gitignore
index 51dd93171d7b3f7320857cce32d82ba49f6c4c8c..f5f6eac7dad64036a9b9c9dd72bc3ac783a95e96 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,4 @@
 *.pdf
+*.tex
 img/graph/*.svg
 img/plot/*.svg
diff --git a/Makefile b/Makefile
index 7e1d2a850f0318de120e606916d3c15c2a1a4e8c..b04271625a8d2199bc7025d2ebce81cd1bb858bd 100644
--- a/Makefile
+++ b/Makefile
@@ -21,12 +21,18 @@ else
 	PANDOC_PDF_ENGINE_OPT_NAME = pdf-engine
 endif
 
-PANDOC_PDF_OPTIONS = \
+PANDOC_OPTIONS = \
 	--fail-if-warnings \
 	--standalone \
 	--filter pandoc-citeproc \
+
+PANDOC_PDF_OPTIONS = \
+	$(PANDOC_OPTIONS) \
 	--$(PANDOC_PDF_ENGINE_OPT_NAME)=xelatex \
 
+PANDOC_TEX_OPTIONS = \
+	$(PANDOC_OPTIONS) \
+
 # -----------------------------------------------------------------------------
 # sources
 # -----------------------------------------------------------------------------
@@ -38,9 +44,13 @@ SOURCES_MD = $(sort $(wildcard chapter-*.md))
 # targets
 # -----------------------------------------------------------------------------
 
-default: all
+TARGETS = \
+	$(TITLE).pdf \
+	$(TITLE).tex \
+
+default: $(TITLE).pdf
 
-all: $(TITLE).pdf
+all: $(TARGETS)
 
 SUBDIRS = \
 	img \
@@ -53,6 +63,9 @@ subdirs: $(SUBDIRS)
 $(TITLE).pdf: $(SUBDIRS) metadata.yml $(SOURCES_CSV) $(SOURCES_MD)
 	$(PANDOC) $(PANDOC_PDF_OPTIONS) -o $@ metadata.yml $(SOURCES_MD)
 
+$(TITLE).tex: $(SUBDIRS) metadata.yml $(SOURCES_CSV) $(SOURCES_MD)
+	$(PANDOC) $(PANDOC_TEX_OPTIONS) -o $@ metadata.yml $(SOURCES_MD)
+
 check: spellcheck
 
 spellcheck:
@@ -65,7 +78,7 @@ clean:
 	@for dir in $(SUBDIRS); do \
 	  $(MAKE) -C $$dir $@; \
 	done
-	rm -f $(TITLE).pdf
+	rm -f $(TARGETS)
 
 .PHONY: \
 	all \