TeX

TeX

FejlesztőDonald Knuth
Első kiadás1978
Legfrissebb stabil kiadás3.141592653 (stabil verzió, 2021. január)[1]
Programozási nyelvEredetileg WEB
Operációs rendszermultiplatform
Állapotaktív
Kategóriabetűszedés
A TeX weboldala

A TEX (ejtsd: tekh) vagy egyszerű formában TeX egy betűszedő rendszer, amelyet Donald E. Knuth készített. Főleg tudományos körökben népszerű, különösen a matematikai, fizikai és informatikai közösségekben.

A név a görög technê-ből ered, ezért az X (ami valójában egy nagybetűs khí) kiejtése a "technika" „ch”-jához hasonló.

A betűtípusleíró Metafont nyelvvel és a Computer Modern betűtípuscsaláddal egyetemben a TeX két célt tartott szem előtt: bárkinek megadni a magas színvonalú könyvek létrehozását észszerű mennyiségű munkával és egy olyan rendszer létrehozását, amely minden jelenkori és jövőbeli gépen ugyanolyan teljesítményű.[2]

Általános vélemény szerint a TeX a legmegfelelőbb módja a matematikai képletek szedésének.[mj 1][3] A TeX magasabb szinten is népszerű, gyakorta használják a matematikában, számítástechnikában, közgazdaságtanban, mérnöki munkákban, fizikában és statisztikában. Számos Unix környezetben lecserélte a régi kedvenc troff formátum-nyelvet. A LaTeX (és egyéb sablon-nyelvek) megjelenése óta számos más szedési feladathoz is használják.

A TeX számára az általánosan elterjedt mime típus a application/x-tex.

Története

Amikor Donald Knuth megírta a Számítógép-programozás művészete (The Art of Computer Programming) című könyvét, az 1969-es első kiadást Knuth elfogadta és szerinte "jó, ízléses stílusú" volt. Az 1976-os 2. kiadásnál azonban az előző könyvnél használt eljárás helyett egy újabbat használtak, a régi betűtípust lecserélve, amivel elégedetlen volt.[4][5] Ebben az időben látta először egy magas minőségű digitális betűszedő rendszer kimenetét, amelynek hatására elkezdett a digitális betűszedés iránt érdeklődni. Az elkeserítő előzetes változatok után eldöntötte, hogy megírja saját digitális betűszedő programját. 1977. május 13-án írta le kezdetleges funkcióit egy emlékeztetőben.[6] Eredetileg az 1978-as szabadságában akarta befejezni, ám véglegesítve csak 1989-ben lett.

A TeX első változatát SAIL nyelven készítette ami PDP-10-es számítógépeken futott a Stanford Egyetemen, WAITS operációs rendszer alatt. A TeX későbbi változatai számára Knuth megalkotta a literate programming fogalmát: a módszert, hogy lefordítható forrásprogramot és jó minőségű, kereszthivatkozásokkal ellátott dokumentációt (mely természetesen TeX-hel szedendő) állítson elő ugyanazon forrásfile alapján. A nyelv neve WEB volt és Pascal nyelvű programokat állított elő.

A TeX új, nulláról újraírt verzióját TeX82 néven 1982-ben adta ki. Ebben többek között az elválasztó algoritmust egy újjal helyettesítette. Emellett a TEX82 fixpontos számábrázolást használ, amely segítségével különböző hardvereken egyaránt lefut.

A TeX egyes verzióinak egyedi számozása van. A hármas változattól kezdve a frissítéseket mindig egy újabb szám hozzáfűzése jelzi, melynek eredményeképp a verziószám aszimptotikusan közelít π-hez. A jelenlegi verziószám 3.141592. Ez is mutatja, hogy a TeX valójában az egyik legstabilabb program, melyet ismerünk, és csak apró frissítések várhatóak. Knuth kimondta, hogy „az abszolút utolsó változtatás (halálom után)” az lesz, hogy a TeX verziószáma π értékű lesz, mely ponton minden maradék hiba a program tulajdonságává (nem pedig hibájává) válik.[7] Ez hasonló, mint ahogy a METAFONT az e-hez tart.

