2011. augusztus 10.

TeX/LaTeX: írás és feldolgozás II.

A poszt első részében ismertettük, hogy miért és hogyan használjuk a LaTeX dokumentumokat. A TeX leíró nyelvet nem érintettük komolyabban. Ez nem is volt szándékunkban. Helyette az írás miértjét emeltük ki. A második részben pedig a feldolgozás miértjére és a hogyanra keressük a választ és látjuk el tanácsokkal, ötletekkel az olvasót.


Az első részben külön hangsúlyt fektettünk a paradigmák közti különbségre. Arra a fontos elvre, hogy a szerkezetet tartsuk szem előtt a saját dokumentumaink szerkesztése közben. Ennek egy példával szemléltettük hasznosságát. Ezt a modern szövegszerkesztőkben a formázási stílusokkal valósíthatjuk meg. - De milyen előnyünk származik ebből, amikor egy nagyobb szöveg ilyen formátumban áll a rendelkezésünkre? Hogyan könnyítheti meg munkánkat, a megtisztítást és a feldolgozást?


Ajánlás és szabvány


A feldolgozási és megtisztítási folyamattal nem először foglalkozunk itt a Számítógépes nyelvészeten. A Webes szöveg és az Ajánlások előnye című posztban egy konkrét kóddal is találkozhattunk, amivel ezt a folyamatot elvégezhetjük XHTML dokumentumokon. Ahogy a Korpusznyelvészet: korpusz készítésének alapjaiban 1-ben is elő került a téma, mint többféle ajánlás, lehetőség, hogy a dokumentumainkat úgy módosítsuk, betageljük, hogy az valódi módosítást ne okozzon a szövegen. (A Digitális Bölcsészet blogon pedig egy külön írást szentelnek annak témának, hogy ezekből a módszerekből, eljárásokból hogyan is születik a Digitális kiadás.)

Az ajánlás és szabvány közti különbség a kötelező érvényű előírás. A szabvány be nem tartása szintaktikai hibát okoz. Ez a hiba nem teszi lehetővé, hogy kódunk lefusson. Az ajánlások ezzel szemben lehetőségek, amelyek be nem tartása nem okoz problémát. De az ajánlások figyelmen kívül hagyása sok fejtörést és problémát okozhat a számunkra.

Vegyünk egy felvetett példát. A webes szövegek feldolgozásával kapcsolatban a példakódot a Magyar Elektronikus Könyvtár József Attila versein futtattuk. Már ott, ebben az egy feladatban(!) is találkoztunk olyan problémával, amit csak arra az egy dokumentumra jellemző tudunk orvosolni. Ennek érdekében, hogy a problémát lekezeljük úgy kellett módosítanunk a programunkat, hogy egyszeri, aktuális problémát oldjon meg. Ha újabb szövegen futtatjuk, hibát kapunk. Az ajánlások betartása, az egységes szerkezet és formázás tehát a valódi alapja annak, hogy a szövegfeldolgozást automatizálhassuk. (Lásd: Adatbányászat vagy korpuszépítés, ahol az első lépés ennek a formátumnak és szerkezetnek a megalkotása és a szövegek átkonvertálása a választott formában az első fontos és elengedhetetlen lépés.)

Lyx-ből tex (lyx2tex)


Az írás első részében egy szövegszerkesztőt javasoltam. A Lyx-et. A Lyx tényleg egy nagyon kényelmes eszközt ad a kezünkbe. Ennek ellenére egy kisebb problémát is okoz. A saját formátum, saját csomagokat is tartalmaz. A fájl szerkezete sem egyezik teljesen egy sima tex dokumentummal. Ez a feldolgozást első körben akadályozhatja. A probléma viszont egyszerűen kezelhető. Ha kész vagyunk a dokumentumunkkal akkor utána exportáld ki tex formátumba. A tex formátumot már bármelyik elemző eszközzel könnyedén feldolgozható.

Feldolgozás


Három módszert fogok vázolni. A legegyszerűbb, ha a latex dokumentumunkat konvertáljuk először xhtml dokumentummá. Ezért tértünk ki fentebb és idéztük meg újra a Webes szövegek feldolgozásában említett kódra. Mivel most tex dokumentumokból konvertáljuk az xhtml dokumentumunkat ezért ez mindenképp örökölni fogja az egységes szerkezetet a forrás, a tex fájlból. Átkerül egy könnyebben szállítható formátumba (böngészővel bárki számára megtekinthető), de a szerkezetét továbbra is megőrzi. Hiszen ebben az esetben valójában csak leképezzük a forrás fájlt. Az erre írt új elemző már újra felhasználható marad. Minden tex-ből konvertált xhtml fájlon azonosan fog működni.

Ennél talán egy picivel nehezebb művelet, ha egy külön feldolgozó programot írunk. Az alapötlet a konvertálásból ered. A legjobb, ha megszerezzük annak a kódját, amivel egy tex dokumentumot átkonvertálunk például xhtml dokumentummá. Mivel a konvertálás alapja maga az elemzés, ezért ha egy megfelelően programozott csomaggal dolgozunk (pl. erősen moduláris vagy jó API-val rendelkezik), akkor az elemzővel, a munka nagyobb részének megvalósításával már nem nekünk kell foglalkozni. A mi feladatunk ebben az esetben annyi, hogy lecseréljük azt a részt, ami a kimenetet produkálja és kicseréljük saját kódunkra, ami a számunkra szükséges és felhasználható kimenetet generálja.

Illetve a harmadik módszer, hogy mi magunk írunk egy programot, ami az összes műveletet elvégezi. De ebben az esetben nekünk kell kidolgoznunk az elemző eljárást és az eredmények tárolását, illetve a kinyert adatok új formába öntését. Ez egy izgalmas feladat, de valószínűleg nem a leggyorsabb eljárás.

A legszerencsésebb választás a második, hiszen itt az elemzőt nem nekünk kell megírnunk. Az első verzió előnye, hogy egy már a blogon is bemutatott kódot kell csupán átalakítanunk, a megfelelő szelektorokat kicserélnünk. De ebben az esetben nem módosíthatjuk a kimenetet. Hozott anyagból kell dolgoznunk. A harmadik megoldás pedig izgalmas lehet, mert az egészet saját kezűleg kell elkészítenünk.

Összefoglaló

A két részes sorozatban a TeX/LaTeX dokumentumok írásának és feldolgozásának előnyeire akartam rávilágítani. Arra a lehetőségre, amivel megszokott dokumentumírási szokásainkat felfrissíthetjük. Illetve azokra az előnyökre, amiket ezzel a folyamattal nyerhetünk. A könnyebb, gyorsabb és egységes szerkesztés, ami megkönnyíti mind az írást, mind a későbbi feldolgozást.

Nincsenek megjegyzések: