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

# Använd LuaTeX för att köra verktyg och hjälpprogram som är installerade på Overleafs servrar

## Overleafs servrar: körning och exekvering av programvara

Overleafs kraftfulla servrar kompilerar ditt projekt i en sandbox baserad på [Dockers Linux-containerteknik](https://www.docker.com/). Varje projekt får sin egen sandbox, vilket säkerställer att all kod vi kör som en del av kompileringen av projektet är isolerad från andra projekt — och detta är det första av flera skyddslager som vi använder för att säkert kompilera projekt. För TeX-användare innebär detta att du säkert kan komma åt och använda verktyg och hjälpmedel som finns på våra servrar — men hur? I detta korta inlägg visar vi hur man använder ett Lua-skript (via LuaTeX) för att köra ett externt program och fånga all text som annars skulle skrivas ut i ett terminalfönster. Anta till exempel att du är intresserad av att konvertera några DVI-filer till SVG med hjälp av `dvisvgm` verktyget men du minns inte de olika kommandoradsalternativen? Skulle det inte vara skönt att snabbt sätta en lista över dem för att fräscha upp minnet? I så fall, fortsätt läsa — men om du hellre vill se detta i praktiken, hoppa över till detta [exempelprojekt i galleriet](https://www.overleaf.com/latex/examples/using-luatex-to-run-software-installed-on-overleafs-servers/nnvfvnfhzwsy) för att se hur det görs.

![Skärmbild av ett Overleaf-projekt](/files/1334cbc97785e3bc1b6c17295675ef1450258a7e)

### Att använda LuaTeX för att köra ett externt program via ett Lua-skript

Eftersom LuaTeX har skriptspråket Lua inbäddat i TeX-motorn blir det nästan trivialt att skriva ett kort skript som inte bara kör ett externt program utan också fångar upp och sparar till en fil all text som programmet annars skulle skriva ut i ett terminalfönster. När texten väl har sparats till en fil kan du använda `verbatim` paketet för att importera den i ditt huvudsakliga TeX-dokument. Här är hela koden som behövs för att göra detta 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}
```

Nyckelraden i koden ovan är `local sout=runcommand("dvisvgm --help")` som kör `dvisvgm` med kommandoradsalternativet `--help` för att instruera `dvisvgm` att lista alla sina kommandoradsalternativ. Hjälptexten fångas upp och sparas i en textfil som heter `command.txt`. Efter att Lua-koden inom `\directlua{...}` har körts klart, innehållet i `command.txt` infogas i huvuddokumentet i TeX med hjälp av `\verbatiminput{command.txt}`. Det är viktigt att du infogar all fångad text som verbatimmaterial eftersom tecken som `$, #, \\, _, ^` etc. kan förekomma i den importerade texten.

Ändra gärna koden i `runcommand("dvisvgm --help")` och utforska att köra andra program — såsom GhostScript — eller annan TeX Live-programvara som du kanske är intresserad av att använda.


---

# 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/sv/fordjupade-artiklar/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.
