1994. május 29. 1995. április konverzió HTML-re
A HiOn magyar szövegek TeX formátumra való hozását teszi lehetővé. A magyar szövegben átalakítja az ékezet jelölést a TeX számára megfelelően, és bejelöli a lehetséges elválasztási helyeket. A program kimenete általában a TeX számára készül. Egy hasonló funkciókat ellátó korábbi program volt az ETEX, amelyet Tóth Gábor írt PASCAL nyelven.
A HiOn átírja a magyar ékezetes magánhangzókat a Prószéki-féle szabvány vagy a Babai-féle jelölésről TeX formára, valamint bejelöli a TeX számára a magyar nyelvtannak megfelelő elválasztási helyeket. A HiOn a bonyolult elválasztási szabályokat is ismeri, így helyesen fogja elválasztani az összes magyar szót. Ismeri, és helyesen választja el a ch, dz, dzs betűket, a hosszú összetett mássalhangzókat (például ssz). Ismeri a leggyakoribb magyar igekötőket, és helyesen választja el az igekötős szavakat. A HiOn helyesen választja el az olyan szavakat is, mint igazság vagy nyolcszor.
Ha mégis rosszul választana el a HiOn valamilyen szót, akkor a szabvány TeX jelöléssel meg lehet adni, hogy hol kell elválasztani az adott szót, vagy a szót fel lehet venni a HiOn kivétel-szótárába, az összetett szavak közé.
A HiOn tiszteletben tartja a TeX program sajátparancsait, és változatlanul hagyja azokat a szavakat, amelyek fordított törtvonal karakterrel kezdődnek. Opcióval kapcsolhatóan felismeri a LaTeX szekvenciáit, így azokat sem kell megvédeni az elválasztástól. Felismeri a TeX nem backslash karakterrel kezdődő kulcsszavait, és ezeket változatlanul hagyja.
A HiOn tiszteletben tartja a TeX matematikai módját és a $ illetve $$ között levő részeket változatlanul hagyja. Az elválasztás bejelölése, illetve az ékezetek átalakítása kapcsolható a szövegben a @ és a | karakterekkel.
A LaTeX opció használatakor a HiOn felismeri a \( \) és \[ \] matematikai módokat.
A HiOn felismeri a PC és a DEC kiterjesztett karakterkészleteit is (CWI, ISO, 852), amit akár keverve a szabvány vagy Babai-féle jelöléssel lehet használni.
A HiOn arra is hajlandó, hogy egy szövegből kiirtsa az ékezeteket, vagy hogy TeX formáról szabvány formára hozza az ékezetek jelölését.
A HiOn konfigurálható, és a működése opciókkal vezérelhető.
A HiOn C nyelven lett megírva és lefordítható UNIX, VMS és MSDOS operációs rendszereken. Valószínűleg egyéb rendszereken is lefordul, de csak ezeken lett eddig kipróbálva.
Egyes csomagok tartalmazhatnak még más fájlokat, de ezek mind automatikusan generálhatóak a fenti fájlokból:
ln -s hion huon ln -s hion huoff ln -s hion numoff parancsokkal. A csatolásokat nem feltétlenül kell létrehozni, a program működését opciókkal is lehet szabályozni. (Lásd a Opciók. fejezetet!)
%CC-I-NOOPTIMIZATION, Complex control flow caused optimization to be suppressed for procedure or function. "igekötő"
%CC-I-SUMMARY, Completed with 0 error(s), 0 warning(s), and 1 informational messages. At line number 5899 in $USERS2:[VERHAS]HION.C;1.
üzeneteket adja, az nem jó, de nem baj. Egyes rendszereken speciális, a C nyelvhez tartozó könyvtárakat is hozzá kell fűzni a programhoz. Ha a LINK parancs hibajelzést ad, akkor próbáld meg a
parancsot, és ha ez sem segít, akkor meg kell kérdezni a rendszergazdát, hogy hogyan kell C programot ``linkelni''. Ezek után, azért, hogy a parancssorba argumentumokat lehessen megadni a program számára, ki kell adni a
HION :== "$ $DRIVE[DIRECTORY]HION.EXE" parancsot. A parancsban a DRIVE és a DIRECTORY név rendszerenként más és más. A DRIVE értelemszerűen az a meghajtó, ahol a munkaterületed van, a DIRECTORY pedig az a direktori, ahol a HiOn futtatható kódját el akarod helyezni.
Ha végképp nem tudod, hogy mit kell beírni ennek a két szónak a helyére, akkor add ki a SHOW DEFAULT parancsot. Amit ez a parancs kiír, azt kell a $DRIVE[DIRECTORY] helyére írni. Mivel az így definiált logikai név csak addig érvényes, amíg ki nem lépünk a rendszerből, ezért ezt a parancssort érdemes a LOGIN.COM fájlban elhelyezni. Ha abban a direktoriban helyezed el a futtatható ``image'' fájlt, amelyikbe a bejelentkezés után kerülsz, akkor a $DRIVE[DIRECTORY] helyett használhatod a SYS$LOGIN: logikai nevet is (és ne hagyd le a végéről a kettőspontot). Ha van a lemezen bőven helyed (ezt a SHOW QUOTA paranccsal ellenőrizheted), akkor az exe fájlt átmásolhatod HUOFF.EXE, HUON.EXE, DICC.EXE és NUMOFF.EXE fájlnevekre, és ezekhez is definiálhatsz logikai nevet. Ez azonban nem szükséges, mert a program működése opciókkal is vezérelhető. (Lásd a Opciók. fejezetet!)
Megtehető az is, hogy a
SET FILE /ENTER=HUOFF.EXE HION.EXE SET FILE /ENTER=NUMOFF.EXE HION.EXE SET FILE /ENTER=HUON.EXE HION.EXE parancsokkal plusz neveket rendelünk a futtatható fájlhoz, és így külön helyfoglalás nélkül (kivéve a direktori bejegyzés helyét) elérhetjük azt, mintha ezekre a nevekre másoltuk volna át a fájlokat. Ezekkel az extra bejegyzésekkel azonban csínján kell bánni, mert a törlésük a SET FILE /REMOVE paranccsal történik, és ha egy fájl összes nevét kitöröltük ezzel a paranccsal, akkor a fájl maga ott marad a lemezen, foglalja a helyet, és kitörölhetetlen. Tehát a törlés során az egyik névvel a DELETE parancsot kell használni. Ha mégis megtörtént a baj, akkor meg kell kérni valakit, aki SYSTEM privilégiumokkal rendelkezik, hogy tegye rendbe a lemezt az ANALYZE /DISK paranccsal.
Bármelyik C fordítóval le kell, hogy forduljon a program. Mivel az 1.7 verzió felett egy nagy szótárat is kezel a program, ezért ajánlatos valamilyen nagy memória modellt, lehetőleg HUGE, használni. Én a Borland cég TURBO C++ fordítójának 1.0 verzióját használtam, valamint MSC 5.0-t, de az MSC-vel fordított változat nem működött. Elvileg le kell, hogy forduljon korábbi TC verziókkal is. Ekkor, mivel a forrásfájl hosszabb, mint 64KB, ezért vagy a TCC.EXE programot kell használni, vagy pedig egy kis egysoros
#include "hion.c" programot kell lefordíttatni a TC.EXE programmal. Én nem próbáltam, de állítólag egy opció használatával rá lehet bírni a TC-t arra, hogy használja a kiterjesztett memóriát, és akkor elbírja a 64KB-nál hosszabb fájlokat is. (Ne felejtsd el, hogy ekkor a keletkezett fájl nem HION.EXE, hanem pl. NONAME.EXE lesz. Ezt másold át a HION.EXE névre, és az eredetit töröld ki.) A programot szerkeszteni például az NE.COM programmal lehet. Ha minden warningot bekapcsolsz, akkor összesen 172 darabot fog generálni a TC 2.0 (HiOn 1.3 verzió). Ha zavar, akkor a következő warningokat kapcsold ki:
Alt-o / Compiler / Errors / Less common errors / F , E Call to function with no prototype No declaration for function 'ident' Alt-o / Compiler / Errors / Common errors / A , B , G Function should return a value Unreachable code Possibly incorrect assignment Ezek után nem szabad, hogy bármiféle hibajelzést adjon a TC 2.0. Ha van elég helyed a lemezen, akkor a programot átmásolhatod a HUOFF.EXE, HUON.EXE és NUMOFF.EXE fájlnevekre. Ez azonban nem szükséges, mert a program működése opciókkal is vezérelhető. (Lásd a Opciók. fejzetet!) MS--DOS alatt nincsen szabványos lehetőség csatolások létrehozására úgy, mint UNIX alatt, és még úgy sem, mint VMS alatt.
Ha a kimeneti és a bemeneti fájl neve megegyezik, akkor a program, a VMS változatok kivételével, leáll. VMS alatt ekkor a kimeneti fájl neve ugyanaz lesz, mint a bemeneti fájlnév, megegyeznek a kiterjesztések is, és a fájl egy újabb verziója jön létre. Ez nem okoz helyrehozhatatlan hibát. MSDOS és UNIX rendszer alatt azonban a kimeneti fájl megnyitása egyben törölné a bemeneti fájlt, és egyrészt nem működne a program bemenet híján, másrészt megsemmisül egy nehezen reprodukálható fájl. Egyébként ez a fajta használat VMS alatt is csak ritkán indokolt, ezért VMS alatt is egy figyelmeztetést ad a program.
Ne tarts angol nyelvű, .tex kiterjesztésű fájlokat abban a direktoriban, ahol a .hun fájlok vannak, mert menthetetlenül le fogod egyszer őket törölni egy rm *.tex vagy jobb esetben csak egy reverzibilisebb DOS DEL *.TEX paranccsal. Akkor majd gondolj arra, hogy én szóltam, és ne engem okolj. Mit gondolsz, én ezt honnan tudom?
Opciók
A HiOn működését opciókkal lehet vezérelni. Az opciókat a
parancssorba a program neve után kell írni. Opciók és be- illetve
kimeneti fájlnevek keveredhetnek, az opcióknak nem feltétlenül kell
megelőzniük a fájlneveket. Az opciókat a program balról jobbra
dolgozza fel, és a későbbi opciók felülbírálhatják a korábbi
opciókat.
Minden opciót egy - vagy / jel vezet be. UNIX alatt
egy fájl neve kezdődhet / jellel, ezért ott csak a -
jel használható. Minden opció egy szó, amelyet esetenként
rövidíteni lehet. Ha egy opcióhoz érték is tartozik, akkor azt
az opció után, egyenlőségjellel vagy ~ (tilde)
karakterrel elválasztva az opciótól, de szóköz nélkül kell
írni.
Például:
hion -FUNC=HiOn
Itt a FUNCTION opcióhoz, amely a program működési funkcióját határozza meg, a HION értéket rendeltük.
Az opciókban a kis- és nagybetűk egyenértékűek. Az opciókhoz rendelt értékeket (amennyiben azok karakterfüzérek) a HiOn nagybetűsre konvertálja. Amennyiben szükség van a kisbetűk megőrzésére, akkor a karakterfüzért idézőjelek (") vagy aposztrófok (') közé kell zárni.
Az egyes opciókat általában szóköz választja el, de opciókat egybe is lehet írni. Így helyes a
hion /MAKE/BAR file.txt
parancssor éppúgy, mint a
hion /MAKE /BAR file.txt
A bemeneti és kimeneti fájlneveket egy vagy több szóköz kell, hogy elválassza egymástól és az opcióktól. Ezek alapján a
hion mfa1jl/MAKE /BAR
parancssor hibás.
A következőkben ismertetésre kerülnek az egyes opciók. Az opciók definíciójában az első betűk nagybetűvel vannak írva, a továbbiak kisbetűvel. A bevezető nagybetűk képezik az opció azon részét, amelyet mindenképpen be kell gépelni az opció használatakor. A további karakterek opcionálisak, de ha szerepelnek, nem térhetnek el a megadott karakterektől. Igy a FUNCTION opció definíciója FUNction ami azt jelenti, hogy ez az opció 5 féleképpen rövidíthető, mégpedig:
FUN FUNC FUNCT FUNCTI FUNCTIO
módokon. Természetesen rövidítés nélkül FUNCTION-nak is írható az opció.
A definíciókban szerepelhetnek [ és ] karakterek. Ezek általában a NO vagy a DONT szót zárják közre. Ennek jelentése, hogy az adott opciót a NO vagy DONT szóval is lehet használni, természetesen ellentétes értelemmel.
Ez az opció meghatározza a program alapvető működését. A lehetséges értékeknél:
HION
Az elvégzendő funkció HiOn, azaz az ékezetes betűk TeX
formára hozása, valamint az elválasztások bejelölése.
HUON
Az elvégzendő konverzió HUON, azaz numerikus ékezetekről TeX
formára hozás. Ez a konverzió nem jelöli be az elválasztási
helyeket, csak az ékezeteket írja át TeX, vagy egyéb
formára. Nem veszi figyelembe a matematikai módokat, vagy a
megjegyzéseket. Mindent átalakít.
HUOFF
Az elvégzendő konverzió HUOFF, azaz TeX formáról numerikus
ékezetekre hozás.
NUMOFF
Az elvégzendő funkció NUMOFF, azaz a numerikus
ékezetek kiirtása, és a szöveg barbár formára hozása. Ennél a
konverziónál a program nem vesz ki minden számjegyet a
szövegből, csak azokat, amelyek ékezetként szerepelnek.
DICC
Az elvégzendő funkció DICC, azaz a hion.dct text formátumú
szótár fájl átalakítása a hion.dcb bináris formátumra.
Alapértelmezés: /FUNCTION=HION
MAKE
Ezt az opciót használva a HiOn, mielőtt nekiállna dolgozni megvizsgálja, hogy a generálandó fájl létezik-e már, és ha igen, akkor nem újabb-e, mint a forrásfájl. Ekkor ugyanis az esetek többségében nem kell újrafordítani a hun fájlt tex formátumra. Ez a funkció a UNIX make vagy a VMS mms-hez hasonló funkciót adhat a HiOn-nak. Ha több forrásfájlból áll egy szöveg, akkor mindegyiket le kell fordítani a HiOn-nal. Ehhez használható egy DOS BAT, VMS COM vagy UNIX shell fájl. Ez viszont minden egyes fájlt újrafordít, akkor is, ha egy fájl nem lett változtatva. Az opció használatával ez az újrafordítás elkerülhető.
BUILD
A MAKE opció ellentéte. Akár létezik már a generálandó fájl, akár nem, függetlenül a keletkezési idejétől a fordítást a program elvégzi.
Alapértelmezés: /BUILD.
Ha a HiOn-t valaki csak az ékezetek konvertálására akarja használni, akkor kellemetlen, hogy a program a | és @ jeleket kiveszi a szövegből. A BARS opció használatával ez elkerülhető, a program ilyenkor belerakja ezeket a jeleket is a kimenő szövegbe.
Alapértelmezés: NOBARS
A .hun fájlban használt karakterkészlet megadása lehetséges ennek az opciónak a segítségével. Ha a 852 kódlapot használjuk, akkor a /ICHARSET=852 opciót kell megadnunk. Ha a CWI karakterkészletet használjuk, akkor a /ICHARSET=CWI opciót lehet, illetve kell megadni. Az ISO Latin 2 karakter kód használatához az /ICHARSET=ISO_LATIN2 opció használható. Ha a magánhangzók után írt 123 ékezeteket akarjuk használni, akkor a /ICHARSET=123 opció használható. Az 123 és a 852, CWI, ISO ékezetes karakterjelölés egyszerre is használható, ezért, ha azt akarjuk, hogy a HiOn ne ismerje fel az 123 ékezeteket, akkor használni kell a /NO{123} opciót. A ISO és CWI opció argumentumok egyenértékűek, mert ez a két karakter készlet nem üti egymást, és ezért egyszerre is figyelembe vehetők. Ha nem akarjuk, hogy a program figyelembe vegye a 127-nél nagyobb kódú karaktereket, akkor a /ICH=NOISO, /ICH=NOCWI vagy /ICH=NO852 opciók valamelyikét kell alkalmazni. Ezek egyenértékűek.
Ha nem adunk meg semmilyen opciót, akkor a HiOn a CWI, ISO latin 2 valamint az 123 ékezeteket veszi figyelembe.
Ha saját, külső karaktertáblázatot akarunk használni, akkor annak a fájlnak a nevét kell megadni a /ICHARSET opcióhoz, amely a karaktertáblázatot tartalmazza. A karaktertáblázat formátumát a IBM--PC, DEC International karakterek . fejezet írja le.
Alapértelmezés: /ICH=ISO/ICH=CWI/ICH=123
Az elválasztási funkció teljes kikapcsolása. Ha ezt az opciót használjuk, akkor a HiOn nem fog semmilyen elválasztást bejelölni a kimeneten. Ennek az opciónak a használata általában akkor szokás, ha csak karakterkonverziót akarunk végezni.
A DICC funkció a beolvasott, általában hion.dct fájlt átalakítja egy olyan szerkezetre, amelyben gyorsan lehet keresni, és ezt az átalakított struktúrát írja ki a hion.dcb fájlba. A keletkezett fájlt a HiOn csak akkor tudja beolvasni, ha bináris formátumú, azonban, ha valaki kíváncsi rá, hogy milyen struktúrában helyezkednek el a szavak a szótárfájlban, akkor lehetőség van a struktúra olvasható formában való kiírására. A
hion /FUNCTION=DICC /GENERATE=BINARY
parancssor egy olyan hion.dcb fájlt állít elő a hion.dct fájlból, amelyet azután a program a későbbiekben be tud olvasni és fel tud használni. Ugyanakkor a
hion /FUNCTION=DICC /GENERATE=ASCII
parancssor hatására olyan olvasható formátumú fájl lesz a hion.dcb, amelyet ki lehet nyomtatni, meg lehet vizsgálni, de a HiOn számára a későbbiek során fogyaszthatatlan.
Alapértelmezés: /GENERATE=BINARY
A kivételszótárat tartalmazó bináris formátumú fájlt lehet megadni a HiOn-nak. Ha nem használjuk ezt az opciót, akkor a HiOn a hion.dcb fájlt fogja használni kivételszótárként. Ezt a fájlt először az aktuális könyvtárban (direktori-ban) keresi. Ha itt nem találja, akkor abban a könyvtárban, ahol a HiOn futtatható fájl van. Ha itt sem találja, akkor UNIX alatt a ~, /usr/dict, /usr/user/dict és /usr/bin könyvtárakkal próbálkozik. VMS alatt a HION$DIRECTORY: könyvtárat nézi meg. Ha sehol sem találja a kivételszótárat, akkor a HiOn egy figyelmeztetést ad, és a kivételszótár nélkül dolgozik.
A kimenő karakterkészlet megadása az ékezetes magyar betűk számára. Ez lehet a MATEX kódkiosztás, CWI, ISO_LATIN 2, 123 vagy TeX ékezetjelölés. Az 123 ékezetjelölésnél alaphelyzet szerint a HiOn az 1, 2 és 3 karaktereket fogja használni a magánhangzók után az ékezet jelölésére, de ez a bemeneti repülő ékezetek átdefiniálásával együtt megváltozik, azaz az APOSTROPHE, UMLAUT, HUMLAUT opciókkal változtatható. A TeX ékezetek bejelölése függ a BRACKETS opciótól is.
Alapértelmezés: /OCHARSET=TEX
Ennek az opciónak a használatakor a HiOn bemenete és kimenete is standard. Ez azt jelenti, hogy a billentyűzetről olvas, és a képernyőre ír.
Alapértelmezés: /NOFILTER
A TeX szedőrendszer figyel az olyan nyomdai finomságokra, mint a ligatúrák. A ligatúrák olyan betűpárok, vagy betűcsoportok, amelyek helyett egy összetett betűképet használ a nyomda. Ilyenek például az ff, fl, fi, ffl, ffi. Ha egy szóban szerepel egy ilyen betűcsoport, és ezeken belül van egy lehetséges elválasztási hely, akkor ha oda a HiOn beteszi a \- jelet, akkor ezzel megzavarja a TeX működését, és az nem fogja felismerni a ligatúrát. Így effektív helyett ef fektív-et fog szedni a program. Ennek elkerülésére a HiOn a lehetséges ligatúrákon belüli elválasztások helyeit a TeX \discretionary makrójával jelöli be. Így a TeX figyelembe tudja venni a ligatúrákat, és ha mégsem kell elválasztani a ligatúrán belül a szót, akkor a sorközben helyes lesz a szedési kép.
Példa:
$ hion /filt/och=123/ich=123/lig/sil effektív e\discretionary{f-}{f}{ff}ek\-tív ^Z $ hion /filt/och=123/ich=123/nolig/sil effektív ef\-fek\-tív ^Z
Alapértelmezés: /LIGATURES
Ennek az opciónak a hatására a HiOn egy rövid emlékeztetőt ír ki a képernyőre, és leáll.
Példa:
$ hion /help hion [[-|/]opcio] [bemenő_fájl] [kimenő_fájl] Opciók: /FUNction=HION,HUON,HUOFF,NUMOFF,DICC /MAKE/BUILD /[NO]BARS /ICHarset=BABAI,[NO]123,[NO]CWI,[NO]ISO_latin2,[NO]852 /NOHYPhen /GENerate=ASCii,BINary /DICTionary /OCHarset=MATEX,CWI,ISO_latin2,123,TEX,852 /[NO]FILTer /[NO]LIGatures /INput/OUTput=STANdard,FILE /[H]UMLAUT/APOStrophe=char /[NO]LATex /[NO]IGEkoto /[NO]SAG/[NO]SEG /[NO]POSTHyphen /[NO]PROTection /[NO]STATistics /[DONT_]USE_dictionary /DISCRetionary=FULL,UNIque,NOne /[NO]1letter /[NO]WARNings /[NO]BRACkets /SILent /SCReen=CWI,ISO_latin2,852,RAW
Ezzel az opcióval lehet megadni, hogy a HiOn honnan vegye a bemenő fájlt. Ha az /INPUT=STANDARD opciót használjuk, akkor a HiOn a bemenetét a billentyűzetről fogja olvasni, hacsak a szabványos bemenet át nem lett irányítva. Ez főleg UNIX operációs rendszer alatt szokásos, de DOS alatt is megtehető.
Ha a /INPUT=STANDARD/OUTPUT=STANDARD opciókat használjuk, akkor a HiOn a bementeként és a kimeneteként is a szabványos csatornákat használja, és így UNIX alatt szokásos szűrő működést lehet megvalósítani. Ehhez lehet használni a /FILTER opciót is.
Alapértelmezés: /INPUT=FILE
Ezzel az opcióval lehet megadni, hogy a HiOn hova írja a kimenetét. Ha a /OUTPUT=STANDARD opciót használjuk, akkor a kimenet a képernyőre fog kerülni, hacsak át nem lett irányítva. Ez főleg UNIX alatt szokásos, de DOS alatt is meg lehet tenni.
Alapértelmezés: /OUTPUT=FILE
Ezzel az opcióval lehet megadni, hogy repülő ékezetek használata esetén melyik legyen az a karakter, amelyet a HiOn a megfelelő magánhangzók után umlaut jelölésnek tekint. Ez alaphelyzetben a 2 karakter.
Vigyázni kell arra, hogy sok olyan karaktert, amelyet szívesen használnak emberek repülőékezet jelölésére, az operációs rendszer parancsértelmezője megpróbál értelmezni.
Alapértelmezés: /UMLAUT=2
Ezzel az opcióval lehet megadni, hogy repülő ékezetek használata esetén melyik legyen az a karakter, amelyet a HiOn a megfelelő magánhangzók után magyar umlaut, azaz dupla vesszőként értelmez. Ez alaphelyzetben a 3 karakter.
Vigyázni kell arra, hogy sok olyan karaktert, amelyet szívesen használnak emberek repülőékezet jelölésére, az operációs rendszer parancsértelmezője megpróbál értelmezni.
Alapértelmezés: /HUMLAUT=3
Alapértelmezés: /APOSTROPHE=1
Ezzel az opcióval lehet megmondani a HiOn-nak, hogy az a fájl, amelyet fel kívánunk dolgozni, a LaTeX makró csomagnak megfelelő szintaktikájú. Ebben az esetben a HiOn tiszteletben tartja azokat a vezérlő szekvenciákat, amelyek speciálisan a LaTeX-ben fordulnak csak elő. Ilyen például a \begin vezérlési szerkezet, amelynek van egy argumentuma. Ha nem használjuk a /LATEX opciót, akkor a HiOn ezekben a szavakban is bejelöli a lehetséges elválasztási helyeket, és ezt a LaTeX makrócsomag nem viseli el.
Példa:
$ hion /filt/och=123/ich=123/sil \begin{document} \begin{do\-cu\-ment} ^Z $ hion /filt/och=123/ich=123/sil/latex \begin{document} \begin{document} ^ZAlapértelmezés: /NOLATEX
Ezzel az opcióval lehet a HiOn-t megkérni arra, hogy ne vegye figyelembe az igekötőket. A HiOn alaphelyzetben kivételszótár nélkül is figyelembe tudja venni az igekötőket.
Példa:
$ hion /filt/och=123/ich=123/sil megettem meg\-et\-tem ^Z $ hion /filt/och=123/ich=123/sil/noige megettem me\-get\-tem ^Z
Alapértelmezés: /IGEKOTO
A HiOn külön odafigyel azokra a szavakra, amelyek ság, ség végűek, és így helyesen választja el az olyan szavakat, mint a malacság, vagy igazság. Ezzel az opcióval lehet rávenni a HiOn-t arra, hogy a ság, ség vegű szavakra ne figyeljen oda, és bután válasszon el. A két opció teljesen egyenértékű.
Példa:
$ hion /filt/och=123/ich=123/sil malacság ma\-lac\-ság ^Z $ hion /filt/och=123/ich=123/sil/nosag malacság ma\-la\-cság ^Z
Alapértelmezés: /SAG
A TeX minden olyan szót a saját elválasztási táblája szerint
próbál elválasztani, amelyben nincs a \-
vezérlőszekvenciával bejelölve az elválasztás. Ez pedig
előfordul néhány egyszótagos szóval. Így megtörténhet az, h-
ogy a TeX maga elválasztja a szót. Ha az ilyen szavak
végére egy \- jelet teszünk, akkor a TeX úgy tekinti,
hogy az összes lehetséges elválasztás be van jelölve. Ez az opció néhány esetben hibásan működik, ezért bár
létezik, de nem támogatott.
Példa:
$ hion /filt/och=123/ich=123/sil/posth Hogy vagy? Hogy\- vagy?\- ^Z $ hion /filt/och=123/ich=123/sil/noposth Hogy vagy? Hogy vagy? ^Z
Alapértelmezés: /NOPOSTHYPHEN
Ez az opció be-, illetve kikapcsolja az olyan TeX kulcsszavak védelmét, amelyek nem \ karakterrel kezdődnek. Ha ezt az védelmet kikapcsoljuk a /NOPROTECTION opcióval, akkor a szövegben | és @ karakterekkel kell gondoskodni az olyan szavak védelméről, mint scaled. Ugyanakkor a HiOn csak akkor ismeri fel ezeket a kulcsszavakat, ha azokra nem írjuk rá a következő szót. Ha scaled1200-at írunk, akkor a HiOn el fogja választani a TeX kulcsszót, mert a számokkal együtt egy szónak tekinti a scaled1200 karaktersorozatot. Viszont írhatunk scaled\magstep-et, mert a \ karakter lezárja a szót.
Példa:
$ hion /filt/och=123/ich=123/sil scaled scaled ^Z $ hion /filt/och=123/ich=123/sil/noprot scaled sca\-led ^Z
Alapértelmezés: /PROTECTION
Ezzel az opcióval lehet be-, illetve kikapcsolni a futás során a statisztikai adatgyűjtést, valamint a program végén annak kiírását. A statisztikai adatok érdekesek lehetnek és információt adhatnak a szöveg stílusáról, ugyanakkor zavaró is lehet a program végén kiírt sok szöveg.
A /SILENT opcióval a statisztika mellett az egyéb kiírásokat is ki lehet kapcsolni.
Példa: a következő oldalon.
$ hion /filter hion konverziós program V2.5 22/01/94 VMS TeX preprocesszor. A hion.dcb fájlt nem lehet megnyitni. A szótár nem lett beolvasva. ^ZHiOn jelentés
0 TeX karaktert írtam ki. 0 szó volt, ebből 0 vezérlő szó. 0 bonyolult, discretionary elválasztás volt. 0 alkalommal merült fel ligatúra védelem, és ebből 0 alkalommal kellett discretionary formulát alkalmaznom. 0 alkalommal vizsgáltam igekötő kezdetű szavakat és 0 alkalommal találtam is. 0 alkalommal vizsgáltam meg a szó többi részét is, 0 alkalommal találtam valódi igekötőt. 0 alkalommal kerestem ság ség képzőt, és 0 alkalommal találtam. 0 alkalommal kerestem összetett szavakat, 0 alkalommal találtam, és 0 külön elválasztást helyeztem el.
Szívesen máskor is. $ hion /filter/nostat hion konverziós program V2.5 22/01/94 VMS TeX preprocesszor. A hion.dcb fájlt nem lehet megnyitni. A szótár nem lett beolvasva. ^Z
Alapértelmezés: /STATISTICS
Ezt az opciót használva a HiOn megpróbálja betölteni a kivételszótárat, hogy az összetett szavakat is jól tudja elválasztani. Amennyiben a DONT_USE_DICTIONARY formát használjuk, akkor a HiOn nem próbálja meg betölteni az összetett szavak kivételszótárát, és az összetett szavak egy részét rosszul választja el, viszont valamivel gyorsabban dolgozik.
Példa:
$ hion /filt/och=123/ich=123/nostat hion konverziós program V2.5 22/01/94 VMS TeX preprocesszor. A táblázat olvasása folyamatban... Kivételszótár beolvasva. vasutas vas\-u\-tas ^Z $ hion /filt/och=123/ich=123/nostat/dont_use hion konverziós program V2.5 22/01/94 VMS TeX preprocesszor. vasutas va\-su\-tas ^Z
Alapértelmezés: /USE_DICTIONARY
Ezzel az opcióval lehet szabályozni, hogy a HiOn hogyan hajtsa végre a \discretionary elválasztásokat.
Példa:
$ hion /filt/och=123/ich=123/sil/discr=tot gyönyörű processzor gyö\-nyö\-rű pro\-ce\discretionary{sz-}{sz}{ssz}or ^Z $ hion /filt/och=123/ich=123/sil/discr=uni gyönyörű processzor gyönyörű proce\discretionary{sz-}{sz}{ssz}or ^Z $ hion /filt/och=123/ich=123/sil/discr=full gyönyörű processzor gyö\-nyö\-rű pro\-ce\discretionary{sz-}{sz}{ssz}or ^Z $ hion /filt/och=123/ich=123/sil/discr=no gyönyörű processzor gyö\-nyö\-rű pro\-cesszor ^Z
Alapértelmezés: /DISCRETIONARY=FULL
Ezzel az opcióval lehet engedélyezni a HiOn számára, hogy az olyan elválasztási helyeket is bejelölje, amelyek fattyú szótagokat, azaz a sor elején, vagy a sor végén álló egybetűs szótagokat eredményezhetnek.
Példa:
$ hion /filt/och=123/ich=123/sil auto au\-to ^Z $ hion /filt/och=123/ich=123/sil/1LETTER auto a\-u\-to ^
Alapértelmezés: /NO{}1LETTER
Figyelmeztető üzenetek be-, illetve kikapcsolása. A program akkor küld ilyen üzenetet, ha például egy a3 vagy i3 betűvel találkozik. Akkor is figyelmeztet a HiOn, ha eléri a feldolgozandó fájlvéget kikapcsolt állapotban, vagy matematikai módban. Ezek az esetek majdnem mindig valamilyen elkövetett hibára utalnak, amelyek így a fordítás korai stádiumában fellelhetők.
Alapértelmezés: /WARNINGS
Ezzel az opcióval arra lehet rávenni a HiOn-t, hogy az ékezetes karakterek köré rakjon { és } jeleket. Ennek akkor van értelme, ha a HiOn-nal egy különleges makrókat használó szöveget akarunk processzálni, és a makró számára az ékezetes karakternek egy input egységnek kell maradniuk. A hétköznapi gyakorlatban előforduló ilyen eset, ha a LaTeX csomaghoz BiBTeX programmal akarunk irodalomjegyzéket készíteni.
Példa:
$ hion /filt/ich=123/sil/BRAC almás rétes al\-m{\'a}s r{\'e}\-tes ^Z $ hion /filt/ich=123/sil almás rétes al\-m\'as r\'e\-tes ^Z
Alapértelmezés: /NOBRACKETS
Ezzel az opcióval lehet kikapcsolni mindenféle hiba- és egyéb üzenetet, amelyet a HiOn a képernyőre küldene.
Alapértelmezés: NOSILENT
Ezzel az opcióval lehet megadni, hogy a HiOn a képernyőre küldött üzeneteit milyen karakterkészlettel írja ki. Alaphelyzetben a HiOn az 123 ékezeteket használja, de lehetőség van arra, hogy PC-n a CWI vagy 852, VMS és UNIX operációs rendszerek alatt az ISO latin 2 karakterkészletet használja.
Alapértelmezés: RAW
A környezeti változók beállítása operációsrendszer-függő.
setenv hion_opt=-lat
Mivel ez a változó csak addig él, amíg ki nem kapcsoljuk, vagy nem inicializáljuk a gépet, illetve amíg ki nem jelentkezünk, ezért ezt a parancsot érdemes minden bekapcsolás, illetve inicializálás után kiadni. Ennek kényelmes módja, ha befűzzük a .profile fájl parancsai közé.
set hion_opt=-LATEX
Mivel ez a változó csak addig él, amíg ki nem kapcsoljuk, vagy nem inicializáljuk a gépet, ezért ezt a parancsot érdemes minden bekapcsolás, illetve inicializálás után kiadni. Ennek kényelmes módja, ha befűzzük az AUTOEXEC.BAT fájl parancsai közé. A kikapcsolás a
set hion_opt=
paranccsal történik.
$ DEFINE HION_OPT "/LATEX"
Mivel ez a változó csak addig él, amíg a bejelentkezés tart, ezért ezt a parancsot érdemes minden bejelentkezéskor kiadni. Ennek kényelmes módja, ha befűzzük a LOGIN.COM fájl parancsai közé.
Megjegyzendő, hogy azon igekötők, amelyek nem mássalhangzóra végződnek, az elemi elválasztási szabályok szerint is helyesen lesznek elválasztva, és ezért nem kell őket külön figyelni.
Néhány esetben, amikor egy ige két mássalhangzóval kezdődik, mint srófol, akkor az olyan igekötők is külön figyelmet kívánnak, amelyek magánhangzóra végződnek. Így a besrófol igét az egyszerű elválasztási szabály bes-rófol--nak választaná el. Ezeket az eseteket a kivételszótárral vesszük figyelembe, úgy, mint az összetett szavakat.
A program nem csupán azt nézi meg, hogy a szó elején áll-e igekötő, hanem a szó további részét is figyelembe véve megpróbálja eldönteni, hogy a szó elején álló betűk igekötőként értelmezhetők-e. Így például az elefánt szóból a program nem csinál el-efántot. Vannak olyan szavak, amelyek elválasztása nem egyértelmű. Ilyen például a felejt. Ha arról van szó, hogy valamit elfelejtünk, akkor az elválasztás fe-lejt. Ha viszont valamit felfelé ejtünk, akkor az elválasztás fel-ejt. Mivel felfelé ritkán szoktunk dolgokat ejteni, ezért a program ebben az esetben úgy dönt, hogy a fel szócska itt nem igekötő. Ha mégis, akkor be kell a szövegben jelölni az elválasztást. Ezt a problémát csak mondatelemző algoritmussal lehetne megoldani, ami nagyon lelassítaná a működést. Léteznek szóelemzésen alapuló elválasztó programok is, és ezek is jóval lasabbak, mint a HiOn.
A program feltételezi, hogy helyesen írt magyar szavak szerepelnek a szövegben, így ha valamit elgépelünk, akkor lehet, hogy az elválasztás is rossz lesz. Igy például, ha azt írjuk, hogy eladdó, akkor az elválasztás elad-dó lesz.
A program figyel olyan kvázi-igekötőket is, mint meggy, vagy leggy, ezért a leggyakrabb, illetve a meggyúrni szavakat is helyesen választja el.
A program minden olyan cs illetve zs betűt, amely után ág, vagy ég betűk következnek c és s illetve z és s betűnek tekint, azaz nem tekinti dupla betűnek őket, és így az olyan szavakat, mint igazság, vagy malacság is helyesen választ el.
Szó nem tartalmazhat { és } karaktereket, valamint szóközt. Egy szót lezár egy vezérlő karakter, vagy vezérlő szó (tehát valamilyen \-sel kezdődő karaktersorozat), ha az nem az elválasztást jelöli be, azaz nem \-. A \- vezérlő karakter része lehet egy szónak.
Magyar szövegben elég ritkán fordul elő, de néha azért előfordul, hogy f és l vagy két f vagy f és i betűk között kell elválasztani. Ha itt egyszerűen \- jelet tennénk a két karakter közé, akkor a TeX nem ismerné fel a ligatúrát, és például ff helyett f f jelenne meg a nyomtatott szövegben. A HiOn ezt az esetet figyelembe véve olyan szekvenciát generál, amelyik nem akadályozza meg a TeX ligatúra felismerését. Ha ezt valamiért ki kellene kapcsolni, akkor a /NOLIG opciót kell használni.
A HiOn 1.7-es verziójától kezdve képes arra, hogy az összetett szavakat is helyesen szótagolja. Mivel a HiOn nem elemzi a szavakat, ezért ezt csak egy kivételszótárral lehet megoldani. A programcsomag kell, hogy tartalmazza a hion.dct kivétel szótárat, amely karakteres formában tartalmazza az összes olyan szót, amelyet a HiOn korábbi verziói rosszul választottak el.
Ez a szótár úgy készült, hogy a Magyar Értelmező Kéziszótár címszavainak a jegyzékére ráengedtük a HiOn-t, és az eredményt egy programmal összehasonlítottuk egy másik, szóelemzésen alapuló szótagoló program hasonló eredményével. Ahol a két elválasztás azonos volt, ott feltehetően jó az elválasztás. Ahol különbözött, ott vagy az egyik, vagy a másik, vagy mindkét elválasztás rossz volt. Ezt a fájlt néztük végig, és szövegszerkesztővel, kézzel állítottuk elő a hion.dct fájlt. Így lehetnek benne hibák. Ezeknek a hibáknak a kezelésére ugyanúgy vonatkozik a Karbantartás. fejezet, mint a programhibákéra.
A hion.dct fájl karakteres formátum, amit a HiOn csak lassan tudna használni, ezért ezt át kell alakítani bináris formátumra. Ezt a dicc vagy a hion /FUNCTION=DICC paranccsal lehet megtenni. A keletkező fájl hion.dcb, amely egy táblázatban, gyorsan feldolgozható formában tartalmazza a kivételszótárat.
Ha nem használjuk a /DONT_USE_... opciót akkor a HiOn elindulása után megpróbálja az aktuális könyvtárból beolvasni a hion.dcb fájlt. Ha ez nem létezik, akkor megpróbálja a hion.dcb fájlt megnyitni abban a direktoriban, ahol a végrehajtható fájl van. Ha ez sem sikerül, akkor operációs rendszertől függően viselkedik a program.
MS-DOS alatt nem próbálkozik tovább.
UNIX alatt megpróbálkozik a ~/, a /usr/dict, a /usr/user/dict/, majd végül utolsó kísérletként a /usr/bin/ direktoriban megnyitni a fájlt.
VMS alatt a HION$DIRECTORY: direktorit nézi meg.
Ha sehol sem sikerül megtalálni a hion.dcb fájlt, nincs elég memória, sérült a fájl, vagy esetleg a HiOn egy olyan későbbi verziójával készült, amelynek DCB formátumát az adott verzió nem tudja feldolgozni, akkor egy hibajelzés után (amit a /NOWARNINGS opcióval el lehet nyomni) a program enélkül folytatja a működését.
A DCT-ről DCB formátumra való átalakításhoz több memória kell, mint a DCB fájl beolvasásához, és használatához. Így ha nincs elég memória a szótár átalakításához, akkor meg lehet próbálni az átalakítást egy másik gépen, akár másik operációs rendszer alatt is. A különböző operációs rendszerek alatt készített fájlok megegyeznek.
Úgy is lehet használni a kivételszótárat, hogy csak azokat a szavakat tartjuk a hion.dct fájlban, amelyek az éppen fordítani kívánt anyagban előfordulnak. Ekkor lényegesen kisebb lesz a hion.dcb fájl, a szükséges memória, és minimális sebességnövekedés is elérhető.
A hion.dct fájl karakteres formában tartalmazza a kivételszótárat. A csomaghoz tartozó fájl az alábbi kritériumoknak eleget tesz. Ha mégsem, akkor az programhibának tekintendő.
A hion.dct fájl összetett szavakat tartalmaz, amelyben azon elválasztási helyek vannak megjelölve, amelyeket kivételként figyelembe kell venni. Ha ennél több elválasztási hely is be van jelölve, az memória- és sebességveszteséget okoz, de a működést egyébként nem befolyásolja. Két szót szóköz, vagy új sor választ el.
Egy szóban maximum 15 elválasztási hely lehet megjelölve.
A fájl tartalmazhat üres sorokat. Minden ', vagy % jel utáni karaktersorozat a sor végéig megjegyzés, a program figyelmen kívül hagyja.
A szótárban a szavak sorrendje tetszőleges, és a szavak sorrendjétől nem függ a keletkező bináris fájl, a következő kivételtől eltekintve:
Ha egy A szó prefixe egy másik B szónak, azaz B eleje megegyezik A betűivel például almás prefixe az almásrétes szónak., akkor A-nak a szótárban előbb kell szerepelnie, mint B. Ellenkező esetben a szótár átalakítása során a program egy figyelmeztetést ad, és A nem kerül bele a szótárba.
Csak akkor van értelme, hogy B is bekerüljön a szótárba, ha benne az A utáni részen is van kivételes elválasztás, vagy ha B-t egészen másképp kell elválasztani, mint A-t. Ellenkező esetben ugyanis B-t a szótárból való elhagyásával is helyesen fogja elválasztani a program. Így elegendő, ha a szótárban szerepel a vas-út bejegyzés, nem kell, hogy szerepeljen a vas-úton szó, ugyanakkor a vas-út-állomás bejegyzésnek később kell szerepelnie, mint a vas-út bejegyzés. Ilyen esetekben is figyelmeztet a program.
Egy szót a program akkor ismer fel, ha szerepel a szótárban, vagy ha a szótárban szerepel valamelyik prefixe.
A szótárban használhatók az 123 ékezetek, vagy a kiterjesztett karakterkészletű betűk ugyanúgy, mint a .hun fájlokban. A csomagban levő hion.dct fájl a hordozhatóság miatt az 123 ékezetekkel szerepel.
Egy szó csak betűket, az ékezeteket jelölő jeleket és elválasztó jelet tartalmazhat.
A fájl végét a fájl fizikai vége jelzi, vagy egy sor, amely a \eof jelet tartalmazza, azaz egy fordított törtvonalat, és az e, o és f kisbetűket.
A fájl egy fejlécből, és egy táblázatból áll.
A fejléc első három bájtja rendre 68, 67, 66, ami a DCB karakter sorozatnak felel meg az ASCII kódtáblában. A következő két bájt tartalmazza hexadecimális ASCII formában a HiOn azon verzió számát, amelyik a bináris fájlt generálta, majd pedig hasonló módon a következő két bájt azt a verziót, amelyik minimálisan szükséges a fájl beolvasásához. A verzióknál a magas érték szerepel először, és az alacsony másodszor. Ezután 3 bájton ugyancsak hexadecimális ASCII formában a generáló HiOn dátuma nap, hónap, év sorrendben. Az év az évszázadok elhagyásával, és 66-tal csökkentve jelenik meg. A dátum utáni bájt értéke 26. Ez IBM PC gépeken text fájlokban EOF jel, és így egy type DOS parancs nem dobja ki a fájl igazán bináris részét a képernyőre.
A fejléc utolsó nyolc bájtja a fájl maradék részének a hossza 4 bájton, valamint az első rekordra mutató pointer szintén 4 bájton. A bájtok sorrendje itt is a legkisebb helyiértéktől a legnagyobb helyiértékig halad.
A fájlban szerepelnek mutatók, amelyek rekordokra mutatnak. Ezek fizikailag hosszúszavak. Ezek értéke bájt eltolási érték a táblázat elejétől számítva, azaz, ha a fájlon belül akarjuk őket értelmezni, akkor a fejléc hosszát az értékhez hozzá kell adni, hogy a seek vagy lseek C könyvtári függvénynek megfelelő értéket kapjunk.
A fájl további része rekordok sorozata. Az egyes rekordok mérete nem állandó, hanem függ a rekord tartalmától. Minden egyes rekord tartalmazza a véges automata egy állapotát és az onnan kiinduló átmeneteket.
Egy rekord első bájtja tartalmazza az állapotból kiinduló átmenetek számát (n). A következő bájt értéke, a lehetséges elválasztások száma (h). Az ezután következő h darab bájt tartalmazza az elválasztások lehetséges helyeit szigorúan növekedő sorrendben. Ha h értéke nulla, akkor ez a rész hiányzik, vagy másszavakkal nulla darab bájt szerepel. Innen kezdve a rekord végéig 4n bájton szerepelnek az állapotból kiinduló átmenetek. Ezek mindegyike 4 bájtot foglal el, amelynek első bájtja az átmenet karaktere, a maradék három bájt pedig az új állapotnak megfelelő rekordra mutató pointer.
A HiOn program képes arra, hogy IBM--PC-n, VAX gépeken és UNIX-okon felismerje és kezelje a 127-nél nagyobb kódú karaktereket. A programban van több beépített táblázat. Mivel az IBM PC CWI és a DEC Multinational Character Set ékezetes karaktertáblázat nem üti egymást, ezért a táblázat egyszerre tartalmazza mind a kettőt. A /ICHARSET opcióval ennek a táblázatnak a tartalma átírható. Vigyázat! Ez a táblázat kiosztás az 1.2 verzióban megváltozott.
IBM PC | DEC Int. | |
Kód | Kód | Karakter |
129 | 252 | ü |
130 | 233 | é |
140 | 236 | Í |
141 | nincs | Í |
143 | 197 | Á |
144 | 201 | É |
147 | 244 | ő |
148 | 246 | ö |
149 | 242 | Ó |
150 | 251 | ű |
151 | 249 | Ú |
152 | 253 | Ű |
153 | 214 | Ö |
154 | 220 | Ü |
160 | 225 | á |
161 | 237 | í |
162 | 243 | ó |
163 | 250 | ú |
167 | 186 | Ő |
A /ICHARSET opcióban paraméterként meg kell adni annak a fájlnak a nevét, amelyik a mi táblázatunkat tartalmazza. Ennek a fájlnak minden egyes sora egy karaktert kell, hogy definiáljon. Egy sor három számból áll. Az első a karakter kódja, amit fel kell, hogy ismerjen a program. A második és harmadik szám a betű kétkarakteres kódját kell, hogy adja. Az első kód csak 127-nél nagyobb lehet, ennél kisebb kódú karakterekre ugyanis a program nem vizsgálja a táblázatot. A második két szám csak 128-nál kisebb szám lehet, mert a program egy konvertált érték alapján már nem nézi át még egyszer a táblázatot, és a kimenetbe 127-nél nagyobb kódú karakter fog kerülni. A számokat szóközök kell, hogy elválasszák. A decimális számok helyett megadhatunk karaktereket is, ezek a saját ASCII kódjukat jelentik. Ha egy számjegy karaktert, szóközt vagy backslasht akarunk megadni, akkor egy backslash kell, hogy megelőzze a karaktert.
Ilyen módon a HiOn négy üzemmódban tud dolgozni.
A 2 és 3 üzemmódok között nem lehet csak az 1 üzemmódon keresztül átkapcsolni. Matematikai mód előfordulhat a 1 és a 2 üzemmódon belül. Ilyenkor a matematikai mód, azaz a 4 üzemmód lezárása után a körülvevő üzemmódba kerül vissza a HiOn.
A HiOn a munka befejeztével egy statisztikát ír ki a képernyőre arról, hogy mit is csinált. A hion.hun fájl fordításakor például a következőt írta ki:
HiOn report40577 TeX karaktert írtam ki. 7039 szó volt, ebből 664 vezérlő szó. 47 bonyolult, discretionary elválasztás volt. 665 alkalommal merült fel ligatúra védelem, és ebből 1 alkalommal kellet discretionary formulát alkalmaznom. 5454 alkalommal vizsgáltam igekötő kezdetű szavakat és 304 alkalommal találtam is. 122 alkalommal vizsgáltam meg a szó többi részét is, 66 alkalommal találtam valódi igekötőt. 6374 alkalommal kerestem ság ség képzőt, és 8 alkalommal találtam.
Szívesen máskor is.
Ez azt jelenti, hogy körülbelül 40577 darab karakter került a TeX fájlba. Összesen 7039 szót dolgozott fel a HiOn és ebből 664 alkalommal a szó vezérlő szó volt. 47 alkalommal talált olyan szót a HiOn amelyikben hosszú összetett mássalhangzó volt.
665 olyan betűpárost, vagy betűhármast talált a program, amelyet ligatúraként szed ki a TeX, azonban csak 1 alkalommal szerepeltek ezek a karakterek olyan helyen, hogy közöttük a magyar nyelv elválasztási szabályai szerint elválasztást kellett volna megengedni. Általában magyar szövegben csak akkor fordulnak elő elválasztandó ligatúrát tartalmazó szavak, ha az szakszöveg, és olyan szavakat tartalmaz, mint effektív. Egyébként a dokumentációban ez az a szó, amit a HiOn megtalált.
5454 alkalommal vizsgálta meg a HiOn a szavak elejét, hogy nem igekötő-e a prefixük. Ebből 304 alkalommal találta úgy, hogy formailag a szó kezdete igekötő, és ebből 182 alkalommal olyan igekötőről volt szó, amely mindig igekötőként jelenik meg a szó elején, és így nem kellett megvizsgálni a szó további részét. 122 olyan alkalom volt, amikor csupán a szó elejének a vizsgálata nem döntötte el, hogy a kezdet igekötő, és meg kellett vizsgálni a szó további részét is. Ebből 66 alkalommal talált a HiOn igazi igekötőt.
6374 alkalommal nézte meg a HiOn, hogy a szóban szerepel-e a cság, cség vagy a zság illetve zség karakter sorozat. 8 alkalommal volt.
A /NOSTATISTICS vagy a /SILENT opciókkal lehet megkérni a HiOn-t arra, hogy ne írjon ki statisztikát.
Karbantartás
Mint minden program, valószínűleg a HiOn sem hibamentes. Szinte
biztos, hogy maradtak benne hibák.
A HiOn működésének, illetve a segédfájlok tartalmának meg kell felelnie az ebben a leírásban szereplő állításoknak. Minden másfajta működés hibának számít.
Egyes helyeken a program olyan feltételeket is ellenőriz, amelyeknek nem szabad előfordulniok. Ha a feltétel mégis előfordul, akkor egy hibajelzést generál, ami valahogy így néz ki:
HION INTERNAL ERROR STATE=xxx PHASE=yyy MESAG=ssssss Please contact: h3309ver@ella.huHa ezt produkálja a program, akkor írd meg, a két xxx és yyy számot, a ssssss szöveget, a HiOn verzió számát, a kibocsátási dátumát (ez a verzió szám mellett jelenik meg az 1.6 verzió egyes példányainál és a felett), egy olyan bemenő szöveget, amire ezt produkálta a program, az opciókat, amit használtál, az operációs rendszer és a C fordító típusát és verzió számát.Ha lehet, akkor a lehető legrövidebb olyan szöveget küldd, ami ezt produkálja.
Ha a program egyszerűen meghal (ez PC-n fordulhat elő) vagy Segmentation fault hibajelzést ad (ez inkább UNIX-ra jellemző), vagy egy hosszabb szöveget ír ki (pl. VMS rendszer alatt) akkor hasonló dolgokat írjál, mint fent, és írd meg, hogy mit írt ki az operációs rendszer.
Ha a program valamit rosszul választ el, és így készít el egy efántot, és biztos, hogy rosszul választ el, akkor írd meg, hogy mit választ el rosszul. Vigyázz! Ha a kinyomtatott szövegben valami rosszul van elválasztva, akkor még mindig lehet, hogy a TeX választott el rosszul egy olyan helyen, ahol a HiOn nem jelölt be elválasztást. Nézdd meg a generált TeX szöveget, hogy be van-e jelölve az elválasztás!
Ha nem fogadja el a TeX vagy a LaTeX a generált szöveget, akkor valószínűleg már az eredeti .hun szöveg sem volt jó. Ilyesmi miatt csak akkor írjál, ha nagyon nagyon nagyon nagyon nagyon nagyon nagyon nagyon nagyon biztos vagy benne, hogy a HiOn tolja el a dolgot. Ha LaTeX-et használsz, akkor ellenőrizd le, hogy nem felejtetted-e el a /LATEX opciót.
Ha a generált fájl nem egyezik meg azzal, mint amit te várnál a HiOn-tól, akkor gondold végig, hogy nem te értettél-e félre valamit a leírásból. Ha úgy gondolod, hogy nem, és a HiOn hibázik, akkor írd meg nekem, és akkor még mindig lehet, hogy azt fogom válaszolni, hogy amit találtál, az nem hiba, hanem így kell, hogy legyen.
Ha bármi egyéb gondod van, akkor csak írjál nyugodtan. Eddigi életemre és szokásaimra visszatekintve azt mondhatom, hogy eMail-re általában még aznap szoktam válaszolni. Ez nem igaz, mióta az ELLA rendszerhez volt szerencsém., levélre egy éven belül. Az eMail címem megtalálható a programban. Ha nem tudsz eMailen keresztül elérni, akkor írjál egy közönséges levelet a következő címre:
Verhás Péter
Patyolat utca 4.
Budapest XV. kerület
1155
Ugye nem kell mondani, hogy HUNGARY illetve EUROPE ha Magyarországon kívülről írnád a levelet.
Nagyon fontos, hogy ha levelet írsz, és van, akkor írd meg az eMail címedet.
Ha ebben a dokumentációban, vagy bármely más fájlban helyesírási hibát találsz, akkor arra kérlek, hogy azt rajtam kívül ne áruld el senkinek. A szövegben mindenhol a szabványos írásmódot használtam, azaz fájl és bájt nem pedig file vagy byte. Lehet szeretni, utálni, de ez a helyes.
Olvassa a hion_opt környezeti változót, és két új opció is született, a '+' és a ':'. 1992. május 18.
Ha minden lehetőséget figyelembe akarnánk venni, akkor egy olyan programot kellene írni, aminek a bonyolultsága legalább akkora lenne, mint a TeX rendszeré, akkor pedig már egyszerűbb egy magyar TeX-et készíteni. Van is valami ilyen, a MaTeX, kérdés, hogy akkor miért létez a HiOn. Próbáld ki a MaTeX-et, és megtudod. A HiOn célja az volt, hogy egy olyan preprocesszor legyen, amelyik egyszerű, rövid, hordozható. Ezért van az is, hogy a HiOn egyetlenegy C programfájlban került terjesztésre. Így mindenkinek le kell tudnia fordítani, nem vesznek el fájlok a másolás közben, nem kell makefile-okkal bíbelődni.
A program fejlődik, újabb verziók látnak napvilágot, és a felhasználók kéréseit is figyelembe véve fejlődik a program. Ugyanakkor időről időre vannak olyan kívánságok, amelyeknek a teljesítése nem reális, a megvalósítás túl bonyolult lenne, ugyanakkor a használat könnyebbsége ezt nem ellensúlyozná. Egy ilyen kérés volt az, hogy a HiOn ismerje fel matematikai módon belül a nem matematikai módban levő részeket. Ehhez a HiOn-nak elemeznie kellene a matematikai módban írt szöveget, és egy olyan funkciót valósítana meg, amire csak ritkán van szükség, és megfelelő használattal kikerülhető.
Persze mit jelent a megfelelő használat? Van, amikor a válasz egyszerű, és van, amikor nem magától értetődő. Az ilyen kérdésekre szeretnék választ adni ebben a fejezetben.
Nem szabad engedni, hogy a HiOn kikapcsoljon a matematikai mód kezdetét jelző $ jelnél, ezt pedig úgy lehet elérni, ha már kikapcsolt állapotban van. Így a $ jel helyett ||$-t kell írni, illetve $$ helyett ||$$ jelsorozatot és a matematikai mód végét jelző $ vagy $$ helyett $@@ és $$@@ jeleket. Így a HiOn a matematikai módon belül ugyanúgy kikapcsolt állapotban lesz, mintha a $ vagy $$ jel kapcsolta volna ki, de a @@ jelekkel bármikor bekapcsolhatjuk, és a || jelekkel bármikor ismét kikapcsolhatjuk a működését. Egy dologra kell odafigyelni: A matematikai mód végén a HiOn legyen kikapcsolt állapotban, ellenkező esetben a matematikai módot kikapcsoló $ vagy $$ jelet matematikai mód kezdetének fogja tekinteni, és felborul.
A kivételszótár beolvasása elég sok időt vesz igénybe, ezért néha érdemes lehet a /DONT_USE_DICTIONARY opcióval az összetett szavak figyelését kikapcsolni.
A HiOn 1.7 verziójától kezdve lehetőség van arra, hogy a HiOn-t rávegyük, hogy az ilyen szavak után egy \- jelet írjon. (/POSTHYPHEN opció) Ilyenkor a két karakternél hosszabb szavak után a HiOn egy \- jelet tesz. Ez a TeX számára azt jelenti, hogy a szót mi választjuk el, és azokat a szavakat, amelyekben akár \-, akár discretionary elválasztás szerepel, nem választja el, csak a megadott helyeken. Így a TeX nem fogja elválasztani ezeket a szavakat sem.
A jövő útja
Mivel az összetett szavak szótárának beolvasása aránylag sok
időt vesz időbe, ezért fontolom, hogy a HiOn vezérelhető
legyen egy programfájllal, és egy elindítással több fájlt is
átkonvertáljon. Ekkor csak egyszer kell beolvasni a kivételfájlt.
Jogok és garanciák
Az ebben a fejezetben foglaltak kizárólag a program 4.0 verziójára érvényesek.
A HiOn program GPL licence alatt használható. A korábbi 3.0 változatig érvényes saját licence a 4.0-tól kezdődően GPL, a következő kiterjesztéssel: Semmilyen felelősséggel nem tartozom azon nyomtatványok tartalmát illetően, amelyek a HiOn-nal készültek, még abban az esetben sem, ha az adott nyomtatvány elkészítéséhez a HiOn használati jogát megvették. A HiOn használatának engedélyezése, vagy használati jogának eladása egy adott, vagy több, előre meg nem határozott kiadványhoz nem jelenti azt, hogy a kiadvány tartalmával egyetértek, vagy azt ismerem. A kiadvány bárminemű, kiadói, szerzői vagy egyéb jogot sértő tartalmáért a kiadvány kiadója és szerzője az egyedüli felelős. A HiOn-t csak ennek tudomásulvételével lehet használni.
Semmiképpen nem használható a HiOn olyan anyagok készítésére, amelyek készítése vagy terjesztése törvénybe ütközik, így különösen nem használható olyan szövegek kezelésére, amelyek alkalmasak gyűlöletkeltésre, megfélemlítésre.
Nem volt értelme a korábbi speciális licence-nek. A program első verziójakor nem létezett még GNU, de gyakorlatilag mindenkit magasról nem érdekelt a licence, és lopta a programot. Egy meglehetősen nagy újságkiadó cég informatikusa még fel is hívott, és segítséget kért, hogy a szedési rendszerükbe hogyan lehetne beilleszteni, de fizetni eszébe sem jutott, én meg nem akartam pereskedni. Nem fogom megmondani, még személyesen sem, hogy melyik cég, mert neki esetleg eszébe jutni pereskedni.
A program 3.0 és 4.0 verziója között technikai, fejlesztési különbség nincs, csak a licence.
Köszönet illeti Hollósi Józsefet, aki az XMAIL rendszer létrehozója, és aki hajlandó volt felvenni a HiOn-t a lekérdezhető dokumentumok listájába.
Köszönet illeti Kornai Andrást. LaTeXen keresztül küldött nekem egy magyar gyakorisági szótárból [2] egy kivonatot, amelynek alapján az igekötők felismerését végző programrészt tudtam megírni.
Köszönettel említem Tihanyi László és Prószéki Gábor nevét, akik felhívták a figyelmemet az olyan szavak, mint kilencszer, valamint igazság létezésére. Ők voltak azok, akik egy olyan szótárat bocsátottak a rendelkezésemre, amelyben magyar szavak elválasztva szerepeltek, és amelynek a segítségével elő tudtam állítani a hion.dct fájlt. (Lásd még a Összetett szavak. fejezetet!)
A HiOn két legaktívabb felhasználója Poppe András és Kocsis Tamás. Igen sok apró és kevésbé apró hibát, hiányosságot derítettek ki a HiOn használata során, és ezek most mind benne lennének a programban, ha nem veszik a fáradságot, hogy figyelmeztessenek. De vették, amikor pedig nem (ha volt ilyen), arról nem tudok.
[2] András Kornai, Szótári adatbázis az akadémiai nagyszámítógépen, Műhelymunkák a nyelvészet és társtudományai köréből, 2. MTA Nyelvtudományi Intézet, Budapest, 65-79, (1986)
[3] Leslie Lamport, LaTeX A Document Preparation System, Addison Wesley Publishing Company, (1986)