Bevezető: mi is ez a LaTeX
Gondolkoztál már azon, hogyan készül az igényes analízis vagy számítástudomány jegyzet? Tovább megyek: hogyan születhet meg akár már a nyomda előtt (nélkül) egy szedésileg is korrekt tudományos cikk vagy hivatalos levél? Esetleg szívtál már a Worddel, és felmerült benned, hogy a diplomamunkád megírásához majd valami hatékonyabb eszközt kellene keresned?
De még ha nem is, a LaTeX-ről (ejtsd: „lateh”) már csak azért is érdemes legalább egyszer olvasni, mert legtöbben itt műszaki emberek volnánk, és mint ilyenek, azért előfordulhat, hogy olyan minőségű munkát készülünk kiadni a kezeink közül, mely megérdemli az igényes kinézetet. (Pl. kézikönyv)
Rögtön az elején tisztázzuk a LaTeX szó kiejtése körüli félreértést! Bár ugyanúgy íródik, a LaTeX szó legutolsó betűje mégsem a latin ábécé nagy iksz betűje, hanem a nagy khí a görög ábécéből, így a szót erős h-val kell ejteni, kb. úgy, mint a technika szó esetében.
Tehát mi a LaTeX?
A válasz kicsit összetett, de kezdetnek jól megvilágítja a dolgot a keletkezésének története Jeney Gábor tollából: „Leslie Lamport írta a TeX dokumentum-formázó nyelv kiegészítéseként, hogy a dokumentumok készítése könnyedén megoldható legyen.
Alapelv: a tartalom a lényeg és nem a forma. Ebből következően a komplex formázási feladatok megoldása macerás lehet LaTeX-ben. Jelenlegi verziója a LaTeX 2ε. […] A LaTeX a TeX-re épül. […] A TeX szintén tördelőnyelv, de sokkal összetettebb, bonyolultabb. A TeX-et Donald E. Knuth írta, amikor összeveszett a kiadóval A programozás művészete című könyvének tördelése kapcsán. A saját programjával tördelte művét, amelyet így formázott állapotban tudott leadni.”
Tehát akkor még egyszer, mi is a LaTeX?
Legalább két dolog egyszerre:
• szkript- vagy tördelőnyelv dokumentumok forráskódjának(!) megírásához, és
• program, mely e forráskódo(ka)t lefordítja, és belőlük egy elsődleges, immár nézhető kimenetet produkál.
E kimenet első körben nem más, mint egy .dvi kiterjesztésű fájl. A dvi a device independent rövidítése, nem véletlenül, ez ugyanis egy teljesen eszközfüggetlen fájl. Azért hívjuk a fordító elsődleges kimenetének, mert később további, a felhasználási célnak megfelelő fájl(oka)t szokás készíteni belőle, leginkább PDF-et vagy postscriptet. Amúgy a dvi fájl tartalma is megtekinthető már, de ehhez külön dvi megjelenítő program szükséges (pl. Yap, vagy unix környezetben xdvi). A Windows kép- és faxmegjelenítő többek között erre sem használható.
Más irányból közelítve a mi is ez a LaTeX kérdéshez: remélhetőleg mindenki tudja, mely elv rejtőzik a WYSIWYG (What You See Is What You Get, ejtsd: vizivig, "azt kapod, amit látsz") betűszó mögött.
A Microsoft Word, az OpenOffice.org Writer vagy a StarOffice Writer is ilyen programok: ezek tulajdonképpen nemcsak a szöveg szerkesztésére adnak nekünk lehetőséget, hanem annak tördelésére, küllemének igen sokrétű és aprólékos módosítására is. Mindezt ráadásul on the fly nyújtják, tehát a monitorunkon egyből és mindig a már kész dokumentum jelenik meg, úgy, ahogy az a nyomtatóból várható.
Nos, a LaTeX nem ilyen. (Bár ilyen formában is elérhető – lásd pl. Scientific Word)
Kódolás
Egy LaTeX-es doksi keletkezése némileg inkább a programíráshoz hasonlítható: feladatunk ilyenkor egy egyszerű szöveges – plain text – fájl előállítása, aminek .txt helyett .tex kiterjesztést adunk. Ezt adjuk majd végül oda a fordítónak.
E fájlt persze alapvetően bárhogy előállíthatjuk. Mazochisták akár a Windows Notepad-jával is nekivághatnak, de a saját érdekünkben érdemes legalább valamilyen okosított editort használni (pl. Notepad2, Notepad++). A legjobban talán egy LaTeX disztribúció feltelepítésével járunk (pl. MiKTeX), mert így egy kész fejlesztőkörnyezetet kapunk kézhez, ami mindent tartalmaz, amire szükségünk lehet: praktikus szövegszerkesztőt, a fordítóprogramot beépített csomagkezelővel stb.
A lényeg azonban a forráskódban használt parancsokban van! A lefordított kimenet ezek által válik amolyan igazi, szépen formált dokumentummá, méghozzá nem is akármilyenné. Némi gyakorlat birtokában a megfelelő parancsok szövegbe ágyazásával a fordítót tipográfiailag kifogástalan dokumentum előállítására tudjuk rábírni.
Ahogy általában a programnyelveknél, természetesen itt is vannak formai követelmények: szabályok, betartandó szintaktika, egységes jelölésrendszer, meg persze rengeteg olyan lehetőség, melyek többségét valószínűleg sosem fogjuk használni, de azért megijednünk még ifjú titán menedzsertanoncként sem kell: nulláról sokkal előbb bele lehet jönni, mint a C++-ba.
Nézzünk gyorsan pár példát, hogy legyen valami fogalmunk is végre! Elöljáróban még annyit, hogy a \ mindig egy parancs kezdetét jelöli, a { }-ek blokkosítanak, a % pedig kommentezi a sor hátralévő részét. Így például a Celsius fok (°C) kis karikáját a \circ paranccsal lehet előcsalogatni. Ilyenkor a szövegbe csak folytatólagosan beírjuk ezt, hogy \circ C, és a fordító a \-jelből felismeri, hogy a circ szócska most itt egy neki szóló utasítás, így a helyére a kész doksiban majd a kis karikát fogja betenni a C betű elé. Ennyi, így működik.
(Amúgy rengeteg(!) olyan speciális karakter létezik, ami a világ semelyik billentyűzetén sem található meg. Ezeket mutatja be pl. ez a 160+ oldalas dokumentum (PDF, 4 MB).)
Természetesen az előbbinél jóval bonyolultabb parancsokat is tudunk használni. Felsorolást például a következő formában is megadhatunk:
\begin{itemize}
\item Első elem
\item Második elem %tej, parizer, mackósajt
\item Harmadik elem
%\item Ide még azért kéne majd valami
\end{itemize}
Ezzel egy egyszerű, számozatlan felsorolást kapunk eredményül:
Végül egy már kevésbé gyerekes példa a matematikai szedési képességek szemléltetésére. A \[ x_{1,2}=\frac{-b\pm\sqrt{b^2-4ac}}{2a}\] kódrészlet a mindenki által jól ismert képletben fog megtestesülni:
.
Ha egy kicsit elmélyülünk az előbbi kódsorban, könnyen felfedezhető ill. kikövetkeztethető az egyes parancselemek jelentése, funkciója.
Tekintve, hogy nem csak a kitalálója írt könyvet a LaTeX-ről, remélhetőleg elnézitek nekem, hogy egyedül nem leszek képes teljes mélységében bemutatni a LaTeX és a tipográfia végtelen világát e kicsiny cikk keretében. Nem véletlen, hogy a tipográfia és a nyomdászat is önálló szakma. Sőt, még ezeken belül is vannak szakterületek és érdekes állatfajok.
Természetesen a LaTeX képességei sem merülnek ki a fent bemutatott, csupán érzékeltető jellegű példákban. Eleve többféle alap dokumentumtípusból is kiindulhatunk a doksi létrehozásának kezdetén, megadva ezzel annak "alaphangját":
article – cikk (általában ezt szoktuk használni)
report – beszámoló ("könyvesebb", mint az előző)
book – könyv (ez már egészen komoly dolog)
letter – levél (hivatalos levélforma)
slide – fólia (pl. előadásokhoz)
Ezt a kód legelején kell megadni, az ún. preambulum részben, a nyelvvel, elválasztással, margóméretekkel és még rengeteg más olyan beállítással együtt, amire hirtelen nem is gondolnánk. Például a papírméret egy könyvnél ugye egészen nyilvánvaló, hogy alapvetően befolyásolja az egész tördelést. Ezekhez a beállításokhoz aztán, történjék bármi, a fordítás végeztével mindig pedáns módon igazodni fog az egész dokumentum. Míg, ha Wordben a 60. oldalnál jut eszünkbe, hogy esetleg módosítanánk a papírméreten vagy margókon, tutira vehetjük, hogy az addigra gondosan beállított tördelésű dokumentumunk darabokra fog hullni. Ugye ismerős a dolog?
(Persze ebbe az is nagyban belejátszik, hogy eleve helytelen kép él a fejekben arról, mi is a dokumentumszerkesztés helyes menete. Ideális esetben az első mindig a teljes szöveg begépelése volna, és ezután következne csak a tördelés. A WYSIWYG szerkesztők ellenben szinte csábítják az embert, hogy ezeket a feladatokat párhuzamosan végezze, ami gyakorlatlan felhasználó kezében sokszor vezet nehezen kezelhető állapotokhoz.
Amikor azt halljuk, hogy egy szerző leadja a kiadónak a kéziratot, olyankor pont annak vagyunk tanúi, hogy rendes körülmények között nagyon is szétválik a szöveg megírása ill. az annak kiadványba rendezéséhez szükséges további teendők.)
Így már talán látható, miért mondják, hogy a WYSIWYG elvű szövegszerkesztők lokális szemléletűek: helyenként egy kis szövegformázás könnyedén elvégezhető bennük ("Hmm, ez itt inkább legyen félkövér és piros..."), de egy hosszabb mű egységes áttördelése komoly nehézségek elé képes állítani az embert (lásd az ismerős példát a minduntalan széteső dokumentumról).
Utóbbihoz LaTeX esetében elég néhány paramétert átírni a szöveg legelején. A fordítónak mindegy, meg fogja oldani, és biztosak lehetünk benne, hogy szép lesz az eredmény. És akkor még nem is beszéltünk azokról a képességekről, amikről a hagyományos szövegszerkesztők (vagy azok felhasználói) még hírből sem hallottak.
További lehetőségek
Ilyen például a hivatkozások automatikus kezelése. Miért ne, végül is egy igen okos program dolgozik nekünk a háttérben! Gondoljuk csak el: a megfelelő helyeken a szövegben elhintünk megfelelő kis parancsokat, majd az iromány legvégére beírt egyetlen utasításunkra minden igényt kielégítő irodalomjegyzék generálódik az esszénk egy külön, utolsó lapjára.
A szövegben pedig minden helyen, ahol ezeket a kis utasításokat kitettük, korrekt irodalmi hivatkozások fognak keletkezni, amik mindig pont az irodalomjegyzék megfelelő sorszámú elemére fognak mutatni. Szóval nagy erő az automatizmus.
A fejezetek és alfejezetek maximum hét mélységi szintje és számozása, a hozzá mindig alkalmazkodó tartalomjegyzék-generálással együtt szintén könnyen megoldható feladat. Az intelligens oldalszámozás (vagy -hivatkozás) ezek után remélhetőleg már magától értetődő lehetőség.
És akkor a LaTeX egyik legnagyobb adujáról, a szép és igen nagy tudású matematikai szedésről még épphogy csak szót ejtettünk az előző oldalon:
Réffy Júlia - Asymptotics of random unitaries
(PhD thesis, PDF, 660 kB)
Másik példa, kevesebb matekkal (PDF, 4,4 MB).
A soron belüli matematikai kifejezések mellett természetesen elérhetők a matekkönyvekben megszokott külön sorba kerülő számozott vagy számozatlan képletek is, amik címkézhetők, és így könnyen hivatkozhatók is.
A címkézés azt jelenti, hogy a kódban szinte mindenhez hozzárendelhetünk egy kis azonosítót, amivel aztán bárhol máshol a kódban hivatkozni tudunk rá. A pláne, hogy az ilyen hivatkozások a lefordított doksiban mindig a megfelelő számúak lesznek pl. egy képletre, még akkor is, ha időközben beszúrtunk az adott képlet elé még egy másikat is, amitől a száma (persze szintén automatikusan) megváltozott. Ugyanígy egy bizonyos dolog oldal- vagy fejezetszámára is könnyedén működik ugyanez.
Gyakorlatilag nincs az a bonyolult matematikai képlet, amit ne tudnánk LaTeX-hel előállítani. Szinte 100%-ig biztosak lehetünk abban, hogy ha a fentihez hasonló PhD dolgozatot látunk, akkor az LaTeX-hel készült. Mindezt figyelembe véve nem csoda, hogy a kiadók mellett leginkább a tudományos szövegeket és/vagy a sok hivatkozást tartalmazó dokumentumokat szerkesztők használják szívesen a LaTeX-et.
A szemünk előtt a távoli jövőben lebegő esetleges diplomamunka is remélhetőleg tudományos munka lesz, várhatóan hivatkozásokkal, képekkel, táblázatokkal és minden elképzelhető egyéb földi jóval. A képek és táblázatok beágyazása, számozása, aláiratozása, hivatkozása, ill. a táblázatok létrehozása, formázása, igazítása és a belőlük történő automatikus jegyzékkészítés szintén mind alapvető képességnek mondhatók – a szövegformázással, ligatúrákkal, térköz-, hasáb- és listakezeléssel együtt.
Végül – és ezzel persze nem merül ki a LaTeX képességeinek tárháza – ki kell még emelni a nyelvben rejlő „metanyelvi” képességeket is: saját magunk is létrehozhatunk különböző parancsokat, definiálhatunk a szövegen belüli környezeteket, vagy feltételeket, amiktől szintén függ majd a tördelés és a szövegkép. Pl. készíthetünk saját külön parancsot arra, hogy azt kiadva mondjuk a betűtípus, a szöveg kerete és háttérszíne is egyszerre változzon meg a megfelelő szövegrészlet körül.
Szóval tényleg mindenre van itt is lehetőség. No hiszen, mondhatnánk, azért ezek a Wordben is megvannak! Való igaz, egy kétoldalas levél megírására tényleg sokkal gyorsabb eszköz a Microsoft szövegszerkesztője. Mint azonban fentebb is írtam: komolyabb, nagyobb munkákhoz, könyvekhez, kivált tudományos jellegű vagy sok hivatkozást vagy matekot tartalmazó írásokhoz, vagy, ha csak azt szeretnénk, hogy nagyon igényesen nézzen ki a művünk, mindenképp érdemes adni egy esélyt a LaTeX-nek is.
Mindazonáltal nem hagyhatom szó nélkül a sokat emlegetett Microsoft szoftver érdemeit sem. Egyszer beszélgettem egy barátommal, aki akkoriban egy fordítóirodánál dolgozott, ahol pl. kézikönyveknek nem csupán a szöveges fordításával foglalkoztak, hanem a másik nyelvre történő komplett átültetésével is, azaz, hogy ugyanúgy nézzen ki németül vagy magyarul is, mint az angol eredeti – ami ugye már vérbeli tördelési munka.
Na most, a barátom ezen munkája előtt egyetemi újság főszerkesztője volt, tehát volt már némi tapasztalata kiadványkészítés terén, mégis azt találta mondani nekem: "Azért néha nagyokat néztem, hogy mit meg nem lehet csinálni pillanatok alatt a Worddel."
Szóval azért rengeteget tud a Word is (még szép), csak használni kéne tudni azt is, mint mindent. ;)
________________________________________________________
Felhasznált irodalom:
Jeney Gábor: Dokumentumszerkesztés LaTeX használatával (órai jegyzet)
http://hu.wikipedia.org/wiki/LaTeX
Ajánlott irodalom:
Jeney Gábor: Hogyan néz ki egy igényes dokumentum?
Ha hibát találsz, légyszi priviben jelezd! THX!