> 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/da/dybtgaende-artikler/52-using-luatex-to-run-tools-and-utilities-installed-on-overleaf-s-servers.md).

# Brug af LuaTeX til at køre værktøjer og hjælpeprogrammer installeret på Overleafs servere

## Overleafs servere: kørsel og udførelse af software

Overleafs kraftfulde servere kompilerer dit projekt i en sandbox baseret på [Dockers Linux-containerteknologi](https://www.docker.com/). Hvert projekt får sin egen sandbox, hvilket sikrer, at enhver kode, vi udfører som led i kompileringen af projektet, er isoleret fra andre projekter — og dette er det første af flere beskyttelseslag, som vi bruger til at kompilere projekter sikkert. For TeX-brugere betyder det, at du sikkert kan få adgang til og bruge værktøjer og hjælpeprogrammer på vores servere — men hvordan? I dette korte indlæg viser vi, hvordan man bruger et Lua-script (via LuaTeX) til at udføre et eksternt program og opfange enhver tekst, der normalt ville blive sendt til et terminalvindue. For eksempel kan man forestille sig, at du er interesseret i at konvertere nogle DVI-filer til SVG ved hjælp af `dvisvgm` værktøj, men kan du ikke huske de forskellige kommandolinjeindstillinger? Ville det ikke være rart hurtigt at sætte en liste af dem op for at genopfriske hukommelsen? Hvis ja, så læs videre — men hvis du foretrækker at se det i praksis, så hop over til dette [galleri-projekteksempel](https://www.overleaf.com/latex/examples/using-luatex-to-run-software-installed-on-overleafs-servers/nnvfvnfhzwsy) for at se, hvordan det gøres.

![Skærmbillede af et Overleaf-projekt](/files/329181fe54c1a94f8e89338444d735916a0f5a58)

### Brug af LuaTeX til at køre et eksternt program via et Lua-script

Fordi LuaTeX har Lua-skriptsproget indlejret i TeX-motoren, bliver det næsten trivielt at skrive et kort script, der ikke blot udfører et eksternt program, men også opfanger og gemmer i en fil enhver tekst, som programmet ellers ville sende til et terminalvindue. Når teksten er gemt i en fil, kan du bruge `verbatim` pakken til at importere den i dit hoved-TeX-dokument. Her er hele koden, der skal til for at gøre dette med LuaTeX:

```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}
```

Den centrale linje i koden ovenfor er `local sout=runcommand("dvisvgm --help")` som udfører `dvisvgm` med kommandolinjeindstillingen `--help` for at få `dvisvgm` til at opliste alle dets kommandolinjeindstillinger. Hjælpeteksten opfanges og gemmes i en tekstfil kaldet `command.txt`. Når Lua-koden i `\directlua{...}` er færdig med at køre, indsættes indholdet af `command.txt` i hoved-TeX-dokumentet ved hjælp af `\verbatiminput{command.txt}`. Det er vigtigt, at du indsætter al opfanget tekst som verbatim-materiale, fordi tegn som `$, #, \\, _, ^` osv. kan forekomme i den importerede tekst.

Du er velkommen til at ændre koden i `runcommand("dvisvgm --help")` og udforske at køre andre programmer — såsom GhostScript — eller enhver TeX Live-software, du kunne være interesseret i at bruge.


---

# 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/da/dybtgaende-artikler/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.
