> 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/pl/struktura-dokumentu/08-multi-file-latex-projects.md).

# Projekty LaTeX z wieloma plikami

## Wstęp

W [dużych dokumentach LaTeX](/latex/pl/struktura-dokumentu/07-management-in-a-large-project.md) zwykle ma się kilka `.tex` plików, po jednym na każdy rozdział lub sekcję, a następnie łączy się je razem, aby wygenerować pojedynczy wynik. Pomaga to utrzymać porządek i ułatwia debugowanie dokumentu, ale wraz ze wzrostem rozmiaru dokumentu kompilacja trwa dłużej. Może to być frustrujące, ponieważ zwykle za każdym razem interesuje nas praca tylko w jednym konkretnym pliku.

Naturalnym sposobem na obejście tego problemu jest kompilowanie każdego pliku osobno. Istnieją dwa główne pakiety, które pozwalają kompilować pojedyncze pliki w projekcie wieloplikowym. Wybór zależy od tego, czego potrzebujesz.

* Za pomocą [stronie **subfiles** pakietu](#the-subfiles-package) możesz kompilować każdy podplik niezależnie, a każdy podplik będzie automatycznie korzystał z preambuły w głównym pliku.
* Za pomocą [stronie **standalone** pakietu](#the-standalone-package) każdy podplik działa jako niezależny plik, podpliki można później połączyć w główny dokument, który pobierze preambuły z każdego z nich. Szczególnie przydatne, jeśli trzeba ponownie użyć tego samego pliku w więcej niż jednym dokumencie; dobrym przykładem jest obrazek tikz.

## Uwagi dotyczące \documentclass w plikach .tex w Overleaf

Jak pokazano w poniższym klipie wideo, nawet jeśli ustawiono główny `.tex` plik projektu, można wybrać inny plik do kompilacji — pod warunkiem, że zawiera `\documentclass` deklarację \documentclass. Jednak aby zapewnić prawidłową kompilację wszystkich elementów projektu — takich jak glosariusze, ścieżki dostępu do `.bib` plików itp. — zdecydowanie zalecamy kompilowanie wyłącznie plików znajdujących się w katalogu głównym projektu.

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

## Pakiet subfiles

Ten pakiet nadaje się do większości sytuacji, jest naprawdę łatwy w użyciu.

Przykłady w tej sekcji mają następującą hierarchię plików:

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

### Główny plik

W głównym pliku potrzebne są dwa specjalne polecenia.

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

\usepackage{blindtext}

\usepackage{subfiles} % Najlepiej ładować jako ostatni w preambule

\title{Przykład pakietu subfiles}
\author{Overleaf}
\date{ }

\begin{document}

\maketitle

\section{Wprowadzenie}

\subfile{sections/introduction}

\section{Druga sekcja}

\subfile{sections/section2}

\end{document}
```

![CompileSubfilesEx1aOverleafV2.png](/files/25ba0330050ea930c16dd67162adf43b89e66567)

Kompilacja każdego pliku osobno wymaga linii

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

w preambule, co włącza pakiet. `subfiles` Następnie każdy zewnętrzny podplik musi zostać zaimportowany poleceniem `\subfile{}`. W przykładzie pliki `introduction.tex` i `section2.tex` są importowane do głównego pliku z folderu `sections` . Zwróć uwagę, że rozszerzenie pliku nie jest obowiązkowe.

[Otwórz `subfiles` przykład pakietu w Overleaf](https://www.overleaf.com/project/new/template/19626?id=66392908\&templateName=Subfiles+package+example\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

### Podpliki

Gdy skonfigurujesz główny plik, każdy podplik musi mieć specjalną strukturę.

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

\label{fig:img1}
\caption{Logo Overleaf}
\end{figure}

Witaj, tutaj jest trochę tekstu bez znaczenia...

\end{document}
```

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

Teraz ten plik można kompilować jako samodzielny plik; klasa dokumentu i reszta preambuły będą takie same jak te zdefiniowane w głównym dokumencie.

Pierwszym poleceniem tutaj jest

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

parametr wewnątrz nawiasów, `../main.tex`, czyli względna ścieżka do głównego dokumentu. W tym przypadku plik `introduction.tex` znajduje się wewnątrz folderu `sections`, więc plik `main.tex` jest o jeden poziom wyżej niż bieżący folder (to właśnie oznacza `../` ).

Będziesz też musiał użyć `\subfix` polecenia z względną ścieżką do folderu podczas określania `\graphicspath` % `introduction.tex`:

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

Następnie właściwa zawartość jest wpisywana wewnątrz `\begin{document}` i `\end{document}`. Wszystko poza tym środowiskiem będzie ignorowane, a dokładniej będzie uznane za część preambuły. Unikaj pozostawiania pustych linii na początku i na końcu pliku.

[Otwórz `subfiles` przykład pakietu w Overleaf](https://www.overleaf.com/project/new/template/19626?id=66392908\&templateName=Subfiles+package+example\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

## Pakiet standalone

Pakiet **standalone** zapewnia tę samą funkcjonalność co **subfiles** i jest bardziej elastyczny, ale składnia jest bardziej złożona i podatna na błędy. Główna różnica polega na tym, że każdy podplik ma własną preambułę.

Przykłady w tej sekcji mają następującą hierarchię plików:

![CompileSubfilesEx3OverleafV2.png](/files/20629cbbc701bbcd39ba6a917663fba39c444621)

### Główny plik

Główny plik jest bardzo podobny do pliku w każdym innym projekcie z wieloma plikami.

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

\title{Przykład pakietu standalone}
\author{Overleaf}
\date{Maj 2021}

\begin{document}

\maketitle

\section{Pierwsza sekcja}
\import{sections/}{introduction}

\section{Druga sekcja}
\import{sections/}{section2}

\end{document}
```

![CompileSubfilesEx3Overleaf.png](/files/21a817c6d820898e4473a14e25b897a44d25416a)

Linia

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

włącza **standalone** pakiet; powinien on zostać umieszczony wcześnie w dokumencie. Parametr wewnątrz nawiasów informuje LaTeX, aby zaimportował preambułę z każdego podpliku (pakiety są importowane tylko raz); jeśli zostanie pominięty, upewnij się, że w głównym dokumencie w preambule znajdują się wszystkie niezbędne polecenia, aby podpliki działały. Trzeba uważać z powodu możliwych niezgodności w różnych preambułach.

W treści głównego dokumentu każdy podplik jest importowany za pomocą `\import{}{}`. Standardowe `\input{}` polecenie też może być użyte, ale to z tego przykładu jest zalecane do [zarządzania dużymi projektami](/latex/pl/struktura-dokumentu/07-management-in-a-large-project.md) ponieważ zapobiega błędom w plikach zagnieżdżonych.

[Otwórz przykład `standalone` pakietu w Overleaf](https://www.overleaf.com/project/new/template/19636?id=66440758\&templateName=Standalone+package+example\&latexEngine=pdflatex\&texImage=\&mainFile=)

### Podpliki

Każdy podplik musi mieć własną preambułę i importować wszystkie pakiety potrzebne do działania jako samodzielny dokument.

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

\begin{document}
Poniżej tej linii zostanie wyrenderowana figura TikZ

\begin{figure}[ht]
\centering
\subimport{../}{diagram.tex}
\label{fig:tikzexample}
\caption{Ładny prosty diagram}
\end{figure}

\blindtext
\end{document}
```

![CompileSubfilesEx4OverleafV2.png](/files/02c354f7c942b63274d21f12486647732ecaecde)

Pierwsza linia w podpliku to

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

To deklaruje, że jest to plik przeznaczony do użycia z pakietem **standalone** , w nawiasach znajdują się dwa opcjonalne parametry.

* `class=article`. Ustawia `article` jako klasę bazową; można użyć dowolnej innej klasy: book, report itd. (z wyjątkiem beamer).
* `crop=false`. Jeśli ta opcja zostanie pominięta, wynik zostanie przycięty do minimalnego rozmiaru.

Następne polecenie nie jest obowiązkowe

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

ale musi być użyte w tym przykładzie, ponieważ jest tu zagnieżdżony **standalone** plik. A [obrazek TikZ](/latex/pl/rysunki-i-tabele/05-tikz-package.md) jest wstawiany za pomocą [`\subimport{../}{diagram.tex}`](/latex/pl/struktura-dokumentu/07-management-in-a-large-project.md#importing-files), poniżej możesz zobaczyć zawartość pliku "diagram.tex":

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

[Otwórz ten przykład Standalone TikZ w Overleaf](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/e0704aa7d662308c1f51b0438bc2e1e164073872)

To jest główna funkcja w **standalone**, możesz zaimportować ten plik do dowolnego innego dokumentu i ponownie wykorzystać kod. Na przykład ten diagram można później użyć w prezentacji bez dalszych zmian.

[Otwórz przykład `standalone` pakietu w Overleaf](https://www.overleaf.com/project/new/template/19636?id=66440758\&templateName=Standalone+package+example\&latexEngine=pdflatex\&texImage=\&mainFile=)

## Dalsza lektura

Więcej informacji znajdziesz w

* [Zarządzanie w dużym projekcie](/latex/pl/struktura-dokumentu/07-management-in-a-large-project.md)
* [Odwołania krzyżowe do sekcji i równań](/latex/pl/struktura-dokumentu/03-cross-referencing-sections-equations-and-floats.md)
* [Indeksy](/latex/pl/struktura-dokumentu/04-indices.md)
* [Glosariusze](/latex/pl/struktura-dokumentu/05-glossaries.md)
* [Hiperłącza](/latex/pl/struktura-dokumentu/09-hyperlinks.md)
* [Numeracja stron](/latex/pl/formatowanie/03-page-numbering.md)
* [Dokumenty jednostronne i dwustronne](/latex/pl/formatowanie/08-single-sided-and-double-sided-documents.md)
* [Wiele kolumn](/latex/pl/formatowanie/09-multiple-columns.md)
* [Formatowanie akapitów](/latex/pl/formatowanie/04-articles-how-to-change-paragraph-spacing-in-latex.md)
* [Rozmiar strony i marginesy](/latex/pl/formatowanie/07-page-size-and-margins.md)
* [Liczniki](/latex/pl/formatowanie/10-counters.md)
* [Notatki na marginesie](/latex/pl/formatowanie/15-margin-notes.md)
* [Pogrubienie, kursywa i podkreślenie](/latex/pl/podstawy-latex-a/03-bold-italics-and-underlining.md)
* [Rozmiary czcionek, kroje i style](/latex/pl/czcionki/01-font-sizes-families-and-styles.md)
* [Kroje pisma](/latex/pl/czcionki/02-font-typefaces.md)
* [Obsługa nowoczesnych czcionek w XeLaTeX](/latex/pl/czcionki/03-xelatex.md)
* [Obsługa języków międzynarodowych](/latex/pl/jezyki/03-international-language-support.md)
* [Rozmiary czcionek, kroje i style](/latex/pl/czcionki/01-font-sizes-families-and-styles.md)
* [Kompilowanie dużych projektów](/latex/pl/baza-wiedzy/038-fixing-and-preventing-compile-timeouts.md#compiling-big-projects)
* [Wstawianie obrazów](/latex/pl/wiecej-tematow/27-inserting-images.md)
* [Pakiet TikZ](/latex/pl/rysunki-i-tabele/05-tikz-package.md)
* [Pisanie własnego pakietu](/latex/pl/pliki-klas/03-writing-your-own-package.md)
* [Pisanie własnej klasy](/latex/pl/pliki-klas/04-writing-your-own-class.md)
* [Ta **subfiles** dokumentacja pakietu](http://repositorios.cpai.unb.br/ctan/macros/latex/contrib/subfiles/subfiles.pdf)
* [Ta **standalone** dokumentacja pakietu](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/pl/struktura-dokumentu/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.
