MC, 13:08 niedziela, 04.03.2012 r.
Ilustracja do artykułu: LaTeX - Tworzenie dokumentu z wielu plików źródłowych

LaTeX - Tworzenie dokumentu z wielu plików źródłowych

Podczas tworzenia w Latex-u nieco bardziej złożonych dokumentów, wygodnie jest skorzystać z możliwości rozbicia go na wiele plików źródłowych (np. każdy rozdział w osobnym pliku). Dzięki temu tworzymy z dokumentu uporządkowaną strukturę przez co łatwiej taki dokument edytować, bo wiadomo jaka treść w którym miejscu się znajduje. Dziś pokażę, jak ja mam w zwyczaju podchodzić do tego zagadnienia.

Co wybrać? include? czy input?

Praca na wielu plikach w Latex-u polega na stworzeniu dokumentu głównego i wczytaniu do niego jego poszczególnych części, tych zawartych w osobnych plikach. Do osiągnięcia tego prowadzą dwie ścieżki, przez dwie komendy: \include oraz \input. Ja zazwyczaj idę tę drugą drogą korzystając z \input i to na niej oprę dane w tym artykule przykłady. Powiedzmy jednak najpierw...

Co te polecanie łączy, a czym się różnią?

Zacznijmy od wspólnych cech tych dwóch poleceń. Główne z nich, są dwie. Po pierwsze, gdy kompilator odnajduje w dokumencie głównym polecenie wczytania podpliku, to zostawia na moment dokument główny, a zajmuje się właśnie tym dokumentem wczytywanym i dopiero gdy z nim skończy, wraca do dokumentu głównego. Ma to swoje konsekwencje w drugiej cesze wspólnej tych dwóch poleceń. Jest nią fakt, że wszystkie ustawienia dotyczące formatowania zawarte w dokumencie głównym, obowiązują i są stosowane wobec dokumentów pochodnych. I to jest kolejna zaleta rozbijania dokumentu na wile plików - style definiujemy tylko w pliku głównym, a dalej skupiamy się już jedynie na treści dokumentu, a nie jego oprawie wizualnej.

Co je zatem różni? Na polecenie \include nałożone jest pewne ograniczenie, polegające na tym, że w pliku pochodnym wczytanym za pomocą tego polecenia, nie możemy już więcej używać \include i dalej zagnieżdżać dokumenty pochodne. Możemy jednak używać \input. I takie nie mogę, ale jednak mogę, nie podoba mi się (możliwe, że po prostu nie dotarł do mnie jakiś bardziej abstrakcyjny sens takiego działania) i zawsze używam \input, które daje mi dowolność. Inna sprawa, że nie ma co przesadzać z takim wielokrotnym zagnieżdżaniem - to może się okazać niezdrowe za przyczyną radykalnie rosnącej złożoności. Ponadto polecenie include wymusza umieszczenie wczytywanej treści na nowej stronie dokumentu, o czym warto pamiętać.

Hmm... a jak mają wyglądać te pliki?

Normalnie :) Dokument główny wygląda jak zwykły dokument główny. Nie trzeba nawet żadnych dodatkowych bibliotek. Jeśli zaś idzie o dokumenty pochodne, to zawierają one jedynie esencjonalną treść do wczytania, czyli już bez żadnych \begin{document} etc. Z resztą spójrzmy na przykład

Dokument główny:

\documentclass[a4paper,12pt]{report}
\begin{document}

\title{ \textbf{Tytuł dokumentu} \\
stworzonego z wielu plików wsadowych
}

% Wstęp
\section{Wstęp}
\subsection{Wprowadzenie}
\input{./wstep.tex}

\newpage

% Właściwa treść
\section{O co tak naprawdę chodzi?}
\subsection{Założenia wstępne}
\input{./zalozenia.tex}
\newpage

% ...

\end{document}

Dokument wczytywany (wstep.tex):

Wstępem niech będzie \textbf{dowolny tekst}, bo dla tego przykładu i tak nie ma to większego znaczenia.

Dokument wczytywany (zalozenia.tex):

Założenia do dalszych rozważań \begin{itemize}
\item Założenie pierwsze
\item Założenie drugie
\item I w końcu całożenie trzecie
\end{itemize}

Przykład jak widać mało wyszukany, ale mam nadzieję, że czytelny ;)

I to wszystko?

Ta wiedza wystarczy nam już do tworzenia dokumentów w Latex-u złożonych z wielu plików. Dobrze jest wprowadzić sobie jakąś rozsądną strukturę katalogową, żeby całość miała ręce i nogi, a także byśmy choćby po długim czasie potrafili szybko zorientować się, jak dokument został urządzony.

Komentarze (0) - Nikt jeszcze nie komentował - bądź pierwszy!

Imię:
Treść: