(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.