Merge pull request #144 from holgern/Makefile

Added biblatex, lualatex and xelatex to Makefile
This commit is contained in:
Krishna Kumar 2017-09-25 10:05:30 +01:00 committed by GitHub
commit 730f9c414e
2 changed files with 113 additions and 8 deletions

View File

@ -1,4 +1,7 @@
# Copyright 2004 Chris Monson (shiblon@gmail.com)
# 2011 Andrew McNabb
# 2013 Krishna Kumar
# 2017 Holger Nahrstaedt
# Latest version available at http://www.bouncingchairs.net/oss
#
# This file is part of ``Chris Monson's Free Software''.
@ -30,7 +33,7 @@
#
fileinfo := LaTeX Makefile
author := Chris Monson
version := 2.2.1-alpha9
version := 2.2.1-alpha10
#
.DEFAULT_GOAL := all
# Note that the user-global version is imported *after* the source directory,
@ -46,6 +49,8 @@ version := 2.2.1-alpha9
# This can be pdflatex or latex - you can change this by adding the following line to your Makefile.ini:
# BUILD_STRATEGY := latex
BUILD_STRATEGY ?= pdflatex
#BIB_STRATEGY ?= biblatex
BIB_STRATEGY ?= bibtex
# This can be used to pass extra options to latex.
LATEX_OPTS ?=
#
@ -117,6 +122,13 @@ export LC_ALL ?= C
#
#
# CHANGES:
# Holger Nahrstaedt (2017-09-25):
# * Bumped version to 2.2.1-alpha10
# * Added XELATEX and LUALATEX to BUILD_STRATEGY
# * New option BIB_STRATEGY, can be biblatex or bibtex
# * Added all Authors to Copyright section
# * Added asymptote file generation
# * Added shell-escape to pdflatex, xelatex and lualatex
# Krishna Kumar (2013-11-27):
# * Added PS to rm_ext to remove PS files generated during LaTeX output
# Krishna Kumar (2013-11-26):
@ -746,10 +758,12 @@ XARGS ?= xargs
SLEEP ?= sleep
# == LaTeX (tetex-provided) ==
BIBTEX ?= bibtex
BIBER ?= biber
DVIPS ?= dvips
LATEX ?= latex
PDFLATEX ?= pdflatex
XELATEX ?= xelatex
PDFLATEX ?= pdflatex --shell-escape
XELATEX ?= xelatex --shell-escape
LUALATEX ?= lualatex --shell-escape
EPSTOPDF ?= epstopdf
MAKEINDEX ?= makeindex
XINDY ?= xindy
@ -778,6 +792,7 @@ PNGTOPNM ?= pngtopnm # From NetPBM - step 1 for png -> eps
PPMTOPGM ?= ppmtopgm # From NetPBM - (gray) step 2 for png -> eps
PNMTOPS ?= pnmtops # From NetPBM - step 3 for png -> eps
GUNZIP ?= gunzip # GZipped EPS
ASYMPTOTE ?= asy
# == Beamer Enlarged Output ==
PSNUP ?= psnup
# == Viewing Stuff ==
@ -1175,11 +1190,21 @@ default_graphic_extension ?= pdf
latex_build_program ?= $(XELATEX)
build_target_extension ?= pdf
hyperref_driver_pattern ?= hdvipdf.*
hyperref_driver_error ?= Using pdflatex: specify pdftex in the hyperref options (or leave it blank).
hyperref_driver_error ?= Using xelatex: specify xelatex in the hyperref options (or leave it blank).
endif
ifeq "$(strip $(BUILD_STRATEGY))" "lualatex"
default_graphic_extension ?= pdf
latex_build_program ?= $(LUALATEX)
build_target_extension ?= pdf
hyperref_driver_pattern ?= hdvipdf.*
hyperref_driver_error ?= Using xelatex: specify lualatex in the hyperref options (or leave it blank).
endif
# Files of interest
all_files.tex ?= $(wildcard *.tex)
all_files.xmpdata ?= $(wildcard *.xmpdata)
all_files.tex.sh ?= $(wildcard *.tex.sh)
all_files.tex.pl ?= $(wildcard *.tex.pl)
all_files.tex.py ?= $(wildcard *.tex.py)
@ -1187,6 +1212,7 @@ all_files.rst ?= $(wildcard *.rst)
all_files.lhs ?= $(wildcard *.lhs)
all_files.mp ?= $(wildcard *.mp)
all_files.fig ?= $(wildcard *.fig)
all_files.asy ?= $(wildcard *.asy)
all_files.gpi ?= $(wildcard *.gpi)
all_files.dot ?= $(wildcard *.dot)
all_files.xvg ?= $(wildcard *.xvg)
@ -1238,6 +1264,7 @@ files.gpi := $(call filter-buildable,gpi)
files.dot := $(call filter-buildable,dot)
files.mp := $(call filter-buildable,mp)
files.fig := $(call filter-buildable,fig)
files.asy := $(call filter-buildable,asy)
files.xvg := $(call filter-buildable,xvg)
files.svg := $(call filter-buildable,svg)
files.png := $(call filter-buildable,png)
@ -1268,6 +1295,7 @@ default_files.gpi := $(call filter-default,gpi)
default_files.dot := $(call filter-default,dot)
default_files.mp := $(call filter-default,mp)
default_files.fig := $(call filter-default,fig)
default_files.asy := $(call filter-default,asy)
default_files.xvg := $(call filter-default,xvg)
default_files.svg := $(call filter-default,svg)
default_files.png := $(call filter-default,png)
@ -1367,6 +1395,7 @@ graphic_source_extensions := mp \
xvg \
svg \
dot \
asy \
eps.gz
ifeq "$(strip $(BUILD_STRATEGY))" "latex"
@ -1384,6 +1413,11 @@ graphic_source_extensions += eps
graphic_target_extensions := pdf png jpg jpeg mps tif
endif
ifeq "$(strip $(BUILD_STRATEGY))" "lualatex"
graphic_source_extensions += eps
graphic_target_extensions := pdf png jpg jpeg mps tif
endif
all_stems_source := $(call concat-stems,tex,all)
all_stems_source_gen := $(call concat-stems,rst lhs,all)
all_stems_script := $(call concat-stems,tex.sh tex.pl tex.py,all)
@ -1418,6 +1452,7 @@ allowed_source_suffixes := \
ind \
nls \
bbl \
bci \
aux \
aux.make \
d \
@ -1537,7 +1572,7 @@ endif
# Extensions generated by LaTeX invocation that can be removed when complete
rm_ext := \
log *.log aux $(pre_pdf_extensions) ps pdf blg bbl out nav snm toc lof lot lol pfg \
log *.log aux $(pre_pdf_extensions) ps pdf blg bcf bbl out nav snm toc lof lot lol pfg \
fls vrb idx ind ilg glg glo gls lox nls nlo nlg brf mtc* mlf* mlt* maf brf ist fmt
backup_patterns := *~ *.bak *.backup body.tmp head.tmp
@ -2421,7 +2456,12 @@ endef
# BibTeX invocations
#
# $(call run-bibtex,<tex stem>)
ifeq "$(strip $(BIB_STRATEGY))" "bibtex"
run-bibtex = $(BIBTEX) $1 | $(color_bib); $(call transcript,bibtex,$1)
endif
ifeq "$(strip $(BIB_STRATEGY))" "biblatex"
run-bibtex = $(BIBER) $1 | $(color_bib); $(call transcript,biber,$1)
endif
# $(call convert-eps-to-pdf,<eps file>,<pdf file>,[gray])
# Note that we don't use the --filter flag because it has trouble with bounding boxes that way.
@ -2541,6 +2581,10 @@ define convert-jpg
$(CONVERT) $(if $3,-type Grayscale,) '$1' eps2:'$2'
endef
# Creation of .pdf files from .asy files
# $(call convert-asy,<asy file>)
convert-asy = $(ASYMPTOTE) -V -f pdf $1
# Creation of .eps files from .fig files
# $(call convert-fig,<fig file>,<output file>,[gray])
convert-fig = $(FIG2DEV) -L $(if $(filter %.pdf,$2),pdf,eps) $(if $3,-N,) $1 $2
@ -2957,6 +3001,7 @@ endif
# Note that we do NOT touch the .bbl file if there is no need to
# create/recreate it. We would like to leave existing files alone if they
# don't need to be changed, thus possibly avoiding a rebuild trigger.
ifeq "$(strip $(BIB_STRATEGY))" "bibtex"
%.bbl: %.auxbbl.make
$(QUIET)\
$(if $(filter %.bib,$^),\
@ -2977,6 +3022,12 @@ endif
$(call echo-build,** annotated extra latex **,output ignored,$(RESTARTS)-2); \
$(call run-latex,$*); \
fi
endif
ifeq "$(strip $(BIB_STRATEGY))" "biblatex"
%.bbl: %.bcf
$(QUIET)$(call echo-build,$<,$@)
$(QUIET)$(call run-bibtex,$<,$@,$*.bcf)
endif
# Create the index file - note that we do *not* depend on %.tex here, since
# that unnecessarily restricts the kinds of indices that we can build to those
@ -3082,6 +3133,10 @@ endif
$(QUIET)$(call echo-graphic,$^,$@)
$(QUIET)$(call convert-fig,$<,$@,$(GRAY))
%.pdf: %.asy
$(QUIET)$(call echo-graphic,$^,$@)
$(QUIET)$(call convert-asy,$<)
%.pdf: %.svg
$(QUIET)$(call echo-graphic,$^,$@)
$(QUIET)$(call convert-svg,$<,$@,$(GRAY))
@ -3102,6 +3157,37 @@ endif
$(QUIET)$(call echo-graphic,$^,$@)
$(QUIET)$(call convert-fig,$<,$@,$(GRAY))
%.pdf: %.asy
$(QUIET)$(call echo-graphic,$^,$@)
$(QUIET)$(call convert-asy,$<)
%.pdf: %.svg
$(QUIET)$(call echo-graphic,$^,$@)
$(QUIET)$(call convert-svg,$<,$@,$(GRAY))
endif
ifeq "$(strip $(BUILD_STRATEGY))" "lualatex"
%.pdf: %.eps $(if $(GRAY),$(gray_eps_file))
$(QUIET)$(call echo-graphic,$^,$@)
$(QUIET)$(call convert-eps-to-pdf,$<,$@,$(GRAY))
ifeq "$(strip $(GPI_OUTPUT_EXTENSION))" "pdf"
%.pdf: %.gpi %.gpi.d $(gpi_sed) $(gpi_global)
$(QUIET)$(call echo-graphic,$^,$@)
$(QUIET)$(call convert-gpi,$<,$@,$(GRAY))
endif
%.pdf: %.fig
$(QUIET)$(call echo-graphic,$^,$@)
$(QUIET)$(call convert-fig,$<,$@,$(GRAY))
%.pdf: %.asy
$(QUIET)$(call echo-graphic,$^,$@)
$(QUIET)$(call convert-asy,$<)
%.pdf: %.svg
$(QUIET)$(call echo-graphic,$^,$@)
$(QUIET)$(call convert-svg,$<,$@,$(GRAY))
endif
@ -4150,4 +4236,3 @@ endef
-include $(HOME)/.latex-makefile/Targets.ini
#
# vim: noet sts=0 sw=8 ts=8

View File

@ -60,7 +60,7 @@ This template supports `XeLaTeX` compilation chain. To generate PDF run
### Using latexmk (Unix/Linux/Windows)
This template supports `XeLaTeX` compilation chain. To generate PDF run
This template supports `LuaLaTeX` compilation chain. To generate PDF run
latexmk -pdflatex=lualatex -pdf thesis.tex
@ -85,7 +85,27 @@ To build the `PDF` version of your thesis, run:
make
This build procedure uses `pdflatex` and will produce `thesis.pdf`.
This build procedure uses `pdflatex` with `bibtex` and will produce `thesis.pdf`.
To use `pdflatex` with `biblatex`, you should run:
make BIB_STRATEGY=biblatex
To use `XeLaTeX`, you should run:
make BUILD_STRATEGY=xelatex
or with `biblatex`
make BUILD_STRATEGY=xelatex BIB_STRATEGY=biblatex
To use `LuaLaTeX`, you should run:
make BUILD_STRATEGY=lualatex
or with `biblatex`
make BUILD_STRATEGY=lualatex BIB_STRATEGY=biblatex
To produce `DVI` and `PS` versions of your document, you should run: