Wie führe ich Shell-Skripte von LaTeX aus?
Ich versuche zu tun, die folgenden in LaTeX:
\documentclass{article}
\begin{document}
\execute{/usr/local/bin/my-shell-script.sh}
\end{document}
Die Idee ausführen /usr/local/bin/my-shell-script.sh
im moment .tex
Dokument Verarbeitung und injiziert seinen Ausgang in LaTeX stream. Ist es überhaupt möglich?
InformationsquelleAutor der Frage yegor256 | 2010-07-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde etwas tun, wie die folgenden (teilweise durch Sie motiviert ist, was die römischen vorgeschlagen): machen Sie Ihre LaTeX-Datei sein,
und generieren Sie die Datei
scriptoutput.tex
mitKönnten Sie codieren diese in einem makefile, wenn Sie wollen, um automatisch ausgeführt, wenn erforderlich. Alternativ können Sie die TeX
\write18
- Befehl,und ich denke, dass würde automatisch führen Sie das shell-Skript, jedes mal, wenn Sie kompilieren das Dokument. Die
\immediate
ist notwendig, um sicherzustellen, dass das Skript ausgeführt wird, wenn LaTeX auf Befehl, anstatt zu warten, bis eine Seite der Ausgabe geschrieben wird. (Siehe diese Frageum mehr über die shipout-routine.)InformationsquelleAutor der Antwort David Z
Als David wies darauf hin, die Sie verwenden können
\write18
für den Aufruf von externen Programmen, dann\input
die resultierende Ausgabedatei. Allerdings werden Sie wahrscheinlich verwenden wollen\immediate\write18
um sicherzustellen, dass das Skript ausgeführt wird, bevor Sie die\input
.Alternativ, wenn Sie mit neueren Versionen von pdf(la)tex (nach 1.40, denke ich), Sie können leiten Sie die Ausgabe direkt in das Dokument, indem Sie mit einem Pipe-input-Befehl:
Entweder Methode brauchen Sie, um externe Programme aufgerufen werden. Für TeXlive-Distributionen, müssen Sie rufen latex mit der
-shell-escape
option, oder für MikTeX, ich glaube, die option ist-enable-write18
.InformationsquelleAutor der Antwort Simon Byrne
Können Sie dies tun, in TeX. Diese Papier (PDF) zeigt, wie man schreiben und ausführen eines virus innerhalb von TeX. Die gleichen Grundsätze gelten für die Ausführung eines shell-Skript. Aber meiner Meinung nach ist es mehr möglich sein, schreiben Sie ein Makefile, welches ausgeführt wird, bevor Sie Ihre LaTeX-Lauf und Ergebnis einfügen.
InformationsquelleAutor der Antwort qbi
Auf Ubuntu 11.10 GNU/Linux
mit
funktioniert gut. ie, nutzt diese wordcount (wc) zu berichten, wie viele Zeichen in der Datei kmb-box.tex, das ist Teil des (im) des Dokuments.
(btw, Wenn Sie wollten, die Worte eher als Zeichen, ändern Sie einfach die Anzahl in "-f 4")
InformationsquelleAutor der Antwort CPBL
Es sei denn, es ist zwingend notwendig, dass das Skript ausgeführt wird während LaTeX ausgeführt wird, würde ich empfehlen, nur mit
make
zu laufen LaTeX und Sie Skript.Habe ich verwendet, der Ansatz zum hinzufügen von Wort-zählen für Artikel und einschließlich der Statistiken über die bibliographischen Verweise.
Lassen Sie Ihr Skript generieren
.tex
Datei und schließen Sie, in Sie LaTeX-Quell-Datei.Unten ist ein Ausschnitt aus einer meiner Makefiles:
InformationsquelleAutor der Antwort Niels Castle
Ich glaube nicht, dass dies möglich ist. Ich würde mit einem einfachen Präprozessor. I. e. ändern Sie das Dokument
und Vorverarbeiten es mit
Befehl:
- oder in-place:
InformationsquelleAutor der Antwort Roman Cheplyaka