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

# Bruke LuaTeX til å kjøre verktøy og hjelpemidler installert på Overleafs servere

## Overleafs servere: kjøring og utføring av programvare

Overleafs kraftige servere kompilerer prosjektet ditt i en sandkasse basert på [Dockers Linux-beholderteknologi](https://www.docker.com/). Hvert prosjekt får sin egen sandkasse, noe som sikrer at all kode vi kjører som del av kompileringen av prosjektet er isolert fra andre prosjekter — og dette er det første av flere beskyttelseslag vi bruker for å kompilere prosjekter trygt. For TeX-brukere betyr dette at du trygt kan få tilgang til og bruke verktøyene og hjelpeprogrammene på serverne våre — men hvordan? I dette korte innlegget viser vi hvordan du bruker et Lua-skript (via LuaTeX) til å kjøre et eksternt program og fange opp eventuell tekst som vanligvis ville blitt sendt til et terminalvindu. For eksempel, anta at du er interessert i å konvertere noen DVI-filer til SVG ved hjelp av `dvisvgm` verktøyet, men du husker ikke de ulike kommandolinjealternativene? Ville det ikke vært fint å raskt sette opp en liste over dem for å friske opp hukommelsen? Hvis ja, les videre — men hvis du heller vil se dette i praksis, gå over til dette [eksempel på galleriprosjekt](https://www.overleaf.com/latex/examples/using-luatex-to-run-software-installed-on-overleafs-servers/nnvfvnfhzwsy) for å se hvordan det gjøres.

![Skjermbilde av et Overleaf-prosjekt](/files/dc667628227f3baa8dc2e73f13ff380cb449a0c3)

### Bruke LuaTeX til å kjøre et eksternt program via et Lua-skript

Fordi LuaTeX har Lua-skriptspråket innebygd i TeX-motoren, blir det nesten trivielt å skrive et kort skript som ikke bare kjører et eksternt program, men også fanger opp og lagrer til en fil all tekst som programmet ellers ville sendt til et terminalvindu. Når teksten er lagret i en fil, kan du bruke `verbatim` pakken til å importere den i hoved-TeX-dokumentet ditt. Her er hele koden som trengs for å gjø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 viktige linjen i koden ovenfor er `local sout=runcommand("dvisvgm --help")` som kjører `dvisvgm` med kommandolinjealternativet `--help` for å be `dvisvgm` om å liste opp alle kommandolinjealternativene sine. Hjelpeteksten fanges opp og lagres i en tekstfil kalt `command.txt`. Etter at Lua-koden i `\directlua{...}` er ferdig med å kjøre, blir innholdet i `command.txt` satt inn i hoved-TeX-dokumentet ved hjelp av `\verbatiminput{command.txt}`. Det er viktig at du setter inn all fanget tekst som ordrett materiale, fordi tegn som `$, #, \\, _, ^` osv. kan være til stede i den importerte teksten.

Du står fritt til å endre koden i `runcommand("dvisvgm --help")` og utforske å kjøre andre programmer — som GhostScript — eller annen TeX Live-programvare du måtte være interessert i å bruke.


---

# 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/no/dybdeartikler/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.
