> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/de/ausfuhrliche-artikel/52-using-luatex-to-run-tools-and-utilities-installed-on-overleaf-s-servers.md).

# LuaTeX verwenden, um auf den Servern von Overleaf installierte Werkzeuge und Hilfsprogramme auszuführen

## Overleafs Server: Software betreiben und ausführen

Overleafs leistungsstarke Server kompilieren Ihr Projekt in einer Sandbox auf Basis von [Docker-Linux-Containertechnologie](https://www.docker.com/). Jedes Projekt erhält seine eigene Sandbox, wodurch sichergestellt wird, dass jeder Code, den wir als Teil der Kompilierung des Projekts ausführen, von anderen Projekten isoliert ist – und dies ist die erste von mehreren Schutzschichten, die wir verwenden, um Projekte sicher zu kompilieren. Für TeX-Anwender bedeutet das, dass Sie die auf unseren Servern enthaltenen Werkzeuge und Hilfsprogramme sicher aufrufen und verwenden können – aber wie? In diesem kurzen Beitrag zeigen wir, wie man ein Lua-Skript (über LuaTeX) verwendet, um ein externes Programm auszuführen und jeden Text aufzuzeichnen, der normalerweise in einem Terminalfenster ausgegeben würde. Angenommen, Sie möchten beispielsweise einige DVI-Dateien mit dem `dvisvgm` Hilfsprogramm in SVG umwandeln, aber Sie können sich nicht an die verschiedenen Kommandozeilenoptionen erinnern? Wäre es nicht schön, sie schnell zu setzen, um Ihr Gedächtnis aufzufrischen? Wenn ja, lesen Sie weiter – wenn Sie dies jedoch lieber in Aktion sehen möchten, springen Sie zu diesem [Galerie-Projektbeispiel](https://www.overleaf.com/latex/examples/using-luatex-to-run-software-installed-on-overleafs-servers/nnvfvnfhzwsy) um zu sehen, wie es gemacht wird.

![Screenshot eines Overleaf-Projekts](/files/ca461f0c4b26efec6f9d9032dc4498eb480e3c11)

### LuaTeX verwenden, um ein externes Programm über ein Lua-Skript auszuführen

Da LuaTeX die Skriptsprache Lua in die TeX-Engine eingebettet hat, wird es beinahe trivial, ein kurzes Skript zu schreiben, das nicht nur ein externes Programm ausführt, sondern auch jeden Text erfasst und in einer Datei speichert, den dieses Programm sonst in einem Terminalfenster ausgeben würde. Sobald dieser Text in einer Datei gespeichert ist, können Sie das `verbatim` Paket verwenden, um ihn in Ihr Haupt-TeX-Dokument zu importieren. Hier ist der gesamte Code, der dafür mit LuaTeX benötigt wird:

```latex

\documentclass{article}
\usepackage{verbatim}
\begin{document}
\directlua{
function runcommand(cmd)
local fout = assert(io.popen(cmd, 'r'))
local str = assert(fout:read('*a'))
fout:close()
return str
end

local sout=runcommand("dvisvgm --help")
local marg = assert(io.open("command.txt","w"))
marg:write(sout)
marg:flush()
marg:close()
}
\verbatiminput{command.txt}
\end{document}
```

Die wichtigste Zeile im obigen Code ist `local sout=runcommand("dvisvgm --help")` die `dvisvgm` mit der Befehlszeilenoption `--help` ausführt, um `dvisvgm` anzuweisen, alle Befehlszeilenoptionen aufzulisten. Der Hilfetext wird erfasst und in einer Textdatei namens `command.txt`. Nachdem der Lua-Code innerhalb von `\directlua{...}` die Ausführung beendet hat, wird der Inhalt von `command.txt` mit `\verbatiminput{command.txt}`in das Haupt-TeX-Dokument eingefügt. Es ist wichtig, dass Sie jeden erfassten Text als wörtliches Material einfügen, da Zeichen wie `$, #, \\, _, ^` usw. im importierten Text enthalten sein könnten.

Sie können den Code in `runcommand("dvisvgm --help")` gern anpassen und die Ausführung anderer Programme – etwa GhostScript – oder einer beliebigen TeX-Live-Software, die Sie verwenden möchten, ausprobieren.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/de/ausfuhrliche-artikel/52-using-luatex-to-run-tools-and-utilities-installed-on-overleaf-s-servers.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
