Skip to content

Commit 409605d

Browse files
committed
Use latexmk for pdf (and dvi) targets (on unixen)
1 parent 0063446 commit 409605d

File tree

3 files changed

+64
-42
lines changed

3 files changed

+64
-42
lines changed

sphinx/texinputs/Makefile_t

Lines changed: 48 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,13 @@
22

33
ALLDOCS = $(basename $(wildcard *.tex))
44
ALLPDF = $(addsuffix .pdf,$(ALLDOCS))
5+
{% if latex_engine == 'xelatex' -%}
6+
ALLDVI =
7+
{% else -%}
58
ALLDVI = $(addsuffix .dvi,$(ALLDOCS))
9+
{% endif -%}
610
ALLPS = $(addsuffix .ps,$(ALLDOCS))
11+
ALLIMGS = $(wildcard *.png *.gif *.jpg *.jpeg)
712

813
# Prefix for archive names
914
ARCHIVEPRREFIX =
@@ -12,29 +17,52 @@ LATEXOPTS =
1217
# format: pdf or dvi
1318
FMT = pdf
1419

15-
LATEX = latex
16-
PDFLATEX = {{ latex_engine }}
17-
MAKEINDEX = makeindex
20+
{% if latex_engine == 'platex' -%}
21+
# latexmkrc is read then overridden by latexmkjarc
22+
LATEX = latexmk -r latexmkjarc -dvi
23+
PDFLATEX = latexmk -r latexmkjarc -pdfdvi -dvi- -ps-
24+
{% elif latex_engine == 'pdflatex' -%}
25+
LATEX = latexmk -dvi
26+
PDFLATEX = latexmk -pdf -dvi- -ps-
27+
{% elif latex_engine == 'lualatex' -%}
28+
LATEX = latexmk -lualatex
29+
PDFLATEX = latexmk -pdflua -dvi- -ps-
30+
{% elif latex_engine == 'xelatex' -%}
31+
LATEX = latexmk -pdfxe -dvi- -ps-
32+
PDFLATEX = $(LATEX)
33+
{% endif %}
34+
35+
%.png %.gif %.jpg %.jpeg: FORCE_MAKE
36+
extractbb '$@'
37+
38+
{% if latex_engine == 'platex' -%}
39+
%.dvi: %.tex $(ALLIMGS) FORCE_MAKE
40+
for f in *.pdf; do extractbb $$f; done
41+
$(LATEX) $(LATEXOPTS) '$<'
42+
43+
{% elif latex_engine != 'xelatex' -%}
44+
%.dvi: %.tex FORCE_MAKE
45+
$(LATEX) $(LATEXOPTS) '$<'
1846

19-
{% if latex_engine == 'platex' %}
20-
all: all-pdf-ja
21-
all-pdf: all-pdf-ja
22-
{% else %}
23-
all: $(ALLPDF)
24-
all-pdf: $(ALLPDF)
2547
{% endif -%}
48+
%.ps: %.dvi
49+
dvips '$<'
50+
51+
{% if latex_engine == 'platex' -%}
52+
%.pdf: %.tex $(ALLIMGS) FORCE_MAKE
53+
for f in *.pdf; do extractbb $$f; done
54+
{%- else -%}
55+
%.pdf: %.tex FORCE_MAKE
56+
{%- endif %}
57+
$(PDFLATEX) $(LATEXOPTS) '$<'
58+
2659
all-dvi: $(ALLDVI)
60+
2761
all-ps: $(ALLPS)
2862

29-
all-pdf-ja:
30-
for f in *.pdf *.png *.gif *.jpg *.jpeg; do extractbb $$f; done
31-
for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
32-
for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
33-
for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
34-
-for f in *.idx; do mendex -U -f -d "`basename $$f .idx`.dic" -s python.ist $$f; done
35-
for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
36-
for f in *.tex; do platex -kanji=utf8 $(LATEXOPTS) $$f; done
37-
for f in *.dvi; do dvipdfmx $$f; done
63+
all-pdf: $(ALLPDF)
64+
65+
all: $(ALLPDF)
3866

3967
zip: all-$(FMT)
4068
mkdir $(ARCHIVEPREFIX)docs-$(FMT)
@@ -57,30 +85,8 @@ bz2: tar
5785
xz: tar
5886
xz -9 -k $(ARCHIVEPREFIX)docs-$(FMT).tar
5987

60-
# The number of LaTeX runs is quite conservative, but I don't expect it
61-
# to get run often, so the little extra time won't hurt.
62-
%.dvi: %.tex
63-
$(LATEX) $(LATEXOPTS) '$<'
64-
$(LATEX) $(LATEXOPTS) '$<'
65-
$(LATEX) $(LATEXOPTS) '$<'
66-
-$(MAKEINDEX) -s python.ist '$(basename $<).idx'
67-
$(LATEX) $(LATEXOPTS) '$<'
68-
$(LATEX) $(LATEXOPTS) '$<'
69-
70-
%.pdf: %.tex
71-
$(PDFLATEX) $(LATEXOPTS) '$<'
72-
$(PDFLATEX) $(LATEXOPTS) '$<'
73-
$(PDFLATEX) $(LATEXOPTS) '$<'
74-
-$(MAKEINDEX) -s python.ist '$(basename $<).idx'
75-
$(PDFLATEX) $(LATEXOPTS) '$<'
76-
$(PDFLATEX) $(LATEXOPTS) '$<'
77-
78-
%.ps: %.dvi
79-
dvips '$<'
80-
8188
clean:
82-
rm -f *.log *.ind *.aux *.toc *.syn *.idx *.out *.ilg *.pla *.ps *.tar *.tar.gz *.tar.bz2 *.tar.xz $(ALLPDF) $(ALLDVI)
89+
rm -f *.log *.ind *.aux *.toc *.syn *.idx *.out *.ilg *.pla *.ps *.tar *.tar.gz *.tar.bz2 *.tar.xz $(ALLPDF) $(ALLDVI) *.fls *.fdb_latexmk
8390

8491
.PHONY: all all-pdf all-dvi all-ps clean zip tar gz bz2 xz
85-
.PHONY: all-pdf-ja
86-
92+
.PHONY: FORCE_MAKE

sphinx/texinputs/latexmkjarc

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
$latex = 'platex --halt-on-error --interaction=nonstopmode -kanji=utf8 %O %S';
2+
$dvipdf = 'dvipdfmx %O -o %D %S';
3+
$makeindex = 'rm -f %D; mendex -U -f -d %B.dic -s python.ist %S || echo "mendex exited with error code $? (ignoring)" && : >> %D';
4+
add_cus_dep( "glo", "gls", 0, "makeglo" );
5+
sub makeglo {
6+
return system( "mendex -J -f -s gglo.ist -o '$_[0].gls' '$_[0].glo'" );
7+
}

sphinx/texinputs/latexmkrc

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
$latex = 'latex --halt-on-error --interaction=nonstopmode %O %S';
2+
$pdflatex = 'pdflatex --halt-on-error --interaction=nonstopmode %O %S';
3+
$lualatex = 'lualatex --halt-on-error --interaction=nonstopmode %O %S';
4+
$xelatex = 'xelatex --no-pdf --halt-on-error --interaction=nonstopmode %O %S';
5+
$makeindex = 'makeindex -s python.ist %O -o %D %S';
6+
add_cus_dep( "glo", "gls", 0, "makeglo" );
7+
sub makeglo {
8+
return system( "makeindex -s gglo.ist -o '$_[0].gls' '$_[0].glo'" );
9+
}

0 commit comments

Comments
 (0)