LaTeX/Modularni Dokumenti
Kroz ovaj vodič videli smo šta je moguće uraditi i kako je ostvarivo, međutim, nameće se pitanje: želim da napišem pravilan tekst koristeći LaTeX, šta onda raditi? Odakle početi? Ovo je kratak, korak-po-korak, priručnik o tome kako započeti dokument pravilno, držanjem strukture na visokom nivou. Suština je orgranizovanje fajlova korišćenjem modularnih osobina koje poseduje LaTeX. Na ovaj način, biće veoma lako praviti modifikacije, čak ako je dokument skoro završen. Ovo su sve samo predlozi, ali možda vas inspirišu da napišete svoj dokument.
Struktura projekta
[uredi]Napraviti jasnu strukturu celog projekta na ovaj način:
- napraviti direktoriju za ovaj projekat. U nastavku ćemo taj direktorijum nazivati korenski direktorijum
- napraviti nova dva direktorijuma unutar korenskog, jedan za LaTeX dokumente, drugi za slike. Pošto ćete često morati da pišete njihova imena, poželjno bi bilo da budu kratka. Naš predlog je tex i img.
- napraviti svoj dokument (nazvaćemo ga document.tex, možete koristiti ime koje se vama sviđa) i svoj paket (na primer mystyle.sty); drugi fajl će pomoći u održavanju jasnoće koda.
Ako ste pratili sve ove korake, ovi fajlovi bi trebalo da se nalaze u korenskom direktorijumu, koristeći "/" za svaku direktoriju:
./document.tex ./mystyle.sty ./tex/ ./img/
ništa drugo.
Navođenje LaTeXa na obrađivanje više fajlova
[uredi]Kako vaš rad bude rastap, vaš LaTeX fajl može postati glomazan i zbrkan, posebno ako pišete dugačak članak sa suštinskim, diskretnim odsecima, ili celu knjigu. U takvim slučajevima, praktično je podeliti vaš fajl na nekoliko delova. Na primer, ako pišete knjigu, logično je da svako poglavlje pišete kao drugačiji .tex fajl. LaTeX ovo čini jednostavnim zahvaljujući dvema komandama:
\input{име фајла}
i
\include{име фајла}
Upoređivanje metoda: unos protiv uključenog
[uredi]Razlika između ova dva načina uključivanja fajlova je objašnjena ispod. Ono što im je zajedničko jeste to da oni obrađuju sadržaj filename.tex pre nego što nastave sa ostatkom osnovnog fajla (fajl koji sadrži ove iskaze).
Kada kompajler obrađuje vaš osnovni fajl i stigne do komandi \input
ili \include
, on pročita filename.tex i obrađuje sadržaj u saglasnosti sa formatizovanim komandama koje su naznačene u osnovnom fajlu. Ovako možete ubaciti sve opcije formatiranja u osnovni fajl i ispišete sadržaj koristeći \input
ili \include
u fajlovima koji imaju pravi sadržaj vašeg rada. Ovo znači da, važan deo vašeg radnog procesa, t.j. pisanje, je jasno odvojeno od opcija formatiranja. Ovo je jedan od razloga zbog kojih je LaTeX dobar za ozbiljno pisanje! Time ćete imati posla odvojeno sa tekstom i osnovnim komandama kao što su \section
, \emph
itd. Dokument će biti neopterećen i mnogo lakši za obrađivanje.
Druga metoda uključivanja fajla, \include{filename}
, razlikuje se od prve u pojedinim bitnim crtama. Ne možete “ugnezditi” \include
izkaz u fajlu koji je dodan preko \include
, s obzirom na \input
, u drugu ruku, dozvoljava pozivanje fajlova koji sami od sebe pozivaju druge fajlove, ad infinitum (u redu, skoro!). Možete, međutim, \include
fajl koji sadrži jednu ili više \input
komandi. Molim vas, oduprite se iskušenju “ugnežđavanja” fajlova na ovaj način, jednostavno jer sistem to može učiniti: završićete sa još jednom vrstom složenosti!
Još jedna bitna razlika jeste ta što korišćenjem \include
izazvaćete prelom stranice (što je idealno za poglavlja knjige), s obzirom na to da \input
komanda to ne radi (što je idealno za korišćenje iznutra, recimo, dugačak članak sa diskretnim naslovima, koji nisu normalno podešeni na novoj strani).
U bilo kom slučaju .tex rastegljivost imena fajla je prepušteno slobodnom izboru.
Rad na diskretnim delovima vašeg dokumenta trpi posledice od toga kako je vaš osnovni fajl kompajlovan; ovo će se razmatrati ispod.
Korišćenje drugačijih putanja
[uredi]Kada LaTeX kompajler pronađe upućivanje na spoljašnji fajl u osnovnom fajlu, tražiće ga u u istom direktorijumu. Štaviše, suštinski možete uputiti na bilo koji fajl u vašem sistemu, korišćenjem i apsolutne i relativne putanje.
Apsolutna putanja je puna putanja- i ime fajla u kojem je svaki element označen. Dakle, filename.tex
može imati punu putanju,
\input{/home/user/texfiles/filename.tex}
Ukoliko ste napravili direktoriju myfiles
za vaš pisani projekat, u vašem texfiles
direktorijumu, njegova puna putanja bila bi,
\input{/home/user/texfiles/myfiles/filename.tex}
Očigledno, korišćenje apsolutne putanje je neefektivno ako se odnosi na fajl u trenutnom direktorijumu. Ako, međutim, treba da obuhvatite fajl koji se uvek nalazi u specifičnom delu vašeg sistema, možete ga uputiti na apsolutnu putanju, na primer,
\input{/home/user/documents/useful/foo.tex}
U praksi, apsolutna putanja se, generalno, koristi kada se upućujemo na fajl koji je baš zabačen u sistemu (ili pak i na drugom serveru!). Jedna reč upozorenja: ne ostavljajte prazan prostor u imenima fajlova, mogu da izazovu dvosmisleno ponašanje. Ili ne ostavljajte razmake ili koristite donju crtu _ umesto razmaka.
Možda ćete morati, međutim, da napravite vaš izvor prenosivim (na drugi računar ili na drugo mesto na hard disku), u tom slučaju, relativne putanje treba da budu korišćene ukoliko želite da izbegnete prepisivanje imena putanja. Ili, relativna putanja, jednostavno, može biti efikasniji i elegantniji način “obraćanja” fajlu. Relativna putanja je ona koja je definisana u relaciji sa trenutnom direktorijom, u našem slučaju, sa onom koja sadrži osnovni fajl. LaTeX koristi standardnu UNIX notaciju: sa jednostavnom tačkom . obraćate se trenutnom direktorijumu, i sa dve tačke .. obraćate se prethodnom direktorijumu, to je onaj iznad trenutnog direktorijuma u stablu sistema. Kosa crta / se koristi da odvoji drugačije komponente od imena putanje: direktorijumi i imena fajlova. Dakle, ./ se obraćate trenutnom direktorijumu, a ../ prethodnom, korišćenjem ../../ obraćate se direktorijumu koji je dva koraka iznad u stablu sistema. Pisanje
\input{./filename.tex}
imaće potpuno isti efekat kao i pisanje
\input{filename.tex}
ali, ukoliko vam je lakše da sve svoje fajlove stavite u potdirektorijum trenutnog direktorijuma, pod nazivom myfiles, tom fajlu biste se obraćali
\input{./myfiles/filename.tex}
Zaista, u našem primeru apsolutne putanje, iznad navedenim, mogli ste, takođe, tom fajlu da se obratite i relativno:
\input{../../documents/useful/foo.tex}
Naravno, svi često korišćeni sistemi – Linux, Mac OS X i Windows – takođe sadrže UNIX ./, ../ osobinu, navedenu iznad. Primetiti, međutim, da LaTeX koristi desnonakrivljene crte / čak i na Microsoft Windows platformama, koje koriste levonakrivljene linije \ u putanjama. LaTeX implementacije za Windows sistem izvode ovo pretvaranje za vas, što obezbeđuje da će vaš dokument biti validan za sve instalacije.
Fleksibilnost, nasleđena na način na koji je LaTeX integrisan sa novim fajl operativnim sistemima, dozvoljava unos fajlova na način koji vama odgovara, po ličnim podešavanjima.
Prilikom korišćenja relativne putanje unutar LaTeX fajla, unešene kodom \input
ili \include
, bitno je napomenuti da su putanje relativne u odnosu na direktorijum u kojem je osnovni .tex fajl, a ne direktorijum u kojem se uključen (ili unesen) fajl nalazi. Ovo će verovatno biti problem ako koristite folder za svako novo poglavlje, sa slikama u svakom poglavlje folderu, i korišćenje \include za čitanje izvora poglavlja u glavnom LaTeX fajlu u roditeljskom folderu.
Kompajlovanje osnovnog fajla
[uredi]Kada kompajlujete svoj dokument, reference strana će se promeniti u zavisnosti od vašeg korišćenja \input
i \include
komandi. Uglavnom LaTeX korisnici kompajluju delove dokumenata kako bi proverili da li su sama poglavlja sintatski korektna kao i izgled, kakav je pisac zamislio. Potpuno kompajlovanje se, generalno, vrši kako bi se pregledao potpuni nacrt ili finalna verzija. U takvim slučajevima, u takvim slučajevima je apsolutno neophodno pokrenuti LaTeX dva ili više puta kako bi se sredili brojevi strana, reference, itd. (posebno ako koristite bibliografske softverske alate poput BiBTeX).
Najjednostavniji način provere da je jedna ili više različitih komponenti vašeg rada sintaktički snažna, jeste komentarisanje komande znakom procenta, na primer:
\documentclass{article}
\begin{document}
%\input{Наслов_1}
%\input{Наслов_2}
%\input{Наслов_3}
\input{Наслов_4}
%\input{Наслов_5}
\end{document}
Ovaj kod će da procesuje vaš osnovni fajl sa article konvenzijom, ali samo će materijal u fajlu Section_4.tex biti izvšen. Ako je to, recimo, poslednja stvar koju je trebalo proveriti pre slanja nekim velikim novinama, jednostavno biste pobrisali sve znakove procenta i ponovo pokrenuli LaTeX, i ponavljali proces kompajlovanja kako biste sredili sve reference, brojeve strana i tako.
Korišćenje \includeonly
[uredi]Korišćenje ove komande obezbeđuje kompleksnije, samim time i korisnije mogućnosti. Ako uključite predstojeću komandu u vaš uvod, t.j. pre \begin{document},
\includeonly{име фајла 1,име фајла 2,...}
samo će fajlovi navedeni između vitičastih zagrada biti ubačeni. Primetiti da možete imati jedan ili više fajlova kao argument ovoj komandi: odvojiti ih zarezom, ne razmacima. Ukoliko koristite apsolutne ili relativne putanje do fajlova, ukucajte celu referencu.
Ovo zahteva da postoje \include
komande u dokumentu koji određuje ove fajlove. Ime fajla treba biti napisano bez .tex produžetka fajla:
\documentclass{book}
\includeonly{Поглавље_1,Поглавље_4} % компајлује смао поглавља 1 и 4, просторни карактери нису укључени
\begin{document}
\include{Поглавље_1} % изоставља '.tex' продужетак
\include{Поглавље_2}
\include{Поглавље_3}
\include{Поглавље_4}
\end{document}
Ovaj kod bi obradio osnovni fajl ali bi samo uključio saržaj autorovog prvog i četvrtog poglavnja (Poglavlje_1.tex i Poglavlje_4.tex). Ono što je važno, ova alternativa održava onoliko .aux informacija koliko je moguće iz prethodnog rukovođenja, dakle, mnogo manje zabrlja poprečne-reference od improvizovanog predloga iznad.
Odvajanje kompilacija nasledničkih dokumenata
[uredi]Nedostatak tvrdoglavog korišćenja \input
i \include
jeste to što se samo osnovni fajl može kompajlovati. Međutim, možete odlučiti da bolje radite na pojedinačnim naslovima i poželite da kompajlujete te pojedinačne naslove. Postoji nekoliko dostupnih paketa koji će rešiti ove probleme.
Podfajlovi
[uredi]subfiles package omogućuje kompajlovanja naslova dokumenta korišćenjem iste preambula kao kod glavnog dokumenta.
U glavnom dokumentu, paketi moraju biti učitani kao:
\usepackage{subfiles}
Umesto korišćenja \input
i \include
, naslednički dokumenti moraju biti učitani kao:
\subfile{filename}
Naslednički dokument mora početi sledećim izkazima:
\documentclass[main.tex]{subfiles}
\begin{document}
i završiti se:
\end{document}
Ukratko, osnovni dokument (main.tex
) izleda kao:
\documentclass{book}
\usepackage{subfiles}
\begin{document}
%% саржај мог документа
\subfile{chapter1}
%% још садржаја мог документа
\end{document}
i Poglavlje 1 (chapter1.tex
) izgleda kao:
\documentclass[main.tex]{subfiles}
\begin{document}
%% садржај Поглавља 1
%%
%% још садржаја Поглавља 1
\end{document}
Pojedine Linuks distribucije nemaju potfajl pakete u svojim LaTeX distribucijama, jer nisu bile uključene pre TeXLive 2012. Možete skinuti subfiles.tds.zip sa CTAN. Ovaj paket će sadržati dva fajla subfiles.cls
i subfiles.sty
. Pomerite ove fajlove u direktorijum pod imenom subfiles
u putanji /usr/share/texmf/tex/latex
. Ovo još uvek neće učiniti pakete dostupnim; texhash
mora biti prvi izvršen. Sada ste spremni!
Stendaloun
[uredi]standalone package je dizajniran za pomeranje više u suprotnom smeru nego podfajlovi. On obezbeđuje sredstva za importovanje preambule nasledničkog dokumenta u glavni dokument, dozvoljavajući fleksibilan način za ukljulivanje teksta ili slike u više dokumenata (npr. članak i presentation).
U glavnom dokumentu, paket mora biti dodat kao:
\usepackage{standalone}
Naslednički dokumenti se učitavaju preko \input
ili \include
.
Naslednički dokument sardži, na primer, sledeće iskaze:
\documentclass{standalone}
% учитава било који пакет потребан за документ
\begin{document}
% Ваш документ или слика
\end{document}
Ukratko, osnovni dokument (main.tex
) izgleda kao:
\documentclass{book}
\usepackage{standalone}
\begin{document}
%% садржај мог документа
\input{chapter1}
%% још садржаја мог документа
\end{document}
i Poglavlje 1 (chapter1.tex
) izgleda kao:
\documentclass{standalone}
% Преамбула
\begin{document}
%% садржај Поглавља 1
%%
%% још садржаја Поглавља 1
\end{document}
Ubacivanje PDF fajlova
[uredi]Ako treba da ubacite postojeći, verovatno višestrani, PDF fajl u vaš LaTeX dokument, bilo da jeste ili nije uključeni PDF kompajlovan LaTeXom ili nekim drugim alatom, razmotrite korišćenje pdfpages package. U preambuli, uključite paket:
\usepackage[final]{pdfpages}
Paket vam takođe dozvoljava da odredite koje strane želite da uključite: na primer, da ubacite strane od treće do šeste iz nekog fajla insertme.pdf
, koristite:
\includepdf[pages=3-6]{insertme.pdf}
Da ubacite ceo insertme.pdf
:
\includepdf[pages=-]{insertme.pdf}
Za celu funkcionalnost, kompajlujte izlaz sa pdflatex
.
Dodatne informacije možete pronaći u poglavlju Otpremanje u druge formate.
Fajl mystyle.sty
[uredi]Umesto ubacivanja svih potrebnih paketa na početku dokumenta, kao što bismo mogli, najbolji način za ubacivanje svih potrebnih paketa jeste ubacivanje u drugi lažan paket pod nazivom mystyle, koji ćete napraviti samo za vaš dokument. Dobar razlog sa ovako nešto jeste taj da ćete morati samo da dodate jedan jedini \usepackage u vaš dokument, čime će vaš kod biti mnogo pregledniji. Povrh toga, sav info vašeg paketa biće unutar dokumenta, dakle, kada budete započinjali novi dokument moraćete da kopirate taj fajl i uključite ga pravilno, time imaćete stil koji ste već ranije koristili.
Kreiranje svog stila je veoma jednostavno: napravite fajl pod nazivom mystyle.sty (ime može biti po želji, ali mora da se završava sa ".sty"). Na poečetku, napišite:
\ProvidesPackage{mystyle}
Onda, ubacite sve željene pakete standardnom komandom \usepackage{...} kao što biste normalno i uradili, promenite vrednosti svih promenljivih koje želite, itd. Radiće kao da ste kod koji ste ubacili ovde kopirali i zalepili unutar dokumenta.
Dok pišete, kad god morate da donesete odluku povodom formatiranja, definišite svoju komandu za to i dodajte je u vaš mystyle.sty:nek LaTeX radi za vas. Ako učinite tako, biće veoma lako promeniti ga, ako se predomislite.
Ovo je zapravo početak pisanja paketa. Pogledati LaTeX/Makroi za više detalja.
Za listu nekolicine paketa koje možete koristiti, videti Lista paketa odeljak.
Glavni dokument document.tex
[uredi]Onda napravite fajl pod nazivom document.tex; ovo će biti glavni fajl, onaj koji ćete kompajlovati, iako ne bi trebalo često da ga uređujete jer ćete raditi na drugim fajlovima. Trebalo bi ovako da izgleda (ovo je primer koda za report, ali ga lako možete promeniti u article ili bilo šta drugo):
\documentclass[12pt,a4paper]{report}
\usepackage{graphicx}
\usepackage{ifpdf}
\ifpdf
% овде убацити пакете само за PDF:
\DeclareGraphicsExtensions{.pdf,.png,.jpg,.mps}
\usepackage{hyperref}
\else
% овде убацити пакете само за DVI:
\fi
% све остале пакете убацити овде:
\usepackage{mystyle}
\begin{document}
\input{./tex/title.tex}
%\maketitle
\tableofcontents
\listoffigures
\listoftables
\input{./tex/intro.tex}
\input{./tex/main_part.tex}
\input{./tex/conclusions.tex}
\appendix
\input{./tex/myappendix.tex}
% Библиографија:
\clearpage
\addcontentsline{toc}{chapter}{Bibliography}
\input{./tex/mybibliography.tex}
\end{document}
Ovde je korišćeno dosta kodova koje smo izrazili u prethodnom odeljku. Na početku je heder, diskutovan u Saveti i trikovi odeljku, tako da biste mogli da kompajlujete i u DVI i PDF. Onda importujete jedini potreban paket, a to je mystyle.sty (primetiti da u kodu mora biti importovan bez produžetka), zatim počinje vaš dokument. Onda ubacuje naslov: nije nam se svideo izlaz \maketitle , te smo napravili naš, kod za to biće u fajlu pod nazivom title.tex u folderu tex koji smo ranije napravili. Kako ga napisati, objašnjeno je u Stvaranje naslova odeljku. Zatim su ubačeni sadržaj, slike i tabele. Ukoliko ih ne želite, samo prokomentarišite te redove. Zatim je ubačen glavni deo dokumenta. Kao što možete videti, nema teksta u document.tex: sve je u drugim fajlovima u tex direktorijumu tako da ih možete lako uređivati. Odvajamo naš tekst od strukturalnog koda, i time poboljšavamo "To što vidiš je to što misliš" prirodu LaTeXa. Zatim možemo videti dodatak i konačno Bibliografiju. U odvojenom je fajlu i ručno se dodaje u sadržaj koristeći savet naveden u Saveti i trikovi.
Jednom kada ste napravili document.tex više nećete morati da ga uređujete, osim ako ne budete želeli da ubacite još jedan fajl u tex direktorijum, ali ovo se neće dešavati veoma često. Sada možete da pišete svoj dokument, odvajati ga u koliko god hoćete fajlova i dodavati mnoge slike, a da se ne zbunite: zahvaljujući strogoj strukturi, koju ste namestili vašem projektu, bićete u mogućnosti sva vaša uređivanja jasno da pratite.
Predlog: nemojte da nazivate vaše fajlove poput "poglavlje_01.tex" ili "slika_03.png", t.j. pokušajte da izbegnete brojeve u imenima fajlova: ako se numeracija koju LaTeX daje automatski, razlikuje od vaše (mogućnost je velika) dosta ćete se zbuniti. Kada imenujete fajl, zastanite za trenutak, razmislite o kratkom imenu koje koje može u potpunosti objasniti šta je unutar fajla, a da ne bude dvosmisleno, uštedeće vam vreme kako dokument bude rastao.
Spoljni linkovi
[uredi]