PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Makefile erstellen



nixversteh
04-09-2015, 08:50
Hallo liebe User,

um mir etwas Arbeit und Zeit zu sparen habe ich ein kleines Dokument mit dem Titel makefile geschrieben:

pdflatex test.tex
biber pdflatex
pdflatex test.tex
pdflatex test.tex
pdflatex test.tex



ich kopiere es in den Ordner mit den Tex-Dateien und mache es ausführbar (Linux). Leider bekomme ich es nicht hin auch das Stichwortverzeichnis damit zu erstellen. Ein Glossar kann ich mit
makeglossaries test erstellen.

Kann mir jemand auf die Sprünge helfen?

Vielen Dank

Gruß

Martin

EDIT: Ich habe die Lösung selbst gefunden:
makeindex test.idx

klops
04-09-2015, 16:59
makefile würde ich die Datei übrigens nicht nennen. Der Name deutet nämlich an, dass man das Programm make für den build-Prozess verwendet. Daher empfehle ich eher einen Namen wie build.sh o. ä.

nixversteh
05-09-2015, 00:43
makefile würde ich die Datei übrigens nicht nennen. Der Name deutet nämlich an, dass man das Programm make für den build-Prozess verwendet. Daher empfehle ich eher einen Namen wie build.sh o. ä.

Hallo klops,

ja, du hast recht, wäre korrekt.

Danke

Gruß

Martin

Johannes_B
05-09-2015, 20:17
Ich benutze mit Vorliebe latexmk (www.ctan.org/pkg/latexmk) für Automatismen.

nixversteh
06-09-2015, 00:33
Ich benutze mit Vorliebe latexmk (www.ctan.org/pkg/latexmk) für Automatismen.

Hallo Johannes,

ich werde es mir ansehen, vielen Dank für den Hinweis.

Gruß

Martin

Tim77
09-10-2015, 11:56
Ich kopier mal zur allgemeinen Verwendung ein Makefile hier rein, welches ich seit Jahren in immer in ähnlicher Form verwende:

.PHONY: handbuch all

# Variables
temp-dir = Temp
ok = [OK]

# Functions
tempfile = ${temp-dir}/${1}
xelatexmk = @latexmk -xelatex -shell-escape --output-directory=${temp-dir} ${1}
pdflatexmk = @latexmk -pdf -shell-escape --output-directory=${temp-dir} ${1}
copy = cp $(call tempfile,$1).pdf PDF

all:
$(MAKE) handbuch

handbuch:
$(call xelatexmk,Handbuch)
@echo ${ok}
$(call copy,Handbuch)
@echo ${ok}
Auf der Hauptebene liegt die LaTeX Datei und das Makefile. In meinem Fall ist das die Datei "Handbuch.tex". Dort steht nur das Gerüst, welches mit "\input{...}" auf Dateien in den Ordnern "Einstellungen" und "Inhalt" zugreift. Daneben gibt es noch einen Ordner "Temp", in dem die temporären Dateien angelegt werden und "PDF", in den das fertige .pdf kopiert wird.

Aufgerufen wird das Makefile von der Hauptebene aus mit "make handbuch" (oder einfach nur "make", da es hier kein anderes mögliches Ziel gibt). Intern wird die selbst definierte Funktion "xelatexmk" aufgerufen, die einen latexmk-Durchlauf mit der Option "-xelatex" startet. Falls ich lieber pdflatex nutzen möchte, habe ich hierzu auch eine Funktion definiert. Die echo-Zeilen geben einfach nur "ok" auf der Kommandozeile aus. Die copy-Funktion kopiert das fertige .pdf an seinen Platz.

Möge dieses Makefile jemandem nützlich sein...

PS: Voraussetzung ist, dass man das Programm "make" auch tatsächlich installiert hat. Auf dem Mac geht das z.B. mit den XCode-Kommandozeilentools. Diese kann man separat herunterladen und benötigt nicht die komplette XCode-Umgebung.

nixversteh
09-10-2015, 12:57
Hallo Tim77,

klappt, vielen Dank.

Gruß

Martin