(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.
\bye
A 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.