aboutsummaryrefslogtreecommitdiff
path: root/reproduce/src/make/paper.mk
diff options
context:
space:
mode:
authorMohammad Akhlaghi <mohammad@akhlaghi.org>2018-02-27 14:48:02 +0100
committerMohammad Akhlaghi <mohammad@akhlaghi.org>2018-02-27 15:07:23 +0100
commit30733df5d30e150a26d53173d14bf941f179f6f5 (patch)
tree515694e80bded278388fbc3ff65acb60c0599cf7 /reproduce/src/make/paper.mk
parent4360fbd36203022fde68b12f90548ca3a39085ce (diff)
Default PDF now uses PGFPlots and BibLaTeX
Making plots and including references are integral parts of a scientific paper. Therefore to demonstrate how cleanly they can be used within the pipeline, they are now used to produce the final PDF. To use PGFPlots a random dataset is made (using AWK's random function) and is plotted using PGFPlots. The minimum and maximum values of the dataset are also included in the text to further show how such calculations can go into the macros and text. For the references, the NoiseChisel paper was added as a reference to cite when using this pipeline along with the MUSE UDF paper I, which uses this pipeline for two sections. Following this discussion, citation is also discussed in `README.md` and the NoiseChisel paper is also added as a published work with a reproduction pipeline.
Diffstat (limited to 'reproduce/src/make/paper.mk')
-rw-r--r--reproduce/src/make/paper.mk33
1 files changed, 28 insertions, 5 deletions
diff --git a/reproduce/src/make/paper.mk b/reproduce/src/make/paper.mk
index db20279..f3db1de 100644
--- a/reproduce/src/make/paper.mk
+++ b/reproduce/src/make/paper.mk
@@ -22,16 +22,39 @@
+# The bibliography
+# ----------------
+#
+# We need to run the `biber' program on the output of LaTeX to generate the
+# necessary bibliography before making the final paper.
+#
+# NOTE: `tex/pipeline.tex' is an order-only-prerequisite for
+# `paper.bbl'. This is because we need to run LaTeX in both the `paper.bbl'
+# recipe and the `paper.pdf' recipe. But if `tex/references.tex' hasn't
+# been modified, we don't want to re-build the bibliography, only the final
+# PDF.
+$(texbdir)/paper.bbl: tex/references.tex \
+ | $(tikzdir) $(texbdir) tex/pipeline.tex
+
+ # We'll run LaTeX first to generate the `.bcf' file (necessary for
+ # `biber') and then run `biber' to generate the `.bbl' file.
+ p=$$(pwd); \
+ export TEXINPUTS=$$p:$$TEXINPUTS; \
+ cd $(texbdir); \
+ pdflatex -shell-escape -halt-on-error $$p/paper.tex; \
+ biber paper
+
+
+
+
+
# The final paper
# ---------------
#
# The commands to build the final report. We want the pipeline version to
# be checked everytime the final PDF is to be built.
-texbdir=$(texdir)/build
-tikzdir=$(texbdir)/tikz
-$(texbdir): | $(texdir); mkdir $@
-$(tikzdir): | $(texbdir); mkdir $@
-paper.pdf: tex/pipeline.tex paper.tex | $(tikzdir) $(texbdir)
+paper.pdf: tex/pipeline.tex paper.tex $(texbdir)/paper.bbl \
+ | $(tikzdir) $(texbdir)
# Make the report.
p=$$(pwd); \