% % FILE: hion.hun % %% This file contains Hungarian text in Hungarian LaTeX format, therefore the %% rest of the comment is in Hungarian as well. Sorry. % %% A %% jelek uta1n a1llo1 megjegyze1seket nem kell komolyan venni. Ezt sem. % % Ez a fa1jl a hion program dokumenta1cio1ja1t tartalmazza. A szo2veg % kinyomtata1sa a % hion /LATEX hion (legala1bb 1.7 verzio1) % latex hion % latex hion % parancsokkal to2rte1nik. A keletkezett .dvi fa1jlt minden rendszeren % ma1ske1pp kell papi1rra1 alaki1tani, i1gy ebben nem tudok segi1tse1get % nyu1jtani. % % Persze a hion programot le kell fordi1tani ahhoz, hogy a 'hion % /LATEX hion' parancsot ki lehessen adni, ehhez viszont el kell % olvasni a szo2veget, amihez viszont kell a hion program. (O2rdo2gi % ko2r.) Ha ki akarsz jutni ebbo3l az o2rdo2gi ko2rbo3l, e1s most % e1ppen szeretne1d lefordi1tani a programot, e1s nem a1ll % rendelkeze1sedre ennek a dokumenta1cio1nak a kinyomtatott % va1ltozata, akkor keresd meg a % 'bikanyak' % karakter sorozatot (emacs editorban CTRL-S, vi-ban / jel a kerese1s, TC % editorral CTRL-Q F, ne-vel ALT-F a kerese1s, Multi Edit-tel pedig % a1ltala1ban F6 vagy amire e1ppen a1lli1tva van.). % Ott olvashatod a tova1bbi kommenteket, ami minden olyan sor, ami % jellel % kezdo3dik. %------------------------------------------------------------------------------ % Histo1ria: (a hion.hun to2rte1nete) % 1991. a1prilis 22. a dokumenta1cio1 elso3 va1ltozata1nak kiada1sa. Ezuta1n % a histo1ria1ban egy so2te1t u3r ko2vetkezik, ege1szen % addig, ami1g % 1991. ju1lius 30. a histo1ria komment bevezete1sre keru2lt a % dokumenta1cio1ban. % 1991. okto1ber 21. a megva1ltozott eMail ci1met a1ti1rtam, e1s % ezt bei1rtam a histo1ria1ba. % % 1991. november 1. u1j fejezet keru2lt a dokumenta1cio1ba: a % Jo2vo3 u1tja. % Egye1b apro1 va1ltoztata1sok. % 1992. ma1jus 3. Hosszabb kihagya1s uta1n isme1t karbantartom a doksinak % ezt a re1sze1t. % 1992. ju1lius 14. O2sszetett szavak kezele1se1nek doksija. % % 1994. janua1r 23. U1j opcio1kezele1s, miuta1n kifogyott az ABC % \documentstyle [12pt] {article} || % megleheto3sen rossz HiOn logo \def\HiOn/{{\rm \hbox{H\kern-.1em\lower-.8ex\hbox{I}\kern -0.2em\lower.7ex \hbox{O}\kern -0.5em\hbox{N}}}} \def\npeldany{50} \def\tpeldany{\"otven} \def\hionversion{3.0} @@ \title{\LARGE{\bf\HiOn/ V\hionversion\ Felhaszna1lo1i Lei1ra1s}} \author{\large{\bf Verha1s Pe1ter}} \date{1994. ma1jus 29.} \begin{document} \maketitle \begin{abstract} A \HiOn/ magyar szo2vegek \TeX\ forma1tumra valo1 hoza1sa1t teszi leheto3ve1. A magyar szo2vegben a1talaki1tja az e1kezet jelo2le1st a \TeX\ sza1ma1ra megfelelo3en, e1s bejelo2li a lehetse1ges elva1laszta1si helyeket. A program kimenete a1ltala1ban a \TeX\ sza1ma1ra ke1szu2l. Egy hasonlo1 funkcio1kat ella1to1 kora1bbi program volt az ETEX, amelyet To1th Ga1bor i1rt PASCAL nyelven. A \HiOn/ program az ETEX professziona1lis va1ltozata. \end{abstract} %========================================================================== \typeout{||Hion dokumenta1cio1 fordi1ta1sa kezdo3do2tt...@@} \section{|Mire ke1pes a \HiOn/ ?}@ %%mindenre... %================================ \typeout{||Mire ke1pes a HION ?@@} % A \HiOn/ a1ti1rja a magyar e1kezetes maga1nhangzo1kat a Pro1sze1ki-fe1le szabva1ny vagy a Babai-fe1le jelo2le1sro3l \TeX\ forma1ra, valamint bejelo2li a \TeX\ sza1ma1ra a magyar nyelvtannak megfelelo3 elva1laszta1si helyeket. A \HiOn/ a bonyolult elva1laszta1si szaba1lyokat is ismeri, i1gy helyesen fogja elva1lasztani az o2sszes magyar szo1t. Ismeri, e1s helyesen va1lasztja el a ch, dz, dzs betu3ket, a hosszu1 o2sszetett ma1ssalhangzo1kat (pe1lda1ul ssz). Ismeri a leggyakoribb magyar igeko2to3ket, e1s helyesen va1lasztja el % A leggyakoribbakat e1s nem a leg\-gyakoribbakat. az igeko2to3s szavakat. A \HiOn/ helyesen va1lasztja el az olyan szavakat is, mint {\it igazsa1g}\/ vagy {\it nyolcszor}. Ha me1gis rosszul va1lasztana el a \HiOn/ valamilyen szo1t, akkor a szabva1ny \TeX\ jelo2le1ssel meg lehet adni, hogy hol kell elva1lasztani az adott szo1t, vagy a szo1t fel lehet venni a \HiOn/ kive1tel-szo1ta1ra1ba, az o2sszetett szavak ko2ze1. A \HiOn/ tiszteletben tartja a \TeX\ program saja1t parancsait, e1s va1ltozatlanul hagyja azokat a szavakat, amelyek fordi1tott to2rtvonal karakterrel kezdo3dnek. Opcio1val kapcsolhato1an felismeri a \LaTeX\ szekvencia1it, i1gy azokat sem kell megve1deni az elva1laszta1sto1l. Felismeri a \TeX\ nem backslash karakterrel kezdo3do3 kulcsszavait, e1s ezeket va1ltozatlanul hagyja. A \HiOn/ tiszteletben tartja a \TeX\ matematikai mo1dja1t e1s a {\tt \$} illetve {\tt \$\$} ko2zo2tt levo3 re1szeket va1ltozatlanul hagyja. Az elva1laszta1s bejelo2le1se, illetve az e1kezetek a1talaki1ta1sa kapcsolhato1 a szo2vegben a {\tt @} e1s a {\tt |||@@} karakterekkel. A \LaTeX\ opcio1 haszna1latakor a \HiOn/ felismeri a \verb+\( \)+ e1s \verb+\[ \]+ matematikai mo1dokat. A \HiOn/ felismeri a PC e1s a DEC kiterjesztett karakterke1szleteit is (CWI, ISO, 852), amit aka1r keverve a szabva1ny vagy Babai-fe1le jelo2le1ssel lehet haszna1lni. A \HiOn/ arra is hajlando1, hogy egy szo2vegbo3l kiirtsa az e1kezeteket, vagy hogy \TeX\ forma1ro1l szabva1ny forma1ra hozza az e1kezetek jelo2le1se1t. A \HiOn/ konfigura1lhato1, e1s a mu3ko2de1se opcio1kkal veze1relheto3. A \HiOn/ C nyelven lett megi1rva e1s lefordi1thato1 UNIX, VMS e1s MSDOS opera1cio1s rendszereken. Valo1szi1nu3leg egye1b rendszereken is lefordul, de csak ezeken lett eddig kipro1ba1lva. \section{|Mit NEM tud a \HiOn/?}@ %%Hu2lye ke1rde1s. A hion mindent tud. %=============================== \typeout{||Mit NEM tud a HION?@@} % A \HiOn/ nem ke1pes e1kezetek ne1lku2l i1rt barba1r szo2vegbe az e1kezeteket belerakni. I1gy aki e1kezetek ne1lku2l i1r magyarul, arra sze1gyen, gyala1zat e1s Kornai Andra1s minden a1tka. A \HiOn/ nem ke1pes 200 karakterne1l hosszabb sorokat kezelni. Ha valakinek erre lenne szu2kse1ge, akkor i1rja a1t a programban az {\tt SRL} makro1 e1rte1ke1t ki1va1nalmainak megfelelo3en. A \HiOn/ nem ke1pes 200 karakterne1l hosszabb fa1jl nevek kezele1se1re. Ha valakinek erre lenne szu2kse1ge, akkor i1rja a1t a programban a {\tt FNL} makro1 e1rte1ke1t ki1va1nalmainak megfelelo3en. A \HiOn/ 1.7-ne1l kora1bbi verzio1i nem ismerik fel az o2sszetett szavakat.%%De az 1.7 verzio1 ma1r MINDENT TUD!!! \section{|Fa1jlok}@ %%E1n fa1jlok, te fa1jlsz o3 fa1jlik \label{FILIST} %================== \typeout{||Fa1jlok@@} % A \HiOn/ programcsomag a ko2vetkezo3 fa1jlokbo1l a1ll: \begin{itemize} \item {\tt hion.c} a \HiOn/ program szo2vege. \item {\tt hion.hun} a \HiOn/ lei1ra1sa \item {\tt reg.hun} felhaszna1lo1i regisztra1cio1s lap {\tt .hun} foma1tumban leve1lben valo1 regisztra1la1shoz. (\ref{JOGOK}. fejezet) \item {\tt reg.txt} felhaszna1lo1i regisztra1cio1s lap {\tt .txt} forma1tumban eMailen valo1 regisztra1la1shoz. (\ref{JOGOK}. fejezet) \item {\tt kiad.hun} kiadva1ny regisztra1cio1s lap {\tt .hun} forma1tumban leve1lben valo1 regisztra1la1shoz. (\ref{JOGOK}. fejezet) \item {\tt kiad.txt} kiadva1ny regisztra1cio1s lap {\tt .txt} forma1tumban eMailen valo1 regisztra1la1shoz. (\ref{JOGOK}. fejezet) \item {\tt hion.dct} az o2sszetett szavak kive1telszo1ta1ra, amit a {\tt dicc} vagy a {\tt hion /FUNCTION=DICC} paranccsal kell bina1ris forma1ra hozni. (\ref{COMPWORDS}. fejezet) \end{itemize} Egyes csomagok tartalmazhatnak me1g ma1s fa1jlokat, de ezek mind automatikusan genera1lhato1ak a fenti fa1jlokbo1l: \begin{itemize} \item {\tt hion.exe} IBM-PC futtathato1 fa1jl, a {\tt hion.c} lefordi1tott va1ltozata. \item {\tt hion2.exe} IBM-PC futtathato1 fa1jl, a {\tt hion.c} lefordi1tott va1ltozata, 802(3,4\dots)86 processzoros ge1pekre. Ha valamelyik ilyen processzoros ge1pen ez a va1ltozat nem mu3ko2dne, a hion.exe aze1rt kell, hogy mu3ko2djo2n. \item {\tt hion.dcb} a {\tt hion.dct} fa1jl a1talaki1tva bina1ris forma1tumra a {\tt hion /FUNCTION=DICC} paranccsal. \end{itemize} \section{|Hogyan kell fordi1tani?}@ %% kinyitod a sza1dat, e1s ahogy a % %% torkodon kife1r %================================ %% 'bikanyak' bikonyak % Ha az editorban u1gy jutotta1l ide, hogy a 'bikanyak' % karakter sorozatot kerested, e1s a programot akarod lefordi1tani, akkor % kezd el olvasni a szo2veget. Azokat a szavakat, amelyek \ jellel % kezdo3dnek, felejtsd el. Ezek a LaTeX-nek szo1lnak. Ugyancsak ne to2ro3dj % a {, }. |, @ jelekkel. A1ltala1nossa1gban ba1nj u1gy a szo2veggel, hogy % amit nem e1rtesz, nem magyarul van, azt tekintsd u1gy mintha ott sem % lenne. Olvasd a szo2veget ege1szen addig a sorig, aminek a tartalma: % % '% A programot most ma1r le kell tudnod fordi1tani.' % \typeout{||Hogyan kell fordi1tani?@@} % A \HiOn/-t u1gy kell lefordi1tani, mint ba1rmilyen ma1s C programot, i1gy ha ebben nagy gyakorlatod van, akkor ezt a fejezetet a1tugorhatod. Az 1.7 illetve ke1so3bbi verzio1k MSDOS alatt csak {\tt HUGE} modellben fordulnak le jo1l. \subsection{|UNIX alatt}@ %%Unix alatt? Nem lehet gond. %---------------------- A {\tt|| cc -o hion hion.c}@@ paranccsal lehet lefordi1tani a programot. Minden hibajelze1s ne1lku2l le kell hogy forduljon minden rendszeren. Ezek uta1n puha csatola1sokat lehet le1trehozni a ve1grehajthato1 fa1jlhoz a \begin{verbatim}|| ln -s hion huon ln -s hion huoff ln -s hion numoff \end{verbatim}@@ parancsokkal. A csatola1sokat nem felte1tlenu2l kell le1trehozni, a program mu3ko2de1se1t opcio1kkal is lehet szaba1lyozni. (La1sd a \ref{OPCIO1K}. fejezetet!) \subsection{|VMS alatt}@ %%van olyan o3ru2lt aki ezt haszna1lja? Ja igen. E1n. %--------------------- A {\tt|| CC~HION}@@ majd {\tt|| LINK~HION}@@ parancsokkal hozhatjuk le1tre az exe fa1jlt. Ha a C fordi1to1 a \begin{footnotesize} ||\begin{verbatim} %CC-I-NOOPTIMIZATION, Complex control flow caused optimization to be suppressed for procedure or function. "igeko2to3" %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. \end{verbatim}@@ \end{footnotesize} \noindent u2zeneteket adja, az nem jo1, de nem baj. Egyes rendszereken specia1lis, a C nyelvhez tartozo1 ko2nyvta1rakat is hozza1 kell fu3zni a programhoz. Ha a {\tt LINK} parancs hibajelze1st ad, akkor pro1ba1ld meg a \centerline{\tt|| LINK~HION,SYS\$SHARE:VAXCRTL.OLB/LIB}@@ \noindent parancsot, e1s ha ez sem segi1t, akkor meg kell ke1rdezni a rendszergazda1t, hogy hogyan kell C programot ``linkelni''. Ezek uta1n, aze1rt, hogy a parancssorba argumentumokat lehessen megadni a program sza1ma1ra, ki kell adni a \begin{verbatim}|| HION :== "$ $DRIVE[DIRECTORY]HION.EXE" \end{verbatim}@@ parancsot. A parancsban a {\tt|| DRIVE}@@ e1s a {\tt|| DIRECTORY}@@ ne1v rendszerenke1nt ma1s e1s ma1s. A {\tt|| DRIVE}@@ e1rtelemszeru3en az a meghajto1, ahol a munkateru2leted van, a {\tt|| DIRECTORY}@@ pedig az a direktori, ahol a \HiOn/ futtathato1 ko1dja1t el akarod helyezni.\footnote{Ha ve1gke1pp nem tudod, hogy mit kell bei1rni ennek a ke1t szo1nak a helye1re, akkor add ki a {\tt|| SHOW DEFAULT}@@ parancsot. Amit ez a parancs kii1r, azt kell a {\tt|| \$DRIVE[DIRECTORY]}@@ helye1re i1rni.} Mivel az i1gy definia1lt logikai ne1v csak addig e1rve1nyes, ami1g ki nem le1pu2nk a rendszerbo3l, eze1rt ezt a parancssort e1rdemes a {\tt|| LOGIN.COM}@@ fa1jlban elhelyezni. Ha abban a direktoriban helyezed el a futtathato1 ``image'' fa1jlt, amelyikbe a bejelentkeze1s uta1n keru2lsz, akkor a {\tt|| \$DRIVE[DIRECTORY]}@@ helyett haszna1lhatod a {\tt|| SYS\$LOGIN:}@@ logikai nevet is (e1s ne hagyd le a ve1ge1ro3l a ketto3spontot). Ha van a lemezen bo3ven helyed (ezt a {\tt|| SHOW~QUOTA}@@ paranccsal elleno3rizheted), akkor az exe fa1jlt a1tma1solhatod {\tt HUOFF.EXE}, {\tt HUON.EXE}, {\tt DICC.EXE} e1s {\tt NUMOFF.EXE} fa1jlnevekre, e1s ezekhez is definia1lhatsz logikai nevet. Ez azonban nem szu2kse1ges, mert a program mu3ko2de1se opcio1kkal is veze1relheto3. (La1sd a \ref{OPCIO1K}. fejezetet!) Megteheto3 az is, hogy a \begin{verbatim}|| SET FILE /ENTER=HUOFF.EXE HION.EXE SET FILE /ENTER=NUMOFF.EXE HION.EXE SET FILE /ENTER=HUON.EXE HION.EXE \end{verbatim}@@ parancsokkal plusz neveket rendelu2nk a futtathato1 fa1jlhoz, e1s i1gy ku2lo2n helyfoglala1s ne1lku2l (kive1ve a direktori bejegyze1s helye1t) ele1rhetju2k azt, mintha ezekre a nevekre ma1soltuk volna a1t a fa1jlokat. Ezekkel az extra bejegyze1sekkel azonban csi1nja1n kell ba1nni, mert a to2rle1su2k a {\tt| SET FILE /REMOVE}@ paranccsal to2rte1nik, e1s ha egy fa1jl o2sszes neve1t kito2ro2ltu2k ezzel a paranccsal, akkor a fa1jl maga ottmarad a lemezen, foglalja a helyet, e1s kito2ro2lhetetlen. Teha1t a to2rle1s sora1n az egyik ne1vvel a {\tt| DELETE}@ parancsot kell haszna1lni. Ha me1gis megto2rte1nt a baj, akkor meg kell ke1rni valakit, aki SYSTEM privile1giumokkal rendelkezik, hogy tegye rendbe a lemezt az {\tt| ANALYZE /DISK}@ paranccsal. A DEC manua1l aja1nlata szerint a {\tt| SET FILE /ENTER}@ e1s a {\tt| SET FILE /REMOVE}@ parancsokat soha ne haszna1ljuk.\footnote{Akkor meg minek vannak?} \subsection{|MS--DOS alatt}@ %%Igaz, oprendszerekro3l volt szo1, de aze1rt... %-------------------------- Ha a csomagban benne van a {\tt hion.exe} e1s a {\tt hion2.exe} fa1jl, akkor nem kell lefordi1tani. Ha AT ge1pen dolgozol, akkor pro1ba1ld meg a {\tt hion2.exe} fa1jlt haszna1lni. Ba1rmelyik C fordi1to1val le kell, hogy forduljon a program. Mivel az 1.7 verzio1 felett egy nagy szo1ta1rat is kezel a program, eze1rt aja1nlatos valamilyen nagy memo1ria modellt, leheto3leg {\tt HUGE}, haszna1lni. E1n a Borland ce1g TURBO C++ fordi1to1ja1nak 1.0 verzio1ja1t haszna1ltam, valamint MSC 5.0-t, de az MSC-vel fordi1tott va1ltozat nem mu3ko2do2tt. Elvileg le kell, hogy forduljon kora1bbi TC verzio1kkal is. Ekkor, mivel a forra1sfa1jl hosszabb, mint 64KB, eze1rt vagy a TCC.EXE programot kell haszna1lni, vagy pedig egy kis egysoros \begin{verbatim}|| #include "hion.c" \end{verbatim}@@ programot kell lefordi1ttatni a {\tt TC.EXE} programmal.\footnote{E1n nem pro1ba1ltam, de a1lli1to1lag egy opcio1 haszna1lata1val ra1 lehet bi1rni a {\tt|| TC}@@-t arra, hogy haszna1lja a kiterjesztett memo1ria1t, e1s akkor elbi1rja a 64KB-na1l hosszabb fa1jlokat is.} (Ne felejtsd el, hogy ekkor a keletkezett fa1jl nem {\tt HION.EXE}, hanem pl. {\tt NONAME.EXE} lesz. Ezt ma1sold a1t a {\tt HION.EXE} ne1vre, e1s az eredetit to2ro2ld ki.) A programot szerkeszteni pe1lda1ul az {\tt NE.COM} programmal lehet. Ha minden warningot bekapcsolsz, akkor o2sszesen 172 darabot fog genera1lni a TC 2.0 (\HiOn/ 1.3 verzio1). Ha zavar, akkor a ko2vetkezo3 warningokat kapcsold ki: \begin{verbatim}|| 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 \end{verbatim}@@ Ezek uta1n nem szabad, hogy ba1rmife1le hibajelze1st adjon a TC 2.0. Ha van ele1g helyed a lemezen, akkor a programot a1tma1solhatod a {\tt HUOFF.EXE}, {\tt HUON.EXE} e1s {\tt NUMOFF.EXE} fa1jlnevekre. Ez azonban nem szu2kse1ges, mert a program mu3ko2de1se opcio1kkal is veze1relheto3. (La1sd a \ref{OPCIO1K}. fejzetet!) MS--DOS alatt nincsen szabva1nyos leheto3se1g csatola1sok le1trehoza1sa1ra u1gy, mint UNIX alatt, e1s me1g u1gy sem, mint VMS alatt. % A programot most ma1r le kell tudnod fordi1tani. \section{|A program elindi1ta1sa}@ %%Kihu1zod a szivato1t, ... %=============================== %% a HiOn automata szivato1s :-) \typeout{||A program elindi1ta1sa@@} % Ha a programot lefordi1tottad, e1s az opera1cio1s rendszernek megfelelo3en mo1dosi1tottad a {\tt LOGIN.COM} fa1jlt, illetve a1tma1soltad a programot, vagy le1trehoztad a puha csatola1sokat, akkor elindi1ta1sa a neve1nek ({\tt hion}) bei1ra1sa1val to2rte1nik. A program megne1zi a nulladik argumentumot (ami a fa1jl neve), e1s innen tudja, hogy mit kell tennie. Ha nem ke1szi1tettu2nk annyi ma1solatot az exe fa1jlbo1l, mint aha1ny funkcio1 van, akkor a {\tt|| /FUNCTION}@@ opcio1val ira1nyi1thatjuk a konverzio1t. Opcio1t \verb+-+ vagy \verb+/+ karakter elo3z meg. Opcio1k a parancssorban ba1rhol elhelyezkedhetnek. Opcio1kat o2ssze is i1rhatunk, teha1t nem kell felte1tlenu2l ||\verb+/SILENT /LATEX+@@-t i1rni, hanem i1rhatunk egyszeru3en ||\verb+/SILENT/LATEX+@@-t. Azokat az argumentumokat, amelyeket nem elo3z meg \verb'-' illetve \verb'/' a program fa1jlne1vnek tekinti. Fa1jlnevek sem egyma1ssal, sem pedig opcio1kkal nem i1rhato1k egybe. Elso3 a bemeneti fa1jl neve. Ha nincs megadva kiterjeszte1s, \verb+.hun+, \verb+.txt+ vagy \verb+.tex+ kiterjeszte1st kap a fa1jl. Ma1sodik parame1ter a kimeneti fa1jl neve. Ezt nem kell megadni. Ha nem adjuk meg, akkor a program ugyanazt a nevet haszna1lja, mint a bemeneti fa1jl neve, de a konverzio1 ira1nya1to1l fu2ggo3en \verb+.txt+ vagy \verb+.tex+ kiterjeszte1ssel. Ha a ma1sodikke1nt megadott fa1jlne1v elso3 karaktere pont, akkor ezt u1gy e1rtelmezi a program, hogy a kimeneti fa1jlne1vnek csak a kiterjeszte1se1t adjuk meg, e1s ekkor maga a ne1v ugyanaz lesz, mint a bemeneti fa1jl neve, terme1szetesen a megadott kiterjeszte1ssel. Ha a kimeneti e1s a bemeneti fa1jl neve megegyezik, akkor a program, a VMS va1ltozatok kive1tele1vel, lea1ll. VMS alatt ekkor a kimeneti fa1jl neve ugyanaz lesz, mint a bemeneti fa1jlne1v, megegyeznek a kiterjeszte1sek is, e1s a fa1jl egy u1jabb verzio1ja jo2n le1tre. Ez nem okoz helyrehozhatatlan hiba1t. MSDOS e1s UNIX rendszer alatt azonban a kimeneti fa1jl megnyita1sa egyben to2ro2lne1 a bemeneti fa1jlt, e1s egyre1szt nem mu3ko2dne a program bemenet hi1ja1n, ma1sre1szt megsemmisu2l egy nehezen reproduka1lhato1 fa1jl. Egye1bke1nt ez a fajta haszna1lat VMS alatt is csak ritka1n indokolt, eze1rt VMS alatt is egy figyelmeztete1st ad a program. \section{|A program haszna1lata}@ %%Kinek-kinek tetsze1se e1s perverz % %%hajlamai szerint %================================ \typeout{||A program haszna1lata@@} % A program forra1sszo2vege1t tartsd biztonsa1gos helyen, pe1lda1ul egy WORM lemezen a pa1nce1lszekre1nyben, 20 me1terre a fo2ld alatt. Ha ez nincs, akkor egy {\sl direktori} is megteszi. A lefordi1tott va1ltozatot tedd abba a direktoriba, ahol a magyar \TeX\ fa1jlok vannak, vagy oda, ahova az egye1b |utility@ programokat szoktad tenni. A magyar \TeX\ fa1jloknak add a {\tt .hun} kiterjeszte1st, e1s i1rd o3ket az 123 jelo2le1ssel, vagy a CWI e1kezetes karaktereivel, vagy ba1rmely ma1s e1kezetekkel, gusztusod, e1s leheto3se1geid szerint. Ezekben a fa1jlokban ve1gezz minden javi1ta1st, e1s a genera1lt \TeX\ fa1jlokat csak mint ko2zbenso3 fa1jlokat haszna1ld. Ne tarts angol nyelvu3, {\tt .tex} kiterjeszte1su3 fa1jlokat abban a direktoriban, ahol a {\tt .hun} fa1jlok vannak, mert menthetetlenu2l le fogod egyszer o3ket to2ro2lni egy {\tt|| rm *.tex}@@ vagy jobb esetben csak egy reverzibilisebb DOS {\tt|| DEL *.TEX}@@ paranccsal. Akkor majd gondolj arra, hogy e1n szo1ltam, e1s ne engem okolj\footnote{Mit gondolsz, e1n ezt honnan tudom?}! \section{|Opcio1k}@ %%Lehet, hogy a fa1jl meg a ba1jt minta1ja1ra ezt is % %%nemsoka1ra opcijo1-nak kell i1rni. \label{OPCIO1K} %================== \typeout{||Opcio1k@@} A \HiOn/ mu3ko2de1se1t opcio1kkal lehet veze1relni. Az opcio1kat a parancssorba a program neve uta1n kell i1rni. Opcio1k e1s be- illetve kimeneti fa1jlnevek keveredhetnek, az opcio1knak nem felte1tlenu2l kell megelo3zniu2k a fa1jlneveket. Az opcio1kat a program balro1l jobbra dolgozza fel, e1s a ke1so3bbi opcio1k felu2lbi1ra1lhatja1k a kora1bbi opcio1kat. Minden opcio1t egy {\tt -} vagy {\tt /} jel vezet be. UNIX alatt egy fa1jl neve kezdo3dhet {\tt /} jellel, eze1rt ott csak a {\tt -} jel haszna1lhato1. Minden opcio1 egy szo1, amelyet esetenke1nt ro2vidi1teni lehet. Ha egy opcio1hoz e1rte1k is tartozik, akkor azt az opcio1 uta1n, egyenlo3se1gjellel vagy {\tt\~{}} (tilde) karakterrel elva1lasztva az opcio1to1l, de szo1ko2z ne1lku2l kell i1rni. \\ Pe1lda1ul: ||\begin{verbatim} hion -FUNC=HiOn \end{verbatim}@@ \noindent Itt a {\tt FUNCTION} opcio1hoz, amely a program mu3ko2de1si funkcio1ja1t hata1rozza meg, a {\tt HION} e1rte1ket rendeltu2k. Az opcio1kban a kis- e1s nagybetu3k egyene1rte1ku3ek. Az opcio1khoz rendelt e1rte1keket (amennyiben azok karakterfu2ze1rek) a \HiOn/ nagybetu3sre konverta1lja. Amennyiben szu2kse1g van a kisbetu3k mego3rze1se1re, akkor a karakterfu2ze1rt ide1zo3jelek ({\tt "}) vagy aposztro1fok ({\tt '}) ko2ze1 kell za1rni. Az egyes opcio1kat a1ltala1ban szo1ko2z va1lasztja el, de opcio1kat egybe is lehet i1rni. I1gy helyes a ||\begin{verbatim} hion /MAKE/BAR file.txt \end{verbatim}@@ \noindent parancssor e1ppu1gy, mint a ||\begin{verbatim} hion /MAKE /BAR file.txt \end{verbatim}@@ A bemeneti e1s kimeneti fa1jlneveket egy vagy to2bb szo1ko2z kell, hogy elva1lassza egyma1sto1l e1s az opcio1kto1l. Ezek alapja1n a ||\begin{verbatim} hion mfa1jl/MAKE /BAR \end{verbatim}@@ \noindent parancssor hiba1s. A ko2vetkezo3kben ismertete1sre keru2lnek az egyes opcio1k. Az opcio1k defini1cio1ja1ban az elso3 betu3k nagybetu3vel vannak i1rva, a tova1bbiak kisbetu3vel. A bevezeto3 nagybetu3k ke1pezik az opcio1 azon re1sze1t, amelyet mindenke1ppen be kell ge1pelni az opcio1 haszna1latakor. A tova1bbi karakterek opciona1lisak, de ha szerepelnek, nem te1rhetnek el a megadott karakterekto3l. Igy a {\tt FUNCTION} opcio1 defini1cio1ja {\tt FUNction} ami azt jelenti, hogy ez az opcio1 5 fe1leke1ppen ro2vidi1theto3, me1gpedig: ||\begin{verbatim} FUN FUNC FUNCT FUNCTI FUNCTIO \end{verbatim}@@ \noindent mo1dokon. Terme1szetesen ro2vidi1te1s ne1lku2l {\tt FUNTION}-nak is i1rhato1 az opcio1. A defini1cio1kban szerepelhetnek {\tt [} e1s {\tt ]} karakterek. Ezek a1ltala1ban a {\tt NO} vagy a {\tt DONT} szo1t za1rja1k ko2zre. Ennek jelente1se, hogy az adott opcio1t a {\tt NO} vagy {\tt DONT} szo1val is lehet haszna1lni, terme1szetesen ellente1tes e1rtelemmel. \def\opt#1#2{\newpage\subsection{{\tt #1}} \noindent{\tt #2}\\ \hbox to\hsize{\hrulefill}} \def\default#1{\vfill Alape1rtelmeze1s: {\tt #1}} \def\example{\vfill\noindent Pe1lda:} \def\PM{} \opt{FUNCTION}{FUNction=HION,HUON,HUOFF,NUMOFF,DICC} Ez az opcio1 meghata1rozza a program alapveto3 mu3ko2de1se1t. A lehetse1ges e1rte1kekekne1l: {\tt HION}\\ Az elve1gzendo3 funkcio1 \HiOn/, azaz az e1kezetes betu3k \TeX\ forma1ra hoza1sa, valamint az elva1laszta1sok bejelo2le1se. {\tt HUON}\\ Az elve1gzendo3 konverzio1 HUON, azaz numerikus e1kezetekro3l \TeX\ forma1ra hoza1s. Ez a konverzio1 nem jelo2li be az elva1laszta1si helyeket, {\bf csak} az e1kezeteket i1rja a1t \TeX, vagy egye1b forma1ra. Nem veszi figyelembe a matematikai mo1dokat, vagy a megjegyze1seket. Mindent a1talaki1t. {\tt HUOFF}\\ Az elve1gzendo3 konverzio1 HUOFF, azaz \TeX\ forma1ro1l numerikus e1kezetekre hoza1s. {\tt NUMOFF}\\ Az elve1gzendo3 funkcio1 NUMOFF, azaz a numerikus e1kezetek kiirta1sa, e1s a szo2veg barba1r forma1ra hoza1sa. Enne1l a konverzio1na1l a program nem vesz ki minden sza1mjegyet a szo2vegbo3l, csak azokat, amelyek e1kezetke1nt szerepelnek. {\tt DICC}\\ Az elve1gzendo3 funkcio1 DICC, azaz a {\tt hion.dct} text forma1tumu1 szo1ta1r fa1jl a1talaki1ta1sa a {\tt hion.dcb} bina1ris forma1tumra. \default{/FUNCTION=HION} \opt{MAKE vs. BUILD}{MAKe BUIld} \vspace{0.7cm} \noindent {\tt MAKE} Ezt az opcio1t haszna1lva a \HiOn/, mielo3tt nekia1llna dolgozni megvizsga1lja, hogy a genera1lando1 fa1jl le1tezik-e ma1r, e1s ha igen, akkor nem u1jabb-e, mint a forra1sfa1jl. Ekkor ugyanis az esetek to2bbse1ge1ben nem kell u1jrafordi1tani a {\tt hun} fa1jlt {\tt tex} forma1tumra. Ez a funkcio1 a UNIX {\tt make} vagy a VMS {\tt mms}-hez hasonlo1 funkcio1t adhat a \HiOn/-nak. Ha to2bb forra1sfa1jlbo1l a1ll egy szo2veg, akkor mindegyiket le kell fordi1tani a \HiOn/-nal. Ehhez haszna1lhato1 egy DOS {\tt BAT}, VMS {\tt COM} vagy UNIX shell fa1jl. Ez viszont minden egyes fa1jlt u1jrafordi1t, akkor is, ha egy fa1jl nem lett va1ltoztatva. Az opcio1 haszna1lata1val ez az u1jrafordi1ta1s elkeru2lheto3. \vspace{0.7cm} \noindent {\tt BUILD} A {\tt MAKE} opcio1 ellente1te. Aka1r le1tezik ma1r a genera1lando1 fa1jl, aka1r nem, fu2ggetlenu2l a keletkeze1si ideje1to3l a fordi1ta1st a program elve1gzi. \default{/BUILD}. \opt{BARS}{[NO]BARs} Ha a \HiOn/-t valaki csak az e1kezetek konverta1la1sa1ra akarja haszna1lni, akkor kellemetlen, hogy a program a ||{\tt |}@@ e1s {\tt @} jeleket kiveszi a szo2vegbo3l. A {\tt BARS} opcio1 haszna1lata1val ez elkeru2lheto3, a program ilyenkor belerakja ezeket a jeleket is a kimeno3 szo2vegbe. \default{NOBARS} \opt{ICHARSET}{ICHarset=BABAI,[NO]123,[NO]CWI,[NO]ISO\_latin2,[NO]852,{\sl fa1jlne1v}} A {\tt .hun} fa1jlban haszna1lt karakterke1szlet megada1sa lehetse1ges ennek az opcio1nak a segi1tse1ge1vel. Ha a 852 ko1dlapot haszna1ljuk, akkor a {\tt /ICHARSET=852} opcio1t kell megadnunk. Ha a CWI karakterke1szletet haszna1ljuk, akkor a {\tt /ICHARSET=CWI} opcio1t lehet, illetve kell megadni. Az ISO Latin 2 karakter ko1d haszna1lata1hoz az {\tt /ICHARSET=ISO\_LATIN2} opcio1 haszna1lhato1. Ha a maga1nhangzo1k uta1n i1rt 123 e1kezeteket akarjuk haszna1lni, akkor a {\tt /ICHARSET=123} opcio1 haszna1lhato1. Az 123 e1s a 852, CWI, ISO e1kezetes karakterjelo2le1s egyszerre is haszna1lhato1, eze1rt, ha azt akarjuk, hogy a \HiOn/ ne ismerje fel az 123 e1kezeteket, akkor haszna1lni kell a {\tt /NO{}123} opcio1t. A {\tt ISO} e1s {\tt CWI} opcio1 argumentumok egyene1rte1ku3ek, mert ez a ke1t karakter ke1szlet nem u2ti egyma1st, e1s eze1rt egyszerre is figyelembe veheto3k. Ha nem akarjuk, hogy a program figyelembe vegye a 127-ne1l nagyobb ko1du1 karaktereket, akkor a {\tt /ICH=NOISO}, {\tt /ICH=NOCWI} vagy {\tt /ICH=NO852} opcio1k valamelyike1t kell alkalmazni. Ezek egyene1rte1ku3ek. Ha nem adunk meg semmilyen opcio1t, akkor a \HiOn/ a CWI, ISO latin 2 valamint az 123 e1kezeteket veszi figyelembe. Ha saja1t, ku2lso3 karakterta1bla1zatot akarunk haszna1lni, akkor annak a fa1jlnak a neve1t kell megadni a {\tt /ICHARSET} opcio1hoz, amely a karakterta1bla1zatot tartalmazza. A karakterta1bla1zat forma1tuma1t a \ref{IBMCODE}. fejezet i1rja le. \default{/ICH=ISO/ICH=CWI/ICH=123} \opt{NOHYPHEN}{NOHYPhen} Az elva1laszta1si funkcio1 teljes kikapcsola1sa. Ha ezt az opcio1t haszna1ljuk, akkor a \HiOn/ nem fog semmilyen elva1laszta1st bejelo2lni a kimeneten. Ennek az opcio1nak a haszna1lata a1ltala1ban akkor szoka1s, ha csak karakterkonverzio1t akarunk ve1gezni. \opt{GENERATE}{GENerate=ASCii,BINary} A DICC funkcio1 a beolvasott, a1ltala1ban {\tt hion.dct} fa1jlt a1talaki1tja egy olyan szerkezetre, amelyben gyorsan lehet keresni, e1s ezt az a1talaki1tott struktu1ra1t i1rja ki a {\tt hion.dcb} fa1jlba. A keletkezett fa1jlt a \HiOn/ csak akkor tudja beolvasni, ha bina1ris forma1tumu1, azonban, ha valaki ki1va1ncsi ra1, hogy milyen struktu1ra1ban helyezkednek el a szavak a szo1ta1rfa1jlban, akkor leheto3se1g van a struktu1ra olvashato1 forma1ban valo1 kii1ra1sa1ra. A ||\begin{verbatim} hion /FUNCTION=DICC /GENERATE=BINARY \end{verbatim}@@ \noindent parancssor egy olyan {\tt hion.dcb} fa1jlt a1lli1t elo3 a {\tt hion.dct} fa1jlbo1l, amelyet azuta1n a program a ke1so3bbiekben be tud olvasni e1s fel tud haszna1lni. Ugyanakkor a ||\begin{verbatim} hion /FUNCTION=DICC /GENERATE=ASCII \end{verbatim}@@ \noindent parancssor hata1sa1ra olyan olvashato1 forma1tumu1 fa1jl lesz a {\tt hion.dcb}, amelyet ki lehet nyomtatni, meg lehet vizsga1lni, de a \HiOn/ sza1ma1ra a ke1so3bbiek sora1n fogyaszthatatlan. \default{/GENERATE=BINARY} \opt{DICTIONARY}{DICTionary={\sl fa1jlne1v}} A kive1telszo1ta1rat tartalmazo1 bina1ris forma1tumu1 fa1jlt lehet megadni a \HiOn/-nak. Ha nem haszna1ljuk ezt az opcio1t, akkor a \HiOn/ a {\tt hion.dcb} fa1jlt fogja haszna1lni kive1telszo1ta1rke1nt. Ezt a fa1jlt elo3szo2r az aktua1lis ko2nyvta1rban (direktori-ban) keresi. Ha itt nem tala1lja, akkor abban a ko2nyvta1rban, ahol a \HiOn/ futtathato1 fa1jl van. Ha itt sem tala1lja, akkor UNIX alatt a {\tt \verb+~/+, /usr/dict, /usr/user/dict} e1s {\tt /usr/bin} ko2nyvta1rakkal pro1ba1lkozik. VMS alatt a {\tt HION\$DIRECTORY:} ko2nyvta1rat ne1zi meg. Ha sehol sem tala1lja a kive1telszo1ta1rat, akkor a \HiOn/ egy figyelmeztete1st ad, e1s a kive1telszo1ta1r ne1lku2l dolgozik. \opt{OCHARSET}{OCHarset=MATEX,CWI,ISO\_latin2,123,TEX} A kimeno3 karakterke1szlet megada1sa az e1kezetes magyar betu3k sza1ma1ra. Ez lehet a MATEX ko1dkioszta1s, CWI, ISO\_LATIN 2, 123 vagy \TeX\ e1kezetjelo2le1s. Az 123 e1kezetjelo2le1sne1l alaphelyzet szerint a \HiOn/ az 1, 2 e1s 3 karaktereket fogja haszna1lni a maga1nhangzo1k uta1n az e1kezet jelo2le1se1re, de ez a bemeneti repu2lo3 e1kezetek a1tdefinia1la1sa1val egyu2tt megva1ltozik, azaz az {\tt APOSTROPHE, UMLAUT, HUMLAUT} opcio1kkal va1ltoztathato1. A \TeX\ e1kezetek bejelo2le1se fu2gg a {\tt BRACKETS} opcio1to1l is. \default{/OCHARSET=TEX} \opt{FILTER}{[NO]FILTer} Ennek az opcio1nak a haszna1latakor a \HiOn/ bemenete e1s kimenete is standard. Ez azt jelenti, hogy a billentyu3zetro3l olvas, e1s a ke1pernyo3re i1r. \default={/NOFILTER} \opt{LIGATURES}{[NO]LIGatures} A \TeX\ szedo3rendszer figyel az olyan nyomdai finomsa1gokra, mint a ligatu1ra1k. A ligatu1ra1k olyan betu3pa1rok, vagy betu3csoportok, amelyek helyett egy o2sszetett betu3ke1pet haszna1l a nyomda. Ilyenek pe1lda1ul az ff, fl, fi, ffl, ffi. Ha egy szo1ban szerepel egy ilyen betu3csoport, e1s ezeken belu2l van egy lehetse1ges elva1laszta1si hely, akkor ha oda a \HiOn/ beteszi a \verb+\-+ jelet, akkor ezzel megzavarja a \TeX\ mu3ko2de1se1t, e1s az nem fogja felismerni a ligatu1ra1t. I1gy effekti1v helyett ef\-fek\-ti1v-et fog szedni a program. Ennek elkeru2le1se1re a \HiOn/ a lehetse1ges ligatu1ra1kon belu2li elva1laszta1sok helyeit a \TeX\ \verb+\discretionary+ makro1ja1val jelo2li be. I1gy a \TeX\ figyelembe tudja venni a ligatu1ra1kat, e1s ha me1gsem kell elva1lasztani a ligatu1ra1n belu2l a szo1t, akkor a sorko2zben helyes lesz a szede1si ke1p. \example ||\begin{verbatim} $ hion /filt/och=123/ich=123/lig/sil effekti1v e\discretionary{f-}{f}{ff}ek\-ti1v ^Z $ hion /filt/och=123/ich=123/nolig/sil effekti1v ef\-fek\-ti1v ^Z \end{verbatim}@@ \default{/LIGATURES} \opt{HELP}{HELP} Ennek az opcio1nak a hata1sa1ra a \HiOn/ egy ro2vid emle1kezteto3t i1r ki a ke1pernyo3re, e1s lea1ll. \example ||\begin{verbatim} $ hion /help hion [[-|/]opcio] [bemeno3_fa1jl] [kimeno3_fa1jl] Opcio1k: /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 \end{verbatim}@@ \opt{INPUT}{INput=STANdard,FILE} Ezzel az opcio1val lehet megadni, hogy a \HiOn/ honnan vegye a bemeno3 fa1jlt. Ha az {\tt /INPUT=STANDARD} opcio1t haszna1ljuk, akkor a \HiOn/ a bemenete1t a billentyu3zetro3l fogja olvasni, hacsak a szabva1nyos bemenet a1t nem lett ira1nyi1tva. Ez fo3leg UNIX opera1cio1s rendszer alatt szoka1sos, de DOS alatt is megteheto3. \def\filtopt{ Ha a {\tt /INPUT=STANDARD/OUTPUT=STANDARD} opcio1kat haszna1ljuk, akkor a \HiOn/ a bementeke1nt e1s a kimeneteke1nt is a szabva1nyos csatorna1kat haszna1lja, e1s i1gy UNIX alatt szoka1sos szu3ro3 mu3ko2de1st lehet megvalo1si1tani. Ehhez lehet haszna1lni a {\tt /FILTER} opcio1t is.} \filtopt \default{/INPUT=FILE} \opt{OUTPUT}{OUTput=STANdard,FILE} Ezzel az opcio1val lehet megadni, hogy a \HiOn/ hova i1rja a kimenete1t. Ha a {\tt /OUTPUT=STANDARD} opcio1t haszna1ljuk, akkor a kimemenet a ke1pernyo3re fog keru2lni, hacsak a1t nem lett ira1nyi1tva. Ez fo3leg UNIX alatt szoka1sos, de DOS alatt is meg lehet tenni. \filtopt\def\filtopt{} \default{/OUTPUT=FILE} \opt{UMLAUT}{UMlaut={\sl karakter}} Ezzel az opcio1val lehet megadni, hogy repu2lo3 e1kezetek haszna1lata esete1n melyik legyen az a karakter, amelyet a \HiOn/ a megfelelo3 maga1nhangzo1k uta1n umlaut jelo2le1snek tekint. Ez alaphelyzetben a \verb+2+ karakter. \def\filopt{% Vigya1zni kell arra, hogy sok olyan karaktert, amelyet szi1vesen haszna1lnak emberek repu2lo3e1kezet jelo2le1se1re, az opera1cio1s rendszer parancse1rtelmezo3je megpro1ba1l e1rtelmezni. %Leginka1bb a ||\verb+' ~+@@ e1s ||\verb+"+@@ karaktereket szoktuk %haszna1lni az e1kezetek jelo2le1se1re. Ezeket a karaktereket pedig az %opera1cio1s rendszerek e1rtelmezik. UNIX alatt pe1lda1ul, ha a %Babai fe1le e1kezeteket akarjuk, akkor ||\verb+/APOSTROPHE=\'+@@ %||\verb+/UMLAUT=~+ \verb+/HUMLAUT=\"+@@ opcio1kat kell kiadni. } \filopt ||\default{/UMLAUT=2}@@ \opt{HUMLAUT}{HUMlaut={\sl karakter}} Ezzel az opcio1val lehet megadni, hogy repu2lo3 e1kezetek haszna1lata esete1n melyik legyen az a karakter, amelyet a \HiOn/ a megfelelo3 maga1nhangzo1k uta1n magyar umlaut, azaz dupla vesszo3ke1nt e1rtelmez. Ez alaphelyzetben a \verb+3+ karakter. \filopt \default{/HUMLAUT=3} \opt{APOSTROPHE}{APOStrophe={\sl karakter}} Ezzel az opcio1val lehet megadni, hogy repu2lo3 e1kezetek haszna1lata esete1n melyik legyen az a karakter, amelyet a \HiOn/ a megfelelo3 maga1nhangzo1k uta1n vesszo3ke1nt e1rtelmez. Ez alaphelyzetben a \verb+1+ karakter. \filopt\def\filopt{} \default{/APOSTROPHE=1} \opt{LATEX}{[NO]LATex} Ezzel az opcio1val lehet megmondani a \HiOn/-nak, hogy az a fa1jl, amelyet fel ki1va1nunk dolgozni, a \LaTeX\ makro1 csomagnak megfelelo3 szintaktika1ju1. Ebben az esetben a \HiOn/ tiszteletben tartja azokat a veze1rlo3 szekvencia1kat, amelyek specia1lisan a \LaTeX-ben fordulnak csak elo3. Ilyen pe1lda1ul a ||\verb+\begin+@@ veze1rle1si szerkezet, amelynek van egy argumentuma. Ha nem haszna1ljuk a ||\verb+/LATEX+@@ opcio1t, akkor a \HiOn/ ezekben a szavakban is bejelo2li a lehetse1ges elva1laszta1si helyeket, e1s ezt a \LaTeX\ makro1csomag nem viseli el. \example ||\begin{verbatim} $ 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} ^Z \end{verbatim}@@ \default{/NOLATEX} \opt{IGEKOTO}{[NO]IGEKOTO} Ezzel az opcio1val lehet a \HiOn/-t megke1rni arra, hogy ne vegye figyelembe az igeko2to3ket. A \HiOn/ alaphelyzetben kive1telszo1ta1r ne1lku2l is figyelembe tudja venni az igeko2to3ket. \example ||\begin{verbatim} $ 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 \end{verbatim}@@ \default{/IGEKOTO} \opt{SAG, SEG}{[NO]SAG, [NO]SEG} A \HiOn/ ku2lo2n odafigyel azokra a szavakra, amelyek sa1g, se1g ve1gu3ek, e1s i1gy helyesen va1lasztja el az olyan szavakat, mint a malacsa1g, vagy igazsa1g. Ezzel az opcio1val lehet ra1venni a \HiOn/-t arra, hogy a sa1g, se1g vegu3 szavakra ne figyeljen oda, e1s buta1n va1lasszon el. A ke1t opcio1 teljesen egyene1rte1ku3. \example ||\begin{verbatim} $ hion /filt/och=123/ich=123/sil malacsa1g ma\-lac\-sa1g ^Z $ hion /filt/och=123/ich=123/sil/nosag malacsa1g ma\-la\-csa1g ^Z \end{verbatim}@@ \default{/SAG} \opt{POSTHYPHEN}{[NO]POSTHyphen} A \TeX\ minden olyan szo1t a saja1t elva1laszta1si ta1bla1ja szerint pro1ba1l elva1lasztani, amelyben nincs a \verb+\-+ veze1rlo3szekvencia1val bejelo2lve az elva1laszta1s. Ez \hfil pedig elo3fordul \hfil ne1ha1ny \hfil egyszo1tagos \hfil szo1val. \hfil I1gy \hfil megto2rte1nhet \hfil az, \hfil h-\\ ogy\footnote{Ezt csina1ld uta1nam!} a \TeX\ maga elva1lasztja a szo1t. Ha az ilyen szavak ve1ge1re egy \verb+\-+ jelet teszu2nk, akkor a \TeX\ u1gy tekinti, hogy az o2sszes lehetse1ges elva1laszta1s be van jelo2lve. \vfill {\it Ez az opcio1 ne1ha1ny esetben hiba1san mu3ko2dik, eze1rt ba1r le1tezik, de nem ta1mogatott.} \example ||\begin{verbatim} $ 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 \end{verbatim}@@ \default{/NOPOSTHYPHEN} \opt{PROTECTION}{[NO]PROTection} Ez az opcio1 be-, illetve kikapcsolja az olyan \TeX\ kulcsszavak ve1delme1t, amelyek nem \verb+\+ karakterrel kezdo3dnek. Ha ezt az ve1delmet kikapcsoljuk a {\tt /NOPROTECTION} opcio1val, akkor a szo2vegben {\tt |||@@} e1s {\tt @} karakterekkel kell gondoskodni az olyan szavak ve1delme1ro3l, mint {\tt scaled}. Ugyanakkor a \HiOn/ csak akkor ismeri fel ezeket a kulcsszavakat, ha azokra nem i1rjuk ra1 a ko2vetkezo3 szo1t. Ha ||{\tt scaled1200}@@-at i1runk, akkor a \HiOn/ el fogja va1lasztani a \TeX\ kulcsszo1t, mert a sza1mokkal egyu2tt egy szo1nak tekinti a ||{\tt scaled1200}@@ karaktersorozatot. Viszont i1rhatunk ||{\tt scaled\verb+\+magstep}@@-et, mert a \verb+\+ karakter leza1rja a szo1t. \example ||\begin{verbatim} $ hion /filt/och=123/ich=123/sil scaled scaled ^Z $ hion /filt/och=123/ich=123/sil/noprot scaled sca\-led ^Z \end{verbatim}@@ \default{/PROTECTION} \opt{STATISTICS}{[NO]STATistics} Ezzel az opcio1val lehet be-, illetve kikapcsoni a futa1s sora1n a statisztikai adatgyu3jte1st, valamint a program ve1ge1n annak kii1ra1sa1t. A statisztikai adatok e1rdekesek lehetnek e1s informa1cio1t adhatnak a szo2veg sti1lusa1ro1l, ugyanakkor zavaro1 is lehet a program ve1ge1n kii1rt sok szo2veg. A ||{\tt /SILENT}@@ opcio1val a statisztika mellett az egye1b kii1ra1sokat is ki lehet kapcsolni. \example a ko2vetkezo3 oldalon. ||\begin{verbatim} $ hion /filter hion konverzio1s program V2.5 22/01/94 VMS TeX preprocesszor. A hion.dcb fa1jlt nem lehet megnyitni. A szo1ta1r nem lett beolvasva. ^Z HiOn jelente1s 0 TeX karaktert i1rtam ki. 0 szo1 volt, ebbo3l 0 veze1rlo3 szo1. 0 bonyolult, discretionary elva1laszta1s volt. 0 alkalommal meru2lt fel ligatu1ra ve1delem, e1s ebbo3l 0 alkalommal kellett discretionary formula1t alkalmaznom. 0 alkalommal vizsga1ltam igeko2to3 kezdetu3 szavakat e1s 0 alkalommal tala1ltam is. 0 alkalommal vizsga1ltam meg a szo1 to2bbi re1sze1t is, 0 alkalommal tala1ltam valo1di igeko2to3t. 0 alkalommal kerestem sa1g se1g ke1pzo3t, e1s 0 alkalommal tala1ltam. 0 alkalommal kerestem o2sszetett szavakat, 0 alkalommal tala1ltam, e1s 0 ku2lo2n elva1laszta1st helyeztem el. Szi1vesen ma1skor is. $ hion /filter/nostat hion konverzio1s program V2.5 22/01/94 VMS TeX preprocesszor. A hion.dcb fa1jlt nem lehet megnyitni. A szo1ta1r nem lett beolvasva. ^Z \end{verbatim}@@ \default{/STATISTICS} \opt{USE\_DICTIONARY}{[DONT\_]USE\_dictionary} Ezt az opcio1t haszna1lva a \HiOn/ megpro1ba1lja beto2lteni a kive1telszo1ta1rat, hogy az o2sszetett szavakat is jo1l tudja elva1lasztani. Amennyiben a {\tt DONT\_USE\_DICTIONARY} forma1t haszna1ljuk, akkor a \HiOn/ nem pro1ba1lja meg beto2lteni az o2sszetett szavak kive1telszo1ta1ra1t, e1s az o2sszetett szavak egy re1sze1t rosszul va1lasztja el, viszont valamivel gyorsabban dolgozik. \example ||\begin{verbatim} $ hion /filt/och=123/ich=123/nostat hion konverzio1s program V2.5 22/01/94 VMS TeX preprocesszor. A ta1bla1zat olvasa1sa folyamatban... Kive1telszo1ta1r beolvasva. vasutas vas\-u\-tas ^Z $ hion /filt/och=123/ich=123/nostat/dont_use hion konverzio1s program V2.5 22/01/94 VMS TeX preprocesszor. vasutas va\-su\-tas ^Z \end{verbatim}@@ \default{/USE\_DICTIONARY} \opt{DISCRETIONARY}{DISCRetionary=FULL,UNIque,TOTal,NOne} Ezzel az opcio1val lehet szaba1lyozni, hogy a \HiOn/ hogyan hajtsa ve1gre a \verb+\discretionary+ elva1laszta1sokat. \example ||\begin{verbatim} $ hion /filt/och=123/ich=123/sil/discr=tot gyo2nyo2ru3 processzor gyo2\-nyo2\-ru3 pro\-ce\discretionary{sz-}{sz}{ssz}or ^Z $ hion /filt/och=123/ich=123/sil/discr=uni gyo2nyo2ru3 processzor gyo2nyo2ru3 proce\discretionary{sz-}{sz}{ssz}or ^Z $ hion /filt/och=123/ich=123/sil/discr=full gyo2nyo2ru3 processzor gyo2\-nyo2\-ru3 pro\-ce\discretionary{sz-}{sz}{ssz}or ^Z $ hion /filt/och=123/ich=123/sil/discr=no gyo2nyo2ru3 processzor gyo2\-nyo2\-ru3 pro\-cesszor ^Z \end{verbatim}@@ \default{/DISCRETIONARY=FULL} \opt{1LETTER}{[NO]1letter} Ezzel az opcio1val lehet engede1lyezni a \HiOn/ sza1ma1ra, hogy az olyan elva1laszta1si helyeket is bejelo2lje, amelyek fattyu1 szo1tagokat, azaz a sor eleje1n, vagy a sor ve1ge1n a1llo1 egybetu3s szo1tagokat eredme1nyezhetnek. \example ||\begin{verbatim} $ hion /filt/och=123/ich=123/sil auto au\-to ^Z $ hion /filt/och=123/ich=123/sil/1LETTER auto a\-u\-to ^ \end{verbatim}@@ \default{/NO{}1LETTER} \opt{WARNINGS}{[NO]WARNings} Figyelmezteto3 u2zenetek be-, illetve kikapcsola1sa. A program akkor ku2ld ilyen u2zenetet, ha pe1lda1ul egy a{}3 vagy i{}3 betu3vel tala1lkozik. Akkor is figyelmeztet a \HiOn/, ha ele1ri a feldolgozando1 fa1jlve1get kikapcsolt a1llapotban, vagy matematikai mo1dban. Ezek az esetek majdnem mindig valamilyen elko2vetett hiba1ra utalnak, amelyek i1gy a fordi1ta1s korai sta1diuma1ban fellelheto3k. \default{/WARNINGS} \opt{BRACKETS}{[NO]BRACkets} Ezzel az opcio1val arra lehet ra1venni a \HiOn/-t, hogy az e1kezetes karakterek ko2re1 rakjon \verb+{+ e1s \verb+}+ jeleket. Ennek akkor van e1rtelme, ha a \HiOn/-nal egy ku2lo2nleges makro1kat haszna1lo1 szo2veget akarunk processza1lni, e1s a makro1 sza1ma1ra az e1kezetes karakternek egy input egyse1gnek kell maradniuk. A he1tko2znapi gyakorlatban elo3fordulo1 ilyen eset, ha a \LaTeX\ csomaghoz BiB\TeX\ programmal akarunk irodalomjegyze1ket ke1szi1teni. \example ||\begin{verbatim} $ hion /filt/ich=123/sil/BRAC alma1s re1tes al\-m{\'a}s r{\'e}\-tes ^Z $ hion /filt/ich=123/sil alma1s re1tes al\-m\'as r\'e\-tes ^Z \end{verbatim}@@ \default{/NOBRACKETS} \opt{SILENT}{[NO]SILent} Ezzel az opcio1val lehet kikapcsolni mindenfe1le hiba- e1s egye1b u2zenetet, amelyet a \HiOn/ a ke1pernyo3re ku2ldene. \default{NOSILENT} \opt{SCREEN}{SCReen=CWI,ISO\_latin2,852,RAW} Ezzel az opcio1val lehet megadni, hogy a \HiOn/ a ke1pernyo3re ku2ldo2tt u2zeneteit milyen karakterke1szlettel i1rja ki. Alaphelyzetben a \HiOn/ az 123 e1kezeteket haszna1lja, de leheto3se1g van arra, hogy PC-n a CWI vagy 852, VMS e1s UNIX opera1cio1s rendszerek alatt az ISO latin 2 karakterke1szletet haszna1lja. \default{RAW} \newpage \section{|Ko2rnyezeti va1ltozo1k}@%%Le1gszennyezettse1g, savaseso3, ... %================================= \typeout{||Ko2rnyezeti va1ltozo1k}@@ A \HiOn/ egyetlen ko2rnyezeti va1ltozo1t vizsga1l, amelynek a neve {\tt hion\_opt}. Ennek a va1ltozo1nak az e1rte1ke1t, ami egy karakterfu2ze1r, a program ugyanu1gy dolgozza fel, mintha parancssor argumentum lenne. Olyan opcio1kat e1rdemes ebbe a va1ltozo1ba berakni, amiket mindig haszna1lunk. Ha valaki csak \LaTeX\ fa1jlokhoz haszna1lja a programot, akkor e1rdemes a {\tt /LATEX} opcio1t belerakni. Csak egy opcio1, vagy egybei1rt opcio1k lehetnek a ko2rnyezeti va1ltozo1ban, azaz ha to2bb opcio1 is szerepel a va1ltozo1ban, akkor azokat egybe kell i1rni. A ko2rnyezeti va1ltozo1k bea1lli1ta1sa opera1cio1srendszer-fu2ggo3. \subsection{UNIX alatt} %---------------------- UNIX alatt egy ko2rnyezeti va1ltozo1 bea1lli1ta1sa1nak szintaktika1ja fu2gg a haszna1lt {\it shell\/}to3l. Egy lehetse1ges u1t a ko2vetkezo3: ||\begin{verbatim} setenv hion_opt=-lat \end{verbatim}@@ Mivel ez a va1ltozo1 csak addig e1l, ami1g ki nem kapcsoljuk, vagy nem inicializa1ljuk a ge1pet, illetve ami1g ki nem jelentkezu2nk, eze1rt ezt a parancsot e1rdemes minden bekapcsola1s, illetve inicializa1la1s uta1n kiadni. Ennek ke1nyelmes mo1dja, ha befu3zzu2k a {\tt|| .profile}@@ fa1jl parancsai ko2ze1. \subsection{MS--DOS alatt} %------------------------- MS--DOS alatt egy ko2rnyezeti va1ltozo1 bea1lli1ta1sa1nak szintaktika1ja a ko2vetkezo3: ||\begin{verbatim} set hion_opt=-LATEX \end{verbatim}@@ Mivel ez a va1ltozo1 csak addig e1l, ami1g ki nem kapcsoljuk, vagy nem inicializa1ljuk a ge1pet, eze1rt ezt a parancsot e1rdemes minden bekapcsola1s, illetve inicializa1la1s uta1n kiadni. Ennek ke1nyelmes mo1dja, ha befu3zzu2k az {\tt|| AUTOEXEC.BAT}@@ fa1jl parancsai ko2ze1. A kikapcsola1s a ||\begin{verbatim} set hion_opt= \end{verbatim}@@ \noindent paranccsal to2rte1nik. \subsection{VMS alatt} %--------------------- VMS alatt egy ko2rnyezeti va1ltozo1 bea1lli1ta1sa1nak szintaktika1ja a ko2vetkezo3: ||\begin{verbatim} $ DEFINE HION_OPT "/LATEX" \end{verbatim}@@ Mivel ez a va1ltozo1 csak addig e1l, ami1g a bejelentkeze1s tart, eze1rt ezt a parancsot e1rdemes minden bejelentkeze1skor kiadni. Ennek ke1nyelmes mo1dja, ha befu3zzu2k a {\tt|| LOGIN.COM}@@ fa1jl parancsai ko2ze1. % A kikapcsola1s a % %||\begin{verbatim} %hion_opt="" %\end{verbatim}@@ % %paranccsal to2rte1nik. \section{|Elva1laszta1s}@%Egyszer me1g elva1lik, hogy elva1lik vagy sem %======================== \label{ELVA1LASZTA1S} \typeout{||Elva1laszta1s@@} Ha a '{\tt /FUNCTION=HION}' opcio1t megadjuk, vagy a program neve {\tt hion} akkor a program a mu3ko2de1se sora1n szo1tagolja a szavakat a magyar helyesi1ra1snak megfelelo3en. Egy szo1t el lehet va1lasztani ke1t maga1nhangzo1 ko2zo2tt, vagy egy ma1ssalhangzo1 elo3tt, ha azt maga1nhangzo1 ko2veti, e1s a legutolso1 elva1laszta1s o1ta, illetve ha ilyen me1g nem volt, akkor a szo1 eleje o1ta szerepelt maga1nhangzo1. Ez az a1ltala1nos szaba1ly. (Lehet, hogy a magyar nyelvtan nem ege1szen ez, de a program ezt csina1lja.) Egy elva1laszta1ssal keletkezo3 szo1tag szo1 eleje1n vagy ve1ge1n nem a1llhat egy betu3bo3l, vagyis az 'akarat' szo1 helyes elva1laszta1sa: |aka-rat@. Ez nem nyelvtani szaba1ly, hanem nyomdai. Ha egy ilyen szo1tag u1j sorba keru2l, vagy a megelo3zo3 sor ve1ge1re, akkor azt a nyomda1szok fattyu1szo1tagnak nevezik (ebbo3l is la1tszik, hogy mennyire ki1va1natos). Ne1ha, fo3leg, ha a szedett szo2veg nagyon ro2vid sorokba lesz to2rdelve, szu2kse1g lehet ra1, hogy megengedju2k az ilyen egybetu3s szo1tagokat. Ha a ||\verb+/1LETTER+@@ opcio1t haszna1ljuk, akkor az elva1laszta1s |a-ka-rat@ lesz. Hacsak a ||\verb+/NOIGEKOTO+@@ opcio1val ki nem kapcsoljuk a funkcio1t, a program felismeri a leggyakoribb igeko2to3ket, e1s i1gy a |{\it felismeri}@ szo1 elva1laszta1sa |{\it fel-is-me-ri}@ nem pedig |{\it fe-lis-me-ri}@. Az ismert igeko2to3k: \begin{tabular}{llllll} meg & felu2l & fel & agyon & a1ltal & keresztu2l \\ ko2ru2l & sze1jjel & tova1bb & tu1l & el & a1t \\ sze1t & ve1gig & & & & \\ \end{tabular} Megjegyzendo3, hogy azon igeko2to3k, amelyek nem ma1ssalhangzo1ra ve1gzo3dnek, az elemi elva1laszta1si szaba1lyok szerint is helyesen lesznek elva1lasztva, e1s eze1rt nem kell o3ket ku2lo2n figyelni. \begin{footnotesize} Ne1ha1ny esetben, amikor egy ige ke1t ma1ssalhangzo1val kezdo3dik, mint {\sl sro1fol}, akkor az olyan igeko2to3k is ku2lo2n figyelmet ki1va1nnak, amelyek maga1nhangzo1ra ve1gzo3dnek. I1gy a be\-sro1fol ige1t az egyszeru3 elva1laszta1si szaba1ly bes-ro1fol--nak va1lasztana1 el. Ezeket az eseteket a kive1telszo1ta1rral vesszu2k figyelembe, u1gy, mint az o2sszetett szavakat. \end{footnotesize} A program nem csupa1n azt ne1zi meg, hogy a szo1 eleje1n a1ll-e igeko2to3, hanem a szo1 tova1bbi re1sze1t is figyelembe ve1ve megpro1ba1lja eldo2nteni, hogy a szo1 eleje1n a1llo1 betu3k igeko2to3ke1nt e1rtelmezheto3k-e. I1gy pe1lda1ul az elefa1nt szo1bo1l a program nem csina1l el-efa1ntot. Vannak olyan szavak, amelyek elva1laszta1sa nem egye1rtelmu3. Ilyen pe1lda1ul a felejt. Ha arro1l van szo1, hogy valamit elfelejtu2nk, akkor az elva1laszta1s |fe-lejt@. Ha viszont valamit felfele1 ejtu2nk, akkor az elva1laszta1s |fel-ejt@. Mivel felfele1 ritka1n szoktunk dolgokat ejteni, eze1rt a program ebben az esetben u1gy do2nt, hogy a {\sl fel} szo1cska itt nem igeko2to3. Ha me1gis, akkor be kell a szo2vegben jelo2lni az elva1laszta1st. Ezt a proble1ma1t csak mondatelemzo3 algoritmussal lehetne megoldani, ami nagyon lelassi1tana1 a mu3ko2de1st. Le1teznek szo1elemze1sen alapulo1 elva1laszto1 programok is, e1s ezek is jo1val lasabbak, mint a \HiOn/. A program felte1telezi, hogy helyesen i1rt magyar szavak szerepelnek a szo2vegben, i1gy ha valamit elge1pelu2nk, akkor lehet, hogy az elva1laszta1s is rossz lesz. Igy pe1lda1ul, ha azt i1rjuk, hogy {\it eladdo1}, akkor az elva1laszta1s |{\it elad-do1}@ lesz. A program figyel olyan kva1zi-igeko2to3ket is, mint {\it meggy}, vagy {\it leggy}, eze1rt a {\it leggyakrabb}, illetve a {\it meggyu1rni} szavakat is helyesen va1lasztja el. A program minden olyan {\it cs} illetve {\it zs} betu3t, amely uta1n {\it a1g}, vagy {\it e1g} betu3k ko2vetkeznek {\it c} e1s {\it s} illetve {\it z} e1s {\it s} betu3nek tekint, azaz nem tekinti dupla betu3nek o3ket, e1s i1gy az olyan szavakat, mint {\it igazsa1g}, vagy {\it malacsa1g} is helyesen va1laszt el. Szo1 nem tartalmazhat \verb+{+ e1s \verb+}+ karaktereket, valamint szo1ko2zt. Egy szo1t leza1r egy veze1rlo3 karakter, vagy veze1rlo3 szo1 (teha1t valamilyen \verb+\+-sel kezdo3do3 karaktersorozat), ha az nem az elva1laszta1st jelo2li be, azaz nem \verb+\-+. A \verb+\-+ veze1rlo3 karakter re1sze lehet egy szo1nak. Magyar szo2vegben ele1g ritka1n fordul elo3, de ne1ha aze1rt elo3fordul, hogy {\sl f} e1s {\sl l} vagy ke1t {\sl f} vagy {\sl f} e1s {\sl i} betu3k ko2zo2tt kell elva1lasztani. Ha itt egyszeru3en \verb+\-+ jelet tenne1nk a ke1t karakter ko2ze1, akkor a \TeX\ nem ismerne1 fel a ligatu1ra1t, e1s pe1lda1ul ff helyett f{}f jelenne meg a nyomtatott szo2vegben. A \HiOn/ ezt az esetet figyelembe ve1ve olyan szekvencia1t genera1l, amelyik nem akada1lyozza meg a \TeX\ ligatu1ra felismere1se1t. Ha ezt valamie1rt ki kellene kapcsolni, akkor a ||\verb+/NOLIG+{\tt\dots}@@ opcio1t kell haszna1lni. \section{|O2sszetett szavak}@%%Apa1m szerint csu1nya dolog, hogy amit %============================%%egy ne1p e1vsza1zadok alatt o2sszerakott %%azt most e1n hipp-hopp sze1tva1lasztom \label{COMPWORDS} \typeout{||O2sszetett szavak}@@ A \HiOn/ 1.7-es verzio1ja1to1l kezdve ke1pes arra, hogy az o2sszetett szavakat is helyesen szo1tagolja. Mivel a \HiOn/ nem elemzi a szavakat, eze1rt ezt csak egy kive1telszo1ta1rral lehet megoldani. A programcsomag kell, hogy tartalmazza a {\tt hion.dct} kive1tel szo1ta1rat, amely karakteres forma1ban tartalmazza az o2sszes olyan szo1t, amelyet a \HiOn/ kora1bbi verzio1i rosszul va1lasztottak el. \begin{footnotesize} Ez a szo1ta1r u1gy ke1szu2lt, hogy a Magyar E1rtelmezo3 Ke1ziszo1ta1r ci1mszavainak a jegyze1ke1re ra1engedtu2k a \HiOn/-t, e1s az eredme1nyt egy programmal o2sszehasonli1tottuk egy ma1sik, szo1elemze1sen alapulo1 szo1tagolo1 program hasonlo1 eredme1nye1vel. Ahol a ke1t elva1laszta1s azonos volt, ott felteheto3en jo1 az elva1laszta1s. Ahol ku2lo2nbo2zo2tt, ott vagy az egyik, vagy a ma1sik, vagy mindke1t elva1laszta1s rossz volt. Ezt a fa1jlt ne1ztu2k ve1gig, e1s szo2vegszerkeszto3vel, ke1zzel a1lli1tottuk elo3 a {\tt hion.dct} fa1jlt. I1gy lehetnek benne hiba1k. Ezeknek a hiba1knak a kezele1se1re ugyanu1gy vonatkozik a \ref{KARB}. fejezet, mint a programhiba1ke1ra. \end{footnotesize} A {\tt hion.dct} fa1jl karakteres forma1tum, amit a \HiOn/ csak lassan tudna haszna1lni, eze1rt ezt a1t kell alaki1tani bina1ris forma1tumra. Ezt a {\tt dicc} vagy a {\tt hion /FUNCTION=DICC} paranccsal lehet megtenni. A keletkezo3 fa1jl {\tt hion.dcb}, amely egy ta1bla1zatban, gyorsan feldolgozhato1 forma1ban tartalmazza a kive1telszo1ta1rat. Ha nem haszna1ljuk a {\tt /DONT\_USE\_\dots} opcio1t akkor a \HiOn/ elindula1sa uta1n megpro1ba1lja az aktua1lis ko2nyvta1rbo1l beolvasni a {\tt hion.dcb} fa1jlt. Ha ez nem le1tezik, akkor megpro1ba1lja a {\tt hion.dcb} fa1jlt megnyitni abban a direktoriban, ahol a ve1grehajthato1 fa1jl van. Ha ez sem sikeru2l, akkor opera1cio1s rendszerto3l fu2ggo3en viselkedik a program. \noindent MS-DOS alatt nem pro1ba1lkozik tova1bb. \noindent UNIX alatt megpro1ba1lkozik a \verb+~/+, a \verb+/usr/dict+, a \verb+/usr/user/dict/+, majd ve1gu2l utolso1 ki1se1rletke1nt a \verb+/usr/bin/+ direktoriban megnyitni a fa1jlt. \noindent VMS alatt a {\tt|| HION\$DIRECTORY:}@@ direktorit ne1zi meg. Ha sehol sem sikeru2l megtala1lni a {\tt hion.dcb} fa1jlt, nincs ele1g memo1ria, se1ru2lt a fa1jl, vagy esetleg a \HiOn/ egy olyan ke1so3bbi verzio1ja1val ke1szu2lt, amelynek DCB forma1tuma1t az adott verzio1 nem tudja feldolgozni, akkor egy hibajelze1s uta1n (amit a {\tt /NOWARNINGS} opcio1val el lehet nyomni) a program ene1lku2l folytatja a mu3ko2de1se1t. A DCT-ro3l DCB forma1tumra valo1 a1talaki1ta1shoz to2bb memo1ria kell, mint a DCB fa1jl beolvasa1sa1hoz, e1s haszna1lata1hoz. I1gy ha nincs ele1g memo1ria a szo1ta1r a1talaki1ta1sa1hoz, akkor meg lehet pro1ba1lni az a1talaki1ta1st egy ma1sik ge1pen, aka1r ma1sik opera1cio1s rendszer alatt is. A ku2lo2nbo2zo3 opera1cio1s rendszerek alatt ke1szi1tett fa1jlok megegyeznek. U1gy is lehet haszna1lni a kive1telszo1ta1rat, hogy csak azokat a szavakat tartjuk a {\tt hion.dct} fa1jlban, amelyek az e1ppen fordi1tani ki1va1nt anyagban elo3fordulnak. Ekkor le1nyegesen kisebb lesz a {\tt hion.dcb} fa1jl, a szu2kse1ges memo1ria, e1s minima1lis sebesse1gno2vekede1s is ele1rheto3. \subsection{|A {\tt hion.dct} forma1tuma}@ %----------------------------------------- A {\tt hion.dct} fa1jl karakteres forma1ban tartalmazza a kive1telszo1ta1rat. A csomaghoz tartozo1 fa1jl az ala1bbi krite1riumoknak eleget tesz. Ha me1gsem, akkor az programhiba1nak tekintendo3. A {\tt hion.dct} fa1jl o2sszetett szavakat tartalmaz, amelyben azon elva1laszta1si helyek vannak megjelo2lve, amelyeket kive1telke1nt figyelembe kell venni. Ha enne1l to2bb elva1laszta1si hely is be van jelo2lve, az memo1ria- e1s sebesse1gvesztese1get okoz, de a mu3ko2de1st egye1bke1nt nem befolya1solja. Ke1t szo1t szo1ko2z, vagy u1j sor va1laszt el. Egy szo1ban maximum 15 elva1laszta1si hely lehet megjelo2lve. A fa1jl tartalmazhat u2res sorokat. Minden {\tt '}, vagy {\tt \%} jel uta1ni karaktersorozat a sor ve1ge1ig megjegyze1s, a program figyelmen ki1vu2l hagyja. A szo1ta1rban a szavak sorrendje tetszo3leges, e1s a szavak sorrendje1to3l nem fu2gg a keletkezo3 bina1ris fa1jl, a ko2vetkezo3 kive1telto3l eltekintve: Ha egy $\cal A$ szo1 prefixe egy ma1sik $\cal B$ szo1nak, azaz $\cal B$ eleje megegyezik $\cal A$ betu3ivel\footnote{pe1lda1ul {\sl alma1s} prefixe az {\sl alma1sre1tes} szo1nak.}, akkor $\cal A$-nak a szo1ta1rban elo3bb kell szerepelnie, mint $\cal B$. Ellenkezo3 esetben a szo1ta1r a1talaki1ta1sa sora1n a program egy figyelmeztete1st ad, e1s $\cal A$ nem keru2l bele a szo1ta1rba. Csak akkor van e1rtelme, hogy $\cal B$ is bekeru2ljo2n a szo1ta1rba, ha benne az $\cal A$ uta1ni re1szen is van kive1teles elva1laszta1s, vagy ha $\cal B$-t ege1szen ma1ske1pp kell elva1lasztani, mint $\cal A$-t. Ellenkezo3 esetben ugyanis $\cal B$-t a szo1ta1rbo1l valo1 elhagya1sa1val is helyesen fogja elva1lasztani a program. I1gy elegendo3, ha a szo1ta1rban szerepel a {\sl vas-u1t} bejegyze1s, nem kell, hogy szerepeljen a {\sl vas-u1ton} szo1, ugyanakkor a {\sl vas-u1t-a1lloma1s} bejegyze1snek ke1so3bb kell szerepelnie, mint a {\sl vas-u1t} bejegyze1s. Ilyen esetekben is figyelmeztet a program. Egy szo1t a program akkor ismer fel, ha szerepel a szo1ta1rban, vagy ha a szo1ta1rban szerepel valamelyik prefixe. A szo1ta1rban haszna1lhato1k az 123 e1kezetek, vagy a kiterjesztett karakterke1szletu3 betu3k ugyanu1gy, mint a {\tt .hun} fa1jlokban. A csomagban levo3 {\tt hion.dct} fa1jl a hordozhato1sa1g miatt az 123 e1kezetekkel szerepel. Egy szo1 csak betu3ket, az e1kezeteket jelo2lo3 jeleket e1s elva1laszto1 jelet tartalmazhat. A fa1jl ve1ge1t a fa1jl fizikai ve1ge jelzi, vagy egy sor, amely a \verb+\eof+ jelet tartalmazza, azaz egy fordi1tott to2rtvonalat, e1s az {\tt e}, {\tt o} e1s {\tt f} kisbetu3ket. \subsection{|A {\tt hion.dcb} fa1jl forma1tuma}@ %----------------------------------------------- A {\tt hion.dcb} fa1jl forma1tuma bina1ris. Tartalmaz ba1jtos, szavas (2 ba1jt), e1s hosszu1szavas (3 ba1jt) bejegyze1seket. A szavas bejegyze1sekne1l mindig a kisebb helyie1rte1ku3 ba1jt szerepel elo3szo2r, e1s a nagyobb helyie1rte1ku3 a ko2vetkezo3 ba1jton. A hosszu1szavas bejegyze1sekne1l elo3szo2r mindig a legkisebb helyie1rte1ku3 ba1jt szerepel, uta1na a ko2ze1pso3, majd pedig a legnagyobb helyie1rte1ku3 ba1jt. Ez a sorrend megfelel az Intel ba1jt sorrendnek, e1s pont az ellenkezo3je, mint a MOTOROLA ba1jt sorrend. A fa1jl egy fejle1cbo3l, e1s egy ta1bla1zatbo1l a1ll. A fejle1c elso3 ha1rom ba1jtja rendre 68, 67, 66, ami a DCB karakter sorozatnak felel meg az ASCII ko1dta1bla1ban. A ko2vetkezo3 ke1t ba1jt tartalmazza hexadecima1lis ASCII forma1ban a \HiOn/ azon verzio1 sza1ma1t, amelyik a bina1ris fa1jlt genera1lta, majd pedig hasonlo1 mo1don a ko2vetkezo3 ke1t ba1jt azt a verzio1t, amelyik minima1lisan szu2kse1ges a fa1jl beolvasa1sa1hoz. A verzio1kna1l a magas e1rte1k szerepel elo3szo2r, e1s az alacsony ma1sodszor. Ezuta1n 3 ba1jton ugyancsak hexadecima1lis ASCII forma1ban a genera1lo1 \HiOn/ da1tuma nap, ho1nap, e1v sorrendben. Az e1v az e1vsza1zadok elhagya1sa1val, e1s 66-tal\footnote{1966 egy specia1lis e1v volt.} %%1966 ma1jus 29-e1n szu2lettem. cso2kkentve jelenik meg. A da1tum uta1ni ba1jt e1rte1ke 26. Ez IBM PC ge1peken text fa1jlokban EOF jel, e1s i1gy egy {\tt type} DOS parancs nem dobja ki a fa1jl igaza1n bina1ris re1sze1t a ke1pernyo3re. A fejle1c utolso1 nyolc ba1jtja a fa1jl marade1k re1sze1nek a hossza 4 ba1jton, valamint az elso3 rekordra mutato1 pointer szinte1n 4 ba1jton. A ba1jtok sorrendje itt is a legkisebb helyie1rte1kto3l a legnagyobb helyie1rte1kig halad. A fa1jlban szerepelnek mutato1k, amelyek rekordokra mutatnak. Ezek fizikailag hosszu1szavak. Ezek e1rte1ke ba1jt eltola1si e1rte1k a ta1bla1zat eleje1to3l sza1mi1tva, azaz, ha a fa1jlon belu2l akarjuk o3ket e1rtelmezni, akkor a fejle1c hossza1t az e1rte1khez hozza1 kell adni, hogy a {\tt seek} vagy {\tt lseek} C ko2nyvta1ri fu2ggve1nynek megfelelo3 e1rte1ket kapjunk. A fa1jl tova1bbi re1sze rekordok sorozata. Az egyes rekordok me1rete nem a1llando1, hanem fu2gg a rekord tartalma1to1l. Minden egyes rekord tartalmazza a ve1ges automata egy a1llapota1t e1s az onnan kiindulo1 a1tmeneteket. \subsection{Egy rekord szerkezete} Egy rekord elso3 ba1jtja tartalmazza az a1llapotbo1l kiindulo1 a1tmenetek sza1ma1t {\tt (n)}. A ko2vetkezo3 ba1jt e1rte1ke, a lehetse1ges elva1laszta1sok sza1ma {\tt (h)}. Az ezuta1n ko2vetkezo3 {\tt h} darab ba1jt tartalmazza az elva1laszta1sok lehetse1ges helyeit szigoru1an no2vekedo3 sorrendben. Ha {\tt h} e1rte1ke nulla, akkor ez a re1sz hia1nyzik, vagy ma1s\-szavakkal nulla darab ba1jt szerepel. Innen kezdve a rekord ve1ge1ig 4{\tt n} ba1jton szerepelnek az a1llapotbo1l kiindulo1 a1tmenetek. Ezek mindegyike 4 ba1jtot foglal el, amelynek elso3 ba1jtja az a1tmenet karaktere, a marade1k ha1rom ba1jt pedig az u1j a1llapotnak megfelelo3 rekordra mutato1 pointer. \section{|IBM--PC, DEC International karakterek}@ %% %================================================ %% \label{IBMCODE} \typeout{||IBM--PC e1s DEC karakterek@@} A \HiOn/ program ke1pes arra, hogy IBM--PC-n, VAX ge1peken e1s UNIX-okon felismerje e1s kezelje a 127-ne1l nagyobb ko1du1 karaktereket. A programban van to2bb bee1pi1tett ta1bla1zat. Mivel az IBM PC CWI e1s a DEC Multinational Character Set e1kezetes karakterta1bla1zat nem u2ti egyma1st, eze1rt a ta1bla1zat egyszerre tartalmazza mind a ketto3t. A {\tt /ICHARSET} opcio1val ennek a ta1bla1zatnak a tartalma a1ti1rhato1.\footnote{Vigya1zat! Ez a ta1bla1zat kioszta1s az 1.3 verzio1ban megva1ltozott.} \begin{figure}[htb] \hbox to \hsize{\hfill \begin{tabular}|{|c|c|c|} \hline IBM PC & DEC Int. & \\ Ko1d & Ko1d & Karakter \\ \hline \hline 129 & 252 & u2 \\ \hline 130 & 233 & e1 \\ \hline 140 & 236 & I1 \\ \hline 141 & nincs & I1 \\ \hline 143 & 197 & A1 \\ \hline 144 & 201 & E1 \\ \hline 147 & 244 & o3 \\ \hline 148 & 246 & o2 \\ \hline 149 & 242 & O1 \\ \hline 150 & 251 & u3 \\ \hline 151 & 249 & U1 \\ \hline 152 & 253 & U3 \\ \hline 153 & 214 & O2 \\ \hline 154 & 220 & U2 \\ \hline 160 & 225 & a1 \\ \hline 161 & 237 & i1 \\ \hline 162 & 243 & o1 \\ \hline 163 & 250 & u1 \\ \hline 167 & 186 & O3 \\ \hline@ \end{tabular}\hfill} \vskip 2ex \centerline{IBM PC e1s DEC karakterek ta1bla1zata} \end{figure} A {\tt /ICHARSET} opcio1ban parame1terke1nt meg kell adni annak a fa1jlnak a neve1t, amelyik a mi ta1bla1zatunkat tartalmazza. Ennek a fa1jlnak minden egyes sora egy karaktert kell, hogy definia1ljon. Egy sor ha1rom sza1mbo1l a1ll. Az elso3 a karakter ko1dja, amit fel kell, hogy ismerjen a program. A ma1sodik e1s harmadik sza1m a betu3 ke1tkarakteres ko1dja1t kell, hogy adja. Az elso3 ko1d csak 127-ne1l nagyobb lehet, enne1l kisebb ko1du1 karakterekre ugyanis a program nem vizsga1lja a ta1bla1zatot. A ma1sodik ke1t sza1m csak 128-na1l kisebb sza1m lehet, mert a program egy konverta1lt e1rte1k alapja1n ma1r nem ne1zi a1t me1gegyszer a ta1bla1zatot, e1s a kimenetbe 127-ne1l nagyobb ko1du1 karakter fog keru2lni. A sza1mokat szo1ko2zo2k kell, hogy elva1lassza1k. A decima1lis sza1mok helyett megadhatunk karaktereket is, ezek a saja1t ASCII ko1djukat jelentik. Ha egy sza1mjegy karaktert, szo1ko2zt vagy backslasht akarunk megadni, akkor egy backslash kell, hogy megelo3zze a karaktert. \section{|U2zemmo1dok}@ %====================== \typeout{||U2zemmo1dok@@} % Mind a ke1t funkcio1t (elva1laszta1s e1s e1kezetek a1talaki1ta1sa), ki e1s be lehet kapcsolni a szo2vegben elhelyezett {\tt |||@@} e1s {\tt @} karakterekkel. A {\tt |||@@} karakter kikapcsolja az elva1laszta1sok bejelo2le1se1t, e1s a {\tt @} jel kapcsolja be. Ha ko2zvetlenu2l egyma1s uta1n ke1t {\tt |||@@} jelet i1runk, akkor az kikapcsolja mind az elva1laszta1sok bejelo2le1se1t, mind pedig az e1kezetek \TeX\ forma1ra hoza1sa1t. A bekapcsola1st ekkor a {\tt @@} karakterek ve1gzik, azaz ke1t {\tt @} karakter ko2zvetlenu2l egyma1s uta1n. Mind az elva1laszta1st, mind pedig az e1kezetek a1talaki1ta1sa1t kikapcsolja a \TeX\ matematikai mo1dja, amelyet egy vagy ke1t {\tt \$} jel vezet be, e1s ugyanannyi {\tt \$} jel za1r le. A ||\verb+/LATEX+@@ opcio1 haszna1latakor a \verb+\[, \], \(, \)+ jeleket is felismeri a program. Ilyen mo1don a \HiOn/ ne1gy u2zemmo1dban tud dolgozni. \begin{itemize} \item[1] Mind az elva1laszta1s, mind pedig az e1kezetek bejelo2le1se be van kapcsolva. Ez az az a1llapot, ahogy a \HiOn/ a fa1jl eleje1n indul. Ilyenkor a \HiOn/ a {\tt @} karaktereket ko2zo2nse1ges karakterke1nt kezeli. % \item[2] Az elva1laszta1s bejelo2le1se ki van kapcsolva, de az e1kezetek a1talaki1ta1sa \TeX\ forma1ra be van kapcsolva. Erre az u2zemmo1dra egy {\tt |||@@} karakterrel lehet a1tkapcsolni, amely uta1n nem a1ll egy ma1sik ugyanolyan karakter. Ebben az u2zemmo1dban a \HiOn/ a {\tt |||@@} karaktereket ko2zo2nse1ges karakterke1nt kezeli, de az elso3 {\tt @} karakterre visszakapcsol az 1 u2zemmo1dba. A bekapcsolo1, illetve kikapcsolo1 karakterek nem keru2lnek bele az a1tkonverta1lt fa1jlba. % \item[3] Mind az elva1laszta1sok bejelo2le1se, mind pedig az e1kezetek a1talaki1ta1sa ki van kapcsolva. Ezt az u2zemmo1dot a {\tt||||@@} jellel lehet bekapcsolni. A ke1t {\tt|||@@} jel ko2zo2tt nem lehet semmilyen ma1s karakter, me1g szo1ko2z sem. Ebben az u2zemmo1dban a \HiOn/ a {\tt|||@@} karaktert ko2zo2nse1ges karakterke1nt kezeli, e1s ko2zo2nse1ges karakterke1nt kezel egy {\tt @} karaktert is, ha nem a1ll ko2zvetlenu2l uta1na egy ma1sik {\tt @} karakter. Az u2zemmo1dot kikapcsolni ke1t {\tt @} karakterrel lehet, amelyeknek ko2zvetlenu2l egyma1s uta1n kell a1llniok. A bekapcsolo1, illetve kikapcsolo1 jelek nem keru2lnek bele az a1tkonverta1lt fa1jlba. Ez a leggyorsabb u2zemmo1d, i1gy ha egy fa1jl eleje1n sok makro1 defini1cio1 van--amelyet a \HiOn/ ugyan nem ba1ntana--, aze1rt e1rdemes bekapcsolni ezt az u2zemmo1dot a gyorsabb mu3ko2de1s kedve1e1rt. % \item[4] Matematikai mo1d, amelyet a \TeX\ {\tt \$} vagy {\tt \$\$} jele vezet be, e1s amelyet ugyancsak egy {\tt \$} vagy {\tt \$\$} jel za1r le. Ebben az u2zemmo1dban a \HiOn/ minden {\tt \$}-{}to1l ku2lo2nbo2zo3 karaktert ko2zo2nse1ges karakterke1nt kezel. A bekapcsolo1, illetve kikapcsolo1 jelek bekeru2lnek a konverta1lt fa1jlba is, hiszen azok a \TeX\ sza1ma1ra is e1rtelmezendo3ek. A \HiOn/ nem kapcsol a1t matematikai mo1dba, ha a {\tt \$} jelet egy backslash elo3zi meg. \end{itemize} Ha a szo2vegbe {\tt |||@@} jelet akarsz i1rni, akkor elo3szo2r ki kell kapcsolni az elva1laszta1st e1s az e1kezetek a1talaki1ta1sa1t ke1t {\tt |||@@} jellel, majd bege1pelni a {\tt |||@@} jelet, majd pedig visszakapcsolni az 1 u2zemmo1dra ke1t {\tt @} jellel. I1gy a ve1gso3 karaktersorozat {\tt|||||@@@@} lesz. (Feladat: hogyan kell lei1rni ezt a karaktersorozatot?) A 2 e1s 3 u2zemmo1dok ko2zo2tt nem lehet csak az 1 u2zemmo1don keresztu2l a1tkapcsolni. Matematikai mo1d elo3fordulhat a 1 e1s a 2 u2zemmo1don belu2l. Ilyenkor a matematikai mo1d, azaz a 4 u2zemmo1d leza1ra1sa uta1n a ko2ru2lvevo3 u2zemmo1dba keru2l vissza a \HiOn/. \section{|Statisztika}@ %% Nem a KSH csina1lja (Statesztike) %====================== %% Matyi, Misi \typeout{||Statisztika@@} A \HiOn/ a munka befejezte1vel egy statisztika1t i1r ki a ke1pernyo3re arro1l, hogy mit is csina1lt. A {\tt hion.hun} fa1jl fordi1ta1sakor pe1lda1ul a ko2vetkezo3t i1rta ki: ||\begin{verbatim} HiOn report 40577 TeX karaktert i1rtam ki. 7039 szo1 volt, ebbo3l 664 veze1rlo3 szo1. 47 bonyolult, discretionary elva1laszta1s volt. 665 alkalommal meru2lt fel ligatu1ra ve1delem, e1s ebbo3l 1 alkalommal kellet discretionary formula1t alkalmaznom. 5454 alkalommal vizsga1ltam igeko2to3 kezdetu3 szavakat e1s 304 alkalommal tala1ltam is. 122 alkalommal vizsga1ltam meg a szo1 to2bbi re1sze1t is, 66 alkalommal tala1ltam valo1di igeko2to3t. 6374 alkalommal kerestem sa1g se1g ke1pzo3t, e1s 8 alkalommal tala1ltam. Szi1vesen ma1skor is. \end{verbatim}@@ Ez azt jelenti, hogy ko2ru2lbelu2l $40577$ darab karakter keru2lt a \TeX\ fa1jlba. O2sszesen $7039$ szo1t dolgozott fel a \HiOn/ e1s ebbo3l $664$ alkalommal a szo1 veze1rlo3 szo1 volt. $47$ alkalommal tala1lt olyan szo1t a \HiOn/ amelyikben hosszu1 o2sszetett ma1ssalhangzo1 volt. $665$ olyan betu3pa1rost, vagy betu3ha1rmast tala1lt a program, amelyet ligatu1rake1nt szed ki a \TeX, azonban csak $1$ alkalommal szerepeltek ezek a karakterek olyan helyen, hogy ko2zo2ttu2k a magyar nyelv elva1laszta1si szaba1lyai szerint elva1laszta1st kellett volna megengedni. A1ltala1ban magyar szo2vegben csak akkor fordulnak elo3 elva1lasztando1 ligatu1ra1t tartalmazo1 szavak, ha az szakszo2veg, e1s olyan szavakat tartalmaz, mint effekti1v.\footnote{Egye1bke1nt a dokumenta1cio1ban ez az a szo1, amit a \HiOn/ megtala1lt.} $5454$ alkalommal vizsga1lta meg a \HiOn/ a szavak eleje1t, hogy nem igeko2to3-e a prefixu2k. Ebbo3l $304$ alkalommal tala1lta u1gy, hogy formailag a szo1 kezdete igeko2to3, e1s ebbo3l $182$ alkalommal olyan igeko2to3ro3l volt szo1, amely mindig igeko2to3ke1nt jelenik meg a szo1 eleje1n, e1s i1gy nem kellett megvizsga1lni a szo1 tova1bbi re1sze1t. $122$ olyan alkalom volt, amikor csupa1n a szo1 eleje1nek a vizsga1lata nem do2nto2tte el, hogy a kezdet igeko2to3, e1s meg kellett vizsga1lni a szo1 tova1bbi re1sze1t is. Ebbo3l $66$ alkalommal tala1lt a \HiOn/ igazi igeko2to3t. $6374$ alkalommal ne1zte meg a \HiOn/, hogy a szo1ban szerepel-e a csa1g, cse1g vagy a zsa1g illetve zse1g karakter sorozat. $8$ alkalommal volt. A {\tt /NOSTATISTICS} vagy a {\tt /SILENT} opcio1kkal lehet megke1rni a \HiOn/-t arra, hogy ne i1rjon ki statisztika1t. \section{|Karbantarta1s}@ %% maximum 10000km-enke1nt szervi1z!!! %======================== \label{KARB} \typeout{||Karbantarta1s@@} Mint minden program, valo1szi1nu3leg a \HiOn/ sem hibamentes. Szinte biztos, hogy maradtak benne hiba1k. A \HiOn/ mu3ko2de1se1nek, illetve a sege1dfa1jlok tartalma1nak meg kell felelnie az ebben a lei1ra1sban szereplo3 a1lli1ta1soknak. Minden ma1sfajta mu3ko2de1s hiba1nak sza1mi1t. Egyes helyeken a program olyan felte1teleket is elleno3riz, amelyeknek nem szabad elo3fordulniok. Ha a felte1tel me1gis elo3fordul, akkor egy hibajelze1st genera1l, ami valahogy i1gy ne1z ki: \begin{verbatim}|| HION INTERNAL ERROR STATE=xxx PHASE=yyy MESAG=ssssss Please contact: h3309ver@ella.hu \end{verbatim}@@ Ha ezt produka1lja a program, akkor i1rd meg, a ke1t {\tt|| xxx}@@ e1s {\tt|| yyy}@@ sza1mot, a {\tt|| ssssss}@@ szo2veget, a \HiOn/ verzio1 sza1ma1t, a kibocsa1ta1si da1tuma1t (ez a verzio1 sza1m mellett jelenik meg az 1.6 verzio1 egyes pe1lda1nyaina1l e1s a felett), egy olyan bemeno3 szo2veget, amire ezt produka1lta a program, az opcio1kat, amit haszna1lta1l, az opera1cio1s rendszer e1s a C fordi1to1 ti1pusa1t e1s verzio1 sza1ma1t.\footnote{Ha lehet, akkor a leheto3 legro2videbb olyan szo2veget ku2ldd, ami ezt produka1lja.} Ha a program egyszeru3en meghal (ez PC-n fordulhat elo3) vagy {\tt Segmentation fault} hibajelze1st ad (ez inka1bb UNIX-ra jellemzo3), vagy egy hosszabb szo2veget i1r ki (pl. VMS rendszer alatt) akkor hasonlo1 dolgokat i1rja1l, mint fent, e1s i1rd meg, hogy mit i1rt ki az opera1cio1s rendszer. Ha a program valamit rosszul va1laszt el, e1s i1gy ke1szi1t el egy efa1ntot, e1s biztos, hogy rosszul va1laszt el, akkor i1rd meg, hogy mit va1laszt el rosszul. Vigya1zz! Ha a kinyomtatott szo2vegben valami rosszul van elva1lasztva, akkor me1g mindig lehet, hogy a \TeX\ va1lasztott el rosszul egy olyan helyen, ahol a \HiOn/ nem jelo2lt be elva1laszta1st. Ne1zdd meg a genera1lt \TeX\ szo2veget, hogy be van-e jelo2lve az elva1laszta1s! Ha nem fogadja el a \TeX\ vagy a \LaTeX\ a genera1lt szo2veget, akkor valo1szi1nu3leg ma1r az eredeti .hun szo2veg sem volt jo1. Ilyesmi miatt csak akkor i1rja1l, ha {\def\n{nagyon }\n\n\n\n\n\n\n\n }biztos vagy benne, hogy a \HiOn/ tolja el a dolgot. Ha \LaTeX-et haszna1lsz, akkor elleno3rizd le, hogy nem felejtetted-e el a {\tt /LATEX} opcio1t. Ha a genera1lt fa1jl nem egyezik meg azzal, mint amit te va1rna1l a \HiOn/\discretionary{-}{}{-}to1l, akkor gondold ve1gig, hogy nem te e1rtette1l-e fe1lre valamit a lei1ra1sbo1l. Ha u1gy gondolod, hogy nem, e1s a \HiOn/ hiba1zik, akkor i1rd meg nekem, e1s akkor me1g mindig lehet, hogy azt fogom va1laszolni, hogy amit tala1lta1l, az nem hiba, hanem i1gy kell, hogy legyen. Ha ba1rmi egye1b gondod van, akkor csak i1rja1l nyugodtan. Eddigi e1letemre e1s szoka1saimra visszatekintve azt mondhatom, hogy eMail-re a1ltala1ban me1g aznap szoktam va1laszolni\footnote{Ez nem igaz, mio1ta az ||{\tt ELLA}@@ rendszerhez van/volt szerencse1m.}, leve1lre egy e1ven belu2l. Az eMail ci1mem megtala1lhato1 a programban. Ha nem tudsz eMailen keresztu2l ele1rni, akkor i1rja1l egy ko2zo2nse1ges levelet a ko2vetkezo3 ci1mre: \noindent Verha1s Pe1ter \\ Patyolat utca 4. \\ Budapest XV. keru2let \\ 1155 \\ Ugye nem kell mondani, hogy HUNGARY illetve EUROPE ha Magyarorsza1gon ki1vu2lro3l i1rna1d a levelet. {\bf Nagyon fontos}, hogy ha levelet i1rsz, e1s van, akkor i1rd meg az eMail ci1medet. Nem i1ge1rem, de valo1szi1nu3, hogy, ha ku2ldesz nekem egy megfelelo3en megci1mzett e1s felbe1lyegzett, egy IBM PC lemez befogada1sa1ra e1s posta1za1sa1ra alkalmas bori1te1kot, e1s melle1kelsz egy IBM PC DS DD, vagy DS HD lemezt (nagyot, vagy picit) akkor elku2ldo2m a \HiOn/ aktua1lis va1ltozata1t. Ha ebben a dokumenta1cio1ban, vagy ba1rmely ma1s fa1jlban helyesi1ra1si hiba1t tala1lsz, akkor arra ke1rlek, hogy azt rajtam ki1vu2l ne a1ruld el senkinek\footnote{A szo2vegben mindenhol a szabva1nyos i1ra1smo1dot haszna1ltam, azaz fa1jl e1s ba1jt nem pedig file vagy byte. Lehet szeretni, uta1lni, de ez a helyes.}. \section{|To2rte1nelem}@ %%amit mindig u1jrai1rnak, u1jrai1rnak... %======================= \typeout{||To2rte1nelem@@} \begin{itemize} % a szu2linapom \item {\tt 1.0} A \HiOn/ program elso3 va1ltozata 1991. ma1jus 29-e1n keru2lt a nagyko2zo2nse1g ele1. Etto3l kezdve a program ele1rheto3 az XMAIL rendszer SENDDOC parancsa1val. % \item {\tt 1.1} Az elso3 va1ltozatban volt egy ge1pele1si hiba, ami sajnos lefordult, de UNIX rendszer alatt {\tt Segmentation fault} hibajelze1st adott. Ez a va1ltozat ezt kijavi1totta, e1s az XMAIL rendszerbe is el lett ku2ldve a javi1tott va1ltozat 1991. ju1nius 5-e1n. % \item {\tt 1.2} Eddig a va1ltozatig a program lenyelte a bemenet utolso1 sora1t, ha annak az utolso1 karaktere valamilyen maga1nhangzo1 volt. Ekkor ugyanis a program va1rt egy lehetse1ges e1kezetre, e1s a fa1jl ve1ge karakterne1l nem za1rta le a sort, i1gy az nem keru2lt kii1ra1sra. A hiba tipikusan jelentkezett egy \TeX\ fa1jl utolso1 \verb+\bye+ sora1na1l, ha azt nem za1rta le u1jsor karakter. Ebben a va1ltozatban ez a hiba ma1r nincs 1991. ju1lius 2-to1l. % \item {\tt 1.2} A program \LaTeX\ u2zemmo1dban felismeri a \verb+\( \)+ valamint \verb+\[ \]+ matematikai mo1dokat. Egy hiba miatt matematikai mo1d uta1n ne1ha egy szo1ko2z keru2lt a kimenetbe. Ez is ki lett javi1tva. Me1g mindig csak 1.2 verzio1. % \item {} Megjelent {\em Benko3~Tiborne1, Poppe~Andra1s, Benko3~Tibor: {\it Bevezete1s a BORLAND C++ programoza1sba{}\/}, |ComputerBooks@, Budapest, 1991.} ci1mu3 ko2nyv, amelynek a szede1se a \HiOn/ preprocesszorral e1s \LaTeX -hel ke1szu2lt. 1991. okto1ber 21. % \item {\tt 1.2} A megva1ltozott eMail ci1m kijavi1ta1sra keru2lt mind a programban, mind pedig a dokumenta1cio1s fa1jlokban. Ez nem akkora va1ltoza1s, hogy u1j verzio1 legyen. 1991. okto1ber 21. % \item {\tt 1.2} U1j opcio1, a \verb+'a'+, keru2lt bevezete1sre. Sajnos a \verb+'b'+ ma1r foglalt. 1991. okto1ber 22. % \item {\tt 1.3} Ke1t hiba ki lett javi1tva. Az egyik az volt, hogy ha egy |\verb+|+@ jellel kikapcsoltuk az elva1laszta1st, akkor a kikapcsolt re1szben a tova1bbi |\verb+|+@ jeleket a \HiOn/ megette. Ez tipikusan jelentkezett egy \LaTeX\ ||\verb+tabular+@@ ko2rnyezetben. A ma1sik hiba az volt, hogy a \verb+\+ karaktert a \HiOn/ szo1elemnek tekintette, e1s i1gy ha egy szo1ra valaki ko2zvetlenu2l ra1i1rt egy \TeX\ veze1rlo3 szekvencia1t, akkor a \HiOn/ nem dolgozta fel a szo1t. Ez a hiba most ki lett javi1tva. 1991. november 26. % \item {\tt 1.4} A \HiOn/ felismeri a ``meg'' igeko2to3t akkor is, ha az uta1na ko2vetkezo3 ige ``gy'' betu3vel kezdo3dik. Hasonlo1 mo1don lett kezelve a ``gy'' betu3vel kezdo3do3 melle1knevek felso3foka. U1j opcio1 a '\verb+p+' lett bevezetve, e1s a \HiOn/ mostanto1l nem ba1ntja a nem \verb+\+ karakterrel kezdo3do3 \TeX\ kulcsszavakat sem. 1991. december 10. % \item {\tt 1.5} A \HiOn/ ne1ha1ny leguto1bbi verzio1ja nem is fordult le VMS alatt, csak kisebb mo1dosi1ta1sal. Ez a hiba most deru2lt ki, e1s ki is lett javi1tva. Mostanto1l ismeri a DEC |International@ karakter kioszta1sa1t is a program. Figyelembe veszi a kontroll karaktereket is a program, e1s az ege1sz sort be1ke1nhagyja a \verb+\doc+\dots\verb+yle+, valamint az \verb+\addc+\dots||\verb+line+@@ veze1rlo3 szavak uta1n. Olvassa a {\tt hion\_opt} ko2rnyezeti va1ltozo1t, e1s ke1t u1j opcio1 is szu2letett, a '{\tt +}' e1s a '{\tt :}'. 1992. ma1jus 18. % \item {\tt 1.6} Apro1bb javi1ta1sok to2mkelege. % \item {\tt 1.7} A \HiOn/ mostanto1l kezdve kezeli az o2sszetett szavakat is egy kive1telszo1ta1r segi1tse1ge1vel. 1992. ju1lius 25. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% 07-25-92 09:02pm07-25-92 09:02pm07-25-92 09:03pm07-25-92 09:03pm %% %% 1992. ju1lius 25. a barcelo1nai olimpia nyito1napja 07-25-92 09:02pm %% %% %% 07-25-92 09:02pm07-25-92 09:02pm07-25-92 09:02pm07-25-92 09:02pm %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \item {\tt 1.7+} Ne1ha1ny u1j fu2ggve1ny prototi1pussal lett definia1lva, e1s eze1rt K\&R fordi1to1k nem bi1rta1k lefordi1tani a \HiOn/-t. Ez ki lett javi1tva. Kocsis Tama1s javaslata1nak megfelelo3en ha a \HiOn/ az aktua1lis direktoriban nem tala1lja a {\tt dcb} fa1jlt, akkor DOS e1s VMS alatt megne1zi abban a direktoriban, ahol a ve1grehajthato1 fa1jl van. Szinte1n Kocsis Tama1s hi1vta fel a figyelmemet arra a hiba1ra, hogy a \HiOn/ meghi1vta a {\tt usage()} fu2ggve1nyt abban az esetben is, ha a {\tt HION\_OPT} va1ltozo1ban volt definia1lva opcio1, de a parancssorban nem szerepelt ma1s, mint a {\tt hion} parancs. Megszu3nt a {\tt hion\_opt} ko2rnyezeti va1ltozo1, e1s minden opera1cio1s rendszer alatt {\tt HION\_OPT} haszna1lando1. \item{3.0} Hoszabb szu2net uta1n isme1t karban van tartva a dokumenta1cio1. Ez ugye la1tszik abbo1l, hogy kimaradtak innen a 2.\dots verzio1k. Nem volt ku2lo2no2sebb jelento3se1gu2k, kevesen haszna1lta1k. A 3.0 verzio1ban megva1ltozott az opcio1k kezele1se, e1s a UNIX-szeru3 opcio1kro1l a1tte1rt a \HiOn/ a VMS-szeru3 opcio1kra. Ennek egyszeru3 oka az volt, hogy elfogyott az abc. 1994. ma1jus 29. A \HiOn/ 3 e1ves. \end{itemize} \section{|Gyakran Isme1telt Ke1rde1sek, azaz GYIK}@ \label{FAQ} %============================= \typeout{||FAQ@@} A \HiOn/ sohasem fog to2ke1letesen mu3ko2dni. Ezt u1gy kell e1rteni, hogy a \HiOn/ ba1rmely verzio1ja1hoz lehetett, e1s lehet majd genera1lni olyan \verb+hun+ fa1jlt, amire a \HiOn/ nem azt a kimenetet produka1lja, amit a felhaszna1lo1 elva1rna. Ennek a legegyszeru3bb pe1lda1ja az, hogyha a \verb+\+ karakter ko1d oszta1lya1t a1ta1lli1tjuk, e1s valamely ma1s karaktert haszna1lunk ||escape@@ karakternek, a \HiOn/ akkor is a \verb+\+ karakterrel kezdo3do3 szavakat fogja be1ke1nhagyni. Ha minden leheto3se1get figyelembe akarna1nk venni, akkor egy olyan programot kellene i1rni, aminek a bonyolultsa1ga legala1bb akkora lenne, mint a \TeX\ rendszere1, akkor pedig ma1r egyszeru3bb egy magyar \TeX-et ke1szi1teni\footnote{Van is valami ilyen, a Ma\TeX, ke1rde1s, hogy akkor mie1rt le1tez a \HiOn/. Pro1ba1ld ki a Ma\TeX-et, e1s megtudod.}. A \HiOn/ ce1lja az volt, hogy egy olyan preprocesszor legyen, amelyik egyszeru3, ro2vid, hordozhato1. Eze1rt van az is, hogy a \HiOn/ egyetlenegy C programfa1jlban keru2lt terjeszte1sre. I1gy mindenkinek le kell tudnia fordi1tani, nem vesznek el fa1jlok a ma1sola1s ko2zben, nem kell ||{\tt makefile}@@-okkal bi1belo3dni. A program fejlo3dik, u1jabb verzio1k la1tnak napvila1got, e1s a felhaszna1lo1k ke1re1seit is figyelembe ve1ve fejlo3dik a program. Ugyanakkor ido3ro3l ido3re vannak olyan ki1va1nsa1gok, amelyeknek a teljesi1te1se nem rea1lis, a megvalo1si1ta1s tu1l bonyolult lenne, ugyanakkor a haszna1lat ko2nnyebbse1ge ezt nem ellensu1lyozna1. Egy ilyen ke1re1s volt az, hogy a \HiOn/ ismerje fel matematikai mo1don belu2l a nem matematikai mo1dban levo3 re1szeket. Ehhez a \HiOn/-nak elemeznie kellene a matematikai mo1dban i1rt szo2veget, e1s egy olyan funkcio1t valo1si1tana meg, amire csak ritka1n van szu2kse1g, e1s megfelelo3 haszna1lattal kikeru2lheto3. Persze mit jelent a megfelelo3 haszna1lat? Van, amikor a va1lasz egyszeru3, e1s van, amikor nem maga1to1l e1rteto3do3. Az ilyen ke1rde1sekre szeretne1k va1laszt adni ebben a fejezetben. \subsection{|Hogyan i1rjak egy {\tt |} jelet?@} %============================================== A dolog rendki1vu2l egyszeru3. Ki kell kapcsolni a \HiOn/ mu3ko2de1se1t ke1t ||{\tt |}@@ jellel, azaz be kell i1rni: ||{\tt ||}@@. Ezuta1n be kell I1rni a ||{\tt |}@@ jelet, e1s vissza kell kapcsolni ke1t {\tt @} jellel, azaz be kell i1rni: {\tt @@}. I1gy a ve1gso3 karaktersorozat, ami a kimeneti \TeX\ fa1jlban meg fog jelenni: ||{\tt |||@@@@}. Most ma1r csak az a ke1rde1s, hogy ezt a karaktersorozatot hogyan kell kiszedni. \subsection{|Hogyan i1rjak egy @@| jelet?@} %======================================== A \HiOn/ bekapcsolt a1llapota1ban a {\tt @} jel ugyanolyan karakter, mint ba1rmely ma1s betu3. Egyszeru3en be kell ge1pelni\footnote{A1ltala1ban a SHIFT e1s a {\bf 2} gombok egyu2ttes lenyoma1sa1val e1rheto3 el.}. \subsection{|Bekapcsola1s matematikai mo1dban@} %=============================================== Matematikai mo1dban is lehet olyan szo2veg, amely nem ke1plet. Ilyen lehet egy \verb+\hbox+ , vagy egy \verb+\footnote+ argumentuma. Azt szeretne1nk, hogy a \HiOn/ ezekre a szo2vegekre is mu3ko2djo2n, hogyan lehet bekapcsolni? Nem szabad engedni, hogy a \HiOn/ kikapcsoljon a matematikai mo1d kezdete1t jelzo3 {\tt \$} jelne1l, ezt pedig u1gy lehet ele1rni, ha ma1r kikapcsolt a1llapotban van. I1gy a {\tt \$} jel helyett ||{\tt ||}@@{\tt \$}-t kell i1rni, illetve {\tt \$\$} helyett ||{\tt ||@@\$\$} jelsorozatot e1s a matematikai mo1d ve1ge1t jelzo3 {\tt \$} vagy {\tt \$\$} helyett {\tt \$@@} e1s {\tt \$\$@@} jeleket. I1gy a \HiOn/ a matematikai mo1don belu2l ugyanu1gy kikapcsolt a1llapotban lesz, mintha a {\tt \$} vagy {\tt \$\$} jel kapcsolta volna ki, de a {\tt @@} jelekkel ba1rmikor bekapcsolhatjuk, e1s a ||{\tt ||}@@ jelekkel ba1rmikor isme1t kikapcsolhatjuk a mu3ko2de1se1t. Egy dologra kell odafigyelni: {\sl A matematikai mo1d ve1ge1n a \HiOn/ legyen kikapcsolt a1llapotban,} ellenkezo3 esetben a matematikai mo1dot kikapcsolo1 {\tt \$} vagy {\tt \$\$} jelet matematikai mo1d kezdete1nek fogja tekinteni, e1s felborul. \subsection{|A \HiOn/ to2nkreteszi a {\tt tabular} ko2rnyezetet}@ %=============================================================== Igen. Ezt u1gy lehet elkeru2lni, hogy a \verb+\begin{tabular}{}+ elo3tt ke1t {\tt |||@@} jellel kikapcsoljuk a \HiOn/-t, e1s uta1na visszkapcsoljuk ke1t {\tt @} jellel. Ez tipikusan egy olyan proble1ma, amelynek a figyelembe ve1tele a \HiOn/-to1l tu1l nagy ero3feszi1te1st ige1nyelne. \subsection{|Szt-ring e1s szt-racsatella\dots}@ %============================================= Az 1.5 verzio1 elo3tt volt a \HiOn/-ban egy algoritmus hiba e1s ezt a ke1t szo1t rosszul va1lasztotta el. Haszna1lj 1.5 vagy anna1l magasabb verzio1t. \subsection{|Malac-sa1g}@ %======================== A \HiOn/ a -sa1g -se1g ke1pzo3ket figyelembe veszi. Ezekkel a ke1pzo3kkel csak akkor kell foglalkozni, ha elo3ttu2k c vagy z betu3 a1ll, mert ilyenkor az algoritmus cs-nek vagy zs-nek tekinti a ke1pzo3 elo3tti utolso1 e1s a ke1pzo3 elso3 betu3je1t. I1gy a {\it malacsa1g} szo1t a program |{\it ma-la-csa1g\/}@-ke1nt va1lasztana1 el. Az 1.5 verzio1 a szavakban a {\it csa1g, cse1g, zsa1g} e1s {\it zse1g} karaktersorozatokban a a dupla betu3ket felbontja e1s i1gy azok helyesen va1laszto1dnak el. Ha valamie1rt akadna olyan szo1, amely ezen karaktersorozatok ko2zu2l ba1rmelyiket tartalmazza, e1s me1gsem -sa1g -se1g ke1pzo3s, akkor a szo1t a {\tt |||@@} e1s {\tt @} jelek ko2ze1 kell za1rni, e1s ke1zzel bei1rni az elva1laszta1st. E1n nem tudok ilyen szo1ro1l, i1gy csak egy rossz pe1ldake1nt, ha a malacsa1g szo1t rosszul akarjuk elva1lasztani, akkor {\tt |||ma\verb+\-+la\verb+\-+cs{\sf\'{\tt a}}g@@@} az i1ra1smo1d. \subsection{Haszna1lhatom a \HiOn/-t csak karakterkonverzio1ra?} %================================================================== Igen. Ehhez ki kell kapcsolni a ku2lo2nbo2zo3 elva1laszta1sokat, azaz alkalmazni kell a {\tt /NOHYPHEN} opcio1t. Ekkor csak az e1kezetek bejelo2le1se to2rte1nik, ami alap\-e1rtelmeze1sben \TeX, de a {\tt /OCHARSET} opcio1val a1tkapcsolhato1. A \HiOn/ ilyenkor sem konverta1lja a1t a {\tt \%} jel uta1n a1llo1 \TeX\ megjegyze1seket. Ha te1nyleg mindent a1t kell konverta1lni, akkor a {\tt huon} funkcio1t kell haszna1lni, vagy a DRTC programot, ami CWI, 852 e1s ISO Latin 2 ko1dke1szlet ko2zo2tt konverta1l text e1s MicroSoft RTF forma1tumu1 fa1jlokat. \subsection{|Milyen gyors a \HiOn/?}@ %=================================== A kora1bbi verzio1khoz ke1pest az 1.4 e1s me1ginka1bb az 1.5 verzio1k meg lettek gyorsi1tva, i1gy a \HiOn/ elegendo3en gyors. Egy 386AT 33MHz ge1pen a hion.hun fa1jl fordi1ta1sa alig to2bb mint 19 ma1sodperc. Ugyanakkor a program fele1pi1te1se olyan, hogy a bonyolult funkcio1k, mint az igeko2to3k figyele1se, vagy a ligatu1ra ve1delem kikapcsola1sa nem gyorsi1tja meg le1nyegesen a futa1st, eze1rt csak sebesse1gi okok miatt ezeket nem e1rdemes kikapcsolni. A kive1telszo1ta1r beolvasa1sa ele1g sok ido3t vesz ige1nybe, eze1rt ne1ha e1rdemes lehet a {\tt /DONT\_USE\_DICTIONARY} opcio1val az o2sszetett szavak figyele1se1t kikapcsolni. \subsection{|{\it H-ogy} e1s ta1rsai}@ %===================================== \label{HIONHYPH} A \TeX\ alaphelyzetben inka1bb tu1l hosszu1 sorokat csina1l, mint rosszul va1laszt el, vagy tu1l nagy szo1ko2zo2ket hagy. Ilyenkor egyes sorok tu1llo1gnak a bal oldali margo1n. Ha ez gondot okoz, pl. nagyon ro2vid sorok esete1n, akkor haszna1lni lehet a \verb+\sloppy+ parancsot. Ekkor viszont, amellett, hogy nagyobbak lesznek a szo1ko2zo2k, a \TeX\ laza1bban veszi az elva1laszta1st is, e1s elva1lszt olyan helyen is, ahol nem lett bejelo2lve. Ilyenkor keletkeznek az olyan elva1laszta1sok, mint \hbox{\it h-ogy}. Ezt u1gy lehet elkeru2lni, hogy az ilyen szavakat felsoroljuk egy \verb+\hyphenation+ parancsban, amely megmondja a \TeX-nek, hogy az adott szavakat hogyan kell elva1lasztani. Jelen esetben azt mondja meg, hogy sehogy sem kell ezeket a szavakat elva1lasztani. A \HiOn/ 1.7 verzio1ja1to1l kezdve leheto3se1g van arra, hogy a \HiOn/-t ra1vegyu2k, hogy az ilyen szavak uta1n egy \verb+\-+ jelet i1rjon. ({\tt /POSTHYPHEN} opcio1) Ilyenkor a ke1t karakterne1l hosszabb szavak uta1n a \HiOn/ egy \verb+\-+ jelet tesz. Ez a \TeX\ sza1ma1ra azt jelenti, hogy a szo1t mi va1lasztjuk el, e1s azokat a szavakat, amelyekben aka1r \verb+\-+, aka1r {\tt |discretionary}@ elva1laszta1s szerepel, nem va1lasztja el, csak a megadott helyeken. I1gy a \TeX\ nem fogja elva1lasztani ezeket a szavakat sem. \subsection{|Nem jo1 a szo1ta1r?}@ %================================= Ha a szo1ta1r fordi1ta1sakor a {\tt hion /FUNCTION=DICC} parancs kiada1sa uta1n egy csomo1 hibau2zenet jelenik meg a ke1pernyo3n, melyek szerint szavak feleslegesek, vagy lefagy a program, akkor valo1szi1nu3leg MS-DOS alatt dolgozol, e1s rossz memo1riamodellben lett lefordi1tva a \HiOn/. Csak a {\tt HUGE} mo1dban lefordi1tott program mu3ko2de1se garanta1lt (az is csak annyira, mint a \ref{JOGOK}. fejezetben i1rva vagyon). \section{|A jo2vo3 u1tja}@ \label{JO2VO3} %========================= \typeout{||A jo2vo3 u1tja@@} Mivel az o2sszetett szavak szo1ta1ra1nak beolvasa1sa ara1nylag sok ido3t vesz ido3be, eze1rt fontolom, hogy a \HiOn/ veze1relheto3 legyen egy programfa1jllal, e1s egy elindi1ta1ssal to2bb fa1jlt is a1tkonverta1ljon. Ekkor csak egyszer kell beolvasni a kive1telfa1jlt. \section{|Jogok e1s garancia1k}@ %%szo2rnyu3, mi? %=============================== \label{JOGOK} \typeout{||Jogok e1s garancia1k@@} Az ebben a fejezetben foglaltak kiza1ro1lag a program \hionversion\ verzio1ja1ra e1rve1nyesek. A kora1bbi, illetve ke1so3bbi va1ltozatokra a megfelelo3 felhaszna1lo1i lei1ra1s szo2vege vonatkozik. Jogok vannak, garancia1k nincsenek. Kezdju2k a garancia1kkal! \subsection{|Garancia1k}@ %------------------------ Nincs garancia arra, hogy a program azt csina1lja, amit ebben a szo2vegben lei1rtam. Arra sincs garancia, hogy nem teszi to2nkre a lemezt, a sza1mi1to1ge1pet stb. Ez nem jelenti azt, hogy to2nkreteszi, de ha me1gis, akkor engem eze1rt nem lehet felelo3sse1gre vonni. Ve1gu2l is adom a C forra1st, e1s nem csak egy elleno3rizhetetlen, vi1rusokkal terhes {\tt com} vagy {\tt exe} fa1jlt. Nincs garancia arra, hogy ha valami nem jo1l mu3ko2dik, e1s i1rsz nekem, akkor va1laszolok, vagy kijavi1tom a hiba1t. Ez nem azt jelenti, hogy nem fogok va1laszolni, vagy nem fogom kijavi1tani a hiba1t. De ha nem e1rek ra1, nincs ge1pem, amin programozzak, vagy moziba kell mennem, akkor nem fogom kijavi1tani azonnal a hiba1t e1s esetleg va1laszolni sem fogok. Nincs garancia arra, hogy ba1rmit is betartok abbo1l, amit a \ref{JO2VO3}. fejezetben i1rtam. Ez nem azt jelenti, hogy nem is akarom megtenni ezeket a dolgokat, de ha esetleg nem sikeru2l, akkor engem eze1rt nem lehet felelo3sse1gre vonni. Nincs garancia arra, hogy egy regisztra1lt felhaszna1lo1 e1rtesi1te1st kap egy u1jabb va1ltozat megjelene1se1ro3l. (Pillanatnyilag nem tudom, hogy hogyan tudna1m ezt megszervezni, de ha sikeru2l, akkor lesz ilyen szolga1ltata1s.) {\it Semmilyen felelo3sse1ggel nem tartozom azon nyomtatva1nyok tartalma1t illeto3en, amelyek a \HiOn/-nal ke1szu2ltek, me1g abban az esetben sem, ha az adott nyomtatva1ny elke1szi1te1se1hez a \HiOn/ haszna1lati joga1t megvette1k. A \HiOn/ haszna1lata1nak engede1lyeze1se, vagy haszna1lati joga1nak elada1sa egy adott, vagy to2bb, elo3re meg nem hata1rozott kiadva1nyhoz nem jelenti azt, hogy a kiadva1ny tartalma1val egyete1rtek, vagy azt ismerem. A kiadva1ny ba1rminemu3, kiado1i, szerzo3i vagy egye1b jogot se1rto3 tartalma1e1rt a kiadva1ny kiado1ja e1s szerzo3je az egyedu2li felelo3s. A \HiOn/-t csak ennek tudoma1sulve1tele1vel lehet haszna1lni.}\footnote{Reme1lem, ez nem okoz gondot.} \subsection{|Jogok}@ %%e1s jo1gik %------------------- Ba1rkinek joga1ban a1ll a programot 30 napig kipro1ba1la1si ce1llal haszna1lni. Ha valakinek nem tetszik a program, akkor a 30 nap eltelte1vel leto2rli e1s elfelejti. Ha tetszik, akkor eldo2nti, hogy a program haszna1lata1val profithoz jut-e vagy sem. Ha az a ve1leme1nye, hogy a programot csak a diploma1ja1hoz, te1zise1hez, szerelmes leveleihez vagy valamilyen ma1s szeme1lyes szo2vege1hez haszna1lja, amibo3l nem sza1rmazik {\sl ko2zvetlen} anyagi haszna, akkor egyetlen ko2telesse1ge regisztra1ltatnia maga1t, azaz ku2ldeni nekem egy eMailt (e1s % to2bbe1 ma1r nem kell meg\-gyo3zo3dni meggyo3zo3dni, hogy meg is e1rkezett) vagy ku2ldeni egy levelet. Fizetni nem kell. Ha a programot valamilyen olyan brossu1ra, fu2zet, ko2nyv ke1szi1te1se1hez haszna1lja, amelyet azta1n sokszorosi1ta1s uta1n pe1nze1rt adnak el, de a befolyt o2sszeg csupa1n az {\sl o2nko2ltse1g}, teha1t a nyomda, ge1pi1ro1no3 stb. fedeze1se1re szolga1l, akkor me1g mindig ke1t eset lehetse1ges. Ha a kiadva1ny oktata1sra szolga1l, e1s oktata1si inte1zme1ny adja ki, akkor csak regisztra1ltatni kell a haszna1latot, azaz megi1rni nekem, hogy pontosan mihez is haszna1lta1k a programot, a kiadva1ny hivatkoza1sa1nak illetve az inte1zme1ny pontos megjelo2le1se1vel. Fizetni nem kell. Ha a fu2zet oktata1sra szolga1l, de nem oktata1si inte1zme1ny adja ki (pe1lda1ul tu3zve1delmi u1tmutato1 egy u2zemen belu2l), akkor szeme1lyes kapcsolat felve1tele uta1n eldo2ntju2k, hogy csak regisztra1ltatni kell a haszna1latot, vagy fizetni is kell e1rte. Nagy valo1szi1nu3se1ggel ele1g lesz regisztra1ltatni. Ha nem oktata1si inte1zme1ny e1s nem oktata1si ce1lra ad ki valamilyen nyomtatva1nyt, akkor szeme1lyes kapcsolat felve1tele uta1n eldo2ntju2k, hogy csak regisztra1ltatni kell a haszna1latot, vagy fizetni is kell e1rte. Ebben az esetben azonban az is elo3fordulhat, hogy nem engede1lyezem a \HiOn/ haszna1lata1t (pe1lda1ul biztos nem fogok hozza1ja1rulni, hogy fasiszta ro2piratok ke1szi1te1se1re haszna1lja1k). Ha a programot olyan kiadva1ny ke1szi1te1se1re haszna1lja1k, amely ko2zvetlen nyerese1get hoz, akkor mindenke1ppen fizetni kell e1rte egye1ni mega1llapoda1s e1s szerzo3de1s alapja1n. Ebben az esetben leheto3se1g van a program egyszeri haszna1lata1nak (egy kiadva1ny elke1szi1te1se1hez) a megve1tele1re, egy ido3intervallumra valo1 megve1tele1re, vagy a haszna1lati jogok ve1gleges megve1tele1re. Ha valaki azzal foglalkozik, hogy ke1ziratot \TeX\ forma1ra ge1pel, e1s ehhez haszna1lja a \HiOn/-t e1s a \HiOn/-nal te1nylegesen \TeX\ forma1ra hozott dokumentumot, vagy a nyomtatott szo2veget adja ki a keze1bo3l, e1s eze1rt pe1nzt kap, akkor szu2kse1ges a \HiOn/ haszna1lati joga1nak egy ido3intervallumra, vagy ve1gleges megve1tele. Ha a \HiOn/-t arra haszna1lja, hogy saja1t maga1nak munka ko2zbeni nyomtata1sokat ke1szi1tsen, de a \HiOn/-nal konverta1lt fa1jlt nem adja el, akkor csak regisztra1ltatni kell. Ebben az esetben azonban valo1szi1nu3, hogy aki megrendelte a \TeX\ forma1ra hoza1st, az rendelkezik a \HiOn/ haszna1lati jogaival, vagy egy a \HiOn/-nal kompatibilis programmal, ami ugyanazt elve1gzi, mint a \HiOn/. (Pillanatnyilag nem tudok ilyen programro1l, e1s nem hiszem, hogy e1rdemes lenne egy ma1sik programot i1rni.) A program ma1solhato1, tova1bbadhato1 ba1rmilyen ma1solhato1 me1dia1n a ko2vetkezo3 felte1telekkel: \begin{itemize} \item A program tova1bbada1sa1e1rt a ma1sola1si illetve postai ko2ltse1geken ki1vu2l nem ke1rhet pe1nzt senki, engem kive1ve. \item A programot csak va1ltozatlan forma1ja1ban lehet tova1bbadni. Ha valaki a program egy va1ltoztatott pe1lda1nya1t akarja tova1bbadni, akkor ko2teles az eredeti pe1lda1nyt is ma1solni. \item A program csak forra1sszo2veg forma1ja1ban, az o2sszes tova1bbi fa1jllal egyu2tt, amelyek lista1ja a \ref{FILIST}. fejezetben olvashato1, adhato1 tova1bb. \item A programot a fenti felte1telek betarta1sa mellett ba1rki, azaz nem csak regisztra1lt felhaszna1lo1, tova1bbadhatja. \end{itemize} Minden olyan kiadva1nynak, amely nem kevesebb mint \npeldany\ (\tpeldany) pe1lda1nyban keru2l kiada1sra, tartalmaznia kell valahol egy mondatot, amely utal arra, hogy a kiadva1ny a \HiOn/ program haszna1lata1val ke1szu2lt. Pe1lda1ul a {\sl Benko3 Tiborne1, Poppe Andra1s e1s Benko3 La1szlo1: {\it Bevezete1s a BORLAND C++ programoza1sba{},\/} Computer Books, Budapest 1991} ko2nyvben a ko2vetkezo3 szo2veg szerepel a ko2szo2netnyilva1ni1ta1s ma1sodik bekezde1se1ben: \begin{quotation} Ko2szo2net illeti Verha1s Pe1tert is, aki {\tt HION} nevu3 programja1t rendelkeze1su2nkre bocsa1totta. \end{quotation} Ezen kite1tel alo1l felmente1st lehet ke1rni a szerzo3to3l leve1lben, eMailen vagy szeme1lyesen. Kapni csak indokolt esetben. Minden olyan kiadva1nybo1l, amely nem kevesebb mint \npeldany\ (\tpeldany) pe1lda1nyban keru2l kiada1sra, ke1rek egy tiszteletpe1lda1nyt. \section{|Regisztra1la1s}@ %%ju1lius 30-ig csak egy ember regisztra1lta % %%programot, o3 is a haverom, e1s aze1rt. %========================= \typeout{||Regisztra1la1s@@} Egy felhaszna1lo1 regisztra1la1sa leve1lben, vagy eMailen keresztu2l lehetse1ges. A regisztra1cio1 eMailen a {\tt reg.txt} fa1jlban levo3 ke1rdo3i1v kito2lte1se1vel e1s elku2lde1se1vel to2rte1nhet. eMailen egy regisztra1cio1 akkor to2rte1nt meg, ha visszajelze1s e1rkezett. Ha ke1t he1ten belu2l nem e1rkezik meg a va1lasz az eMailes regisztra1la1sra, akkor a regisztra1cio1t meg kell isme1telni leve1lben. Leve1lben a {\tt reg.hun} fa1jl \HiOn/ preprocesszorral valo1 konverta1la1sa1val, majd \LaTeX\ programmal valo1 fordi1ta1sa1val, kinyomtata1sa1val, az i1gy kapott ke1rdo3i1v kito2lte1se1vel e1s posta1n valo1 elku2lde1se1vel to2rte1nik. (Ne felejtsd el a ||\verb+/LATEX+@@ opcio1t!) Egy kiadva1ny regisztra1la1sa hasonlo1 mo1don kell, hogy to2rte1njen a {\tt kiad.txt} e1s {\tt kiad.hun} fa1jlokkal. Egy kiadva1nyt akkor kell regisztra1lni, ha nem kevesebb mint \npeldany\ (\tpeldany) pe1lda1nyban keru2l kiada1sra. \section{|Ko2szo2netnyilva1ni1ta1sok}@ %%danke, tankju, szpaszi1ba %=================================== \typeout{||Ko2szo2netnyilva1ni1ta1sok@@} Mindenk\'eppen meg kell, hogy emli1tsem {\bf To1th Ga1bort}, hiszen o3 i1rta az ETEX programot. Amikor az ETEX megjelent, a \HiOn/ elso3 va1ltozata ma1r ke1sz volt, ez a va1ltozat azonban nem jelo2lte be az elva1laszta1sok helye1t. Mivel akkor az ETEX to2bbet tudott, mint a \HiOn/ 1.0 eze1rt a \HiOn/ nem keru2lt a nyilva1nossa1g ele1. Ke1so3bb aze1rt fejlesztettem tova1bb a \HiOn/-t, mert az ETEX-nek volt ne1ha1ny hia1nyossa1ga, amin nem tudtam magamat tu1ltenni. Egy magyar nyelvu3 \LaTeX\ szo2veg szerkeszte1se ko2zben a cimke1knek is magyar nevet adtam, e1s az ETEX az e1kezeteket kicsere1lte \TeX\ jelo2le1sre, amit ebben az esetben nem kellett volna, hogy tegyen. Az ETEX pedig az e1kezetek bei1ra1sa1t nem hajlando1 kikapcsolni, csak az elva1laszta1st. Ko2szo2net illeti {\bf Hollo1si Jo1zsefet}, aki az XMAIL rendszer le1trehozo1ja, e1s aki hajlando1 volt felvenni a \HiOn/-t a leke1rdezheto3 dokumentumok lista1ja1ba. Ko2szo2net illeti {\bf Kornai Andra1st}. eMailen keresztu2l ku2ldo2tt nekem egy magyar gyakorisa1gi szo1ta1rbo1l [2] egy kivonatot, amelynek alapja1n az igeko2to3k felismere1se1t ve1gzo3 programre1szt tudtam megi1rni. Ko2szo2nettel emli1tem {\bf Tihanyi La1szlo1} e1s {\bf Pro1sze1ki Ga1bor} neve1t, akik felhi1vta1k a figyelmemet az olyan szavak, mint {\sl kilencszer}, valamint {\sl igazsa1g} le1teze1se1re. O3k voltak azok, akik egy olyan szo1ta1rat bocsa1tottak a rendelkeze1semre, amelyben magyar szavak elva1lasztva szerepeltek, e1s amelynek a segi1tse1ge1vel elo3 tudtam a1lli1tani a {\tt hion.dct} fa1jlt. (La1sd me1g a \ref{COMPWORDS}. fejezetet!) A \HiOn/ ke1t legakti1vabb felhaszna1lo1ja {\bf Poppe Andra1s} e1s {\bf Kocsis Tama1s}. Igen sok apro1 e1s keve1sbe1 apro1 hiba1t, hia1nyossa1got deri1tettek ki a \HiOn/ haszna1lata sora1n, e1s ezek most mind benne lenne1nek a programban, ha nem veszik a fa1radsa1got, hogy figyelmeztessenek.\footnote{De vette1k, amikor pedig nem (ha volt ilyen), arro1l nem tudok.} \section*{|Irodalom}@ %=================== \noindent[1] {\it Donald E. Knuth}, The \TeX book, {\it Addison Wesley Publishing Company}, (1986) \noindent[2] {\it Andra1s Kornai}, Szo1ta1ri adatba1zis az akade1miai nagysza1mi1to1ge1pen, {\it Mu3helymunka1k a nyelve1szet e1s ta1rstudoma1nyai ko2re1bo3l}, 2. MTA Nyelvtudoma1nyi Inte1zet, Budapest, 65-79, (1986) \noindent[3] {\it Leslie Lamport}, \LaTeX\ A Document Preparation System, {\it Addison Wesley Publishing Company}, (1986) \vfill\eject \tableofcontents \typeout{|| Ne felejtsed el a HION programot regisztra1lni, ha haszna1lni akarod! @@} \end{document}