(A PANEM Kiadó gondozásában megjelent LINUX-könyv
20. fejezetének kicsit módosított változata.)
Ebben a fejezetben röviden áttekintjük a LINUX-ban és egyúttal minden UNIX rendszerben is megtalálható, de a többi széles körben elterjedt operációs rendszer alatt is futó TeX programcsaládot, egyúttal kitérünk azokra a kevesek által ismert módszerekre is, amelyekkel kényelmesen írhatunk magyar szöveget. Azoknak, akik további ismeretekre vágynak, az INTERNET-et és a magyar nyelvû könyveket ajánljuk figyelmébe.
A TeX-hel (és így a LaTeX-hel is) kapcsolatos anyagok gyûjtõhelye a CTAN szerver (CTAN = Comprehensive TeX Archive Network). Címe:
Magyar nyelvû könyv a TeX-rõl Bujdosó Gyöngyi és Fazekas Attila TeX kezdõlépések címû mûve, mely a TERTIA Kiadónál jelent meg 1996-ban. A LaTeX-rõl a PANEM Kiadó gondozásában Wettl Ferenc, Sudár Csaba, Mayer Gyula LaTeX kezdõknek és haladóknak címû mûve.
A szövegformázó rendszerek egyik nehézsége az, hogyan válasszuk el a szedendõ szöveget a formázási parancsoktól. A TeX-ben a kettõt ugyanabban a fájlban helyezhetjük el, és megkülönböztetésül - alapesetben - bekszlessel jelöljük a parancsszavakat, például: \par (új bekezdés).
A TeX számára egy ASCII-fájlt kell készíteni, amelyben alapértelmezésben az angol ábécé betûin és a számjegyeken kívül csak a következõ jelek szerepelhetnek:
` ' " ; : . , ? ! @ # $ % ^ & * ( ) ~ - _ = + [ ] { } < > \ / |A késõbbiekben megmutatjuk, hogy egyetlen paranccsal hogyan terjeszthetõ ki a fent megadott karakterkészlet úgy, hogy például a magyar ékezetes betûket is tartalmazza.
A fenti jelek közül 10-nek speciális jelentése
van, ezért szövegben önálló betûként
csak egy parancs segítségével adhatóak meg.
A KARAKTER | A KARAKTER JELENTÉSE | MEGJELENÍTÉSE |
\ | a parancsok kezdõkaraktere | $\backslash$ |
$ | matematikai környezet határa | \$ |
# | \# | |
% | megjegyzés | \% |
& | tabulátor karakter | \& |
~ | nem törhetõ szóköz | \~{} |
_ | alsó index | \_ |
^ | felsõ index | \^{} |
{ | blokk illetve argumentum határai | $\{$ |
} | blokk illetve argumentum határai | $\}$ |
A parancs után { és } közé kerül az argumentum. A zárójelek elhagyhatók, ha az argumentum egyetlen jelbõl áll (pl. \sqrt2 és \sqrt{2} ugyanazt eredményezi). Egy parancsnak több argumentuma is lehet (legföljebb 9). Az is lehet, hogy nincs argumentuma, mint pl. a \par és \it parancsoknak. Egy argumentuma van az ékezet-parancsoknak, akárcsak a \centerline (középre zárás) és \underbar (aláhúzás) parancsoknak. A LaTeX-ben vannak opcionális argumentumok is, ezeket a [ és ] közé kell írni (pl. \sqrt[3]{2} a köbgyök kettõt megjelenítõ LaTeX-parancs).
Kapcsos zárójelekkel valójában környezetet jelölhetünk ki. Pl. a \it parancs kurzívra váltja a betûtípust, s ennek érvényességi körét korlátozhatjuk valamely környezetre. (Egyszerûség kedvéért a példáinkban ezentúl ékezetes betûket írunk; sima angol TeX-hel való fordításkor azonban ezek nem használhatók, csak a késõbb ismertetendõ módszerek valamelyikének alkalmazásával!) Normál szövegbe
\centerline{Középen helyezett, \underbar{részben aláhúzott} cím}Eredménye:
A hullám karakter (~) a sortörés finomhangolását segíti: ha két szó közé ezt írunk a szóköz helyett, akkor látszatra közönséges szóköz az eredmény, azonban e helyen nem tör sort a program. Jól használható tehát a magyarban a mondat elején álló névelõ és az azt követõ szó között.
A % jeltõl a sor végéig tartó részt a TeX nem veszi figyelembe; így helyezhetõ el kommentár a fájlban.
A ^ és _ vezérlõkarakterek matematikai módban a felsõ ill. alsó indexek elhelyezésére szolgálnak:
ha $a_{12} = 3 $ és $b_7 = 4$ akkor $a_{12}^{b_7} = 9 \times 9$Ezzel a lehetõséggel folyó szövegben is élhetünk, azonban a fenti példából látszik, hogy matematikai módban - a matematikában megszokott módon - a betûket változónak értelmezi a program és kurzív (pontosabban sajátos, kissé eltérõ metszésû matematikai kurzív) típussal szedi ki. Ezért a kitevõ környezetében vissza kell váltanunk az antikva betûtípusra a \rm (roman) paranccsal. Szintén a képletszedés hagyománya, hogy az ékezeteket másképpen kell elhelyezni matematikai ill. szövegmódban; ezt a TeX azzal is hangsúlyozza, hogy matematikai módban nem használhatók a fönt megismert ékezet-parancsok. Hogy tehát repülõ-ékezetes szöveget tehessünk ,,kitevõbe'', ki kell lépnünk a matematikai módból. A $ jelnek ebbõl a szempontból ellentéte a \hbox (horizontális doboz) parancs: az argumentumát vízszintes sorba szedendõ közönséges szövegként kezeli:
Az~1997$^{\rm dik}$ esztendõnek is január volt az 1$^{\hbox{s\H o}}$ hónapja.A \hbox-on belül automatikusan a szöveg típusára vált a TeX, azonban a kitevõk automatikus kicsinyítését is elhagyja ilyenkor; a betûfokozatot tehát külön át kell állítani a \sevenrm paranccsal a kitevõben szokásos hét pontra:
Idén is január volt az 1$^{\hbox{\sevenrm s\H o}}$ hónap.
További programok szükségesek ahhoz, hogy a TeX/LaTeX munkájának eredményét (a dvi-fájl tartalmát) megtekinthessük. Ezeket meghajtóknak (driver) szokás nevezni, és nevük egyik (általában elsõ) fele a meghajtott eszközre utal. A képernyõn, az X grafikus felület alatt, az xdvi interaktív megjelenítõ használható. Szokás szerint >man xdvi tájékoztat a használatáról. Paraméterként a dvi-fájl nevét kell megadni; a .dvi végzõdés elhagyható. Több egyetlen gombnyomásból álló parancsot ismer (x ki-be kapcsolja egy egérrel vezérelhetõ panel megjelenítését, q pedig kilép).
A nyomtatómeghajtók egy állományt hoznak létre (a PostScript-et kivéve binárisat), melyet változtatás nélkül kell a nyomtatónak továbbítani. A különféle típusú HP lézernyomtatók saját nyelvére a dvilj, dvilj2p, dvilj4 és dvilj4l programok fordítanak, PostScript fájlt pedig dvips hoz létre ( http://www.radicaleye.com e kiváló program kanonikus URL-je, itthon tükrözve a CTAN: dviware/dvips alkönyvtárban). Ha egyéb típusú nyomtatónk van, akkor a PS nyelvrõl való újabb konverzióra van szükség: erre a feladatra alkalmas a GhostScript program, mely ismeri a legtöbb mátrixnyomtatót is. Néhány év óta a gnu archívumokban található GhostScript verzió elavult, ezért célszerû a friss 4.x Aladdin verziót használni (CTAN: support/ghostscript/aladdin). (Erre ugyan más licensz érvényes, azonban szintén szabad szoftver.) Pl. a
gs -sDEVICE=epson -r180x180 -sOutputFile=file.epson -dNOPAUSE file.ps quit.psparanccsal létrehozható egy kisfelbontású 24-tûs mátrixprinterre való állomány.
A dvips és gs egyaránt mûködhet szûrõként, így kimenetük közvetlenül is irányítható lpr-re.
Összefoglalva, a leggyakrabban használatos parancsok a következõk:
> tex file TeX program fordítása
> latex file LaTeX-program fordítása, ha kell többször is
> xdvi file dvi fájl megtekintése
> dvilj file dvi fájl konverziója LaserJet számára
> lpr -Pnyomtató file.lj nyomtatás LaserJet-en
> dvips file.dvi -o file.ps dvi-bõl ps-be alakítás
> ghostview file.ps PostScript fájl megtekintése
> lpr -Pnyomtató file.ps PostScript fájl kinyomtatása
A feldolgozás közben használt fájlok nevének kiterjesztései, és azok jelentése:
.tex .ltx TeX/LaTeX forrásfájl
.dvi TeX/LaTeX outputja (device independent)
.log TeX/LaTeX-üzenetek fájlja
.clo .cls .sty LaTeX osztályok és csomagok
.dtx dokumentált program
.aux segédfájl pl. hivatkozásokhoz (auxiliary)
.toc tartalomjegyzék (table of contents)
.lof ábrajegyzék (list of figures)
.lot táblázatjegyzék (list of tables)
.bib .bbl .blg .bst bibliográfia
.ind .idx .ilg .ist indexek
.tfm .mf .fd .pk fontok betûinek méretei, és egyebek
.fmt formátum fájl
.poo .pol .pool karakter pool fájl
Nem sokkal késõbb az európai felhasználóknak sikerült a TeX alkotójának, D. E. Knuthnak ellenállását megtörniük, és a 3.x verzió megteremtette a lehetõséget az angolnál bõvebb betûkészletû nyelvek kezelésére is.
A konkrét megvalósítás nélkülözhetetlen eleme a betûkiosztás szabványosítása, erre a corki konferencián került sor 1990-ben. Ezt követõen született meg az a fontleíró programcsomag (azaz METAFONT kód), mely a Knuth-féle cm betûkészletet kibõvítve és némiképp módosítva meg is valósítja ezt a kiosztást. Ezen új fontok dc kezdetû neveket kaptak, mint a késõbbi ec, azaz European Computer Modern fontok teszt-változatai. (Természetesen ezen eseményekkel párhuzamosan és sajnos tõlük függetlenül a MaTeX-nek az új helyzethez való adaptációja is megjelent Mayer Gyula révén.)
Az egységes európai kódolásra különbözõ összefüggésekben a Cork, dc, ec, T1, 8t jelöléseket alkalmazzák.
Sajnos máig sem készült el a plain.tex-nek olyan egységes módosítása, mely lehetõvé teszi, hogy felhasználói nemzetközileg egységesen éljenek az új lehetõségekkel; a legnagyobb lépést a rendkívül aktív német szervezet tette, létrehozva a german.sty által megvalósított szabványt, ezt vette alapul Kiss Emil magyar adaptációja (http://www.cs.elte.hu/~ewkiss/software/echun.html).
Másrészt viszont az új LaTeX fejlesztõi megírták és a törzskészletbe integrálták az európai nyelvek és az igen elterjedt PostScript fontok használatát lehetõvé tevõ kódot, s a képernyõn és a nyomtatón való megjelenítéshez szükséges segédprogramok is elkészültek.
A magas színvonalú PostScript fontok egy része az utóbbi években néhány cég ajándékaként már ingyenesen is használható.
A jelen helyzet tehát az, hogy a latin betûs európai nyelvek nagy többségét nemzetközi megállapodás alapján egységesen lehet kódolni, szavaikat a TeX helyesen el tudja választani (a nyelvváltásra bekezdésen belül is lehetõség van!), és a megjelenítéshez mind a Computer Modern, mind pedig egyéb fontok rendelkezésre állnak.
Az alábbiakban e rendszer elemeit ismertetjük, hogy azt az olvasó maga is felépíthesse és az újabb fejlesztéseket (vagy megvásárolt betûkészleteket) be tudja építeni.
Sajnos az új TeX-ben sem lehetséges az elválasztási algoritmusok futás közbeni betöltése, ezért a TeX-elést megelõzõen el kell dönteni, hogy a lehetséges három tucat nyelv közül melyeket kívánjuk személyes TeX-ünk által elválaszttatni (a ma szokásos implementációk legalább féltucat nyelv elválasztási szabályait képesek egyszerre tárolni.)
Ez az alapséma különféleképp módosul, egyszerûsödik, vagy bonyolódik a különféle fontformátumok szerint. A TeX-hez saját fontleíró programnyelv (METAFONT) társul, a nagy betûforgalmazók viszont ettõl és egymástól is eltérõ rendszereket hoztak létre.
Ha a font mf forráskódja megvan (mint pl. a cm fontok esetében [a nyilvánosan hozzáférhetõ fontoknak a teljesség igényével összeállított listája havonta olvasható a comp.fonts és a comp.text.tex newsgroupokban]), akkor újabb rendszer esetében elegendõ a tfm fájlokat (Unix alatt ma már ezek is automatikusan generálódnak és a helyükre kerülnek) és a mf forráskódot elhelyezni, melybõl a pk-fájlok automatikusan generálódnak.
PostScript fontok esetében a metrikus adatokat az afm (Adobe font metrics), a körvonalleírásokat pedig a pfa (printer font ascii) vagy pfb (printer font binary) fájlok tartalmazzák.
A TrueType fontokból vagy szintén a grafikus rendszer (M$ Windows ill. Mac OS), vagy pedig a Ghostscript közvetítésével nyerhetõk bittérképek.
PS fontok esetén a legelterjedtebb és hagyományos 35 tagú alapkészlet (klónja) valamint néhány egyéb ingyen is kapható.
Minthogy a fontok és fontfájlok elnevezései igen tarka képet mutatnak (még egy gyártó is több különbözõ néven terjeszti azonos fontjait), a TeXesek általános szabványt dolgoztak ki a fontfájlok elnevezésére, melyet a fontname csomag tartalmaz. A jelenleg érvényes rendszer (v. 2.x) lényege, hogy a nyolc (case-insensitiv) karakterre korlátozott név elsõ karaktere a gyártóra utal (p = Adobe, u = URW), a következõ kettõ a típusra (tm = Times, pl = Palatino), ezután jön a változat (r = regular, i = italic, o = oblique) jele, végül a kódkiosztásé (7t = hét bites cm, 8t = nyolc bites Cork).
Magában az installálásban a fontlist LaTeX-csomagnak van fõ szerepe (CTAN: fonts/psfonts/tools/finst)!
Az installálás megkezdése elõtt célszerû ellenõrizni, nincs-e valamilyen korábbi TeX-installáció a gépünkön (PATH, TEXINPUTS környezeti változók, stb�).
Még ha mûködõ rendszerünk van, akkor is ajánlatos legalább az új európai (ec) fontokat, s az ezeket támogató új LaTeX verziót föltenni. Az ec fontok megléte a >mf ecrm1000 paranccsal ellenõrizhetõ.
A disztribúció összeállításakor az egyik legfõbb cél éppen az installálás megkönnyítése volt, és a szerzõ ezt a célt el is érte. A tudnivalók a distrib/INSTALL.bin (illetve kompilálni vágyók részére az INSTALL.src) fájlban olvashatók, illetve kicsit részletesebben a TETeXDOC.tex fájlban, mely installálás során a teTeX/texmf/doc/tetex könyvtárba kerül. Az ideiglenes installáló könyvtárban létre kell hozni a distrib alatti fát. A platformfüggetlen alapkészletet a distrib/base könyvtár két tar.gz-je tartalmazza. Ezután ki kell választani a processzorunknak megfelelõ bináris csomagot (azaz általában distrib/binaries/i386-linux.tar.gz-t). A doc, fonts és goodies alkönyvtárak anyagából legalább fonts/ec-fonts.tar.gz szükséges a magyar szedéshez. A distrib/install.sh burokprogram ezután az installálás nagy részét levezényli, majd a texconfig confall parancsot kell kiadni.
Érdekességként megemlítjük, hogy a Linux Documentation Project (rövidítve LDP) keretében létrejött könyveket is LaTeX-ben írják (az LDP hivatalos honlapja a http://sunsite.unc.edu/LDP/ címen található).
A csomag tördelõprogramja, a tulajdonképpeni TeX, karakteres módban futó alkalmazás, melyet szokásos módon a tördelendõ fájl nevével mint elsõ és egyetlen paraméterrel hívunk meg.
Ha a fájlban a tördelési feladat végét nem jelöljük az \end vagy inkább a \bye paranccsal, akkor a TeX interaktív módba kerül és * prompttal kerülünk szembe. (ENTER-re válaszul azért elárulja, hogyan szabadulhatunk tõle meg békésen.) Így tehát a legegyszerûbb TeX-fájl:
Elso, ekezet nelkuli muvem.\byeTermészetesen az összes valaha elképzelt ékezettel elláthatjuk betûinket, mégpedig többféleképpen is.
Ha arra törekszünk, hogy a világ bármely pontján egyértelmû legyen, milyen ékezeteket szántunk betûinkre, és egyúttal a legbutább levelezõprogram sem tudjon bennük kárt tenni, akkor a hét leggyakoribb ékezettípus a bekszlesen kívül egyetlen nem-betû karakterbõl álló rövid parancsjellel tehetõ a betûkre, pl. \^ a háztetõ vagy kalap ékezet. Minthogy a parancsjelek vége egyértelmû, ezek után nem kötelezõ (de szabad) szóközt tenni. A három magyar ékezet a betû elé tett \' (acute accent, azaz éles ékezet), \" (német umlaut, azaz dupla pont) ill. \H (long Hungarian umlaut) parancsokkal hozható létre:
M\'asodik, nem \'ekezet n\'elk\"uli m\H uvem.\byePlain TeX-ben a magyar írásra az egyik lehetõség az, hogy ISO-Latin2-ben kódolt szövegünket az új ec fontokkal szedetjük. Ezek közül a cmr10-nek a 8 bites készletben ecrm1000 felel meg. Ha mást nem teszünk, akkor a kettõs magyar ékezetek helyett az ISO-Latin1-ben az illetõ helyen lévõ karaktereket kapjuk, azaz az alábbi program eredményeként azt kapjuk, hogy "Elsõ ékezetes mûvem" (vagyis az õ betûn egy tilde (~), az û betûn egy kalap/tetõ (^) van).
\font\tenrm=ecrm1000 \tenrm Elsõ ékezetes mûvem. \byeEzen többféleképp segíthetünk. Az egyik lehetõség az, hogy a TeXen belül paranccsá tesszük ezt a négy karaktert (tehát az eddig ismertetetteken kívül létezhet olyan parancs is, mely egyetlen karakterbõl áll, amennyiben az ún. kategória-kódja 13!), méghozzá legyen jelentésük egyszerûen egyetlen, a megfelelõ másik pozíción található magyar ékezetes karakter. Írjuk át a kategória kódokat!
\font\tenrm=ecrm1000 \tenrm \catcode`\û=13 \def û{\char'266 } \catcode`\Û=13 \def Û{\char'226 } \catcode`\õ=13 \def õ{\char'256 } \catcode`\Õ=13 \def Õ{\char'216 } Elsõ ékezetes mûvem. \byeA másik módszer az õ és û betûk problémájának megoldására az lehet, ha például egy rövidke flex programmal kicseréljük ezt a négy karaktert a T1 kódolás szerint szükségesre (azaz elvégezzük az oktális 0373 -> 0266, 0333 -> 0226, 0325 -> 0216, 0365 -> 0256 cseréket).
%option noyywrap
%%
\325 {printf("\216"); }
\365 {printf("\256"); }
\333 {printf("\226"); }
\373 {printf("\266"); }
%%
main()
{
yylex();
}
Pl. a \parindent = 10 dd parancs (globálisan) tíz pontra állítja a bekezdés mélységét; az egyenlõségjel és a szóközök elhagyhatók még a mértékegység jele után is.
Vannak más típusú értékeket felvevõ paraméterek is. Elõjeles egész szám pl. \looseness: azt jelöli, hogy a kurrens bekezdés sorainak számát az ideálistól (vagyis a legszebb eredményt adótól) mennyivel kívánjuk eltéríteni. Értékét minden paragrafus elején visszaállítja a TeX az alapértelmezésre, ami - persze csak ha át nem állítjuk - nulla. (A paraméterek nagy többségének globálisan adhatunk értéket, azaz ha nem valamilyen környezetben történik az értékadás, akkor a kapott érték végig megmarad, a program magától nem változtat rajta.) A \year, \month és \day paraméterek indításkor átveszik az operációs rendszertõl a kurrens értékeket; utána ezeket is megváltoztathatjuk. Bármely paraméter értékét kiszedethetjük a \the parancsnak a paraméter neve elé helyezésével:
Ezen írás az \the\year.\ évben készült, s a sorok távolsága \the\baselineskip-nyi.Az angolszász szedésben a mondatvégi pont után kissé nagyobb szóközt hagynak. Illendõ hát mondat közepi pont után jelölni, hogy oda csak normális köz kell: erre szolgál a kontrol-szóköz, vagyis az a parancsjel, melyben a bekszlest szóköz vagy újsor karakter követi.
A \parindent és a \baselineskip lehetséges értékei között érdekes különbség van. A sortávolság esetében engedélyezhetõ bizonyos rugalmasság, azaz megadható, hogy fölfelé és lefelé mekkora eltérést engedélyezünk az alapértéktõl.
Pl. \baselineskip 10dd plus 3.5 dd minus 4.99 ddEzzel a lehetõséggel könyvek szedésében nem szoktunk élni, hasznos azonban, ha például valamilyen megadott helyet kell adott mennyiségû szöveggel kitölteni egy plakáton.
Ilyen rugalmas távolságok még a \leftskip, a bekezdések minden sorára vonatkozó bal margó és párja, a \rightskip, s a bekezdések utolsó sorának jobbján kihagyandó távolság, a \parfillskip. Az elõbbi kettõ alapértéke nyilván nulla (pont), az utóbbi lehet nulla is, de lehet akármilyen nagy is. Erre a tetszõlegesen nyúló távolságra külön mértékegység van, a fil. A paraméter alapértéke tehát
\parfillskip = 0dd plus 1 filVégül van a paramétereknek egy különleges típusa, amelynek lista lehet az értéke, pl. az \everypar paranccsal meghatározhatjuk, milyen elemeket helyezzen el a TeX minden bekezdés elején: ezzel lehet a paragrafusok alakját egységesen módosítani, vagy éppen mindegyiket gondolatjellel kezdeni:
\everypar{-- }Üres helyet nemcsak a paragrafusok szélein, hanem akárhol hagyhatunk. Vízszintes közt hagy \hskip rugalmas_mérték, függõlegeset pedig pl. \vskip 11dd plus 2dd minus 5dd. Ezek a spáciumok egyúttal alkalmas sor- illetve laptörési pontokul is szolgálnak, s ha éppen oda esik a töréspont, akkor a spácium elvész, hiszen nincs értelme sorok közötti vízszintes ill. lapok közötti függõleges spáciumnak.
Ha ezzel szemben olyan közt akarunk hagyni, melynél nem engedhetõ meg a törés - pl. a kihagyást jelölõ három pont közökkel követi egymást, de nem választhatók el - akkor a \kern mérték parancs alkalmazható.
\def\TeX{T\kern-.1667em\lower.5ex\hbox{E}\kern-.125emX}A \def parancs vezeti be a definíciót, utána az új parancsszó (vagy jel) következik, végül kapcsos zárójelek között a meghatározás. Az egyik újdonság az em mértékegység. Az említett abszolút egységeken kívül két relatív, az adott fonttól függõ is rendelkezésünkre áll, melyet a betûtervezõ határoz meg: ex az x, vagyis a föl-le nyúló szárak és gömbölyületek nélküli betûk magassága, és em, (elvileg) az M betû szélessége. Gátlástalan lelkek e paramétereket a \fontdimen5\fontnév=mérték, illetve pl. \fontdimen6\sevenrm=9.7dd parancsokkal írhatják át. A valóságban, pl. a \tenrm (azaz cmr10, tíz angol pontos Knuth-féle computer modern antikva) esetében em a normál szóköz háromszorosa és kb. 10%-kal több az M betû szélességénél. Ha már a betûkkel kapcsolatos méretekrõl esett szó, a névleges törzsméret a cm (és a belõlük származó ec) fontok esetében a legalacsonyabb és a legmagasabb pont távolsága, azaz a kerek zárójelek teljes magasságával egyezik meg.
A másik újdonság a \lower mérték \hbox{vízszintes szedés} parancs, mely az adott dobozt lesüllyeszti (vagy negatív mérték esetén fölemeli). A relatív mértékegységek használatának elõnye tehát, hogy egységes eredményt kapunk különbözõ betûtípusokban és méretekben is:
{\TeX\ \it\TeX\ \sevenrm\TeX\ \sevenbf\TeX\ \tt\TeX\ \fivebf\TeX}
Számtalan különleges képességgel rendelkezik, ilyen például az automatikus sorszámozás, vagy az automatikus kereszthivatkozás készítés. A következõkben felvillantjuk a LaTeX néhány elemét.
\documentclass[opciók]{osztály}
bevezetõ rész (preambulum)
\begin{document}
a dokumentum teste
\end{document}
Általában egy LaTeX-program elsõ sorában a \documentclass parancs szerepel. Egy kivétel van, nevezetesen a \documentclass sor elé beírható bármely, a programunk által használt fájl, például grafika fájlja, stílusfájl, �. Ennek módja a filecontents környezet alkalmazása:
\begin{filecontents}{fájlnév}
fájl tartalma
\end{filecontents}
A LaTeX látva e parancsot a fájl tartalmá-t átírja a fájlnév nevû fájlba néhány megjegyzéssorral együtt, amennyiben ilyen nevû fájl még nem létezik. (Ha létezik, nem csinál semmit). Így a dokumentum feldolgozásakor már a fájlnév nevû fájl is rendelkezésre fog állni. A filecontents környezet helyett a filecontents* használandó, ha nem akarjuk, hogy TeX megjegyzéssorok kerüljenek a fájlba (pl. egy grafikai fájl esetén ezt kell alkalmaznunk).
Térjünk vissza a \documentclass parancsra. Ebben a parancsban adjuk meg, hogy a LaTeX-dokumentum milyen dokumentumosztályba tartozzék (a LaTeX 2.09-ben az elsõ sorban a \documentstyle parancs szerepelt, amit a LaTeX2e is megért, de ekkor az újabb verzió többlettudása nem használható). A LaTeX2e standard osztályai: article (cikkírásra szolgál, ennek verziói a proc, ami konferenciacikkekhez készült, a LaTeX programok dokumentálásához készült az ltxdoc, valamint az ltxguide, amit néhány ismertetõ használ), book (könyvírásra), report (beszámolókhoz), letter (levélíráshoz), slides (fóliákhoz). Például egy egyszerû cikk írását a
\documentclass{article}sorral kezdhetjük. Felsoroljuk a parancsban használható standard opciókat, az alapértelmezést aláhúzzuk. Ezek vonatkozhatnak a papír méretére: a4paper (297x210mm), a5paper (210x148mm), b5paper (250x176mm), letterpaper (11x8.5in), legalpaper (14x8.5in), executivepaper (10.5x7.25in), vagy kifejezhetik a betûk méretét: 10pt, 11pt, 12pt, a lap fekvését: landscape, hogy a dokumentum egy- vagy kétoldalas, egy- vagy kéthasábos legyen: oneside, twoside, onecolumn, twocolumn, hogy legyen-e külön címlap: titlepage, notitlepage. A matematikai képletek a fleqn opció esetén nem középre, hanem a bal margótól beljebb, azonos távolságra kerülnek, míg a leqno opció használatakor a képletek sorszámai a lap bal oldalára kerülnek, nem jobbra. Például egy egyszerû cikk írását külön címlappal, 11 pontos betûmérettel, A4-es papírmérettel a
\documentclass[titlepage,11pt,a4paper]{article}sorral kezdhetjük.
\usepackage[opciók]{csomag neve}[release dátuma]
Néhány a gyakran használt csomagok közül: inputenc (=input encoding: az input karakterek kódolásának módja), fontenc (a belsõ kódolás kiválasztása), makeidx (indexek kezelésének megkönnyítése), showidx (az indexek megjelenítése az elõfordulásuk helyén, a lap margóján), array, delarray, hhline, longtable, tabularx (táblázatok kezelését segítõ csomagok), multicol (többhasábos szedés), graphics, graphicx (grafikai parancsok), color (színes dokumentum készítéséhez), mfnfss, psnfss (Metafont illetve PostScript fontok kezelése). Vannak csomagok, melyek a legtöbb disztribúcióban szerepelnek: babel (többnyelvû LaTeX), amsmath (az Amerikai Matematikai Társaság AMS-TeX-verziójának LaTeX-re átírt változata).
Például ha azt akarjuk, hogy a babel programcsomagnak a LaTeX-et magyarító lehetõségeit használhassuk (pl. a Contents helyett Tartalom, Part helyett Rész, � legyen kiírva, a dátum automatikusan magyar formátumú legyen, stb �) a következõt kell megadni:
\usepackage[magyar]{babel}Ha szeretnénk magyar ékezetes betûket használni az inputban (pl. az olvashatatlan t\'{\i}zb\H{o}l, esetleg a t\'\i zb\H ol karaktersorozatok helyett azt írnánk inkább, hogy tízbõl), és a UNIX gépek által ismert ISO-Latin2 (azaz az ISO-8859-2), vagy a WINDOWS szabványos magyar (azaz CE jelû, közép-európai ) betûkészletét használnánk, akkor hívjuk meg az inputot kódoló inputenc csomagot:
\usepackage[latin2]{inputenc}Ez a parancs akkor is jó, ha LINUX alatt csak a ISO-Latin1-es karakterkészlet áll rendelkezésünkre, vagy ha WINDOWS alatt a nyugat-európai betûkészletet használtuk. E karakterkészletek és az ISO-Latin2-es, közép-európaiak a magyarban használt betûket tekintve csak 4 helyen térnek el: a ISO-Latin2 õ, Õ , û és Û betûi helyén a ISO-Latin1-ben õ, Õ, û illetve Û jelenik meg (hullámos o, kalapos u), mint azt már korábban is említettük. Így ezeket a betûket használva a fenti parancs után a ISO-Latin1-ben írt szöveg is helyesen kódolódik.
A belsõ kódolásban a kiterjesztett T1 (Cork) kódrendszer használatához a
\usepackage[latin2]{inputenc}parancsot kell megadni.
A \documentclass és a \usepackage parancsok után további, az egész dokumentumra vonatkozó parancsok adhatók ki. Itt szokás egyes méreteket (pl.: margókat) átállítani, új parancsokat definiálni, a cikk címét, szerzõjét, a dátumot � megadni. Például:
\documentclass[10pt,a4paper]{article} % \usepackage{t1enc} \usepackage[latin2]{inputenc} \usepackage[magyar]{babel} % \title{\LaTeX\ teljesen kezdõknek} \author{Szerzõ János} \date{1997. március 30.}
\begin{document} \maketitle
\documentclass{article} ... \begin{document} \section{Elsõ fejezet címe} ... \subsection*{...} ... \subsubsection*{...} ... \section{...} ... \end{document}Nagyobb dokumentumokat érdemes több külön fájlba írni, és a fõdokumentumba csak a fájlok neveit írni. Erre az \include parancs szolgál. Ha az egész dokumentumnak egy részét akarjuk csak újrafordítani, használjuk a \includeonly parancsot. Az alábbi példában szereplõ könyv 4 fejezetbõl áll, és most a harmadikat fordítjuk le. A fordítás a hivatkozások, indexek, oldalszámozás � elkészítése miatt a többi fejezeten is végighalad.
\documentclass{book} \includeonly{fejezet3} \begin{document} \include{fejezet1} \include{fejezet2} \include{fejezet3} \include{fejezet4} \end{document}
\begin{tabular}[pozíció]{oszlopok} a táblázat sorai \end{tabular}illetve
\begin{array}[pozíció]{oszlopok} a mátrix sorai \end{array}környezet. A pozíció opcionális értéke t (top) ill. b (bottom) lehet, ekkor a táblázat felsõ ill. alsó sora lesz illesztve a környezetéhez, egyébként pedig a középsõ. Az oszlopok az l (left), r (right), c (centered), p {szélesség}, | vagy || jelek sorozata lehet. Az l, r, c azt mondja meg, hogy a táblázat adott oszlopa balra, jobbra ill. középre legyen igazítva. A p{szélesség} azt írja le, hogy a szöveg milyen széles sorokba legyen szedve, a | és || pedig a függõleges elválasztó vonalak számát adja meg. Például az alábbi egyszerû táblázat az utána megadott kóddal kapható meg:
Bevétel: | 100 |
Kiadás: | 100000 |
\begin{tabular}{lr} Bevétel: & 100 \\ Kiadás: & 100000 \end{tabular}
\begin{thebibliography}{példa_név} \bibitem[név]{címke} hivatkozott mû .......... \end{thebibliography}Az opcionális név paraméterrel lehet konkrét azonosítót megadni, pl. [Lamport_1994], ellenkezõ esetben a mû automatikus sorszámot kap. A LaTeX szövegben a \cite{címke} utasítással hivatkozhatunk a mûre. A hivatkozáslista neve book osztály esetén Irodalomjegyzék, article esetén Hivatkozások. (Lásd a fejezet végén szereplõ LaTeX példát.)
A szerencsétlen szerzõk általában több mûvet is írnak azonos témában, melyek hivatkozásai között igen nagy az átfedés. (Gyerekkori barátok, fõnökök, a cikk referensének mûveire illik hivatkozni.) A mezei megoldás az, hogy a hivatkozáslistánkat egyik LaTeX fájlból átmásoljuk egy másikba. A probléma ezzel az, hogy olyan mûvek is szerepelnek majd a listánkban amire nem is hivatkozunk. Egy másik kellemetlenség akkor adódik, ha két kiadó más-más formátumot ír elõ a hivatkozásokra. Ezen próbál segíteni a BIBTeX program.
Használatához létre kell hozni egy szöveges adatbázist melyben a következõ példához hasonló elemek vannak:
@BOOK{Kobayashi_I, author = {Kobayashi, Shoshichi and Nomizu, Katsumi}, title = {Foundations of Differential Geometry}, year = 1963, volume = {I}, publisher = {Wiley Interscience, New York - London} }Az adatokat tartalmazó fájl szokásos kiterjesztése .bib. A hivatkozás a korábban említett módon történik pl. \cite{Kobayashi_I}. A thebibliography környezet helyett a
\bibliography{adatbázis_fájl_név} \bibliographystyle{stílus}parancsokat kell használnunk. A stílus lehet plain, unsrt, alpha ill. a kiadó vagy magunk által készített stílus. A fordításhoz elõször ki kell adni a >latex file, majd a >bibtex file és végül újra a >latex file parancsot. Az elsõ parancs hatására létrejön a file.aux fájl, ami a hivatkozási információkat tartalmazza. Ezt és az adatbázist felhasználva a bibtex létrehozza a file.bbl-t ami már a korábban említett formában hordozza a hivatkozáslistát. Végül a harmadik utasítással kerül a dvi fájlba a lista. Bõvebben lásd a BIBTeX dokumentációt.