Szövegszerkesztés

Bevezető

Az emberiség digitálisan írott történelmében a böngésző után valószínűleg a második leggyakrabban indított alkalmazás valamilyen szövegszerkesztő volt, vagy legalábbis olyan program, melynek lényeges része a szöveg bevitele.

Azt gondolnánk, hogy szöveget szerkeszteni egyszerű dolog. Tény, hogy itt viszonylag rövid az út a legelső sikerekig: ha elindítunk egy tetszőleges szövegszerkesztőt (pontosabban majdnem csak tetszőlegest; a vi kivétel), majd lenyomunk egy billentyűt, akkor az megjelenik a képernyőn. Ha a Shift-et is használjuk, akkor nagybetűt kapunk. Entert ütve új sor. Némi tapasztalattal eljutunk azokig a karakterekig, amelyek lefedik a hétköznapi igények döntő hányadát.

Valójában a formázásra képes szövegszerkesztőkkel is gyorsan megbarátkozunk: pillanatok alatt rájövünk, hogyan lehet mondjuk félkövér vagy dőlt betűt írni, sőt, nem tart sokáig az sem, mire eljutunk a felsorolásig vagy a táblázatok készítéséig.

Azonban minél mélyebbre ássunk magunkat, annál inkább azt tapasztaljuk, hogy mennyire komplex terület ez. Hogyan tudjuk ábécé sorrendbe rendezni egy szöveges fájl sorait? Hogyan tudjuk ugyanazt speciális cserét végrehajtani egy nagy dokumentumban? Hogyan tudunk képleteket szerkeszteni? Annak ellenére, hogy a betanulási görbe meredeken emelkedik, a terület maga óriási és komplex.

A lentiekben erről a területről igyekszem áttekintést nyújtani.

Szövegszerkesztők

Először lássuk, milyen a szövegszerkesztő kínálat! Ahogyan máshol, sem, itt sem célom kivesézni a lehetőségeket a teljesség igényével, inkább csak egy átfogó képet szeretnék nyújtani a legnépszerűbb szövegszerkesztőkről.

Sima szövegszerkesztők

