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

# LuaTeXin käyttäminen Overleafin palvelimille asennettujen työkalujen ja apuohjelmien suorittamiseen

## Overleafin palvelimet: ohjelmiston ajaminen ja suorittaminen

Overleafin tehokkaat palvelimet kääntävät projektisi hiekkalaatikossa, joka perustuu [Dockerin Linux-konttiteknologiaan](https://www.docker.com/). Jokaiselle projektille annetaan oma hiekkalaatikko, mikä varmistaa, että kaikki projektin kääntämisen yhteydessä suorittamamme koodi eristetään muista projekteista — ja tämä on ensimmäinen useista suojaustasoista, joita käytämme projektien turvalliseen kääntämiseen. TeX-käyttäjille tämä tarkoittaa, että voit turvallisesti käyttää palvelimillamme olevia työkaluja ja apuohjelmia — mutta miten? Tässä lyhyessä kirjoituksessa näytämme, miten Lua-skriptiä (LuaTeXin kautta) käytetään ulkoisen ohjelman suorittamiseen ja kaiken sellaisen tekstin talteen ottamiseen, joka yleensä tulostuisi terminaali-ikkunaan. Esimerkiksi oletetaan, että haluat muuntaa joitakin DVI-tiedostoja SVG-muotoon käyttäen `dvisvgm` apuohjelmaa, mutta et muista sen eri komentorivivalintoja? Eikö olisi mukavaa ladella ne nopeasti aseteltuna muistisi virkistämiseksi? Jos on, jatka lukemista — mutta jos haluat nähdä tämän toiminnassa, siirry tähän [galleriaprojektiesimerkki](https://www.overleaf.com/latex/examples/using-luatex-to-run-software-installed-on-overleafs-servers/nnvfvnfhzwsy) nähdäksesi, miten se tehdään.

![Kuvakaappaus Overleaf-projektista](/files/7701677f4d06abe6263febfae93730b596797305)

### LuaTeXin käyttäminen ulkoisen ohjelman suorittamiseen Lua-skriptin avulla

Koska LuaTeXiin on upotettu Lua-komentokieli TeX-moottoriin, on lähes triviaalia kirjoittaa lyhyt skripti, joka ei ainoastaan suorita ulkoista ohjelmaa, vaan myös sieppaa ja tallentaa tiedostoon kaiken tekstin, jonka kyseinen ohjelma muuten tulostaisi terminaali-ikkunaan. Kun teksti on tallennettu tiedostoon, voit käyttää `verbatim` pakettia tuodaksesi sen pää-TeX-dokumenttiisi. Tässä on koko LuaTeXin avulla tähän tarvittava koodi:

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

Yllä olevan koodin avainrivi on `local sout=runcommand("dvisvgm --help")` joka suorittaa `dvisvgm` komentorivivalitsimella `--help` antaakseen käskyn `dvisvgm` luetteloida kaikki sen komentorivivalitsimet. Ohjeteksti siepataan ja tallennetaan tekstitiedostoon nimeltä `command.txt`. Kun Lua-koodi sisällä `\directlua{...}` on suorittanut ajon loppuun, `command.txt` lisätään pää-TeX-dokumenttiin käyttäen `\verbatiminput{command.txt}`. On tärkeää, että lisäät siepatun tekstin verbatim-materiaalina, koska merkit kuten `$, #, \\, _, ^` jne. saattavat esiintyä tuodussa tekstissä.

Voit vapaasti muokata koodia kohdassa `runcommand("dvisvgm --help")` ja kokeilla muiden ohjelmien — kuten GhostScriptin — suorittamista tai mitä tahansa TeX Live -ohjelmistoa, jota haluaisit käyttää.


---

# 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/fi/syvalliset-artikkelit/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.
