Makefile für Dummies? Mac OS X

7

Ich habe Probleme, eine Antwort auf eine vorherige Frage zu verstehen, die ich hier bei stackoverflow gestellt habe, die sich bei:

befindet

Effizienterer R / Sweave / TeXShop-Workflow?

Die Antwort kommt insbesondere vom Benutzer: las3rjock, der vorschlägt, ein "Makefile" zu erstellen und das Makefile auszuführen, um die Kompilierung eines .Rnw in R (Swave) und dann in LaTeX zu automatisieren. Ich weiß nicht, was ein Makefile ist, oder wie man es in Terminal (?) Unter Mac OS X benutzt. Meine Suche im Internet hat Dinge über meinem Wissensstand zurückgegeben. Ich denke, ich brauche etwas Hand, um ein Makefile zu erstellen und auszuführen.

Könnte jemand "Dummy" -Anweisungen zum Erstellen eines Makefiles geben, um Sweave / LaTeX auszuführen, oder mehr auf den Punkt, verwenden Sie die Antwort von las3rjock in der vorherigen Frage? Danke!     

baha-kev 07.02.2011, 16:36
quelle

4 Antworten

10

Ich habe einen Post mit Links auf mit Makefiles geschrieben für Swave .

Von der Post:

Ich habe auch vier Sweave-Beispieldokumente veröffentlicht. Jeder hat vollen Quellcode auf GitHub verfügbar. Jeder verwendet ein Makefile. In den ersten beiden Tutorials werden Details zum Makefile beschrieben:

Jeromy Anglim 08.02.2011, 05:46
quelle
6

Ein Makefile ist eine einfache Textdatei, die angibt, wie man "Ziele" mit einer Reihe von "Abhängigkeiten" über eine Reihe von Aktionen erstellt. Die Ziele sind die Dinge auf der linken Seite mit ":" nach ihnen, die Abhängigkeiten sind auf dem Rest dieser Linie. Nacheinander eingerückte Zeilen sind die Aktionen, die das Ziel machen sollten.

So ist zum Beispiel in Ihrem LaTeX-Fall die .pdf-Datei Ihr endgültiges Ziel, und das hängt von Ihrer .tex-Datei ab. Es gibt also eine Aktion, die pdflatex ausführt. Die .tex-Datei selbst wird aus der .RNW-Datei erstellt. Es gibt also eine weitere Regel, um foo.tex aus foo.Rnw zu machen, indem Sweave ausgeführt wird.

Das Schöne an make ist, dass es die Zeitstempel von Abhängigkeiten überprüft. Es war ursprünglich für das Kompilieren großer C-Programme gedacht, die in viele Dateien aufgeteilt waren. Beim Kompilieren des endgültigen Programms ist es nicht sinnvoll, alle nicht geänderten C-Dateien neu zu kompilieren, sodass das Makefile nur die geänderten .C-Dateien kompiliert und alle .o-Dateien mit einer ausführbaren Datei verknüpft.

Make wurde weit über dieses ursprüngliche Schema hinaus gehebelt, bis zu dem Punkt, dass neuere automatisierte Build-Lösungen verfügbar sind, so dass Sie Erwähnungen von cmake, ant, maven und einer Menge anderer Dinge sehen können. Ich weiß nicht, was die Hälfte von ihnen ist.

    
Spacedman 07.02.2011 16:55
quelle
3

Ich habe gerade die vorherige und die folgende Frage gelesen, aber hier ist ein kleines Shell-Skript, das ich für Mac OS X geschrieben habe. Ich bin mir nicht sicher, ob das genau das ist, was Sie wollen, aber vielleicht können Sie daraus lernen:

%Vor%

Falls Sie es nicht wissen: Sie können dieses Skript von chmod +x yourscriptfile.sh ausführen lassen und dann nach ./yourscript ausführen. Die erste Zeile startet Ihre Sweave-Erstellung der .tex-Datei. Die for-Schleife ist optional: Sie wird verwendet, um .pdf-Grafiken in einen Unterordner zu schneiden. Ich fand das viel einfacher, als mit der Marge innerhalb von Rs Plotten umzugehen - insbesondere, wenn ich die Position in Ihrem .pdf-Bericht optimieren möchte.

Workflow-weise mache ich folgendes: 1. Speichere alles, was in R-Objekten gedruckt wird (z. B. Funktionsergebnisse und Grafiken). 2. Verwenden Sie einfach eine kleine Zeile in Swave, die die gesamte Analyse liefert. So enthält mein Sweave-Dokument kaum Nicht-LaTeX-Code und bleibt praktisch. Wann immer ich den Text bearbeite, muss ich nur die Sweave-Datei bearbeiten (oder wenn die Berechnungen nicht aktualisiert werden müssen oder sogar nur die .tex-Datei benötigen)

HTH

    
Matt Bannert 07.02.2011 18:20
quelle
2

Erstellen Sie eine Datei mit dem Namen Makefile , in der Ihre Dokumente gespeichert sind, und öffnen Sie sie.

Kopieren Sie den Code, den er eingegeben hat, in Ihre Makefile (und vergessen Sie nicht, myfile durch den Namen der Datei zu ersetzen, die Sie generieren möchten)

Öffnen Sie eine Konsole in Ihrem Dokumentenverzeichnis und geben Sie make pdf

ein     
Syl 07.02.2011 16:40
quelle

Tags und Links