blob: 59a795c7df0640fc0e6dfb06940443c95035c892 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
TEX?=xelatex
SOURCE=.
SRC =$(wildcard *.rst)
SVG =$(wildcard content/*.svg)
PDFS = $(SRC:.rst=.pdf)
INCLUDED_PDF = $(SVG:.svg=.pdf)
all: $(PDFS)
BIBS =$(wildcard *.bib)
DIR = $(sort $(shell find $(SOURCE) -name '*.rst' -print))
SOURCES = $(sort $(wildcard resources/*.tex) )
null :=
space := $(null) #
comma := ,
TEX_STYLE := $(subst $(space),$(comma),$(strip $(SOURCES)))
TEX_BIBS := $(subst $(space),$(comma),$(strip $(BIBS)))
PACK = $(shell sed -e 's/\#.*$$//' -e '/^$$/d' resources/modules)
PACKAGES := $(subst $(space),$(comma),$(strip $(PACK)))
tmp:
mkdir tmp
# Generate the latex file from rst
tmp/%.tex: %.rst $(INCLUDED_PDF) $(SOURCES)| tmp
$$(command -v rst2latex rst2latex.py | head -n 1) --no-section-subtitles --table-style=borderless --use-latex-citations --use-latex-docinfo --documentclass=extarticle --documentoption=12pt,A4,table --syntax-highlight=short --stylesheet=$(PACKAGES),$(TEX_STYLE) $< $@
sed -i -e 's/continued on next page/suite sur la page suivante/;s|^%$$||' $@
sed -i -e 's/admonition-/admonition/g' $@
# Generate each pdf with latex
tmp/%.pdf: tmp/%.tex $(BIBS) | tmp
$(TEX) -output-directory tmp $<
#bibtex tmp/$*.aux && $(TEX) -output-directory tmp $< || echo "no bib"
while grep 'Rerun to get ' tmp/$*.log ; do $(TEX) -output-directory tmp $< ; done
# Put the pdf in the right place
%.pdf: tmp/%.pdf | tmp
cp $< $@
pkill -HUP mupdf
clean:
rm -r tmp
# Generate the final PDF document
# Send a notification to mupdf in order to refresh the document
%.png: %.pdf
gs -dTextAlphaBits=4 -dFirstPage=1 -dLastPage=1 -dBATCH -dNOPAUSE -sDEVICE=png16m -r150 -dUseCropBox -sOutputFile=$@ $<
# Watch mode, which regenerate the documents as soon there is a change in a
# file.,
# requires inotifywait (package inotify-tools)
watch:
while true; do \
$(MAKE) all; \
inotifywait -qre close_write . ; \
done
# Format the pages in order to make them printable in a book
book: $(PDFS)
pdfbook2 $<
|