> 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/asiakirjan-rakenne/08-multi-file-latex-projects.md).

# Useista tiedostoista koostuvat LaTeX-projektit

## Johdanto

Suurissa [LaTeX-asiakirjoissa](/latex/fi/asiakirjan-rakenne/07-management-in-a-large-project.md) on yleensä useita `.tex` tiedostoja, yksi kutakin lukua tai osiota kohti, ja ne yhdistetään sitten yhdeksi tulosteeksi. Tämä auttaa pitämään kaiken järjestyksessä ja helpottaa asiakirjan virheenkorjausta, mutta asiakirjan kasvaessa kääntäminen kestää pidempään. Tämä voi olla turhauttavaa, koska yleensä halutaan työskennellä vain yhdessä tietyssä tiedostossa kerrallaan.

Luonteva tapa ratkaista tämä on kääntää kukin tiedosto erikseen. On olemassa kaksi pääpakettia, joiden avulla yksittäisiä tiedostoja voidaan kääntää monitiedostoisessa projektissa. Valintasi riippuu siitä, mitä tarvitset.

* Käyttämällä [sivustolta **subfiles** paketti](#the-subfiles-package) voit kääntää jokaisen alitiedoston erikseen, ja kukin alitiedosto käyttää automaattisesti pääasiakirjan johdantoa.
* Käyttämällä [sivustolta **standalone** paketti](#the-standalone-package) jokainen alitiedosto toimii itsenäisenä tiedostona, ja alitiedostot voidaan myöhemmin yhdistää pääasiakirjaan, joka hakee johdannot kustakin niistä. Tämä on erityisen hyödyllistä, jos samaa tiedostoa täytyy käyttää uudelleen useammassa kuin yhdessä asiakirjassa; TikZ-kuva on hyvä esimerkki tästä.

## Huomautuksia \documentclass-komennosta Overleafin .tex-tiedostoissa

Kuten seuraavassa videoleikkeessä osoitetaan, vaikka olisit asettanut projektisi pää `.tex` tiedoston, voit valita käännettäväksi toisen tiedoston — edellyttäen, että se sisältää `\documentclass` määrittelyn. Kuitenkin, jotta projektisi kaikki osat käännetään oikein — kuten sanastot, polkujen käyttö `.bib` tiedostoihin jne. — suosittelemme vahvasti, että käännät vain projektisi juurihakemistossa olevat tiedostot.

{% embed url="<https://videos.ctfassets.net/nrgyaltdicpt/U2nGfRx9NwNGX0vWXNebP/1ca4b9a4b2f36d5ca9c0dbaa87f44bfa/maincompile.mp4>" %}

## Subfiles-paketti

Tämä paketti sopii useimpiin tilanteisiin, ja sitä on todella helppo käyttää.

Tämän osion esimerkeillä on seuraava hierarkkinen tiedostorakenne:

![CompileSubfilesEx1OverleafV2.png](/files/d2435a672cc43557811c1551fd8ef4b67a2d2d43)

### Pääasiakirja

Pääasiakirjassa tarvitaan kaksi erityistä komentoa.

```latex
\documentclass{article}
\usepackage{graphicx}
\graphicspath{{images/}}

\usepackage{blindtext}

\usepackage{subfiles} % Paras ladata viimeisenä johdannossa

\title{Subfiles-paketin esimerkki}
\author{Overleaf}
\date{ }

\begin{document}

\maketitle

\section{Introduction}

\subfile{sections/introduction}

\section{Toinen osio}

\subfile{sections/section2}

\end{document}
```

![CompileSubfilesEx1aOverleafV2.png](/files/11fcde29a22ab79bc7202241764e73521a9054c6)

Tiedostokohtainen kääntäminen edellyttää riviä

```latex
\usepackage{subfiles}
```

johdannossa; tämä ottaa käyttöön `subfiles` paketin. Sitten jokainen ulkoinen alitiedosto on tuotava komennolla `\subfile{}`. Esimerkissä tiedostot `introduction.tex` ja `section2.tex` tuodaan pääasiakirjaan `sections` kansiosta. Huomaa, että tiedostopääte ei ole pakollinen.

[Avaa `subfiles` pakettiesimerkki Overleafissa](https://www.overleaf.com/project/new/template/19626?id=66392908\&templateName=Subfiles+package+example\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

### Alitiedostot

Kun olet määrittänyt pääasiakirjasi, jokaisella alitiedostolla täytyy olla erityinen rakenne.

```latex
\documentclass[../main.tex]{subfiles}
\graphicspath{{\subfix{../images/}}}
\begin{document}
\textbf{Hei maailma!}
\begin{figure}[bh]
\centering
\includegraphics[width=3cm]{overleaf-logo}

\label{fig:img1}
\caption{Overleafin logo}
\end{figure}

Hei, tässä on tekstiä ilman merkitystä...

\end{document}
```

![CompileSubfilesEx2OverleafV2.png](/files/e219a943d3b858285aaf9153127401c66a8014fb)

Nyt tämä tiedosto voidaan kääntää itsenäisenä tiedostona; dokumenttiluokka ja muu johdanto ovat samat kuin pääasiakirjassa määritellyt.

Ensimmäinen komento tässä on

```latex
\documentclass[../main.tex]{subfiles}
```

hakasulkeiden sisällä oleva parametri, `../main.tex`, on suhteellinen polku pääasiakirjaan. Tässä tapauksessa tiedosto `introduction.tex` sijaitsee kansiossa `sections`, joten tiedosto `main.tex` on yhden tason ylempänä nykyisestä kansiosta (tämä tarkoittaa `../` ).

Sinun täytyy myös käyttää `\subfix` komentoa yhdessä suhteellisen kansiopolun kanssa määritettäessä `\graphicspath` tiedostoihin `introduction.tex`:

```latex
\graphicspath{{\subfix{../images/}}}
```

Sitten varsinainen sisältö kirjoitetaan sisään `\begin{document}` ja `\end{document}`. Kaikki tämän ympäristön ulkopuolella jätetään huomiotta tai tarkemmin sanottuna katsotaan kuuluvaksi johdantoon. Vältä jättämästä tyhjiä rivejä tiedoston alkuun ja loppuun.

[Avaa `subfiles` pakettiesimerkki Overleafissa](https://www.overleaf.com/project/new/template/19626?id=66392908\&templateName=Subfiles+package+example\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

## Standalone-paketti

Paketti **standalone** tarjoaa saman toiminnallisuuden kuin **subfiles** ja on joustavampi, mutta syntaksi on monimutkaisempi ja alttiimpi virheille. Suurin ero on, että jokaisella alitiedostolla on oma johdantonsa.

Tämän osion esimerkeillä on seuraava hierarkkinen tiedostorakenne:

![CompileSubfilesEx3OverleafV2.png](/files/93b692ce2533c18cdcca453f3492fc9e466c7eed)

### Pääasiakirja

Pääasiakirja on hyvin samanlainen kuin missä tahansa muussa monitiedostoisessa projektissa.

```latex
\documentclass{article}
\usepackage[subpreambles=true]{standalone}
\usepackage{import}

\title{Standalone-paketin esimerkki}
\author{Overleaf}
\date{toukokuu 2021}

\begin{document}

\maketitle

\section{Ensimmäinen osio}
\import{sections/}{introduction}

\section{Toinen osio}
\import{sections/}{section2}

\end{document}
```

![CompileSubfilesEx3Overleaf.png](/files/5f4626d1172177157d64ddd28f32e3ab96f97197)

Rivi

```latex
\usepackage[subpreambles=true]{standalone}
```

ottaa käyttöön **standalone** paketin, ja se tulisi sijoittaa asiakirjan alkuun. Hakasulkeiden sisällä oleva parametri kertoo LaTeXille, että johdanto tuodaan kustakin alitiedostosta (paketit tuodaan vain kerran); jos se jätetään pois, varmista, että pääasiakirjan johdannossa on kaikki tarvittavat komennot, jotta alitiedostot toimivat. On oltava varovainen, koska eri johdanto-osissa voi olla yhteensopimattomuuksia.

Pääasiakirjan rungossa kukin alitiedosto tuodaan komennolla `\import{}{}`. Tavallista `\input{}` komentoa voidaan myös käyttää, mutta tässä esimerkissä käytettyä suositellaan [suurten projektien hallintaan](/latex/fi/asiakirjan-rakenne/07-management-in-a-large-project.md) koska se estää virheitä sisäkkäisissä tiedostoissa.

[Avaa esimerkki `standalone` paketista Overleafissa](https://www.overleaf.com/project/new/template/19636?id=66440758\&templateName=Standalone+package+example\&latexEngine=pdflatex\&texImage=\&mainFile=)

### Alitiedostot

Jokaisella alitiedostolla täytyy olla oma johdantonsa ja sen on tuotava kaikki paketit, joita tarvitaan itsenäisenä asiakirjana toimimiseen.

```latex
\documentclass[class=article, crop=false]{standalone}
\usepackage[subpreambles=true]{standalone}
\usepackage{import}
\usepackage{blindtext}

\begin{document}
TikZ-kuva hahmonnetaan tämän rivin alapuolelle

\begin{figure}[ht]
\centering
\subimport{../}{diagram.tex}
\label{fig:tikzexample}
\caption{Kiva yksinkertainen kaavio}
\end{figure}

\blindtext
\end{document}
```

![CompileSubfilesEx4OverleafV2.png](/files/106313d721f0b04dcc2ad94daada40b09ecdc5cd)

Alitiedoston ensimmäinen rivi on

```latex
\documentclass[class=article, crop=false]{standalone}
```

Tämä ilmoittaa, että tämä on tiedosto, jota käytetään **standalone** paketin kanssa; hakasuluissa on kaksi valinnaista parametria.

* `class=article`. Asettaa `article` taustaluokaksi; myös mitä tahansa muuta luokkaa voidaan käyttää: book, report jne. (paitsi beamer).
* `crop=false`. Jos tämä valinta jätetään pois, tuloste rajataan mahdollisimman pieneen kokoon.

Seuraava komento ei ole pakollinen

```latex
\usepackage[subpreambles=true]{standalone}
```

mutta sitä on käytettävä tässä esimerkissä, koska täällä on sisäkkäinen **standalone** tiedosto. A [TikZ-kuva](/latex/fi/kuvat-ja-taulukot/05-tikz-package.md) lisätään komennolla [`\subimport{../}{diagram.tex}`](/latex/fi/asiakirjan-rakenne/07-management-in-a-large-project.md#importing-files), alla näet tiedoston "diagram.tex" sisällön:

```latex
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{positioning}
\begin{document}

\begin{tikzpicture}[
roundnode/.style={circle, draw=green!60, fill=green!5, very thick, minimum size=7mm},
squarednode/.style={rectangle, draw=red!60, fill=red!5, very thick, minimum size=5mm},
]
%Nodes
\node[squarednode]      (maintopic)                              {2};
\node[roundnode]        (uppercircle)       [above=of maintopic] {1};
\node[squarednode]      (rightsquare)       [right=of maintopic] {3};
\node[roundnode]        (lowercircle)       [below=of maintopic] {4};

%Lines
\draw[->] (uppercircle.south) -- (maintopic.north);
\draw[->] (maintopic.east) -- (rightsquare.west);
\draw[->] (rightsquare.south) .. controls +(down:7mm) and +(right:7mm) .. (lowercircle.east);

\end{tikzpicture}
\end{document}
```

[Avaa tämä itsenäinen TikZ-esimerkki Overleafissa](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=Standalone+TikZ+example\&snip=%5Cdocumentclass%7Bstandalone%7D%0A%5Cusepackage%7Btikz%7D%0A%5Cusetikzlibrary%7Bpositioning%7D%0A%5Cbegin%7Bdocument%7D%0A%0A%5Cbegin%7Btikzpicture%7D%5B%0Aroundnode%2F.style%3D%7Bcircle%2C+draw%3Dgreen%2160%2C+fill%3Dgreen%215%2C+very+thick%2C+minimum+size%3D7mm%7D%2C%0Asquarednode%2F.style%3D%7Brectangle%2C+draw%3Dred%2160%2C+fill%3Dred%215%2C+very+thick%2C+minimum+size%3D5mm%7D%2C%0A%5D%0A%25Nodes%0A%5Cnode%5Bsquarednode%5D++++++%28maintopic%29++++++++++++++++++++++++++++++%7B2%7D%3B%0A%5Cnode%5Broundnode%5D++++++++%28uppercircle%29+++++++%5Babove%3Dof+maintopic%5D+%7B1%7D%3B%0A%5Cnode%5Bsquarednode%5D++++++%28rightsquare%29+++++++%5Bright%3Dof+maintopic%5D+%7B3%7D%3B%0A%5Cnode%5Broundnode%5D++++++++%28lowercircle%29+++++++%5Bbelow%3Dof+maintopic%5D+%7B4%7D%3B%0A%0A%25Lines%0A%5Cdraw%5B-%3E%5D+%28uppercircle.south%29+--+%28maintopic.north%29%3B%0A%5Cdraw%5B-%3E%5D+%28maintopic.east%29+--+%28rightsquare.west%29%3B%0A%5Cdraw%5B-%3E%5D+%28rightsquare.south%29+..+controls+%2B%28down%3A7mm%29+and+%2B%28right%3A7mm%29+..+%28lowercircle.east%29%3B%0A%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

![CompileSubfilesEx5.png](/files/bbbaa16f7275d162994fa3cd659cd57aa592f8e6)

Tämä on keskeinen ominaisuus paketissa **standalone**, voit tuoda tämän tiedoston mihin tahansa muuhun asiakirjaan ja käyttää koodin uudelleen. Esimerkiksi tätä kaaviota voidaan myöhemmin käyttää esityksessä ilman lisämuutoksia.

[Avaa esimerkki `standalone` paketista Overleafissa](https://www.overleaf.com/project/new/template/19636?id=66440758\&templateName=Standalone+package+example\&latexEngine=pdflatex\&texImage=\&mainFile=)

## Lisälukemista

Lisätietoja on kohdassa

* [Hallinta suuressa projektissa](/latex/fi/asiakirjan-rakenne/07-management-in-a-large-project.md)
* [Ristiinviittaukset osioihin ja yhtälöihin](/latex/fi/asiakirjan-rakenne/03-cross-referencing-sections-equations-and-floats.md)
* [Hakemistot](/latex/fi/asiakirjan-rakenne/04-indices.md)
* [Sanastot](/latex/fi/asiakirjan-rakenne/05-glossaries.md)
* [Hyperlinkit](/latex/fi/asiakirjan-rakenne/09-hyperlinks.md)
* [Sivunumerointi](/latex/fi/muotoilu/03-page-numbering.md)
* [Yksipuoliset ja kaksipuoliset asiakirjat](/latex/fi/muotoilu/08-single-sided-and-double-sided-documents.md)
* [Useita palstoja](/latex/fi/muotoilu/09-multiple-columns.md)
* [Kappaleen muotoilu](/latex/fi/muotoilu/04-articles-how-to-change-paragraph-spacing-in-latex.md)
* [Sivukoko ja marginaalit](/latex/fi/muotoilu/07-page-size-and-margins.md)
* [Laskurit](/latex/fi/muotoilu/10-counters.md)
* [Reunahuomautukset](/latex/fi/muotoilu/15-margin-notes.md)
* [Lihavointi, kursivointi ja alleviivaus](/latex/fi/latexin-perusteet/03-bold-italics-and-underlining.md)
* [Kirjasinkoot, -perheet ja -tyylit](/latex/fi/fontit/01-font-sizes-families-and-styles.md)
* [Kirjasinlajit](/latex/fi/fontit/02-font-typefaces.md)
* [Nykyaikaisten fonttien tukeminen XeLaTeXilla](/latex/fi/fontit/03-xelatex.md)
* [Kansainvälinen kielituki](/latex/fi/kielet/03-international-language-support.md)
* [Kirjasinkoot, -perheet ja -tyylit](/latex/fi/fontit/01-font-sizes-families-and-styles.md)
* [Suurten projektien kääntäminen](/latex/fi/tietopankki/038-fixing-and-preventing-compile-timeouts.md#compiling-big-projects)
* [Kuvien lisääminen](/latex/fi/lisaa-aiheita/27-inserting-images.md)
* [TikZ-paketti](/latex/fi/kuvat-ja-taulukot/05-tikz-package.md)
* [Oman paketin kirjoittaminen](/latex/fi/luokkatiedostot/03-writing-your-own-package.md)
* [Oman luokan kirjoittaminen](/latex/fi/luokkatiedostot/04-writing-your-own-class.md)
* [Se **subfiles** pakettidokumentaatio](http://repositorios.cpai.unb.br/ctan/macros/latex/contrib/subfiles/subfiles.pdf)
* [Se **standalone** pakettidokumentaatio](http://repositorios.cpai.unb.br/ctan/macros/latex/contrib/standalone/standalone.pdf)


---

# 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/asiakirjan-rakenne/08-multi-file-latex-projects.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.
