Hin und wieder liest man in Anleitungen oder Antworten auf Fragen vom dem gefragt 14 Jan '16, 08:00 saputello |
Zunächst sei darauf hingewiesen, dass bei LuaTeX 0.85 TeX kennt ursprünglich zwar die Möglichkeit, Dateien zu lesen und zu schreiben, aber keine Möglichkeit, externe Programme aufzurufen, um beispielsweise deren Ausgabe wiederum als Eingabe weiter zu verwenden. In den 90er-Jahren des letzten Jahrhunderts wurde das immer mehr zu einem Problem, so dass einer der TeX-Distributoren beschloss, Abhilfe zu schaffen. Er erfand dazu jedoch kein neues Primitiv (aka TeX-Anweisung), sondern erweitere den Normalerweise wird Open in Online-Editor
\documentclass{article} \usepackage{filecontents} \begin{filecontents}{Write18Test.tex} \documentclass{book} \usepackage{mwe} \begin{document} \blinddocument \end{document} \end{filecontents} \begin{document} \immediate\write18{pdflatex Write18Test.tex} \end{document} eine Datei Üblicherweise wird das verwendet, um irgendwelche externen Programme aufzurufen und dann deren Ergebnisse zu verwenden, beispielsweise: Open in Online-Editor
\documentclass{article} \usepackage{graphicx} \usepackage[ngerman]{babel} \usepackage{filecontents} \begin{filecontents}{Write18Test.tex} \documentclass{scrbook} \begin{document} \title{Titel} \author{Autor} \date{\today} \maketitle \end{document} \end{filecontents} \begin{document} \immediate\write18{pdflatex Write18Test.tex} Die Standardtitelseite eines Dokuments der Klasse \texttt{book} sieht wie folgt aus: \begin{center} \frame{\includegraphics[width=.5\textwidth]{Write18Test}} \end{center} \end{document} mit dem Ergebnis: Will man die Ausgabe eines Programms als Eingabe wieder in das TeX-Dokument einbinden, bietet es sich an, beim Systemaufruf die Ausgabe in eine temporäre Datei schreiben zu lassen: Open in Online-Editor
\documentclass{article} \usepackage{verbatim} \usepackage[ngerman]{babel} \begin{document} \immediate\write18{pdflatex -version > pdflatex.log} Der Aufruf \verb|pdflatex -version| erzeugt die Ausgabe: \verbatiminput{pdflatex.log} \end{document} So erhält man: Neuere Implementierungen von Open in Online-Editor
\documentclass{article} \usepackage{verbatim} \usepackage[ngerman]{babel} \begin{document} Der Aufruf \verb|pdflatex -version| erzeugt die Ausgabe: \verbatiminput{\string"| pdflatex -version\string"} \end{document} Dieses Beispiel funktioniert nicht mit Open in Online-Editor
\documentclass{article} \usepackage{fontspec} \usepackage{verbatim} \usepackage[ngerman]{babel} \begin{document} Der Aufruf \verb|pdflatex -version| erzeugt die Ausgabe: \verbatiminput{\string"| pdflatex -version \string"} \end{document} hier auch mit Ein Problem der Übrigens gibt es je nach Maschine, also je nach Verwendung von Der Name shell-escape kommt daher, dass die Ausführung von externen Programmen über einen Systemaufruf erfolgt, der die Ausführung der sogenannten System-Shell überlässt. Bei LuaTeX steuert die entsprechende Optionen nicht nur, was Wegen der Problematik, dass bei LuaTeX seit Version 0.85 beantwortet 14 Jan '16, 09:13 saputello Man kann die Standardausgabe eines Programms auch direkt mit z.B.
(20 Jan '16, 18:31)
Henri
@Henri: Ja, diese (neuere) Entwicklung existiert. Eigentlich wollte ich sie aber weglassen, weil sie für das generelle Verständnis, was
(20 Jan '16, 19:01)
saputello
|