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
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
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
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.