Ide azokat a szövegszerkesztőket sorolom, amelyekkel végső soron csak egyszerű szövegfájlokat tudunk készíteni.

  • Windows
    • Notepad: ez a Windows alaptartozéka, és ezzel el is mondtam minden előnyét. Pár szó beírására még elmegy, komolyabb használatra alkalmatlan.
    • Notepad++ (https://notepad-plus-plus.org/): ahogy a nevéből is kikövetkeztethető, a fejlesztők a Notepad továbbgondolásaként szánták. Ez a személyes kedvenc szövegszerkesztőm; ha nincs jó okom másra, akkor ezt használom. (Ennek az oldalnak a forrását is ezzel a szövegszerkesztővel készítem.) Néhány hasznos tulajdonsága:
      • Beépített műveletek, pl. sorba rendezés, kisbetű-nagybetű konverzió, csere reguláris kifejezésekkel stb.
      • A beírás során automatikus behúzás, tippek megjelenítése, kiterjesztés szerinti színezés (ismeri a legelterjedtebb programozási nyelveket) stb.
      • Jól használható makrók.
      • Igen gazdag beépülő (plugin) választék. Leggyakrabban ezeket használom: DSpellCheck és JSON Viewer.
    • ConTEXT (http://www.contexteditor.org/): a kicsi mérete ellenére gazdag a tudása.
    • Visual Studio Code (https://code.visualstudio.com/): ez lényegében átmenetet képez a szövegszerkesztő és az integrált fejlesztőkörnyezet között. A beépülők tipikusan igen komplex művelet hajtanak végre. Pl. a legtöbb programozási nyelvre van debugger beépülő (azon túl persze, hogy a színezést alapból tudja), létezik REST beépülő, amely a megadott URL-t letölti stb.
    • Brackets (http://brackets.io/): HTML oldalak létrehozását célzottan támogató szövegszerkesztő.
  • Linux
    • ed, sed: őskövület, története a 60'-as évekre nyúlik vissza.
    • vi, vim: nekünk úgy tanították, hogy minden Linux rendszeren rajta van (nem igaz), és sokat tud (nem igaz).
    • emacs: sokkal bonyolultabb mint a vim.
    • pico, nano: a pine levelező kliens önálló életre kelt szövegszerkesztője. Egy kizárólag szöveget tartalmazó e-mail megszerkesztéséhez szükséges dolgokat tartalmazza, más nem igazán.
    • mcedit: a Midnight Commander (mc, egy Norton Commander kinézetű és tudású fájlkezelő) nagyon alap tudású szövegszerkesztője.
    • gedit: a GNOME grafikus, kb. Notepad tudású szövegszerkesztője.
    • nedit: egy másik, kb. Notepad tudású grafikus szövegszerkesztő.

És természetesen rengeteg egyéb más szövegszerkesztő létezik.

WYSIWYG szövegszerkesztők

A WYSIWYG a What You See Is What You Get rövidítése, ami azt jelenti, hogy azt kapjuk, amit látunk. Ahogy a rövidítés is utal rá, ez azt jelenti, hogy ahogyan látjuk a részeredményt bevitelkor, (többé-kevésbé) az lesz egyen a végeredmény. (A többé-kevésbé azt jelenti, hogy más számítógépen, platformon, más verzióval, más beállításokkal esetleg eltéhet a végeredmény. Ha abszolút biztosra szeretnénk menni, akkor pdf-fé célszerű konvertálnunk, ld. lejjebb.)

Néhány példa:

  • Microsoft Word: ez a WYSIWYG szerkesztők alfája és omegája, minden más ehhez méri magát, ezt szokás szidni, ehhez képest igyekeznek jobbat, olcsóbbat készíteni. Szerintem ez az egyik legkiforrottabb szoftver, amivel valaha találkoztam. Ezzel nem állítom azt, hogy nincsenek hibái, de a fő funkciók nagyon a helyükön vannak. Már a 2-es verzió a '90-es években elég nagy tudású és letisztult volt, és az újabb verziók mindegyike értékelhető újdonságot hozott. Valójában felhasználói oldalról egy probléma van vele: fizetős.
  • WordPad: a Microsoft Word kis testvére. Előnye, hogy mindegyik Windows rendszeren alapból rajta van, már szinte ősidők óta. Hátránya, hogy a tudása kb. a Word 2-vel vetekszik.
  • LibreOffice: a Microsoft Office (melynek része a Microsoft Word) egyik gyengébb tudású, de ingyenes alternatívája, ami letölthető a https://hu.libreoffice.org/ oldalról.
  • OpenOffice: egy másik népszerű ingyenes alternatíva, immáron Apache licensz alatt: https://www.openoffice.org/.

Mindegyik szövegszerkesztő más és más, de az alapelvek ugyanazok. A szokásos billentyűkombinációk alól általában kivételt képeznek a konzolos Linuxos szövegszerkesztők.

Online szövegszerkesztők

Az alábbi online szövegszerkesztők mind WYSIWYG megvalósításúak.

  • Microsoft Word Online: a https://www.office.com/ oldalon elérhető, ingyenesen használható, némiképp lebutított változat.
  • Google Docs: a Google hasonló online megoldása: https://docs.google.com/. Nagy előnye a megoszthatóság és közös szerkeszthetőség.
  • Confluence: vállalati dokumentumkezelő rendszer. Gyakran együtt használják a Jira pedig jegykezelő (ticketing) alkalmazással.

A szöveg

Szöveg beírása

Fontos tudnunk, hogy mit tartalmaz a szöveg, és hol kezdődnek a formázások!

A szöveg beírása egyszerű, mint a faék: megnyomjuk az a billentyűt, és megjelenik az a karakter. A szöveghez tartoznak a betűk (ékezetes betűk is), számok, speciális karakterek, a tabulátor és az új sor is. Néhány fontosabb művelet, amelyet hasznos tudnunk:

  • , : jobbra ill. balra lépünk egy karaktert
  • Ctrl + →, Ctrl + ←: jobbra ill. balra lépünk egy szót
  • , : egy sorral feljebb ill. lejjebb lépünk
  • Page Up, Page Down: lapozás fel ill. le egy oldalt
  • Ctrl + Page Up, Ctrl + Page Down: lapozás a nyitott dokumentumok között
  • Home, End: ugrás a sor elejére ill. végére
  • Ctrl + Home, Ctrl + End: ugrás a dokumentum elejére ill. végére
  • Insert: szöveg átírása ill. beszúrása (alapértelmezett) közötti változtatás
  • Backspace, Delete: a kurzor mögötti ill. előtti karakter törlése
  • Ctrl + Backspace, Ctrl + Delete: egy szó törlése
  • Shift + …: kijelölés (pl. jobbra, balra nyíllal egy karakter, Page Down-nal egy oldal stb.)
  • Caps Lock: váltás nagybetűsre, majd újbóli megnyomásával ismét kisbetűsre (valószínűleg ez a legfeleslegesebb billentyű a billentyűzeten)
  • Tab: tabulátor beszúrása

A leggyakoribb billentyűkombinációk, melyek majdnem mindegyik szövegszerkesztőnél ugyanúgy működnek:

  • Ctrl + c vagy Ctrl + Insert: a kijelölt tartalom másolása vágólapra
  • Ctrl + v vagy Shift + Insert: a vágólap tartalmának bemásolása
  • Ctrl + x: a kijelölt tartalom másolása vágólapra és törlése
  • Ctrl + a: a teles dokumentum kijelölése
  • Ctrl + s: dokumentum mentése
  • Ctrl + z: utolsó művelet visszavonása
  • Ctrl + y: a visszavonás visszavonása
  • Ctrl + w: dokumentum bezárása

Speciális karakterek

Más nyelvekben előforduló latin betűs karaktereket magyar billentyűzettel az alábbi módon lehet előhívni. Általános szabály: ékezetet speciális karakterre úgy tudunk helyezni, hogy először beírjuk az ékezetet, majd lenyomjuk magát a karaktert. A vessző lent azt jelenti, hogy az előzőt el kell engedni (tehát lesz egy olyan időpillanat, amikor semmit sem nyomunk le, de még nem jelent meg semmi), majd a vessző utánit kell megnyomni. A jobb láthatóság érdekében a betűket nagybetűvel írtam; ilyenkor magát a billentyűt kell lenyomni. Ha a Shift-et is le kell nyomni (tehát tényleg nagybetűre van szükség), azt külön jelzem.

  • ä: AltGr + A
  • Ä: AltGr + E
  • ć: AltGr + 9, C
  • Ć: AltGr + 9, Shift + C
  • č: AltGr + 2, C
  • Č: AltGr + 2, Shift + C
  • ç: AltGr + Ó, C
  • Ç: AltGr + Ó, Shift + C
  • đ: AltGr + S
  • Đ: AltGr + D
  • ë: AlrGr + Ü, E
  • Ë: AlrGr + Ü, Shift + E
  • ě: AltGr + 2, E
  • Ě: AltGr + 2, Shift + E
  • ę: AltGr, E
  • Ę: AltGr, Shift + E
  • ł: AltGr + L
  • Ł: AltGr + Á
  • ô: AltGr + 3, O
  • Ô: AltGr + 3, Shift + O
  • š: AltGr + 2, S
  • Š: AltGr + 2, Shift + S
  • ß: AltGr + Á
  • ž: AltGr + 2, Z
  • Ž: AltGr + 2, Shift + Z

Az én billentyűzetemen ugyanez nem működik a ~ és ` ékezetekkel, így pl. nem tudom leírni a spanyol ñ vagy a francia è karaktert. De egyébként sem lehetne bármit a fenti módon leírni, legvégső soron a karakter kódját kell megadni, mégpedig úgy, hogy a bal Alt billentyűt lenyomva tartva begépeljük a karakterkódot a numerikus billentyűzeten. A https://www.alt-codes.net/ oldalon találunk ilyen kódokat; én az alábbiakat szoktam leggyakrabban használni:

  • : Alt + 26
  • : Alt + 0133
  • Ω: Alt + 234

A karakterek kódolása

Ha egy picit megkapargatjuk a szöveg tárolásának felszínét, láthatjuk, hogy mennyi probléma merült fel a történelem során, és ezekre milyen megoldások születtek. Ez választ ad sok esetben a kérdésre, hogy miért nem úgy látjuk a szöveget, ahogy látni szeretnénk. Tehát azt gondolom, hogy ezek az ismeretek a hasznunkra válnak.

Mint a számítástechnikában kivétel nélkül mindent, a betűket is végső soron nullákból és egyekből álló kódokkal tároljuk. Kezdetben minden egyes bájt drága volt, ezért igyekeztek a létező legtömörebb módon tárolni a szöveget. Némi rosszindulattal fogalmazhatunk úgy is, hogy a számítógépek megalkotói nem igazán láttak az angolszász kultúrán túlra, úgy vélték, hogy elég lesz az angol ábécé nagybetűit, kisbetűit, a 10 számjegyet, a leggyakrabban használt írásjeleket és a vezérlőkaraktereket használni, melyek száma több volt 64-nél, de kevesebb 128, nál, így a 7 bites kódolás mellett döntöttel. Ezzel évtizedekre előre belekódolta a rendszerbe rengeteg problémát, melynek levét mind a mai napig isszuk.

Betűk tárolására azok számkódját, ún. ASCII kódját használjuk. Pl. a nagy 'A' betű ASCII kódja a 65. Ha egy karaktert egy bájton tárolunk, akkor elvileg 256 különböző karaktert tudunk kódolni. A gyakorlatban ennél kevesebbet, mivel az első 32 speciális karaktereket tartalmaz (pl. új sor). A kódolás teljesen szabványos 32-től (ami egyébként a szóköz) 127-ig, ebben viszont csak a fent említett karakterek szerepelnek, ékezetes betűk nem. 128 és 255 között a kódolás rendszerfüggő, és meg kell adni, hogy mi módon kódolunk. Rengeteg kódolási rendszer van: nyugat-európai, kelet-európai, cirill, görög, héber, arab, a különböző távol-keleti nyelvek kódolásai stb., hogy tényleg csak párat említsek. Mindegyikből több fajta is lehet, pl. eltér a Nemzetközi Szabványügyi Hivatal (ISO) által szabványosított kódolás a Windows által használttól. Márpedig ha egy olyan rendszer, mai a piac kb. 90%-át uralja, eltér a nemzetközi szabványtól, az további konfliktusokat kódol a rendszerbe. Számunkra két kódolás lehet érdekes:

  • A nyugat-európai kódolások, pl. az ISO-8859-1 vagy a Windows-1252: elsősorban a nyugat-európai nyelvek speciális karaktereit tartalmazzák. Nyugat-európai nyelvek alatt azon országok nyelveit kell érteni, amelyek latin betűt használnak, és a Vasfüggönytől nyugatra helyezkednek el. (Ne feledjük, hogy ezeknek a szabványoknak a kialakulása bőven a Hidegháború időszakára nyúlik vissza.) Ezek már nagyrészt tartalmazzák a magyar nyelvben használt ékezeteket is, persze nem saját jogon, hanem amiatt, mert van olyan nyugat-európai nyelv, melyben előfordulnak ezek a karakterek. Valójában négy kivétel van: ő, ű, Ő, Ű.
  • A **kelet-európai* kódolások, pl. az ISO-8859-2 vagy a Windows-1250: a Vasfüggöny keleti felé levő országok nyelvei karaktereinek a kódolása értelemszerűen jelentős mértékben késett a nyugatihoz képest. Viszont ez a kódolás már az összes magyar ékezetes karaktert tartalmazza.

A problémát az okozza, hogy ha a küldő és a fogadó karakterkódolása nem ugyanaz, akkor az ékezeteket tartalmazó szöveg olvashatatlanná válik. Egyéni és közösségi oldalon is történtek lépések a probléma kezelésére, de sajnos mind a mai napig nem vált egyik sem egyeduralkodóvá:

  • Egyénileg: ha teljesen biztosra szeretnénk menni, akkor nem használunk ékezeteket. Az e-mail hőskorában ez volt a szokás, és sajnos ma is vannak olyanok, akik még ma sem használnak ékezeteket. Alapvetően kétféle stratégia létezik: vagy egyszerűen lehagyjuk az ékezetet (arvizturo tukorfurogep), vagy mindegyiket egyértelműen kódoljuk (aarviiztueroe tuekoerfuuroogeep). A magyarban az előbbi terjedt el, de pl. a kevesebb ékezetet tartalmazó németben az utóbbi.
  • Az első, és lényegében mind a mai napig a legtöbb helyen alapértelmezett megoldás az, hogy megadjuk a kódolást, tehát pl. azt, hogy az adott szöveg kelet-európai kódolással van kódolva. Ebben az esetben viszont bíznunk kell abban, hogy a fogadó is megfelelően kódolja, különben az árvíztűrő tükörfúrógépből könnyen árvĂ­ztűrĹ‘ tĂĽkörfĂşrĂłgĂ©p lesz.
  • Léteznek adott technológiára korlátozott szabványok is. Pl. a kezdeti HTML-ben a & és ; közé kellett tenni a kódot, pl. a nagy Á-t így kódoltuk: Á. De elég nehezen volt olvasható, és lassan is lehetett haladni a szöveg írásával: árvíztűrő tükörfúrógép.
  • A Java egy előre mutató módszert vezetett be: nem 8, hanem 16 biten tárolja a karaktereket. Kicsit pazarló, mivel szövegen belül tipikusan bővel elég a 8 bit is, és nem is tökéletes, mert pl. a távol-keleti nyelvek karaktereit még ezzel is csak korlátozottan lehet kódolni. Arra viszont ez már tökéletes, amivel egy európai találkozik, és a tárolókapacitás sem probléma már, a hőskor óta ugyanis jelentősen leesett a memória és a háttértár ára.
  • A (majdnem) tökéletes megoldást az UTF-8 jelenti. Ez a karaktereket változó hosszúságú módon kódolja. 0-tól 127-ig marad az alap kódolás (így felülről kompatibilis a csak angol szöveget tartalmazó rendszerekkel), az angol ábécében nem szereplő betűket viszont 2, vagy akár több bájton tárolja. Ha az alap 127 karakterbe nem fér bele a kódolandó betű, akkor az első bájt (melynek értéke értelemszerűen 128 és 255 közötti) magát a kódolást adja meg, és a következő bájt tartalmazza magát a karaktert. Vannak karakterek, amelyek ebbe sem férnek bele, így a második bájtban is vannak értékek, amelyek a következő bájt karakterkódolására utalnak, sőt, vannak 4 karakteren kódolódó karakterek is. Ha jobban belegondolunk, Nem igazán pazarló, mert tetszőleges, latin betűket használó nyelvben a karakterek többsége szerepel az angolban, viszont ezzel elvileg bármit le tudunk kódolni. A tapasztalatok szerint a magyar nyelvben kb. 10%-kal több helyre van szükség ily módon, mintha minden karaktert egy bájton tárolnánk, ami szerintem egy teljesen elfogadható ár azért, hogy legyen egy teljesen szabványos megoldás, amibe minden magyar karakter belefér. (Ami miatt nem teljesen tökéletes: kiderült, hogy még ez sem alkalmas abszolút mindent lekódolni a távol-keleti nyelveken, és megjelent az UTF-16 szabványa, de ez minket egyelőre nem érint.)

A karakterek mellett a sor vége kódolására is érdemes kitérnünk. Itt 3 rendszert különböztetünk meg:

  • Windows: egy az egyben lemodellezi a régi írógépek működését. Az új sor az írógépeket valójában két műveletből állt: a pozíció balra húzásából és soremelésből. A pozíció balra húzása az ún. "kocsi vissza", angolul carriage return, szokásos rövidítés CR, szokásos jelölése \r (az angol return szóból), ASCII kódja 13, a soremelés pedig angolul line feed, rövidítése LF, jelölése \n (az angol new line kifejezésből) aminek az ASCII kódja 10. A Windows rendszereken tehát a sor végét két bájt kódolja: a 13-as és a 10-es.
  • Unix (pl. Linux): itt csak soremelés (LF) van, azaz a 10-es karakter kódolja a soremelést.
  • Macintosh: miért ne csavarnának még egyet a rendszeren: itt csak kocsi vissza (CR) van, azaz a 10-es karakter kódolja az új sort.

A rendszer nem teljesen konzisztens:

  • A Windows valójában új sorként interpretálja a 13-ast és a 10-est is, ha külön szerepel. Pedig az írógépen a kocsi-vissza soremelés nélkül felülírja a szöveget, míg a soremelés kocsi-vissza nélkül ugyanott folytatja a következő sorban, ahol az előzőben abbahagyta.
  • A Linux szintúgy: csakhogy ez akkor is új sorként értelmezi mindkettőt, ha egymás után vannak. Így a Windowsban megszerkesztett szöveg Linuxban üres sorokat tartalmaz.
  • Macintoshom nincs, azt nem tudom, hogy az hogyan kezeli ezeket.

Emiatt kell megadni az ftp programok esetén azt, hogy milyen legyen a kódolás: bináris vagy ASCII. Boináris esetben ugyanis egy az egyben felmásolja a fájlt, bitról bitre, míg ASCII esetben konvertálja a sorvégződést. Ha bináris tartalmaz ASCII-ként töltünk fel, akkor használhatatlan lesz az eredmény, és vissza sem lehet csinálni a dolgot. (Tehát az nem működik, hogy visszatöltjük ASCII-ban, majd feltöltjük binárisan.)

Remélem, sikerült hasznos információkat leírnom ebben a szakaszban, mely választ ad oly sok bosszúság okára.

Hogyan írjunk szöveget?

Felsorolok néhány szempontot, melyeket érdemes figyelembe venni a szöveg beírásakor, felhívva a figyelmet a leggyakoribb hibákra.

  • Legyen bennünk annyi igényesség, hogy ékezetes szöveget használunk! Az internet hőskorában ez sok esetben nem volt lehetséges, ma viszont már minden valamirevaló rendszer beállítható úgy, hogy képes legyen az ékezetes szöveg bevitelére ill. megjelenítésére.
  • A szövegszerkesztők jelentős része tartalmaz helyesírás ellenőrzőt; használjuk azt, és javítsuk a gépelési ill. helyesírási hibákat!
  • A magyar nyelvben a vesszős ékezetek iránya balra lefelé mutatnak. Ezek a helyes magyar ékezetes karakterek: á, é, í, ó, ő, ú, ű. Kerüljük az à, è, ì, ò és ù használatát; ezek más nyelvben léteznek.
  • Az ő és ű, kis- és nagybetűs változatban is az egész világon csak a magyar nyelvben szereplő karakterek, ennél fogva számos esetben kénytelenek vagyunk helyettesíteni, pl. õ vagy û karakterekkel. Igyekezzünk ezt elkerülni, pl. a szövegszerkesztő kódolásának megfelelő kiválasztásával, vagy megfelelő fontválasztással.
  • A szokásos magyar betűkészlet mellett használhatjuk a vajdasági magyarban használt középzárt e írására az ë karaktert (pl. embër, gyerëk), ha a kiejtést szeretnénk hangsúlyozni.
  • Lehetőség szerint tegyünk különbséget a gondolatjel, a kötőjel és a mínuszjel között! A gondolatjel a leghosszabb, a kötőjel közepes (ha nagyon szigorúak akarunk lenni, akkor ebből is van kettő: nagy kötőjel és kis kötőjel), a mínuszjel pedig a legrövidebb. Végső soron mínuszjelet használhatunk gondolatjel és kötőjel helyett, gondolatjelet mínusz helyett viszont még véletlenül se használjunk, erre nagyon ügyeljünk! Sajnos egyes szövegszerkesztők a mínuszjelet automatikusan gondolatjellé konvertálják.
  • A magyar szövegben a tizedesvessző - ahogy a nevéből is következik - a vessző, és nem a pont, tehát vesszőt használjunk! A hosszabb számok olvashatóságán növeli, ha az ezresek közé pontot teszünk. Az angolban pont fordítva van: ott tizedespontról beszélünk, és vesszővel tagoljuk az ezreseket.
  • Ha már számok: sohase használjuk azt, hogy 12 ezer 345 egész 67 század, legyen az 12.345,67!
  • A magyar nyelvben az idézőjel helyes használata a következő: a nyitó idézőjel alul van, a záró felül, ls a vessző fentről lefele mutat mindkét végén. (Sajnos ezt kevés helyen tudjuk megoldani, pl. ezen az oldalon sem használom, de ha egy módunk van rá, akkor igyekezzünk így használni.)
  • A mondatot nagybetűvel kezdjük, ahogy a neveket is (pl. Magyarország), a mellékneveket viszont kisbetűvel (pl. magyar).
  • Ügyeljünk a központozásra! A vessző elé sohasem teszünk szóközt, a vessző után mindig. A gondolatjel előtt és után is van szóköz. A mondat végi írásjelek (pont, vessző, kérőjel) után a magyarban szintén egy szóköz van. Egyes nyelvekben két szóközt használnak két mondat között, a magyar nem ilyen.
  • A szövegben két bekezdés közé tegyünk egy üres sort. Viszont ha formázzuk is a szöveget, akkor sohase üres sorral oldjuk meg a bekezdések közötti távolságot, hanem a paragrafus tulajdonságainak megfelelő kiválasztásával.

Formázások

Karakter formázás

Az egyszerű szövegszerkesztőkkel nem tudunk formázni. A formázás egyfajta metainformáció: valahogy "meg kell mondani", hogy melyik szakasz hogy nézzen ki. Ez az információ valahogy ott van, vagy bináris formában, vagy magában a szövegben, olvasható formában. A WYSIWYG szövegszerkesztőknél ezt a metainforácit nem látjuk, csak az eredményt. A későbbiekben látni fogjuk, hogy a formázást nem bináris formában tároló szövegszerkesztőknél hogyan kerül bele a formázás a szövegbe, és a megjelenésnél hogyan "tűnik el".

Most azzal fogunk megismerkedni, hogy a WYSIWYG szerkesztőkkel hogyan tudjuk ezeket a formázásokat (nemcsak a karakter formázásokat, hanem az összes többit) beállítani a Microsoft Word 2016 segítségével. Az alapelvek mindegyiknél ugyanazok.

Karakter szintű formázások:

  • Félkövér: tipikus kombináció erre a Ctrl + b (boldface).
  • Dőlt: Ctrl + i (italic).
  • Aláhúzott: Ctrl + u (underline).
  • Áthúzott: erre nincs bevett rövidítés
  • Betűtípus (font): pl. Times New Roman, Courier, Arial stb. Egy tisztességes szövegszerkesztőben ebből rengeteg van, és tipikusan egy legördülő listából tudunk választani. Magyar szöveghez válasszunk olyat, amely rendesen tartalmazza az ékezetes ő és ű betűket; ezt használat előtt mindenképpen ellenőrizzük le! Személy szerint rendkívül igénytelennek tartom azt, ha a rendes ő helyett hullámos ő (õ) vagy kalapos ű (û) szerepel a szövegben, ahogyan azt is, ha ezek a betűk más fonttal vannak szedve, nagyon látványosan kilógnak a sorból. Tipográfiai szempontok a betűtípus megfelelő kiválasztásához:
    • Serif: azok a betűtípusok tartoznak ide, amelyeknek kis "nyúlványaik" (angolul serif) vannak alul, középen, esetleg felül. Ezek úgy vannak kialakítva, hogy távoltól és hunyorítva kialakuljon egy alig észrevehető 3 vízszintes vonal, ami vezeti a szemet olvasás során. Ennélfogva ez kiválóan alkalmas hosszabb folyószövegek szedésére pl. újságokban, könyvekben. Ugyanakkor nem szép plakátokon, amelyen csak 1-2 szó van, és a sok képet, kevés szöveget tartalmazó magazinokban is kerülendő. A legnépszerűbb, ebbe a kategóriába sorolható betűtípus a Times New Roman, a The Times brit konzervatív napilap által használt betűtípus, innen kapta a nevét.
    • Sans serif: a betűk nem tartalmaznak serifet, ennélfogva leginkább egy-két szavas feliratok, rövidebb szövegek szedésére alkalmasak, folyószövegre csak korlátozottan, vagy egyáltalán nem. Amikor még csak pár font létezett, akkor az egyik neve Sans Serif volt. A népszerű betűtípusok közül ide tartozik az Arial, a Verdana és a Helvetica; ezek úgy vannak elkészítve, hogy folyószöveg szedésére is majdnem annyira alkalmasak legyenek mint a Times New Roman. Személyes kedvencem egyébként a Verdana.
    • Fix szélesség: a legtöbb betűtípusban a szélesség nem fix, pl. az 'i' vagy az 'l' általában sokkal keskenyebb, mint az 'M' vagy a 'W'. Viszont előfordulhat, hogy ugyanolyan szélességűre szeretnénk szedetni mindegyik karaktert. Erre való pl. a Courier betűtípus. Összehasonlításul: mmmmmiiiii, mmmmmiiiii.
  • Betűméret: kezdetben valószínűleg képpont volt a mértékegysége, most már csak úgy van. Folyószövegnél lehetőleg ne válasszunk 10-esnél kisebbet és 12-esnél nagyobbat.
  • Alsó ill. felső index: valójában ez méretet és elhelyezést jelent.
  • Színek: karakterenként be lehet állítani, többnyire a következőket: a betű színe, háttérszín, árnyék.

Ha ki van jelölve egy rész, akkor a formázás arra vonatkozik, egyébként pedig a következő szöveg beírására. A Microsoft Word-ben a Ctrl + Shift + f kombinációval lehet a karakterformázás ablakot megnyitni, ahol a fentieken túl még számos egyéb beállításra van lehetőség.

Bekezdés formázás

A fentiek mind karakter formázások voltak, azaz egyetlen karakterre is be lehetett állítani. Ebben a fejezetben olyan formázásokról lesz szó, amelyek bekezdésre vonatkoznak.

Új bekezdést az Enter lenyomásával kezdhetünk, egy bekezdés alatt tehát két enter közötti szakaszt értünk. Azonban van mód arra, hogy egy új sor ne kezdjen új bekezdést: ez a Shift + Enter. A következő beállítási lehetőségek vannak:

  • Igazítás: azt lehet ezzel megmondani, hogy hogyan tördelje a szövegszerkesztő a bekezdést, különösen akkor, ha nem fér ki egy sorba a szöveg. Lehetőségek:
    • Balra zárt: a szöveg bal oldala kezdődik ugyanott, a jobb oldala pedig általában eltérő. Általában ez az alapértelmezett.
    • Jobbra zárt: a szöveg jobb oldala fejeződik be ugyanott, a bal oldala pedig általában eltérő. Ritkán használjuk.
    • Középre zárt: a szöveget középre helyezi. Általában csak címeknél vagy kiemeléseknél használjuk, ahol a szöveg soron belül elfér.
    • Sorkizárt: kihúzza a szöveget úgy, hogy jobb oldalon is ugyanott legyen az utolsó karakter. Általában a szóközöket nagyítja, esetleg a betűk közötti helyet is megnyújtja. Ezt tartom a legjobbnak, viszont ezt használva érdemes bekapcsolni az automatikus elválasztást, különben csúnya lehet. Valamint a Shift + Enter-rel létrehozott új sort is kihúzza, ami nem szép. Az elválasztó jelnél (-) is elválaszt, de jobb az automatikus elválasztás használata, mert ha beszúrunk még szöveget, akkor benne maradnak a felesleges elválasztó jelek.
  • Behúzás: ezzel tudjuk megadni azt a függőleges pozíciót, ahol kezdődjön ill. fejeződjön a szöveg. Általában az a szép, ha a bekezdés első sora egy picit beljebb kezdődik mint a többi; a szövegszerkesztők többsége erre is lehetőséget biztosít. Valamint ezzel kiemeléseket tudunk kieszközölni, pl. ha egy kicsit beljebb kezdődik és beljebb is végződik mint a többi. Összefoglalva, általában az alábbiakat tudjuk megadni:
    • Bal oldali behúzás
    • Jobb oldali behúzás
    • Első sor bal oldali behúzása
  • Felsorolás: a felsorolásnak az elemei is logikailag bekezdésnek minősülnek. Alapvetően kétféle felsorolásra van lehetőség, melyek egymásba ágyazhatóak:
    • Sorba rendezett: itt ki szeretnénk hangsúlyozni a felsorolás sorrendiségét, pl. arab számokkal (általában ez az alapértelmezett), római számokkal, betűkkel stb. A hierarchiában ezek kombinációját alkalmazhatjuk, pl. a legfelső szinten számokat, a második szinten betűket.
    • Nem sorba rendezett: ha nem szeretnénk kihangsúlyozni a felsorolás sorrendiségét, akkor ilyet érdemes használni. Az alapértelmezett általában a telt fekete karika. A hierarchiánál más jeleket is használhatunk, pl. üres karika stb.
  • Közök: ezzel lehet megadni, hogy mennyi hely legyen a sorok között:
    • Sorköz: mennyi hely legyen a sorok között, paragrafuson belül. A diákok kedvenc módszere a beadandóknál a mennyiség látszólagos növelésére :-)
    • Paragrafus köz: mennyi hely legyen a paragrafusok között. Általában itt két értéket is megadhatunk: mennyi hely legyen a paragrafus előtt és ennyi utána. A felsorolásnál ezt érdemes nullára venni, egyébként pedig kb. fél betűméretnyire. Ha van lehetőségünk, soha ne két Enterrel növeljük a paragrafus távolságot! Ez kizárólag formázatlan szöveg esetén megengedett!

Lap formázás

Léteznek olyan formázások, melyek lapra értendőek. Ilyenek például az alábbiak:

  • Margók: beállíthatjuk, hogy mennyi helyet hagyjon ki a lap szélén. Általában vannak előre definiált értékek, és választhatunk a normál, keskeny stb. között, de mind a 4 értéket külön is megadhatjuk.
  • Tördelések: beszúrhatunk oldaltörést, aminek következtében a következő rész új oldalra kerül. Itt érdemes megjegyezni a paragrafusok azon tulajdonságát, hogy meg lehet adni, az adott paragrafust a következővel egyben tartsa. Ez esetben ha törni kell, akkor az a paragrafus, ahol ezt megadtuk, akkor is új oldalra fog kerülni, ha egyébként elférne az előzőn, de a következő már nem. Pl. ezt érdemes alkalmazni felsorolás előtt, amikor megadjuk, hogy mit tartalmaz a felsorolás. Tipp: Microsoft Word 2016-ban: Home → a Paragraph jobb alsó sarkában kattintsunk a ki nyílra → Line and Page Breaks fül → Keep with next. Ugyanitt láthatjuk a Window/Orphan controlt: ez azt jelenti, hogy ha egy paragrafus sok sorból áll, akkor egyetlen rövid sor ne lógjon át a másik oldalra. Pl. csúnya az, ha csak 3 szó kerül át egy új oldalra; akkor már 1-2 sort még hozzácsap az előző oldalról. Ez utóbbi annyira nyilvánvaló, hogy ez az alapértelmezett érték, és ki lehet kapcsolni.
  • Fejléc: egységes fejlécet lehet létrehozni, pl. megadhatjuk a szerzőt, a dokumentum nevét vagy a fejezet címét. Általában a szövegszerkesztők lehetőséget biztosítanak arra, hogy a címlap kivétel legyen, ill. azt is, hogy más legyen a fejléc a páros és a páratlan oldalakon.
  • Lábléc: hasonló beállítási lehetőségek vannak itt is, mint a fejléc esetén. Külön kiemelhető az oldalszám, ami általában a láblécbe kerül. Ez annyira gyakori, hogy a legtöbb szövegszerkesztő külön kezeli.
  • Lábjegyzet: magyarázó szövegeket tudunk beszúrni, ami a lap alján jelenik meg. A szövegszerkesztő felelőssége, hogy ugyanarra az oldalra tördelje a magyarázatot, ahol az a szöveg is van, amit magyarázni szeretne. Általában sorszámmal látja el.
  • Végjegyzet: a magyarázat a dokumentum végén jelenik meg.
  • Széljegyzet: a magyarázó szöveg a lap szélén jelenik meg. (Ezt nem találtam a Word-ben.)
  • Hasábok: a szövegszerkesztők többsége alapértelmezésben egy hasábba szedi a teljes szöveget, de a szöveget több hasábra oszthatjuk. Erre különösen akkor van szükség, ha apró betűs a szöveg és széles az oldal, vagy nagyon sok rövid sorból áll a szöveg, pl. szójegyzet. Lehet az egész dokumentumot, vagy annak tetszőleges részét, tetszőleges számú hasábra osztani. Ez esetben értelmezhető a hasábtörés.
  • Vízjel: a legtöbb szövegszerkesztő erre is ad módot; a Word-ben a Design fülön található.

Logikai formázások

Az eddigiek során fizikai formázásokról beszéltünk: mekkora legyen a betű, mekkora legyen a távolság két sor között stb. A gyakorlatban érdemes ismernünk a fizikai lehetőségeket, viszont elenyésző kivételtől eltekintve kizárólag a logikai formázásokat célszerű használni. Ennek az az oka, hogy ez esetben sokkal könnyebben tudjuk módosítani egységesen a dokumentumot. Tegyük fel ugyanis, hogy kész vagyunk a több száz oldalas dokumentummal, ami több száz alfejezet címet tartalmaz, ezres nagyságrendű bekezdéssel, és a fejezetcímekre egyfajta, a folyó szövegre pedig másfajta betűtípust szeretnénk használni. Pl. rájövünk, hogy címként jól mutat egy serif nélküli betűtípus, a szöveg maga viszont olvashatatlan.

Egy tisztességes szövegszerkesztőben van pár logikai formázás beépítve, pl.:

  • Folyó szöveg: a Word-ben ez a Normal.
  • Cím, alcím.
  • Fejezet cím, alfejezet cím stb. A Word-ben alapból csak a fejezet és az alfejezet látszik, de ha készítünk alfejezetet, akkor megjelenik a harmadik mélységű cím is; harmadikat használva a negyedik stb.
  • Különböző kiemelések, pl. hangsúlyos, erős, idézet stb. Tehát soha ne használjunk félkövér betűtípust, mindig az erőst válasszuk (ami egyébként alapértelmezésben a félkövért jelenti). Hasonlóan a dőlt helyett használjuk a hangsúlyost vagy az idézetet. Érdemes elkülöníteni a logikai formázást akkor is, ha a fizikai ugyanúgy néz ki.

A szövegszerkesztők lehetőséget biztosítanak a logikai formázások fizikai kinézetének megváltoztatására. Ha pl. azt szeretnénk, hogy az idézet ne dőlt betűs legyen, hanem normál, de aláhúzott, akkor pl. a Word-ben jobb gombbal kell kattintani a Quote formázáson, majd Modify…, és ott a normál karakterformázásnál megszokott módon be tudjuk állítani.

Mi magunk is létre tudunk hozni logikai formátumot. Ha viszont csak a szövegszerkesztő által nyújtott lehetőségeket használjuk (és természetesen külön sem formázzuk), akkor van egy óriási lehetőségünk: stílust tudunk választani (legalábbis Word-ben)! Van egy alapértelmezett stílus, ami ráadásul a Word verziókban is eltérhet, viszont számos egyéb beépített stílus található. ELég csak a Design fül alatt rákattintani egy stílusra, és máris átformázódik az egész dokumentum. Bal oldalon témákat is választhatunk, és a stíluskészlet is megváltozik. Valószínűleg mi magunk is tudunk stílust készíteni, ill. jó eséllyel le is tudunk tölteni, de ezeket még nem próbáltam.

Speciális elemek

Idáig csak szöveggel és azok formázásával foglalkoztunk. Egy dokumentum viszont nemcsak szöveget tartalmaz, hanem sok minden más egyebet is:

  • Speciális szimbólumok: korlátozott, hogy mit tudunk normál billentyűzettel beírni: alapvetően betűket, számokat, alapvető jeleket. De vajon hogyan szúrunk be a billentyűzeten nem szereplő ékezetes karaktereket, pl. š? Esetleg cirill, görög, héber, arab betűket, a távol-keleti és egyéb betűkről nem is szólva? Van olyan szimbólumokat, mint pl. a ≠, ±, ®, ∞, vagy →? Ezeknek persze vannak kódjaik, amelyekkel végső soron mindegyiket be lehet írni, de ezeket igen nehéz megjegyezni. Emiatt elengedhetetlen az, hogy legyen speciális karakter beszúró komponens minden szövegszerkesztőben, ahol a kategória (pl. görög betűk) kiválasztása után be tudjuk szúrni pl. azt, hogy π. Wordben ez a Beszúrás → Szimbólumok → Szimbólum helyen található.
  • Táblázat: egy táblázat sokkal áttekinthetőbb mint a folyószöveg. Szerintem nagyon helytelen újságírói gyakorlat az, hogy folyószövegbe erőlteti azt, amit egy pár soros és pár oszlopos táblázatban nagyon jól olvashatóan lehetne illusztrálni. Wordben Beszúrás → Táblázatok → Táblázat. Itt meg tudjuk adni a sorok és oszlopok számát. Célszerű az oszlopszélességet automatikusra állítani. Utólag egyébként át tudjuk méretezni, össze tudunk vonni cellákat, sorokat és oszlopokat tudunk hozzáadni ill. törölni, valamint formázni is.
  • Kép: egy-egy kép, diagram jelentősen feldobja a szöveget; érdemes képekkel illusztrálni a mondandónkat. Azok a szövegszerkesztők, amelyek formázásokat is lehetővé tesznek, gyakorlatilag mindegyike lehetővé teszi a képek beszúrását. Wordben az egyszerű kép beszúráson túl tudunk készíteni helyben egyszerű ábrákat (SmartArt), diagramokat (ld. Excel) és alakzatokat is. Ide sorolható még a Wordben az ún. WordArt, melynek segítségével különleges 3D hatású betűket tudunk beszúrni.
  • Képlet: a legegyszerűbb matematikai képletek kivételével azok folyószövegben a komplexitás növekedésével egyre nehezebben olvashatóak, sőt, egy bizonyos ponton túl nem is lehet sima szövegként leírni. Gondoljunk pl. egy izmosabb tört integráljára! Ehhez egyenletszerkesztőt célszerű használnunk. Minden tisztességes szövegszerkesztőnek tartalmaznia kellene egy képletszerkesztőt. A Wordben van egy beépített és igen jól használható egyenletszerkesztő: Beszúrás → Szimbólumok → Egyenlet.

Kereszthivatkozások

Számos kereszthivatkozás fajta létezik:

  • tartalomjegyzék,
  • ábrajegyzék,
  • oldalszám,
  • fejezetcím,
  • fejezetszám,
  • ábra sorszáma,
  • táblázat sorszáma,
  • könyvjelző (láthatatlan hivatkozás),
  • stb.

A probléma ezzel az, hogy később változhat, pl. bekerülhet a hivatkozott fejezet elé egy másik fejezet, egy ábra elé egy másik ábra stb., és ekkor át kell írni a hivatkozásokat. A modern szövegszerkesztők ezt a problémát jól kezelik; meg kell csak adni a hivatkozást, és szükség esetén automatikusan aktualizálódik. Wordben mindezek nagyobb részt a Hivatkozás lapon, kisebb részt a Beszúrás → Hivatkozások alatt találhatóak.

Szolgáltatások

A fentiek mind közvetlenül befolyásolták a végeredményt. Ettől a ponttól kezdve olyan elemekről lesz szó, melyek a produktivitást segítik elő.

Helyesírás ellenőrzés

Az első élményem a Word 6-tal kapcsolatban az volt, hogy mindent aláhúzott piros hullámos vonallal, amit csak beleírtam. Kétségbe esve kérdeztem a barátaimat (akkor még gyerekcipőben járt az internet, még Google sem volt), hogy mi történt?! Annyi, hogy a Word bevezette (ill. lehet, hogy csak alapértelmezetten bekapcsolttá tette, erre már nem emlékszem) az angol nyelvű helyesírás ellenőrzést, a szöveg pedig magyarul készült. Ma már nélkülözhetetlen alaptartozéknak gondolom a helyesírás ellenőrzést. Ez a következőket jelenti, ill. jelentheti:

  • Nagyobb részt gépelési, kisebb részt helyesírási hibák jelzése.
  • Stilisztikai hibák jelzése. Ezt csak Wordben láttam, és kékkel húzza al a helyesnek gondolt, de stilisztikailag problémásnak ítélt részeket, pl. a túl hosszú mondatokat stb.
  • Ide tartoznak még a figyelmeztetések: különösen az angolban fordulnak elő olyan dolgok, hogy egy rövid szóból lemarad egy betű, melynek következtében a szó értelmes marad, csak mást jelent. Az intelligens helyesírás ellenőrző a szövegkörnyezetből rájön arra, hogy valószínűleg nem azt akartuk írni.
  • Kapcsolódó téma az automatikus javítás: pl. a - karakterből gondolatjelet készít, az angol szövegben a 1st, 2nd stb.-ből felső indexet készít, a (c)-ből ezt: © stb. Automatikusan nagybetűsíti a mondat eleji betűket, figyelmeztetés nélkül módosítja a leggyakoribb gépelési hibákat, a szó eleji két nagybetűt egyre cseréli, és a sort lehetne folytatni. Személy szerint én ennek a Wordben korlátozottan tudok csak örülni; némely automatikus javítás jól jön persze, de azért sokszor ki szoktam kapcsolni párat. Persze az is elképzelhető, hogy 25 év múlva ezt tartom majd nagy dolognak…
  • Lazán kapcsolódik a témához az automatikus elválasztás. Lehet szöveget elválasztás nélkül is szerkeszteni, de az sokszor csúnya eredményt produkál. Automatikusan elválasztani egyébként nem nyilvánvaló dolog, ahhoz megfelelő adatbázisra van szükség. A helyesírás ellenőrző modul általában tartalmazza ezt is.

Alapértelmezésben általában nincs helyresírás ellenőrző, vagy csak egy-két nyelvre; az általunk használt nyelvekre érdemes beállítani. Pl. én be szoktam állítani a magyart, az angolt, a németet, a horvátot, és ha van szerb, akkor azt is. Minden nyelvet beállítani persze felesleges, és lassítja is a számítógépet. Általában meg kell adni a szöveg nyelvét, és az alapján ellenőriz. Wordben ezt a Véleményezés → Nyelv → Nyelv menüpont alatt tudjuk megtenni.

Sok szövegszerkesztő lehetővé teszi azt, hogy egyszerre több nyelvet is megadjunk; pl. az angol és a magyar megadása esetén elfogadja azt, hogy apple és azt is, hogy alma, de azt nem, hogy Apfel.

Közös szerkesztés

Különösen céges környezetben előfordul az, hogy egy dokumentumot nem egy ember szerkeszti, hanem annak van egy életútja, és többen hozzájárulnak. Az online szerkesztésnél ez szinte hogy természetes, de a Word is nyújt pár lehetőséget:

  • A bejelentkezett Windows felhasználó azonosítója automatikusan belekerül a dokumentumba, így ki lehet deríteni, hogy ki szerkesztette.
  • Be lehet kapcsolni a változtatások követését (Véleményezés → Nyomon követés → Változtatások követése), ami azt jelenti, hogy minden változtatást külön megjelöl. A másik szerkesztő számára így megjelennek a változtatások, amit ő el tud fogadni vagy el tud utasítani (Véleményezés → Változások).
  • Megjegyzéseket lehet hozzáfűzni (Véleményezés → Megjegyzések). Ezek nem látszódnak a végeredményben, de megjelennek szerkesztési módban. A megjegyzésekhez lehet választ írni.

Makró

Makrók segítségével a jól algoritmizálható ismétlődő feladatokat tudjuk megvalósítani. Tegyük fel például azt, hogy 1623-szor végre kell hajtani a következő lépéssort: az első 3 szó törlése, a kurzor 16 karakterrel jobbra mozgatása, majd 12 karakter törlése, utána 4 karakter átlépése és törlés a sor végéig. Ezt egyesével reménytelen végrehajtani, makrók segítségével viszont az imént vázolt műveletsor igen egyszerű. Példák:

  • Notepad++: a Makró menüpont alatt találhatóak a makróval kapocslatos dolgok.
    • Makró rögzítése: ettől kezdve minden interakciót rögzít. A fenti példában itt tudjuk végrehajtani a szükséges lépéseket.
    • Rögzítés megállítása: ezzel tudjuk befejezni a rögzítést.
    • Ctrl + Shift + P: a legutoljára rögzített makró futtatása. A fenti példában ezt 1623-szor lefuttatva (ill. nyomva tartva addig, amíg ennyiszer le nem fut) már meg van a feladat, ami a reménytelen méret helyett perces nagyságrendű.
    • A rögzített makró mentése…: nevet tudunk neki adni és billentyűkombinációhoz rendelni. Így később is le tudjuk futtatni (ez már így a szövegszerkesztő tulajdonságává válik).
    • Makró többszöri futtatása…: itt megadhatjuk, hogy hányszor fusson le. A fenti példában megadhatjuk, hogy 1623-szor, tehát így még egyszerűbbé válik a vázolt műveletsor.
  • Word: a makró a Nézet → Makrók alatt érhető el.
    • Makrók megjelenítése: az eddig rögzített makrókat jeleníti meg. A Notepad++-szal ellentétben ez mindig dokumentumhoz kötött (Notepad++-ban a szövegszerkesztő részévé válik).
    • Makrók rögzítése: itt kezdődik a makró. Megadhatunk billentyűkombinációt vagy menüpontot, ahol el szeretnénk érni, de nem kötelező; ez esetben az előző menüpontból futtathatjuk.
    • Rögzítés vége: csak akkor látható menüpont, ha makrót rögzítünk.
    • Szünet / Rögzítés folytatása: a Word lehetővé teszi azt, hogy a rögzítést felfüggesszük.
    • Makrók megjelenítése → Szerkesztés: itt tudjuk VBA nyelven szerkeszteni a rögzített makrót. Erről a nyelvről a Táblázatkezelés oldalon olvashatunk. Rögzítés során nem tudunk pl. feltételeket vagy ciklust megadni, VBA-ban viszont igen. A referencia oldal ez: https://docs.microsoft.com/en-us/office/vba/api/overview/word.

OCR

Különbséget kell tennünk a tényleges szöveg és a szöveget tartalmazó kép között. Ez utóbbi nem jól átméretezhető, nem szerkeszthető, és sokkal több helyet is foglal mint a rendes szöveg. Itt tegyünk különbséget az emberi civilizáció kulturális öröksége és a nettó igénytelenség között: az előbbi esetben az írott történelmünk során felhalmozódott, rendkívül értékes anyagról van szó, amit digitalizálnak, a második esetben pedig képernyőképet készítenek pl. egy Word dokumentumról, ahol sok esetben még arra sem veszik a fáradtságot, hogy legalább a helyesírás ellenőrzést rendesen beállítsák. Megjegyzés: az, hogy a szöveg nem szerkeszthető, még nem tartozik automatikusan ebbe a kategóriába; pl. a pdf a szöveget legbelül nem képként, hanem szövegként tárolja, tehát kicsi marad.

Az OCR az Optical Character Recognition (optikai karakterfelismerés) rövidítése, és a lényege az, hogy megpróbálja a kép alapján kitalálni, mi van oda írva, és abból készít módosítható szöveget. A gyakori félreértések elkerülése érdekében érdemes kihangsúlyozni, hogy ez nem egy rutin feladat, hanem a mesterséges intelligencia egy fontos területe. Az OCR rendszerek természetesen hibáznak, viszont itt mindig arra kell gondolnunk, hogy a hibázó OCR valós alternatívája nem a hibátlanul működő OCR, hanem az, hogy nincs is OCR, és nekünk kell begépelnünk, teszem azt, a Révai nagy lexikona minden egyes betűjét.

Az OCR még nem természetes kiegészítői a szövegszerkesztőknek, de pl. a Wordnek van ilyen kiegészítője.

Személyes élményem is kapcsolódik a témához: a programozó matematikus szakon a vizsgadolgozatom Karakterfelismerés témában született. Akkoriban még gyerekcipőben járt ez a terület; ma már kifejezetten jól működik, és a hétköznapunk részévé vált.

Nem módosítható szöveg készítése

Előfordulhat, hogy nem szeretnénk, ha a dokumentumunk módosítható lenne. Ennek több oka lehet, pl. a védettség (ne lehessen lemásolni), de az is, hogy a szerző szándéka ellenére ne legyen átformázva. Pl. egy gondosan kicentizett szakdolgozat nem tördelődjön újra a nyomdában az utolsó utáni pillanatban.

Az első ötlet a nem módosíthatóság irányába az, hogy képernyőképeket készítünk. Ennek viszont több hátulütője is van:

  • Azzal, hogy képként, és nem szövegként tároljuk, a méret jelentősen megnő, ami több tízszeres szorzót jelent, a tömöríthetőség pedig még inkább csorbát szenved, így végeredményben ez több százszoros szorzót is jelenthet.
  • Rosszul átméretezhető. Ezt az alábbi két ábra illusztrálja: a felső a szövegszerkesztő átméretezőjével készült, az alsó pedig utólag egy képszerkesztővel (ami egyébként nem mellesleg egész intelligensen méretezte át, összehasonlítva mondjuk a Painttel).
text.png
-
pic.png

A formátumok jó része önmagában kínál védett módot. A Wordben pl. a Fájl → Információ → Dokumentumvédelem alatt lehet véglegesíteni, titkosítani, korlátozni a szerkeszthetőséget stb. De vannak olyan formátumok, amelyeknek a célja eleve az, hogy ne lehessen szerkeszteni csak olvasni.

Történetileg érdemes a PostScript formátummal kezdeni, melynek szokásos kiterjesztése ps. Ezzel nemcsak (ill. elsősorban nem) szöveget lehet készíteni, hanem ábrákat. Az alábbi problémára ad választ: hogyan készítünk egy olyan képet, mely egy átlós vonalat tartalmaz? A hagyományos pixeles megközelítés az, hogy megmondjuk, melyik képpont legyen fekete és melyik fehér. Így működik a Paint, de ez általában nem túl szép eredményt ad. A profibb szerkesztők a koromfekete és a hófehér pixelek közé szürkéket is tesznek a szebb eredmény érdekében, de átméretezés során ez is csúnya marad. A PostScipt filozófiája az, hogy a képpont színek helyett adjuk meg a képletet, hogy a vonalat mettől meddig szeretnénk húzni, és az aktuális megjelenítő feladata az, hogy ez szépen nézzen ki. Hasonlóan jeleníti meg a karaktereket is.

Az írás pillanatában legelterjedtebb formátum a témában a pdf. Léteznek pdf-be konvertáló programok, és általában exportálni is lehet ebbe a formátumba, de talán a legegyszerűbb megoldás "nyomtatni" pdf-be: a nyomtatás során, ahol a nyomtatót választhatjuk ki, általában van egy olyan opció, hogy nyomtatás pdf-be.

Jelölő nyelvek

Angolul markup language, azaz ML. Az alább felsorolt nyelvek közös vonása az, hogy szöveges formában hozzuk létre, és végén szövegeket kapunk eredményül, de a kettő nem ugyanaz: az első szöveg a tulajdonképpeni szöveg mellett formázásokat is tartalmaz, ami az "átalakulás" során "eltűnik", egészen pontosan formázássá válik.

Referencia

Az alábbi táblázat összefoglalja az egyes rendszerek formázási lehetőségeit:

Formázás HTML LaTeX Wikipédia Wikidot Markdown
Fejezet címek <h1>Fejezet</h1>
<h2>Alfejezet</h2>
<h3>Al-alfejezet</h3>
\section{Fejezet}
\subsection{Alfejezet}
\subsubsection{Al-alfejezet}
= Fejezet =
== Alfejezet ==
=== Al-alfejezet ===
+ Fejezet
++ Alfejezet
+++ Al-alfejezet
# Fejezet
## Alfejezet
### Al-alfejezet

vagy

Fejezet
=======
Alfejezet
---------
Formázások vastag <b>Vastag</b> \textbf{Vastag} '''vastag''' **vastag** **vastag** vagy __vastag__
dőlt <i>Dőlt</i> \textit{Dőlt} ''dőlt'' //dőlt// *dőlt* vagy _dőlt_
kombinált <b><i>Kombinált</i></b> \textbf{\textit{Kombinált}} '''''kombinált''''' //**kombinált**// **_kombinált_**
aláhúzott <u>aláhúzott</u> \underline{aláhúzott} ld. HTML __aláhúzott__ <ins>aláhúzott</ins>
áthúzott HTML4:
<strike>áthúzott</strike>
vagy
<s>áthúzott</s>

HTML5:
<del>áthúzott</del>
\usepackage[normalem]{ulem}

\sout{áthúzott}
ld. HTML --áthúzott-- ~~áthúzott~~
fix szélesség <code>fix szélesség</code> \texttt{fix szélesség} ld. HTML {{fix szélesség}} `fix szélesség`
felsőindex felső<sup>index</sup> felső\textsuperscript{index} felső{{sup|index}} felső^^index^^ ld. HTML
alsóindex alsó<sub>index</sub> felső\textsubscript{index} alsó{{sub|index}} alsó,,index,, ld. HTML
Felsorolás nem számozott <ul>
<li>gyümölcs
<ul>
<li>alma
<li>barack
<li>banán
</ul>
<li>zöldség
<ul>
<li>paprika
<li>uborka
</ul>
</ul>
\begin{itemize}
\item gyümölcs
\begin{itemize}
\item alma
\item barack
\item banán
\end{itemize}
\item zöldség
\begin{itemize}
\item paprika
\item uborka
\end{itemize}
\end{itemize}
* gyümölcs
** alma
** barack
** banán
* zöldség
** paprika
** uborka
* gyümölcs
* alma
* barack
* banán
* zöldség
* paprika
* uborka
* gyümölcs
* alma
* barack
* banán
* zöldség
* paprika
* uborka

A karakter lehet + vagy - is.
számozott <ol>
<li>tavasz
<li>nyár
<li>ősz
<li>tél
</ol>
\begin{enumerate}
\item tavasz
\item nyár
\item ősz
\item tél
\end{enumerate}
# tavasz
# nyár
# ősz
# tél
# tavasz
# nyár
# ősz
# tél
1. tavasz
2. nyár
3. ősz
4. tél
Tördelés új sor <br> \\ vagy \newline ld. HTML sortörés sortörés
új bekezdés <p>szöveg</p> üres sor vagy \par üres sor üres sor üres sor
vízszintes vonal <hr> \hrulefill ---- ---- *** vagy --- vagy ___
Linkek egyszerű link http://faragocsaba.hu http://faragocsaba.hu <http://faragocsaba.hu>
link alternatív szöveggel <a href="http://faragocsaba.hu">
Faragó Csaba</a>
[http://faragocsaba.hu Faragó Csaba] [[http://faragocsaba.hu|Faragó Csaba]] [Faragó Csaba](http://faragocsaba.hu)
belső link [[text]] [[[text]]]
belső link alternatív szöveggel <a href="text.html">
Szövegszerkesztés</a>
[[text|Szövegszerkesztés]] [[[text|Szövegszerkesztés]]]
Vegyes kép <img src="cat.jpg"> \usepackage{graphicx}
\graphicspath{ {./images/} }

\includegraphics{cat}
[[File:cat.jpg]] [[image cat.jpg]] ![](cat.jpg)
táblázat <table>
<tr>
<th>Oszlop 1</th>
<th>Oszlop 2</th>
</tr>
<tr>
<td>Érték 11</td>
<td>Érték 12</td>
</tr>
<tr>
<td>Érték 21</td>
<td>Érték 22</td>
</tr>
</table>
\begin{tabular}{|l|l|}
\hline
\textbf{Oszlop 1} & \textbf{Oszlop 2}\\
\hline
Érték 11 & Érték12\\
\hline
Érték 21 & Érték22\\
\hline
\end{tabular}
{| class="wikitable"
|-
! Oszlop 1 !! Oszlop 2
|-
| Érték 11 || Érték 12
|-
| Érték 21 || Érték 22
|}
||~ Oszlop 1 ||~ Oszlop 2 ||
|| Érték 11 || Érték 12 ||
|| Érték 21 || Érték 22 ||
| Oszlop 1 | Oszlop 2 |
|----------|----------|
| Érték 11 | Érték 12 |
| Érték 21 | Érték 22 |
képlet \begin{equation}
a^2 + b^2 = c^2
\end{equation}
<math>a^2 + b^2 = c^2</math> [[$ a^2 + b^2 = c^2 $]]

vagy

[[math]]
a^2 + b^2 = c^2
[[/math]]
kódrészlet <pre>
a = b + c
print "Hello, world!"
</pre>
\begin{verbatim}
a = b + c
print "Hello, world!"
\end{verbatim}
a = b + c
print "Hello, world!"

(ld. a szóközt a sor elején)
[[code]]
a = b + c
print "Hello, world!"
[[/code]]
> a = b + c
> print "Hello, world!"
escaping <nowiki>…</nowiki> @<…>@ <div>…</div>
megjegyzés <!— Megjegyzés. > % Megjegyzés. <! Megjegyzés. —> [!-- Megjegyzés. --] [!-- Megjegyzés. --]

HTML

A HTML a HyperText Markup Language rövidítése. Elsősorban a weboldalak formázására használjuk, amit a böngészők jelenítenek meg, így a Web fejlesztés oldalra került. De egyéb célokra is használhatjuk, pl. a formázott e-mailek mögött szintén HTML van. Egy rövid példa néhány lehetőségre:

<html>
    <head>
        <title>HTML példa</title>
    </head>

    <body>
        Szabad szöveg.

        <h1>Első fejezet</h1>
        <h2>Első alfejezet</h2>
        <p>Paragrafus szöveg.<br>Új sor. <b>Vastag</b>, <i>dőlt betűs</i>, <u>aláhúzott</u>, <code>fix karakterszélességű</code> szöveg.</p>

        <h2>Második alfejezet</h2>
        <p>Felsorolás:</p>
        <ul>
            <li>Első elem
            <li>Második elem
            <li>Harmadik elem
        </ul>

        <h1>Második fejezet</h1>
        <p>Táblázat:</p>
        <table>
            <tr>
                <th>Név</th>
                <th>Darab</th>
            </tr>
            <tr>
                <td>alma</td>
                <td>5</td>
            </tr>
            <tr>
                <td>banán</td>
                <td>3</td>
            </tr>
            <tr>
                <td>narancs</td>
                <td>6</td>
            </tr>
        </table>
    </body>
</html>

A body rész eredménye:

LaTeX

Áttekintés

A LaTeX (ejtsd: kb. latekh) a TeX (ejtsd: kb. tekh) betűszedő rendszerre épülő, azt könyvtárakkal kiegészítő rendszer. A Tex története az 1970-es évekre nyúlik vissza, Donald Knuth fejlesztette. Elsősorban tudományos szövegek formázására használják. Az akadémia világán kívül egyetlen gyakorlati alkalmazásával találkoztam csak: a LaTeX ismertetéséről szóló könyvet is ebben írták. Annak, hogy a tudományos világban szinte kivétel nélkül mindenki ezt alkalmazza, valószínűleg történelmi okai vannak.

A LaTeX valahol a technika és az életfilozófia között helyezkedik el. A rendszer fő jellemzői:

  • Ez nem olyan egyszerű, mint a faék Word: személy szerint én egy Számítógépes szövegkészítés elnevezésű féléves egyetemi kurzuson ismerkedtem meg vele, amit későb b kiegészített a LaTeX haladóknak kurzus.
  • Létjogosultságát leginkább az adja, hogy amíg egy WYSIWYG szerkesztővel - mint pl. a Word - nem kontrollálunk minden részletet, a LaTeXben igen.
  • A másik, ami a létjogosultságát még ma is biztosítja, az a tipográfia. Tipográfiailag kifejezetten szép és igényes eredményt ad. Ez volt egyébként a Tex kiindulópontja: Donald Knuth-nak nem tetszett A számítógép programozás művészete című műve második kiadásának a betűtípusa. Különösen évtizedekkel ezelőtt - amikor a Word még gyerekcipőben járt - sokkal tetszetősebb végeredményt adott a LaTeX lényegében minden alternatívájánál, és megkockáztatom, hogy még ma is így van.
  • Különösen a matematikai képletek szépek benne. Ez annyira sikeresnek bizonyult, hogy MathJax néven önálló életre kelt, más jelölőnyelvek is használják, pl. az a motor is (Wikidot), amiben jelen oldal készül. Akkoriban egy bonyolultabb képlet (pl. egy gyök alatt levű tört, melyben van exponenciális kitevő is) nem igazán volt más lehetőség; sok esetben kézzel írták bele a matematika könyvekbe. Azóta persze sokat fejlődött a világ, pl. a Word képletszerkesztője szerintem kimondottan sikeres, de az abszolút nyerő szerintem továbbra is a LaTeX képletszerkesztője.
  • Ugyanakkor aki arra adja a fejét, hogy LaTeXben készítsem dokumentumot, finoman szólva is házhoz megy a pofonért. Majd látni fogjuk, hogy mennyire nehézkes rendszerről van szó.
  • Egy igen szerteágazó, bonyolult, összetett rendszerről van szó; meg sem kísérlem azt, hogy a teljesség igényével bemutassam azt. Inkább csak karcoljuk a felszínét.
  • Amikor megismerkedtem ezzel a rendszerrel még a '90-es évek végén, a magyar nyelvi támogatás akkor még elég gyerekcipőben járt. Az ékezeteket külön kellett rátenni, pl. \'a, \'e. Az í-t úgy tudtuk elérni, hogy először le kellett venni a pontot, majd arra tenni az ékezete: \'\i. A csak a magyar nyelvben létező ő, Ő ű és Ű karaktereket pl. \H o módon tudtuk megadni, ahol a H a magyarra (Hungarian) utal. Ma már nagyrészt működnek az ékezetek is.
  • A TeX érdekessége a verziószáma: ahelyett, hogy szokásos módon növelnék, a π-be konvergál. Az írás pillanatában a stabil verzió (már évek óta) 3.14159265, szóval a szerzők egész komolyan végleges közelinek gondolják. (Sajnos nem emlékem a részletekre, de van egy kapcsolódó rendszer, ami az e-be konvergál.)
  • Metafont a neve a TeX fontkezelő rendszerének, melynek a verziószáma e-be konvergál. Az írás pillanatában az aktuális verziószám 2.7182818.

Én két egyetemi kurzuson vettem részt a témában, ebben írtam többek a vizsgadolgozatomat, a szakdolgozatomat, az összes cikket a doktorimhoz, beleértve a 160 oldalas disszertációt és a 15 oldalas kivonatait is. Majd miután feltelepítettem azzal a céllal, hogy ezt az oldalt leírjam, elég sokat kínlódtam vele, mire sikerült működésre bírnom. Szóval tényleg nem egyszerű! Persze jó élményt jelent az, hogy miután megszenvedtünk a hosszú betanulási görbével, tetszetős dokumentumokat tudunk "varázsolni", viszont ha nem szeretnénk túl sokat tanulni, csak egyszerűen szöveget szeretnénk írni, akkor nem tudom jó szívvel ajánlani a LaTeX-et.

Helló, LaTeX világ!

A "Helló, világ!" alkalmazás elkészítéséhez tegyük a következőt:

  • Töltsük le és telepítsük fel a MiKTeX szoftvert: https://miktex.org/. Ellenőrizzük le parancssorból, hogy működik-e:
latex -version
  • Hozzunk létre egy fájlt helloworld.tex néven, az alábbi tartalommal:
\documentclass{article}
\begin{document}
Hello, \LaTeX world!
\end{document}
  • Futtassuk létre az alábbi parancsot, ami lefordítja:
latex helloworld.tex
  • Az eredmény helloworld.dvi. Ez nem egy elterjedt formátum, készítsünk pdf-et az alábbi paranccsal (szintén a MiKTeX része):
dvipdfm helloworld.dvi
  • A végeredmény helloworld.pdf.
  • Nagyobb dokumentumok esetén, amelyekben vannak kereszthivatkozások, a latex parancsot többször le kell futtatni. Érdemes rövid scriptet írni, ami a latex és dvipdfm hívásokat tartalmazza.
  • A MiKTeX tartalmaz egy TeXworks alkalmazást is, ami valamelyest egyszerűsít és gyorsít a folyamaton. Ez két részből áll. Az egyik egy szövegszerkesztő, amelybe a LaTeX kódot írjuk, ott le is tudjuk fordítani, és a másodikban megjelenik a végeredmény.

Egy példa

A fenti, HTML-ben készített példa LaTeX-ben a következőképpen néz ki:

\documentclass{article}
\usepackage[normalem]{ulem}
\begin{document}
Szabad szöveg.

\section{Első fejezet}

\subsection{Első alfejezet}

Paragrafus szöveg.
Új sor. \textbf{Vastag}, \textit{dőlt betűs}, \underline{aláhúzott}, \sout{áthúzott}, \texttt{fix karakterszélességű} szöveg.

\subsection{Második alfejezet}

Felsorolás:
\begin{itemize}
\item Első elem
\item Második elem
\item Harmadik elem
\end{itemize}

\section{Második fejezet}

Táblázat:

\begin{tabular}{|l|l|}
\hline
\textbf{Név} & \textbf{Darab}\\
\hline
alma & 5\\
\hline
banán & 3\\
\hline
narancs & 6\\
\hline
\end{tabular}

\end{document}

Ez alapján fogjunk megismerkedni a LaTeX építőköveivel. A neten természetesen nagyon sok leírás van a témában. Pl. a Stack Overflow mintájára létezik kifejezetten LaTeX fórum is: https://tex.stackexchange.com/. A https://wch.github.io/latexsheet/latexsheet-a4.pdf egy kiváló összefoglaló a lehetőségekről.

A dokumentum szerkezete

A fenti példák a \documentclass{article} sorral kezdődtek. Az article tudományos cikket jelent, és ez a leggyakoribb. Lehetőségek:

  • book
  • report
  • article
  • letter
  • slides

Ez határozza meg a végeredmény fő kinézetét és a lehetőségeket is, például a szakaszcím lehetőségeket. Összességében az alábbi lehetőségek vannak:

  • \part
  • \chapter
  • \section
  • \subsection
  • \subsubsection

A fenti példában csak \section és \subsection van, nem véletlenül: az article nem tartalmazhat \part-ot és \chapter-t sem.

A dokumentum alapkinézetét (lap méret, margó mérete stb.) számos egyéb módon tudjuk befolyásolni, melyre itt nem térek ki.

Font formázások

A példában láthattunk pár font formázást. Néhány lehetőség:

  • \textbf{text}: félkövér
  • \textit{text}: dőlt
  • \underline{text}: aláhúzott
  • \texttt{text}: fix karakterszélesség
  • \textsc{text}: kis kapitális

A méretet az alábbi, kissé furcsa parancsokkal tudjuk beállítani:

  • \tiny{text}
  • \scriptsize{text}
  • \footnotesize{text}
  • \small{text}
  • \normalsize{text}
  • \large{text}
  • \Large{text}
  • \LARGE{text}
  • \huge{text}
  • \Huge{text}

Külső csomagok

A példában láthatunk egy ilyen sort: \usepackage[normalem]{ulem\}. Ahogy a nevéből is következtethetünk, ez külső csomag használatát jelenti.

De várjunk csak: miért van szükség egyáltalán egy ilyen egyszerű példában külső csomagra? Az előző szakaszban a font formázásoknál bizony kimaradt valami: az áthúzás! Ez nem része az alap LaTeX-nek! Ahhoz, hogy ezt használni tudjuk, természetesen le kell töltenünk, ami normál esetben automatikus, de fontos, hogy legyen internet elérésünk, és az az elérés közvetlen legyen. Egy vállalati proxy vagy egy utazás közbeni szövegszerkesztés még egy olyan egyszerű feladatot is drasztikusan megnehezít, mint áthúzott szöveget írni!

És ez még nem minden! Az első találat az áthúzásra nem is az ulem csomag volt, hanem a soul csomag \st parancsa. Csakhogy az hibát jelzett, ha paraméterként ékezetes karaktert kapott. A hibaüzenet teljesen semmitmondó volt, amiből nem lehetett kiindulni; kísérletezgetést követően sikerült először lokalizálnom a problémát, majd keresni egy másik csomagot a feladatra.

Ilyenbe az ember LaTeX-ben szöveget készítve bizony lépten-nyomon belefut. Hétköznapi használatra már emiatt sem ajánlott LaTeX-et használni.

Felsorolások

A példában láthattunk számozatlan felsorolást

\begin{itemize}
\item Első elem
\item Második elem
\item Harmadik elem
\end{itemize}

Ez tetszőleges mélységben egymásba ágyazható. Számozott felsorolást a következőképpen tudunk létrehozni:

\begin{enumerate}
\item Első elem
\item Második elem
\item Harmadik elem
\end{enumerate}

Táblázatok

A táblázatok kezelése önmagában egy külön műfaj a LaTeX-en belül, melyről hosszú tananyagot lehetne készíteni. Ezt már megtették helyettem mások, én most a lényegre koncentrálok. Az alábbi oldalak jó összefoglalói a lehetőségeknek:

Tekintsük a következő példát! Ezen keresztül magyarázom el a LaTeX táblázat koncepcióját.

Ld. az \ref{tab:fruits}. táblázatot!

\begin{table}[h!]
  \begin{center}
    \caption{Gyümölcsök}
    \label{tab:fruits}
    \begin{tabular}{|l|l|}
      \hline
      \textbf{Név} & \textbf{Darab}\\
      \hline
      alma & 5\\
      \hline
      banán & 3\\
      \hline
      narancs & 6\\
      \hline
    \end{tabular}
  \end{center}
\end{table}
  • Kezdjük a \begin{tabular}{|l|l|…\end{tabular}} szerkezettel! Ez belül van, körülötte van más is. Valójában ez az utasítás hozza létre a táblázatot. Figyeljük meg, hogy a bevezető példában ez adta a táblázat teljes szerkezetét!
  • A |l|l| jelentése: a táblázat két oszlopot tartalmaz, mindkettőben az adat balra zárt (l, azaz left). Ezek az érték lehetne c (center, azaz középre zárt) és r (right, azaz jobbra zárt) is. Természetesen ezek vegyíthetőek.
  • A | jelenti a függőleges elválasztó vonalat. Ki is hagyhatnánk; pl. l|l végeredménye annyiban különbözne, hogy hiányozna a bal és jobb oldali függőleges vonal.
  • A táblázat soraiban a cellák adatait a & karakterrel választjuk el, a sort pedig ezzel árjuk le: \\.
  • Nincs automatikus vízszintes elválasztó vonal sem, azt explicit ki kell írni a \hline (horizontal line, vízszintes vonal) paranccsal.
  • Nem hoz létre automatikusan másképp formázott fejlécet, azt nekünk kell explicit megadni. A példában vastaggal szedjük a fejléc feliratokat.
  • Az egész táblázat \begin{table}[h!]…\end{table} szerkezetben található. Ennek a jelentősége a következő. Elképzelhető, hogy tipográfiailag a forrásban megadott helyen nem optimális, melynek több oka lehet. Pl. nem férne ki, átlógna a következő oldalra. Ha egyben szeretnénk tartani, akkor felesleges hely maradna ki. Ha több oszlopos a szöveg, akkor nem fér ki egy oszlopba. A lehetséges okokat lehetne sorolni. Enélkül mindenképpen oda tenné, ahol a forrásban szerepel, akár szép az, akár nem. A \begin{table}…\end{table} szerkezettel "lebegő" (floating) táblázatot készítünk, azaz kicsit kiadjuk a kezünkből a kontrollt, és a LaTeX rendszerre bízzuk, hogy tegye egy optimális helyre.
  • Szögletes zárójelben tanácsot adhatunk a LaTeX-nek, hogy hol szeretnénk látni. Pl. h: here, azaz itt; t: top, azaz az oldal teteje, b: bottom, azaz az oldal alja stb. A ! felülbírálja a LaTeX belső paramétereit; jelen esetben a h! azt jelenti, hogy mindenképpen ide tegye. (Ezzel valójában "agyon csaptuk" a lebegést.)
  • A \caption paranccsal adunk címet a táblázatnak.
  • A \label{cimke} címkével látja el a táblázatot. Ez egyben sorszámozza is a táblázatokat, és hivatkozni is tudunk rá a \ref{cimke} paranccsal, ahogyan azt a példában is látjuk.
  • A táblázatba sort beszúrni viszonylag egyszerű, oszlopot igen munkás, egy olyan közepesen összetett művelethez pedig, mint mondjuk egy transzponálás, háááát… LaTeX-ben sok sikert kívánok!

Matematikai képletek

Ha létezik még oka a LaTeX létezésének, akkor az szerintem egyértelműen a matematikai képletekben rejlik. Ez MathJax néven önálló életre kelt, és más rendszerekben (pl. ennek a honlapnak a motorját képező Wikidot rendszerben is) a matematikai képleteket ennek segítségével tudjuk létrehozni. Ennek előnyét ebben az alfejezetben rögtön ki is használjuk: meg tudjuk nézni, hogy a példának mi a végeredménye.

A LaTeX matematikája nagyon jól dokumentált:

Matematikai képletet a LaTeX-ben többféle módon létre tudunk hozni, pl.:

\begin{equation}
x_{1,2}=\frac{-b\pm\sqrt{b^2-4\cdot a\cdot c}}{2\cdot a}
\end{equation}

Első olvasatra talán nem egyértelmű, hogy ez a másodfokú egyenlet megoldóképlete:

(1)
\begin{align} x_{1,2}=\frac{-b\pm\sqrt{b^2-4\cdot a\cdot c}}{2\cdot a} \end{align}

Ugye, milyen szép?

Ez a példa jól illusztrálja a lehetőségeket és azok szintaxisát. Lássunk pár példát, a teljesség igénye nélkül!

  • Alapvetően a megszokott jelekből kell kiindulni. A betűk betűket, a számok számokat, az olyan műveletei jelek, mint pl. a +, a - vagy az = a képletben is ugyanazt jelenti. A betűket kissé dőlten szedi.
  • Alsó indexet a _, felső indexet pedig a ^ karakterrel tudunk létrehozni, pl. b^2.
  • Ha több dolgot szeretnénk összefogni, akkor azt kapcsos zárójelek közé ({…}) kell tenni. Pl. az x_{1,2} azt jelenti, hogy az 1, a vessző és a 2 is alsó indexben van.
  • Törtet a \frac paranccsal tudunk megadni, melynek két paraméterét, azaz a számlálót és a nevezőt kapcsos zárójelekbe lehet tenni, pl. \frac{a}{b}. Tetszőleges komplexitású képlet kerülhet a nevezőbe és a számlálóba is, akár másik tört is.
  • Számos jel fordul elő a matematikai képletekben, amelyek nincsenek a billentyűzeten. Néhány gyakoribb példa, a teljesség igénye nélkül:
    • $\cdot$ \cdot
    • $\pm$ \pm
    • $\approx$ \approx
    • $\leq$ \leq
    • $\infty$ \infty
    • $\alpha$ \alpha
    • $\pi$ \pi
  • Gyökjelet a \sqrt paranccsal tudunk létrehozni. Vonatkozó jelek: \int (integrál), \sum (szumma).
  • Ha a beírt betűk nem valamilyen értéket, hanem műveletet jelölnek, akkor magát a műveletet kell escape-elni, pl. \sin. A használatára példa; alatta az eredménnyel (az eredmény láttán szinte kedvet kapunk matekozni).
\begin{equation}
\sin^2\alpha + \cos^2\alpha=1
\end{equation}
(2)
\begin{align} \sin^2\alpha + \cos^2\alpha=1 \end{align}
  • Zárójelek esetén célszerű használni a \left(…\right), \left{…\right} és \left[…\right] struktúrákat. Noha a (…) is működik, az előbbi amiatt jobb, mert a benne foglalt képletnek megfelelően méretezi azt. Pl. ha egy tört van zárójelben, akkor elég magas lesz a zárójel.

Wikipédia

Talán a legelterjedtebb formázó nyelv. Sok esetben nincs saját jelölése; ott a HTML is használható. A fenti szöveg Wiki jelölésekkel:

Szabad szöveg.

= Első fejezet =

== Első alfejezet ==

Paragrafus szöveg.
Új sor. '''Vastag''', ''dőlt betűs'', <u>aláhúzott</u>, <s>áthúzott</s>, <code>fix karakterszélességű</code> szöveg.

== Második alfejezet ==

Felsorolás:
* Első elem
* Második elem
* Harmadik elem

= Második fejezet =

Táblázat:

{| class="wikitable"
|-
! Név !! Darab
|-
| alma || 5
|-
| banán || 3
|-
| narancs || 6
|}

Jóval kompaktabb és olvashatóbb mint akár a HTML, akár a LaTeX.

Wikidot

Ez a weboldal mögött a Wikidot motor van, aminek a szintaxisa kissé eltér a Wikipédián használt motorétól. A fenti szöveg ebben a formában az alábbi:

Szabad szöveg.

+ Első fejezet

++ Első alfejezet

Paragrafus szöveg.
Új sor. **Vastag**, //dőlt betűs//, __aláhúzott__, --áthúzott--, {{fix karakterszélességű}} szöveg.

++ Második alfejezet

Felsorolás:
* Első elem
* Második elem
* Harmadik elem

+ Második fejezet

Táblázat:

||~ Név    ||~ Darab ||
|| alma    || 5      ||
|| banán   || 3      ||
|| narancs || 6      ||

Ezt logikusabbnak és letisztultabbnak tartom a Wikipédia jelölő nyelvénél

Markdown

Kiterjesztése .md. Tipikus felhasználási helye a programkódok magyarázata: ha létrehozunk egy README.md fájlt a forráskód gyökerében, akkor számos rendszer (pl. GitHub) automatikusan megjeleníti. A Stack Overflow is ezt a szintaxist használja.

A Markdown-nak nincs mindenre külön jelölése, viszont ez esetekben használhatjuk a HTML-t.

A fenti szöveg Markdown jelölésekkel:

Szabad szöveg.

# Első fejezet

## Első alfejezet

Paragrafus szöveg.
Új sor. **Vastag**, *dőlt betűs*, <ins>aláhúzott</ins>, ~~áthúzott~~, `fix karakterszélességű` szöveg.

## Második alfejezet

Felsorolás:
* Első elem
* Második elem
* Harmadik elem

# Második fejezet

Táblázat:

| Név     | Darab |
|---------|-------|
| alma    | 5     |
| banán   | 3     |
| narancs | 6     |

Ez is jól áttekinthető, a formázások egyszerűek, fejben tarthatóak. Hátránya, hogy csak az alapdolgokra kínál saját megoldást, ugyanakkor a HTML működik.

Tippek és trükkök

Azoknak a fájloknak a megkeresése, melyek tartalmaznak bizonyos szót

Total Commander: Commands → Search… → a "Find text" legyen bekapcsolva, és oda írjuk be a keresendő szót vagy kifejezést → Start search

Szöveges fájl sorainak sorba rendezése

Notepad++: Edit → Line Operations → Sort Lines Lexicographically Ascending

Egymás utáni duplikált sorok törlése

a. Notepad++, plugin nélkül: Search → Replace…

  • Find what: ^(.*?)$\s+?^(?=.*^\1$)
  • Replace with: [üres]
  • Search Mode: Regular expression
  • Replace All

b. Notepad++, TextFX plugin segítségével:

  • Töltsük le a beépülőt innen: https://sourceforge.net/projects/npp-plugins/files/TextFX/ (vigyázat alapértelmezésben egy másik plugint tölt le, kattintsunk a legfrissebb TextFX-re).
  • Csomagoljuk ki az Notepad++ könyvtár plugins könyvtárába (nálam c:\Program Files (x86)\Notepad++\plugins). Ehhez rendszeradminisztrátori jogok kellenek.
  • Indítsuk újra a Notepad++-t. Ezt követően meg kell jelennie a TextFX főmenünek.
  • TextFX → TextFX Tools → A "+Sort output only UNIQUE (at column) lines" legyen bekapcsolva, majd ugyanitt "Sort lines case sensitive (at column)".

Adott szót nem tartalmazó sorok törlése

Notepad++:

  • Search → Find… → Mark fül → Find what: ide írjuk a kérdéses kifejezést, a Bookmark line legyen bekapcsolva, majd Mark All
  • Search → Bookmark → Remove Unmarked Lines

(Kijelölés megszüntetése: Search → Bookmark → Clear All Bookmarks.)

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License