Betűszedő rendszer

A TeX parancsok visszafele perjellel (\) kezdődnek és kapcsos zárójelek ({}) között vannak csoportosítva. Mindazonáltal a TeX szinte minden beállítása menet közben változtatható, amelynek hatására az nehezen értelmezhető a TeX-en kívül. A TeX makró- és tokenalapú nyelv, a legtöbb parancsot, a felhasználó által definiáltakat is addig bővítik menet közben, amíg csak tokenek maradnak. A makrók véghívása (tail call) nem igényel memóriát és elérhetők a ha-akkor-amúgy (if-then-else) szerkezetek.[8]

A rendszer négy szintre osztható: először is, beolvassa a karaktereket és ad nekik egy kategóriakódot (category code, néha catcode). A visszafele perjel (és minden nullás kategóriájú karakter), amelyeket betűk (11-es kategória) vagy egyéb egyedül levő karakter követnek egy utasítássorozattal lesznek helyettesítve. Ezután a makrókat és a feltételeseket a helyettesítőszövegükre cserélik. A harmadik fázis bemenete egy karakterfolyamból (beleértve a speciális jelentésűeket) és nem-növelhető parancssorozatokból (tipikusan hozzárendelések és vizuális parancsok) áll. Itt a szöveg bekezdésekre lesz tagolva. A negyedik fázisban pedig oldalakra tagolja.

A TeX rendszer precízen ismeri a betűk és szimbólumok méretét és ennek felhasználásával kiszámítja a lapok, a laponkénti sorok és a soronkénti karakterek optimális számát. Kimenete DVI (DeVice Independent, magyarul eszközfüggetlen) formátumú fájl, benne a karakterek végső helyeivel. Ez a DVI fájl közvetlenül elküldhető a nyomtatónak vagy más formátummá alakítható. Manapság gyakorta használják a PDFTeX-et, amely megkerüli a DVI-generálást teljes mértékben.

Az alap TeX-rendszer körülbelül 300 parancsot tud értelmezni.[9] Mindazonáltal az alacsony szintű parancsokat ritkán használják a felhasználók közvetlenül. Knuth eredeti formátuma, a Plain TeX körülbelül 600 parancsot ad hozzá (elérhető a CTAN-ról). A leggyakrabban használt formátum a LaTeX, melyet eredetileg Leslie Lamport fejlesztett ki és támogatja a könyveket, leveleket, diákat stb. Emellett a referenciáknak és az egyenletek automatikus számozásának támogatását is bevezeti. Másik széleskörűen használt formátum az AMS-TeX, melyet az American Mathematical Society fejleszt és több felhasználóbarát parancsot is hozzáad, melyek módosíthatók például újságok által, amely ezáltal illeszkedik stílusukhoz. Az AMS-TeX legtöbb szolgáltatása használható LaTeX-ben az AMS "csomagokkal".

A TeX futtatása

Egy példa „Helló, világ!” program :

Hello, World
\bye % a fájl végét jelöli, nem része a kimenetnek

Ez például lehet egy myfile.tex fájlban, mivel .tex gyakori fájlkiterjesztése a sima TeX fájloknak.

Alapesetben minden, ami egy százalék jelet (%) követ, megjegyzésként lesz kezelve és nem fut le. Ezáltal ezen fájlon a TeX futtatásával (például a tex myfile.tex parancs parancssori begépelésével vagy egy grafikus felhasználói felületről indítva) egy DVI fájltípusú kimenet lesz. A DVI fájlok megtekinthetők a képernyőn avagy konvertálhatók megfelelő nyomtatókra, ahol illesztőprogram van hozzá (a nyomtatók támogatása általánosságban nem volt operációs rendszer-szintű, amikor a programot létrehozták).

