LaTeX makefile
Fri 14 February 2014
[caption id="" align="alignright" width="350"]
Document writing without makefile (Photo credit: Wikipedia)[/caption]
As many people writing using efficient tools, I use [latex]LaTeX[/latex]. I divide my work in chapters, each chapter being written in separate .tex file[1. as explained in wikibooks]. I need an efficient way to easily generate the final document[2. including bibliography, index, and table of content]. Here is my solution[3. works with texlive 2013 and GNU/make 3.82], based on a makefile and a main document.
the preambule
The main document looks like:
\documentclass[]{report}
%{wanted packages}
\usepackage{makeidx}
\makeindex
\author{Manu}
\title{Great title}
\begin{document}
\maketitle{}
\tableofcontents
\listoffigures
\listofalgorithms
\chapter*{intro}
\input{intro.tex}
\chapter{foo}
\input{foo.tex}
\chapter{bar}
\input{bar.tex}
\chapter{foobar}
\input{foobar.tex}
\chapter*{end}
\input{end.tex}
\bibliographystyle{apalike}
\bibliography{biblio,rfc}
\printindex
\end{document}
the makefile
the makefile looks like:
SRC=document.tex intro.tex foo.tex bar.tex foobar.tex end.tex #.tex files
FIG=fig/logo.png fig/seagull.pdf #fig needed
BIB=rfc.bib math.bib # bibtex files
TEX=pdflatex #compiler
all: domcument.pdf #final target
%.pdf: %.tex %.log %.ind %.bbl %.toc $(SRC) $(FIG) $(BIB)
while grep -e 'Rerun to get' -e 'run LaTeX again' *.log ; do $(TEX) $< ; done
%.aux %.idx %.toc %.log: %.tex
$(TEX) $<
%.bbl %.blg: %.aux $(BIB)
bibtex $< && $(TEX) $*.tex
%.ind: %.idx
makeindex $< && $(TEX) $*.tex
It is not quite clean, but it works and it is understandable. Implicit variables ($<, $*, ...) are useful but I only found one place where it is documented.
(Non-)Related articles
Related articles (or not):
Category: tools Tagged: GNU LaTeX Makefile Writing how to tools