Knuth azt mondta, hogy nem volt semmi velejárója annak, hogy a TeX a DVI-be mentett, továbbá a TeX újabb verziói, a pdfTeX, a XeTeX és a luaTeX már mind támogatják a közvetlen PDF-be való mentést.

Matematikai példa

A TeX a matematikai formulák számára külön szintaxist biztosít. Például a másodfokú egyenlet megoldóképlete TeX-ben:

A megoldóképlet $-b \pm \sqrt{b^2 - 4ac} \over 2a$
\bye

amely így néz ki:

A képlet úgy jelenik meg, ahogy egy ember kézzel lerajzolná azt avagy ahogy betűszedéssel létrehozná. Egy dokumentumban a matematikai módba lépést a $ jellel való kezdés jelzi, amelyet ezután a megfelelő szintaxissal beírt képlet követ, majd újból a $ jel. A megjelenített matematika (olyan képlet, amely új sorban, középre rendezve található) hasonló, csak $ helyett $$-t használ. Így például az előző megoldóképlet:

A megoldóképlet $$-b \pm \sqrt{b^2 - 4ac} \over 2a$$
\bye

így renderelődik:

Érdekességek

Donald Knuth pénzbeli díjakkal jutalmazta azokat, akik hibát találtak a TeX-ben, és jelentették. A díj 2,56 dollárral kezdődött, és minden évben duplájára nőtt, amíg el nem érte a jelenlegi 327,68 dolláros összeget. Ez azonban nem tette szegénnyé Knuthot, mivel elég kevés hibát találtak a programban. Amúgy általában ezeket a csekkeket nem beváltani, hanem bekeretezni szokták, hogy bizonyítsák, hibát találtak a TeX programban.[10][11]

Knuth egyszer elmagyarázta, hogy azért választotta a dollárjelet a matematikai mód jelölésére a plain TeX-ben, mert a matematikai betűszedést hagyományosan nagyon drágának tartották.[12]

Megjegyzések

  1. A Wikipédia is ezen nyelv segítségével állítja elő matematikai kifejezését, ld. még: Wikipédia:Képletleíró nyelv.

Hivatkozások

  1. https://www-cs-faculty.stanford.edu/~knuth/abcde.html, https://mirror.kumi.systems/ctan/systems/knuth/dist/tex/tex.web
  2. Alexia Gaudeul (2006. március 27.). „Do Open Source Developers Respond to Competition?: The (La)TeX Case Study” (angol nyelven). 
  3. Yannis Haralambous. Fonts & Encodings (Translated by P. Scott Horne). Beijing; Sebastopol, Calif: O’Reilly Media, 2007, pp. 235.
  4. Donald E. Knuth. Digital Typography. Commemorative lecture for the Kyoto Prize, Kyoto, 1996. Reprinted as chapter 1 of the book Digital Typography.
  5. Digital Typography, p. 5. "I had spent 15 years writing those books, but if they were going to look awful I didn't want to write any more."
  6. Donald E. Knuth. TEXDR.AFT, chapter 24 of the book Digital Typography.
  7. Donald E. Knuth. The future of TeX and METAFONT, NTG journal MAPS (1990), 489. Reprinted as chapter 30 of Digital Typography, p. 571.
  8. Alan Jeffrey. Lists in TeX's Mouth, TUGboat 11:2 (1990), 237–245.
  9. The TeXbook, p. 9.
  10. Kara Platoni, Love at First Byte Archiválva 2006. szeptember 25-i dátummal a Wayback Machine-ben. Stanford Magazine, May-June 2006
  11. The History of TeX
  12. Donald E. Knuth, The TeXbook, Ch. 16: Typing Math Formulas, p. 127.

Fordítás

  • Ez a szócikk részben vagy egészben a TeX című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.

További információk

Kapcsolódó szócikkek