A LATEX ALAPJAI B ERTÓK C SANÁD
2015
[email protected]
TARTALOMJEGYZÉK TARTALOMJEGYZÉK
2
1. B EVEZETÉS
3
2. A
4
PREAMBULUM
3. A KEZDETI LÉPÉSEK , ALAPVET O˝ FORMÁZÁSOK 3.1. I NDULÁS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2. S ZÖVEG IGAZÍTÁSA . . . . . . . . . . . . . . . . . . . . . . 3.3. S OR -, ILLETVE OLDALTÖRÉS , ÜRES HELYEK , ELVÁLASZTÁS 3.4. B EKEZDÉSEK , FELSOROLÁS , SZÁMOZÁS . . . . . . . . . . . ˝ ALAPSZINT U ˝ FORMÁZÁSA . 3.5. K ÉPEK BEILLESZTÉSE , BET UK 3.6. TÁBLÁZATOK ELKÉSZÍTÉSE . . . . . . . . . . . . . . . . . .
. . . . . .
4. H ALADÓBB SZINT U˝ PARANCSOK , KÖRNYEZETEK 4.1. L INKEK BEILLESZTÉSE , HIVATKOZÁSOK . . . . . . . . . . . . 4.2. TARTALOMJEGYZÉK LÉTREHOZÁSA . . . . . . . . . . . . . . 4.3. F EJEZETEK , ALFEJEZETEK ELKÉSZÍTÉSE . . . . . . . . . . . . 4.4. L ÁBJEGYZETEK , SZÉLJEGYZETEK . . . . . . . . . . . . . . . 4.5. S ZÖVEGDOBOZOK , „ MINIOLDALAK ” BESZÚRÁSA . . . . . . . 4.6. H OGYAN SZÍNEZZÜK A MEGÍRT SZÖVEGET ? . . . . . . . . . . ˝ 4.7. D OKUMENTUMOK ELHELYEZÉSE A M UVÜNKBEN . . . . . . . 4.8. A NEWCOMMAND ÉS RENEWCOMMAND UTASÍTÁSOK . . . . 4.9. A NEWENVIRONMENT ÉS RENEWENVIRONMENT UTASÍTÁSOK 5. A MATEMATIKAI MÓD 5.1. A LAPOK , FORMÁZÁSOK . . . . . . . . . . . . . . . . . . . . 5.2. Z ÁRÓJELEK , EGYENLETEK , EGYENLETRENDSZEREK . . . . 5.3. A Z ALIGN VS EQNARRAY VITA . . . . . . . . . . . . . . . . 5.4. T ÉTELEK , LEMMÁK , DEFINÍCIÓK , MEGJEGYZÉSEK . . . . . 5.5. K ÜLÖNBÖZ O˝ SZÁMTÁBLÁZATOK HATÉKONY BEILLESZTÉSE 5.6. T IPPEK , TRÜKKÖK , RÖVIDEBB PARANCSOK . . . . . . . . . 6. A
. . . . . .
. . . . . .
. . . . . . . . .
. . . . . .
. . . . . .
. . . . . . . . .
. . . . . .
. . . . . .
. . . . . . . . .
. . . . . .
. . . . . .
. . . . . . . . .
. . . . . .
. . . . . .
. . . . . . . . .
. . . . . .
. . . . . .
. . . . . . . . .
. . . . . .
. . . . . .
. . . . . . . . .
. . . . . .
. . . . . .
. . . . . . . . .
. . . . . .
. . . . . .
. . . . . . . . .
. . . . . .
. . . . . .
. . . . . . . . .
. . . . . .
. . . . . .
8 8 8 9 10 12 15
. . . . . . . . .
17 17 18 19 19 20 22 23 24 26
. . . . . .
28 28 30 33 35 37 39 40
BIBLIOGRÁFIA
7. F ÜGGELÉK ˝ MATEMATIKAI MÓDBAN 7.1. K ÜLÖNBÖZ O˝ BET UK 7.2. S ZÖGFÜGGVÉNYEK , LIMESZEK ,. . . . . . . . . ˝ , SZIMBÓLUMLISTA . . . . . . 7.3. G ÖRÖG BET UK 7.4. A LATEX- BEN ELÉRHET O˝ NÉHÁNY SZÍN . . .
2
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
44 44 44 44 48
1. B EVEZETÉS Mi a LATEX? A legrövidebben úgy lehetne jellemezni, mint egy szövegszerkeszt˝o, tördel˝o szoftvert, mely az egészen alapszint˝u szövegformázástól kezdve egészen a nyomdai felhasználásig minden szinten könnyen, gyorsan használható. Ellentétben az elterjedt, ún. WYSIWYG típusú szövegszerkeszt˝okkel (What You See Is What You Get - Amit látsz azt kapod), a LATEX igyekszik teljesen a felhasználóra bízni a szöveg megformázását, mely els˝o ránézésre ijeszt˝o kódokat eredményezhet, azonban a kezdeti nehézségek leküzdése után igen gyorsan és precízen lehet dolgozni a program segítségével. Fontos megemlíteni, hogy maga a LATEX csupán a megírt kód "lefordításáért", pdf-é (vagy egyéb, más formátummá) történ˝o átalakításáért felel˝os. Ahhoz, hogy hatékonyan tudjunk haladni a megírandó dokumentummal elengedhetetlen egy küls˝o program, melyben a tényleges gépelést el tudjuk végezni. Ez lehet kimondottan a LATEX-hez íródott TeXMaker, TeXnicCenter, WinEdt, stb., de a vállalkozóbb kedv˝uek egy egyszer˝u Jegyzettömb, Geany, vagy bármilyen, nyers szöveg elkészítésére alkalmas program használatával is megpróbálkozhatnak. A forrásfájl lefordításához szintén két f˝o csomag áll rendelkezésünkre, melyek tudásukat tekintve közel azonosak, ám számos területen mégis eltér˝oek. Az els˝o, általam is használt az ún. TeX Live, melynek nincs olyan jól kidolgozott csomagkezel˝oje, mint a másik nagy riválisnak, azonban sokkal nagyobb hangsúlyt fektet a biztonságra, így pl. nem lehetséges rosszindulatú JScript kódokat elhelyezni vele a felhasználó könyvtáraiban. További el˝onye, hogy sokkal egyszer˝ubb a telepítése Linux, illetve OS/X operációs rendszerekre, mint a konkurens fordítónak. Hátránya, hogy ha telepítéskor kifelejtünk egy szükséges csomagot, akkor kés˝obb azt nehezebben tudjuk pótolni. A másik gyakran használt fordító az ún. MikTeX, melyet f˝oként Windows operációs rendszer alatt használnak. El˝onye, hogy ha egy csomag hiányzik, akkor azonnal felajánlja, hogy letölti és telepíti. Hátránya, hogy nem olyan biztonságos, mint a TeX Live és nem olyan jó a multi-platform támogatottsága. Ez a rövid jegyzet olyan céllal íródott, hogy alapvet˝o bevezetést nyújtson azoknak akik életükben el˝oször találkoznak a LATEX-el, így az is bátran nekiláthat az olvasásnak, akinek a latex szó hallatán egészen más dolgok jutnak eszébe, mint egy szövegszerkeszt˝o program. A könyv egyes fejezetei azonban a nem teljesen kezd˝ok, s˝ot akár a haladók számára is hasznosnak bizonyulhatnak, hiszen tartalmazhatnak olyan parancsokat, tippeket, melyek segítségével sok feladat egyszer˝ubben, esztétikusabban oldható meg, mint a jól bejáratott "klasszikus" módszerek segítségével. Nem gy˝ozöm azonban hangsúlyozni (és ezt a m˝u során több ponton ki is fogom újra és újra emelni), hogy a LATEX-ben ugyanarra a problémára gyakran 10 − 20, vagy még több, ugyanolyan hatékony megoldás létezik, így az ami ebben a leírásban olvasható rendszerint az én preferenciámat, stílusomat tükrözi vissza és nem feltétlenül a legegyszer˝ubb eljárást mutatja be. Így erre a könyvre érdemes amolyan "kiindulási pontként" tekinteni és a hónapok, évek során törekedni kell arra, hogy kialakítsuk saját stílusunkat.
3
2. A PREAMBULUM A LATEX dokumentum küls˝o vázát f˝oként az ún. preambulumban megadott adatok határozzák meg. Ezek azok a parancsok, melyek definiálják a margók méretét, a globális bet˝utípust, az elválasztás nyelvét, . . . stb. Éppen emiatt egy jól megadott preambulum, apróbb módosításoktól eltekintve, szinte egész életén át elkísérheti az embert, hiszen elegend˝o mindig bemásolni a dokumentumunk elejére az elmentett sorokat. Nézzük, minek kell szerepelnie benne: - \documentclass[a4paper,12pt]{article} - megmondja, hogy milyen méret˝u dokumentumot szeretnénk készíteni. Amire nekünk szükségünk lehet az: a4paper, a5paper, b5paper. A második változó a bet˝uméret, míg az article megmondja, hogy épp cikket szeretnénk írni (persze ez alkalmazható minden rövidebb dokumentumra, de akár a könyvekre is, ám arra ott a „book” opció). A szögletes zárójelek között vessz˝ovel elválasztva megadhatunk még több változót is (pl. ha fektetve szeretnénk a lapokat látni, akkor „landscape”-et kell beírnunk, ha kétoldalasra szeretnénk a dokumentumot, akkor pedig a „twoside” szükséges). Szintén itt szükséges megadni azt is ha küls˝o stílusfájlt alkalmazunk. A tudományos folyóiratok általában elkészítik és a kutató rendelkezésére bocsájtják az ún. stílusfájljaikat, melyek meghatározzák, hogy hova kerül a szerz˝o, cím, absztrakt, stb. Ahhoz, hogy mi ezt használni tudjuk el˝oször le kell azt töltenünk az újság honlapjáról, bemásolni a dokumentumunk mappájába, majd \documentclass{stílusfájl} módon behívni azt. - \setcounter{tocdepth}{} - az utolsó zárójelben lév˝o szám mondja meg, hogy a program milyen mélységig tüntesse fel a tartalomjegyzékben az alfejezeteket. Az alapbeállítás három, azaz fejezet, alfejezet, al-alfejezet. Ha nekünk ez megfelel˝o (és az esetek 95%-ában az), úgy ezt a sort fel sem kell tüntetnünk a preambulumban. - A csomagok: a LATEX-ben rengeteg kiegészítést érhetünk el úgynevezett csomagok formájában, (pl. jelen könyvben a kattintható tartalomjegyzék is egy ilyen csomag eredménye) melyeket szintén a preambulumban szükséges definiálni \usepackage{csomag1, csomag2, . . . } formátumban, vagy egymás alá írva. Az általam használt csomagok listája rövid leírással alább található: - \usepackage{t1enc} - f˝obb karakterosztály megadása, enélkül hibás bet˝uk jelennek meg a dokumentumban. - \usepackage[utf8]{inputenc} - karakterkódolás megadása (megjegyzés: utf8 helyett használatos a latin2, vagy utf8x is), magyar bet˝uk hibátlan megjelenítése. - \usepackage[magyar]{babel} - magyar elválasztás. - \usepackage{times} - az elterjedt times bet˝utípus használata a „gyári” bet˝utípus helyett. Általában a többi szövegszerkeszt˝oben ez az alapbeállítás. - \usepackage{amsfonts, amsmath, amsthm, amssymb} - matematikai szimbólumokat (görög bet˝uk, . . . ), illetve a matematikai tételek formáját tartalmazó csomag. Enélkül valamirevaló matematikus el sem indul otthonról ^. ¨ - \usepackage{graphicx} - képek beillesztéséhez, megjelenítéséhez szükséges csomag. Régebbi megfelel˝oje a graphics, de a graphicx sokkal többet tud. - \usepackage[unicode]{hyperref} - linkek beszúrásához, kattintható tartalomjegyzékhez, hivatkozásokhoz szükséges. Az unicode kapcsoló az ékezetes bet˝uk miatt fontos. 4
- \usepackage{enumerate} - a számozások stílusát változtathatjuk meg vele pl. a), b), c), i, ii, iii,. . . alakúra. - \usepackage{setspace} - a sorközt tudjuk megadni ezzel a csomaggal. Fontos, hogy a tényleges sorközt úgy tudjuk beállítani, hogy új sorba beírjuk az alábbi parancsok valamelyikét: - \singlespacing - egyszeres sorköz. Ez az alapbeállítás. Ha nem adjuk meg a setspace csomagot, akkor automatikusan így dolgozik a program. - \onehalfspacing - másfeles sorköz. - \doublespacing - kétszeres sorköz. - \usepackage[top=Wcm, bottom=Xcm, left=Ycm,right=Zcm]{geometry} - a margókat állíthatjuk be vele. A LATEX-ben alapból igen széles margók vannak, így célszer˝u azokat valamelyest csökkenteni. Megjegyzés: ha minden margót egyszerre szeretnénk változtatni, akkor a []-en belül elég azt írni, hogy margin=Xcm. Én a fenti csomagokat szoktam f˝oként használni. Természetesen rengeteg elérhet˝o még, azonban kiindulásnak mindenképp ezeket javasolnám, hisz segítségükkel szinte bármilyen matematikai témájú cikket elkészíthetünk különösebb gond nélkül. A nyelvi, elválasztási csomagok szinte kötelez˝oek, a többit igény szerint kihagyhatjuk a preambulumból. Igazából a documentclass megléte elég ahhoz, hogy a fájl leforduljon, ám ekkor nagy valószín˝uséggel olvashatatlan szöveget kapunk. Ha csupán a documentclass, t1enc és inputenc sorokat írjuk be a preambulumunkba akkor viszont már képesek vagyunk teljesen olvasható és esztétikus m˝uveket létrehozni. Ha az elválasztáshoz szükséges babel csomagot is belevesszük akkor pedig akár már regényt is írhatunk. Néhány egyéb beállítás: - Tartalomjegyzék, szerz˝o: az alább megadott parancsok nem mindig szükségesek, épp ezért megjelenítésük nem kötelez˝o a preambulumban. - \author{} - a {}-en belül tudjuk megadni a dokumentum szerz˝ojét. - \title{} - hasonlóan a munka címét tudjuk feltüntetni. - \date{} - a dátum adható meg. Fontos, hogy ha nem akarjuk, hogy megjelenjen a dátum a papíron, akkor is meg kell adnunk ezt a sort, csak üresen hagyott {}-el. Ha kihagyjuk a parancsot, akkor az éppen aktuális évet, hónapot, napot írja le a program. - \renewcommand{\labelitemi}{} - az utolsó {}-ben a felsorolások el˝ott lév˝o jelet módosíthatjuk. A sort teljesen kihagyva egy fekete pötty jelenik meg az elemek el˝ott. Jelen dokumentumban egy egyszer˝u köt˝ojelet tettem az utolsó zárójelek közé. Mivel a LATEX-ben alapbeállításon négy különböz˝o „mélységig” tudjuk kezelni a felsorolást, számozást (1, 1.1, 1.1.1, 1.1.1.1), így természetesen minden szinthez megadhatunk külön szimbólumot. Ehhez labelitemi helyett egyszer˝uen labelitemii, labelitemiii, labelitemiv-t kell írnunk a megfelel˝o helyre. Végül álljon itt egy parancs a lemmák, tételek, megjegyzések formázásához: - \newtheorem{lem}{Lemma}[section] - a lemmák kinézetét mondja meg. A lem szó adja meg, hogy kés˝obb, hogyan hivatkozunk rá, ez tetsz˝oleges lehet, írhatunk ide amit csak szeretnénk. A Lemma pedig a dokumentumban megjelen˝o szöveg lesz. Amennyiben tételt szeretnénk, úgy ide Tétel kell, hogy kerüljön. Végül a []-ek között azt mondtuk meg, hogy a számozása fejezetfügg˝o legyen-e. Például, ha a hármas fejezet második tételét írjuk, akkor automatikusan 3.2. Tétel kerül oda. Ha a végér˝ol teljesen lehagyjuk a szögletes zárójelet, akkor csak 5
folyószámozással látja el o˝ ket, míg, ha a newtheorem szó után közvetlenül egy *-ot írunk (\newtheroem*{lem}{Lemma}), akkor egyáltalán nem lesz számozás. Alapesetben minden "ugyanúgy" néz ki, ami viszont néhány esetben nem szerencsés választás. Elképzelhet˝o, hogy szeretnénk, hogy a lemmák d˝olt bet˝uvel szerepeljenek, a tételek félkövérrel, a megjegyzések pedig normális bet˝utípussal. Ehhez be kell szúrnunk a megfelel˝o tartomány felé a \theoremstyle{plain/definition/remark} utasítást. A plain-t szokták használni a tételekhez, lemmákhoz a definitiont a definíciókhoz, míg a remark-ot a megjegyzésekhez. Fontos, hogy ezek egymást felülírják, így a hatásuk addig tart, ameddig egy újabb theoremstyle parancs ki nem lesz adva. Így ha például a remark kinézetet szeretnénk használni mindenhez, akkor elegend˝o beírni egyszer a newtheorem-et tartalmazó sorok fölé a \theoremstyle{remark} parancsot. Természetesen teljesen saját stílusokat is kialakíthatunk. Ennek mikéntjét a megfelel˝o fejezetben mutatom meg. A beépített parancsok használatánál a program pontot használ, mint tizedesjel, így például a margóknál vigyázzunk, hogy a 2,5cm-t 2.5cm-nek írjuk. Ha olyan sort szeretnénk beszúrni a dokumentumba, amit nem szeretnénk viszontlátni az elkészült m˝uben (pl. a jobb eligazodás kedvéért megjegyzések a csomagok elé), akkor a sor elejére tegyünk % jelet, így az ezután következ˝o karaktereket a program figyelmen kívül hagyja. A következ˝o oldalon található a fentiek alapján elkészített preambulum, melyet szabadon lehet használni, módosítani. Alaphelyzetben minden sor elé %-et tettem, így a szükséges sorok el˝ol töröljük ki a jelet ahhoz, hogy azokat a program beolvassa, illetve értelemszer˝uen töltsük ki a hiányzó értékeket. Továbbá a kezd˝o felhasználók számára mindent külön sorba írtam, üres sorokkal szépen taglalva a jobb olvashatóság kedvéért, de értelemszer˝uen a szükségtelen dolgok törölhet˝oek, ezáltal is csökkentve a preambulum méretét.
6
˝ TÖRÖLJÜK KI A % -ET) ˝ PREAMBULUM (A SZÜKSÉGES SOROK ELOL %ALAPSZINTU %\documentclass[a4paper,12pt]{article} %NYELVI CSOMAGOK, KARAKTERKÉSZLETEK, ELVÁLASZTÁS %\usepackage{t1enc} %\usepackage[utf8]{inputenc} %\usepackage[utf8x]{inputenc} %\usepackage[latin2]{inputenc} %\usepackage[magyar]{babel} %\usepackage{times} %SORKÖZ, MARGÓK MEGADÁSA %\usepackage{setspace} %\singlespacing %\onehalfspacing %\doublespacing %\usepackage[margin=2.5cm]{geometry} %\usepackage[top=2.5cm, bottom=2.5cm, left=2.5cm,right=2.5cm]{geometry} %LINKEK BESZÚRÁSÁHOZ CSOMAG %\usepackage[unicode]{hyperref} %GRAFIKAI CSOMAG %\usepackage{graphicx} %MATEMATIKAI CSOMAGOK %\usepackage{amsfonts} %\usepackage{amsmath} %\usepackage{amssymb} %\usepackage{amsthm} %SZÁMOZÁS CSOMAGJA, FELSOROLÁS JELÉNEK MEGVÁLTOZTATÁSA %\usepackage{enumerate} %\renewcommand{\labelitemi}{} %TARTALOMJEGYZÉK MÉLYSÉGÉNEK MEGADÁSA %\setcounter{tocdepth}{} ˝ %DOKUMENTUM CÍME, SZERZOJE, DÁTUMA %\author{} %\date{} %\title{} %TÉTELEK, LEMMÁK KINÉZETÉNEK MEGADÁSA %\theoremstyle{plain} %\newtheorem{lem}{Lemma}[section] %\newtheorem{all}{Tétel}[section] %\theoremstyle{definition} %\newtheorem*{defin}{Definíció} %\theoremstyle{remark} %\newtheorem*{rem}{Megjegyzés}
7
3. A KEZDETI LÉPÉSEK ,
˝ FORMÁZÁSOK ALAPVET O
3.1. I NDULÁS Most, hogy elkészítettük a preambulumot, nyugodt szívvel nekiláthatunk magának a dokumentumnak a megírásához. Ehhez mindenekel˝ott szükséges megmondanunk a programnak, hogy most befejeztük az „el˝okészületeket” és belevágnánk az igazi munkába. Hogy ezt megtegyük, nem kell mást csinálnunk, mint a preambulum után kiadni a \begin{document} parancsot. Természetesen, ha végeztünk a munkával, akkor ezt tudatnunk kell a LATEX-el is, így az alkotás végét \end{document}el kell zárnunk (enélkül azt fogja hinni, hogy a végtelenségig tart a fájl, hisz nem találja a végét. Végtelenig elszámolni pedig még a mai számítógépekkel is elég sokáig tart ^). ¨ A kezdést követ˝o második sorba célszer˝u beírni a \frenchspacing utasítást. Ennek lényege, hogy a program alapbeállításon nagyobb szóközt hagyna a pontok után, azonban ez nem esztétikus, illetve ellentmond a magyar helyesírás szabályainak. Emiatt a \frenchspacing egyszer˝uen annyit csinál, hogy a pontok után normál méret˝u szóközt hagy. Amennyiben kitöltöttük korábban a szerz˝o, cím, dátum mez˝oket, úgy szükséges kiadnunk a \maketitle parancsot, mely elkészíti számunkra az úgynevezett „címoldalt”. Általánosságban elmondható továbbá, hogy ha a dokumentumon belül új „részt” szeretnénk kezdeni (egyenletet beszúrni, képet beilleszteni,. . . ), akkor azt a \begin operátorral tudjuk megtenni (ld. kés˝obb, illetve persze vannak kivételek is). Így egy f˝o váznak az alábbiak szerint célszer˝u kinéznie: \begin{document} \frenchspacing ... \end{document}
3.2. S ZÖVEG IGAZÍTÁSA Alaphelyzetben a LATEX-ben a szöveg sorkizártan jelenik meg. Ez általában meg is felel a céljainknak, azonban néha szükséges lehet egyes bekezdéseket, ábrákat balra, jobbra, vagy akár középre igazítani. Természetesen erre van lehet˝oségünk, méghozzá az alábbi módon: \begin{center} A fenti parancs kiadásával a szöveg középre zárt lesz, tehát a program nem törekszik arra, hogy a sorok egységes hosszúságúak legyenek, egyedül arra figyel, hogy a közepük egyvonalban legyen, éppúgy, mint ahogy ebben a bekezdésben van. Természetesen ezt is le kell zárnunk a következ˝oképp: \end{center} A fentivel teljesen analóg módon m˝uködik a balra igazításhoz a: \begin{flushleft} ... \end{flushleft} Illetve a jobbra igazításhoz a: \begin{flushright} ... \end{flushright} parancspáros.
8
3.3. S OR -, ILLETVE OLDALTÖRÉS , ÜRES HELYEK , ELVÁLASZTÁS Hasonlóan ahhoz, hogy a szövegünk mindenféle beavatkozás nélkül sorkizárt lesz, a LATEX-ben a sorok, illetve oldalak tördelése is automatikusan m˝uködik. Ám gyakran el˝ofordul, hogy szeretnénk, ha egy adott bekezdés már teljesen új oldalra kerülne, illetve, ha új sorban kezd˝odne. Erre több eljárás ismert, itt csak a leggyakrabban használtakat említem: - Sortöréshez az alábbi két f˝o lehet˝oségünk van: 1. A kívánt helyre \\-t írva a két perjel utáni szavak új sorban kezd˝odnek. Ebben a dokumentumban általában mindenhol ezt használom, ahol erre van szükség. Ezzel teljesen megegyez˝o a \newline parancs (mivel az emberek f˝oként ezt a fajta sortörést használják, így a \newline egyszer˝usödött le a két perjelre, hogy gyorsabb legyen az írás). 2. A kívánt helyre \linebreak-et írva szintén új sor kezd˝odik, azonban az el˝oz˝o csonka sort a program megpróbálja sorkizárttá (vagy épp azzá, amit megadtunk) alakítani, ami nem minden esetben néz ki esztétikusan. - Oldaltöréshez szintén két f˝o parancsot használhatunk: 1. A \newpage utasítás befejezi az éppen aktuális oldalt és kezd egy újat. Ezt használva az oldal alján üres hely keletkezhet. 2. A \pagebreak pedig a második sortöréshez hasonlóan törekszik arra, hogy az el˝oz˝o oldalon maradó szöveget elnyújtsa úgy, hogy megtöltse vele az oldalt. A \linebreak, illetve \pagebreak parancsok után lehet˝oségünk van megadni [] között egy 0 − 4 közötti számot, mely megmondja, hogy mennyire szeretnénk, ha az adott utasítás (sor-, oldaltörés) bekövetkezne. Minél nagyobb a szám, annál nyomatékosabban kérjük a programot, hogy kezdjen új sort/oldalt. Pl. \linebreak[3]. Ezt nem kötelez˝o megtenni, én személy szerint egyszer sem alkalmaztam még (ilyenkor a [] is fölösleges, elég maga a parancs). Amennyiben nem szeretnénk, hogy az adott helyen sor-/oldaltörés következzen be, úgy a \nolinebreak, illetve \nopagebreak operátorokat szükséges kiadnunk a megfelel˝o helyen. Az el˝oz˝oekhez hasonlóan, ha akarunk, akkor ezek után is írhatunk []-ben egy 0 − 4 közötti számot, hogy mennyire szeretnénk nyomatékosítani a kérésünket (pl. \nopagebreak[2]). Amennyiben üres helyet kívánunk hagyni két sor között, netán egy soron belül két bet˝u, szó,. . . között, úgy ehhez az alábbiakat kell tennünk: - Sorok közötti üres helyhez a leggyorsabb eljárás, ha \\[]-et alkalmazunk, ahol a perjelek adják meg azt, hogy új sorról lesz szó, míg a szögletes zárójelbe írt szám, és mértékegység pedig azt, hogy mekkora lesz az üres hely. Fontos, hogy a számot és a mértékegységet szóköz nélkül szükséges beírni ahhoz, hogy elérjük a kívánt hatást, \\[5mm] mely jelen esetben 5 mm szabad hely kihagyása volt a két sor között. Ha azonban nem ilyen módon szeretnénk használni az utasítást, akkor sajnos kénytelenek vagyunk kiírni a teljes parancsot: \vspace{}, ahol a {} közé ismét egy számot, illetve egy mértékegységet kell írnunk. Fontos, hogy általában (néhány, viszonylag ritka „kivételt˝ol” eltekintve) önmagában a parancs nem kezd új sort, ezt nekünk kell megtennünk, pl. az alábbi módok valamelyikével: 1. \vspace{}\\ ⇔ \vspace{}\newline ⇔ \\[]. 2. \vspace{}\linebreak.
9
- Szavak, bet˝uk közötti üres helyhez az el˝oz˝ohöz nagyon hasonló \hspace{} utasítást szükséges megadnunk. Pl. a (k u ty a) szó az alábbi módon áll el˝o: (k\hspace{2mm}u\hspace{1mm}ty\hspace{3mm}a). Természetesen ugyanígy alkalmazhatjuk a parancsot szavak között is. Az alfejezet utolsó pontja az elválasztás kérdése. Amennyiben megadtuk a preambulumban az el˝oz˝o fejezetben említett elválasztási csomagot, úgy a LATEX alapból tudni fogja a legtöbb magyar (vagy épp olyan nyelv˝u, amit beállítottunk) szó helyes tagolását. Azonban f˝oként szakszavak esetében el˝oállhat olyan eset, hogy a program számára ismeretlen az adott kifejezés elválasztása. Ekkor célszer˝u manuálisan megadni, hogy ilyen esetekben, hogyan történjen ez. Ha például a kacsacomb szónak szeretnénk beírni az általunk javasolt elválasztását, úgy azt ka\-csa\-comb formában tehetjük meg. Ha több olyan szó van, amit esetleg a program nem ismerhet, úgy a preambulumban megadhatjuk egyszerre az összes elválasztását, méghozzá a \hyphenation{ka-csa-comb ma-te-ma-ti-ka el-vá-lasz-tás} formában (vegyük észre, hogy vessz˝o nem szükséges a szavak között).
3.4. B EKEZDÉSEK , FELSOROLÁS , SZÁMOZÁS Az alfejezet els˝o néhány mondatában a bekezdésekr˝ol ejtek pár szót. Bár a LATEX-ben külön parancs kapcsolható ezek létrehozásához, azonban azt a felhasználók túlnyomó többsége (80 − 90%) nem használja, hisz egy üres sorral és némi behúzással ugyanazt a hatást lehet elérni. A „hivatalos” utasítás a \paragraph{}, ahol a zárójelek közé kell írni az adott bekezdést. Ennek el˝onye, hogy az egyes bekezdések között automatikusan kihagy egy sort, hátránya azonban, hogy alapbeállításon mindent félköríves bet˝utípussal ír, illetve a bekezdések els˝o sorát nem húzza be, mint ahogy az elvárt lenne, így ahhoz, hogy hatékonyan használhassuk ezt a parancsot, igen sok egyéb beállítást kéne eszközölnünk, melyekt˝ol most eltekintenék, hiszen ennél lényegesen jobb eredményt érhetünk el úgy, hogy az új bekezdés elejére \par utasítást helyezünk el, a végére pedig egyszer˝uen egy újsor jelet: \par Ahogy ez ebb˝ol a példából is látszik, eközött és az alsó bekezdés között szintén megtalálható az üres hely, azonban itt nincs félkövér bet˝unk, ami egy lényeges el˝orelépés.\\ \par Továbbá itt a bekezdések els˝o szavai kis behúzással is kezd˝odnek, így én mindenképp ezt az írásmódot javaslom. Ha nem szeretnénk üres helyet a bekezdések között, akkor természetesen lehagyható a mondatvégi két perjel. Ha új oldalt kezdünk, vagy csak valamilyen oknál fogva a dokumentumunkban egy sornál behúzás jelenik meg, holott mi azt nem akarjuk, úgy a \noindent parancsot kiadva a sor elején letilthatjuk ezt. Néha szükség lehet arra, hogy egy bizonyos szövegrészletet módosítás, formázás nélkül illesszünk be a dokumentumunkba. Ehhez praktikus parancsok a \begin{verbatim}, \end{verbatim}. \begin{verbatim} Akármit írok a kezd˝ o és a végpont közé, az pontosan úgy fog megjelenni. Ha három entert ütök le
akkor két üres sorom lesz. Ha sok szóközt hagyok a szavaim között, akkor az úgy fog megjelenni. Ezzel szemben a LaTeX érzéketlen a szóközök számára, akár minden szó után húszat is írhatnánk, a program csak egynek venné azt. \end{verbatim} 10
Amennyiben felsorolást szeretnénk beilleszteni a szövegbe, úgy erre a \begin{itemize} parancsot kell használnunk. A korábban említetteknek megfelel˝oen ha másfajta jelet szeretnénk a felsorolás elé tenni, úgy bármikor beírhatjuk a \renewcommand{\labelitemi}{} (vagy labelitemii, esetleg labelitemiii) parancsot. Ekkor ha a parancsot egy adott itemize-en belül adtuk ki, akkor az adott felsorolás végéig marad életben, míg ha felsoroláson kívül írtuk be, akkor egészen addig, míg egy még újabbal felül nem írjuk. Ahhoz, hogy külön pontokat hozzunk létre, a megfelel˝o mondatok elé be kell szúrnunk, hogy \item az alábbi módon: - \item A korábbiakban említett módon a preambulumban lehet megadni, hogy milyen jelet tegyen a felsorolás elé. o \item De akár két \item között is változtathatunk. Természetesen megtehetjük, hogy egy felsoroláson belül alpontokat hozunk létre. Ehhez egyszer˝uen adjuk ki ismét a \begin{itemize} utasítást ahol szükséges, majd az el˝obb látott módon tagoljuk a szövegünket: \begin{itemize} - \item Ha végeztünk a felsorolással, akkor, mint minden begin szóval kezd˝od˝o \begin{itemize} - \item utasítás esetén, le kell zárnunk azt - \item amit \end{itemize} segítségével tehetünk meg. \end{itemize} - \item Látható, hogy fentebb két felsoroláson belüli pontot hoztam létre, amit a program jól érzékelhet˝oen automatikusan tagolt. És most lezárom a megkezdett részt: \end{itemize} Számozást a fentihez igen hasonló módon illeszthetünk szövegünkbe, az alkalmazandó utasítás a \begin{enumerate}. Ezen kívül más különbség nincs, ugyanúgy a \item segítségével hozhatunk létre új pontokat. Amennyiben a preambulumban megadtuk használatra az enumerate csomagot, úgy lehet˝oségünk van módosítani a számozás fajtáján. Alapesetben arab számokat, latin kisbet˝uket használ a program (arab számok a f˝o pontoknak, bet˝uk az alpontoknak): 1. Ez itt egy f˝o számozási pont. (a) Ez pedig egy alpont. i. Persze hozhatunk létre al-al pontokat is, de ne felejtsük el lezárni (b) egyik megkezdett 2. számozási csoportunkat sem. A pontok kinézetének megváltoztatása úgy történik, hogy a megfelel˝o \begin{enumerate} utasítás után szögletes zárójelek közé beírjuk, hogy mit szeretnénk használni. A lehetséges változók: - Ha I-t, vagy i-t írunk a zárójelek közé, akkor a számozásban I/i, II/ii, . . . fog megjelenni. - Ha A-t, vagy a-t, akkor latin nagy-/kisbet˝uk. - Míg, ha 1-et, akkor arab számok jelennek meg. 11
\begin{enumerate}[I] I Látható, hogy így elértük a kívánt hatást. II Több dolgunk nincs, a program elvégzi magától a szükséges változtatásokat. \end{enumerate} Természetesen igényeinknek megfelel˝oen keverhetjük a felsorolást és a számozást. ˝ ALAPSZINT U ˝ FORMÁZÁSA 3.5. K ÉPEK BEILLESZTÉSE , BET UK
Ebben az alfejezetben mutatok egy általam is használt eljárást, mellyel könnyen elhelyezhetünk egy fotót, ábrát a dokumentumban. Úgy vélem, hogy nem a legegyszer˝ubb megoldás lesz, azonban igen szép eredményt lehet vele elérni. A kép beillesztéséhez az alábbi parancsok szükségesek: \begin{figure}[elhelyezési paraméterek] \centering \includegraphics[formázási paraméterek]{kép helye} \caption{kép alá írt szöveg} \label{fig:kívánt hivatkozás} \end{figure} - Az elhelyezési paraméterek közül többet is kiadhatunk, ekkor a LATEX balról jobbra értelmezi ezeket. Azaz, ha mondjuk két bet˝ut írunk ide, akkor a második csak akkor vev˝odik figyelembe, ha az els˝o elhelyezés nem lehetséges. A használható opciók: - b = bottom: a képet igyekszik a lap aljára rakni a program. - t = top: a lap tetejére helyezi. - h = here: a parancs kiadásának helyére illeszti be. - p = page: új oldalra kerül. - A centering utasítás középre zárja a képet. - A formázási paraméterek a következ˝ok lehetnek: - width=Xcm: a kép szélessége X centiméter lesz. - height=Xcm: a magassága lesz X centiméter. - keepaspectratio=true/false: ha true, akkor megtartja a kép eredeti arányait átméretezéskor, ha false, akkor nem. - scale=X: arányaiban kicsinyíti/nagyítja a képet. Pl. scale=0.8 esetén a kép 80%-ra csökken. - page=X: ha pdf fájlt illesztünk be képként, akkor meghatározza, hogy hanyadik oldal lesz felhasználva. - angle=X: elforgatja a képet X fokkal. - A kép helyénél én az abszolút helymegadást részesítem el˝onyben, ám ha a fotó a dokumentumot tartalmazó mappában található, akkor lehet˝oségünk van a relatív helymegadásra is. Például, ha a beilleszteni kívánt kép a /home/csanad/doc/texkonyv/kep1.png , akkor így adhatjuk meg az elérési utat: - /home/csanad/doc/texkonyv/kep1.png - ez a teljes elérési út, akárhol található a tex fájl, mindenképp m˝uködik. 12
- kep1.png - ez csak abban az esetben használható, ha a dokumentum is a /home/csanad/doc/texkonyv/ mappában található. - A kép alá írt szöveg esetében a program automatikusan számozza, hogy épp hanyadik ábránál járunk. Magyar beállítások esetén az 1. ábra kerül a név elé. - A kívánt hivatkozás pedig egy általunk választott kifejezés lehet, amivel a kés˝obbiekben, ha akarunk, hivatkozhatunk a képre a \ref{fig:hivatkozás neve} utasítással. Példaként nézzük meg, hogy az alábbi paraméterekkel beillesztett kép, hogy néz ki: \begin{figure}[ht] \centering \includegraphics[width=10cm]{/home/csanad/doc/texkonyv/kep1.png} \caption{Ez lesz itt a próbánk} \label{fig:probakep} \end{figure}
1. ábra. Ez lesz itt a próbánk
Hivatkozni rá pedig a \ref{fig:probakep} segítségével tudunk bárhol a szövegben: A nyulak szeretik a füvet, ahogy az \ref{fig:probakep}. ábra is mutatja. A nyulak szeretik a füvet, ahogy az 1. ábra is mutatja. Természetesen a fenti parancsok közül a szükségtelenek kihagyhatóak, ezzel is egyszer˝usítve a beillesztés menetét. Gyakori az is, hogy egyszer˝uen csak a \includegraphics[formázási paraméterek]{kép helye} parancsot adják ki a megfelel˝o paraméterekkel és képpel. Ekkor nem lesz alatta sem képaláírás, sem hivatkozás, illetve alaból balra zártan kerül be a kép az éppen aktuális helyre a dokumentumban. A LATEX-ben a bet˝uk formázására szinte korlátlan lehet˝oségeink vannak, azonban jelen könyvben csak a legfontosabbakra koncentrálunk, azokra, melyek segítségével el lehet készíteni egy esztétikus dokumentumot. Ha visszaemlékszünk a korábban olvasottakra, akkor felt˝unhet, hogy a preambulumban megszabtuk a bet˝uméretet, illetve a bet˝utípus családot. Ezek az úgynevezett globális változók,
13
alaphelyzetben így fog kinézni az elkészült dokumentumunk. Amennyiben szeretnénk egy-egy bekezdést, sort ett˝ol eltér˝oen írni, úgy azt lokálisan, az adott helyen tehetjük meg. Sajnos az alapvet˝o bet˝utípus lokális megváltoztatása igen nehézkes, több csomag felhasználásával lehetséges csak, így erre külön nem térnék ki, hiszen az esetek jelent˝os részében teljes mértékben elegend˝o a globális beállítás használata. Ehelyett sokkal lényegesebb a kiemelések, karakterformázások kérdése, melyek közül a legfontosabbakat az alábbi táblázat tartalmazza: Hatás Félkövér Félkövér∗ D˝olt D˝olt∗ Kiemelt Kiemelt∗ Kiskapitális Kiskapitális∗ Aláhúzott Formázás nélkül
Parancs \textbf{} {\bfseries } \textit{} {\itshape } \emph{} {\em } \textsc{} {\scshape } \underline{} \normalfont{}
Használat \textbf{szöveg} {\bfseries szöveg} \textit{szöveg} {\itshape szöveg} \emph{szöveg} {\em szöveg} \textsc{szöveg} {\scshape szöveg} \underline{szöveg} \normalfont{szöveg}
Eredmény szöveg szöveg szöveg szöveg szöveg szöveg SZÖVEG SZÖVEG
szöveg szöveg
A fenti táblázatban a csillaggal megjelölt sorok annyiban különböznek az eggyel felettük lév˝o sortól, hogy könnyebb o˝ ket egy-egy teljes bekezdés átalakításához felhasználni, de véleményem szerint elegend˝o, ha minden lehetséges típusból csak a neki tetsz˝ot tanulja meg az ember, hiszen látható, hogy ugyanazt a hatást érheti el mindkett˝ovel. A formázás nélküli sor els˝o ránézésre fölöslegesnek t˝unhet, hiszen a program alapbeállításon is így szerkeszti a szöveget, azonban, ha például egy aláhúzott bekezdésen belül szeretnénk egyetlen szót, mondatot aláhúzás nélkül megjeleníteni, akkor igen jól jön, ha ismerjük a parancsot. Látszólag a kiemelés és a d˝olt bet˝u sem különbözik egymástól, ám a kiemelést nagymértékben testre lehet szabni a preambulumban és így akár több parancsot is beles˝uríthetünk egyetlen utasításba. Azonban, mivel jelen könyvnek nem célja, hogy az ilyen mélység˝u beállításokat is tárgyalja, így ezt inkább csak érdekesség szintjén említettem meg. Lehet˝oségünk van a szöveg méretének bizonyos keretek között történ˝o módosítására is, melyre az utasításokat az alábbi táblázat tartalmazza: Parancs \normalsize{} \large{} \Large{} \LARGE{} \huge{}
Használat \normalsize{szöveg} \large{szöveg} \Large{szöveg} \LARGE{szöveg} \huge{szöveg}
\small{} \footnotesize{} \scriptsize{} \tiny{}
\small{szöveg} \footnotesize{szöveg} \scriptsize{szöveg} \tiny{szöveg}
Eredmény szöveg
szöveg
szöveg
szöveg
szöveg szöveg szöveg szöveg szöveg
Az egyes formázási típusokat a kívánt módon keverhetjük is, így nem okoz gondot többek között egy kisméret˝u, kiskapitális, aláhúzott, félkövér mondat létrehozása sem: ˝ E Z ITT EGY AGYONCICOMÁZOTT MONDAT, AMIBEN SZINTE MINDEN EL OFORDUL , AMIRE CSAK SZÜKSÉGÜNK LEHET.
\footnotesize{\underline{\textbf{\textsc{Ez itt egy. . . }}}} Vagy másképpen, talán egy fokkal áttekinthet˝obben: {\footnotesize\bfseries\underline{\scshape{Ez itt egy. . . }}}
14
3.6. TÁBLÁZATOK ELKÉSZÍTÉSE A matematikában kulcsfontosságú szerepet töltenek be a mátrixok, determinánsok, táblázatok, így nélkülözhetetlen, hogy megismerkedjünk ezen objektumok elkészítésének titkával. A létrehozás szintaxisa lényegében ugyanaz mindhárom esetben, a különbség mindössze néhány bet˝uben mutatkozik meg. Mivel a matematikai képleteket tartalmazó cikkekben igen gyakran el˝ofordulnak különféle mátrixok, illetve determinánsok, így azok elkészítésére a LATEX-ben van egy egyszer˝ubb eljárás is, ezt majd a matematikai mód fejezetben tárgyaljuk. A táblázatok lassabb megírása a képek beillesztésénél látottakhoz hasonlóan egy f˝o környezet megadásával indul, mely meghatározza, hogy hol helyezkedjen el a m˝uvünk, legyen-e aláírás, illetve hivatkozások. Erre a „keretre” a minta így néz ki: \begin{table}[elhelyezési paraméterek] \centering I DE JÖN MAJD A TÉNYLEGES TÁBLÁZAT, \caption{táblázat alá írt szöveg} \label{tab:kívánt hivatkozás} \end{table}
˝ KÉS OBB ˝ AMIR OL SZÓLOK
A fenti tulajdonságok éppen úgy viselkednek, mint a képek beillesztése esetén, s˝ot az elhelyezési paraméterek is teljesen ugyanazok, így több szót nem kívánok itt magyarázatként hozzáf˝uzni. Sokkal lényegesebb a táblázat tényleges elkészítése, melynek sorait a fenti keretben korábban kijelölt helyre szükséges beilleszteni. Természetesen használhatjuk a gyorsabb elkészítési eljárást is, mikor csupán a tényleges táblázatot gépeljük be mindenféle „extra” nélkül, ám ekkor a m˝uvünk éppen oda fog kerülni, ahol a szövegben tartunk és lemondunk egy esetleges elnevezésr˝ol és kés˝obbi hivatkozás lehet˝oségér˝ol is. Nézzük most meg, hogy hogyan is néz ki formailag egy ilyen alkotás: \begin{tabular}{oszlopok száma, elválasztók} A táblázatba írt oszlopokat „&” jellel szükséges elválasztani egymástól, illetve, ha befejeztünk egy sort, akkor a végére újsor jelet kell tenni (kivéve a legutolsó sor után. Ennek a végére csak akkor kerül újsor jel, ha szeretnénk egy vízszintes vonallal lezárni a táblázatot). Például: \begin{tabular}{c|c|c} 1. oszlop&2. oszlop&3.oszlop\\ 4. oszlop&5. oszlop&6. oszlop \end{tabular} A fentebbi egy teljesen alap szintaxis, az ott szerepl˝o dolgoknak mindenképp meg kell jelenniük az általunk készítettben is. Az oszlopok számára a program egy viszonylag sajátos, ámde igen kellemes jelölést használ: Három különböz˝o bet˝uvel operálhatunk, melyek megmondják, hogy egy oszlopon belül milyen legyen a szöveg igazítása. Ez lehet balra-, jobbra-, illetve középre igazított. Annyi oszlopunk lesz, ahány bet˝ut teszünk oda, továbbá az egyes bet˝uk közé tehetünk |, vagy || jeleket, melyek azt mutatják, hogy az adott két oszlop között egy, vagy két függ˝oleges vonal helyezkedjen-e el. Néhány példa: - Ha három darab középre igazított oszlopot szeretnénk mindenféle elválasztójel nélkül (pl. mátrixoknál): ccc - Ha három darab oszlopot szeretnénk, melyb˝ol az els˝o balra-, a második középre-, a harmadik jobbra van igazítva, az elválasztójel pedig vízszintes vonal: |l|c|r| - Lehet váltogatni is az elválasztókat (vagy épp a hiányukat). Próbáljunk rájönni, hogy mit jelent az alábbi „kód”: ||cc|l||r|c 15
Ha valahová a táblázatunkba szeretnénk beszúrni egy vízszintes vonalat, például sorelválasztónak, akkor a \hline parancsot használhatjuk, mely egy teljes sornyi vonalat húz. Ha azt szeretnénk, hogy csak néhány oszlop alá kerüljön ilyen dekoráció, akkor a \cline{i-j} operátor a szükséges, ahol i, illetve j megmondja, hogy hanyadiktól hanyadik oszlopig szeretnénk ha vonalat húzna a program. Ha mátrixot szeretnénk készíteni, akkor szükséges, hogy zárójelekkel fogjuk körbe m˝uvünket, melyhez azonban be kell lépnünk az úgynevezett matematikai módba, mely a következ˝o fejezet témája lesz. Ám magyarázat nélkül megmutatom, hogyan is néz ki helyesen begépelve egy ilyen struktúra: $\left( \begin{tabular}{c||lr|} Itt az els˝o oszlop&Itt a második&Végül a harmadik\\ Figyeljük meg&hogy melyik oszlop hova van&helyezve, illetve\\ \hline Hogy közöttük&milyen elválasztást&találhatunk\\ \cline{2-3} \end{tabular} \right)$ Végül a harmadik Itt az els˝o oszlop Itt a második Figyeljük meg hogy melyik oszlop hova van helyezve, illetve Hogy közöttük milyen elválasztást találhatunk
Az eredmény egy felettébb ronda táblázatféleség lett, ám jelen példával nem is az volt a célom, hogy egy esztétikailag megnyer˝o mátrixot hozzak létre, hanem, hogy megmutassam a program képességeit. Az els˝o és utolsó sor felel a megfelel˝o zárójelekért, melyekr˝ol egy kés˝obbi fejezetben lesz részletesebb leírás, egyel˝ore higgyük el, hogy ez így helyes szintaxis. Az utolsó sor végére azért kell a két perjel, mert a cline parancs megköveteli azt, hogy új sorba kerüljön. Hasonló a helyzet a hline esetén is. A „hagyományos” táblázat, középre igazított oszlopokkal egy fokkal egyszer˝ubben néz ki: \begin{tabular}{|c|c|c|} \hline 1. oszlop&2. oszlop&3. oszlop\\ \hline 4. oszlop&5. oszlop&6. oszlop\\ \hline 7. oszlop&8. oszlop&9. oszlop\\ \hline \end{tabular} 1. oszlop 4. oszlop 7. oszlop
2. oszlop 5. oszlop 8. oszlop
3. oszlop 6. oszlop 9. oszlop
Természetesen az egyes cellákon belül nyugodtan használhatjuk a korábban megismert karakterformázási eljárásokat bármiféle megszorítás nélkül, így minden egyes cellát akár teljesen külön bet˝umérettel, aláhúzással,. . . stb készíthetünk el (bár nem igazán hiszem, hogy bárkinek erre lenne szüksége).
16
4. H ALADÓBB SZINT U˝ PARANCSOK , KÖRNYEZETEK Ez a fejezet olyan formázási ötleteket, utasításokat tartalmaz, melyek túlmutatnak a teljesen kezd˝o szint˝u felhasználói ismereteken, azonban gyakran igen jól jöhetnek a szövegszerkesztés során.
4.1. L INKEK BEILLESZTÉSE , HIVATKOZÁSOK Ahhoz, hogy kattintható hivatkozásokat helyezhessünk el a dokumentumunkban a korábban már ismertetett hyperref csomagot kell használnunk oly módon, hogy a preambulumban elhelyezzük a \usepackage[unicode]{hyperref} sort. Ezt követ˝oen mindenféle parancs beírása nélkül a tartalomjegyzék és a beépített hivatkozások kattinthatóvá válnak, ideérve az egyenletekhez, képekhez, táblázatokhoz tartozó számozást is. Természetesen nyomtatásban nem fognak megjelenni a hivatkozások körüli téglalapok. Ahhoz, hogy ez tökéletesen m˝uködjön egymás után kétszer kell lefordítani a tex fájlunkat. Az els˝o fordítás során létrejön a hivatkozásokat tartalmazó küls˝o fájl, míg a második fordítás után ezen küls˝o fájl "szinkronolvasásának" köszönhet˝oen a helyükre kerülnek a megfelel˝o hivatkozások. A TeXMaker figyelmeztet is minket erre oly módon, hogy "LaTeX Warning: Label(s) may have changed. Rerun to get cross-references right". A második fordítás után ez a figyelmeztetés elt˝unik. A linkek, e-mail címek elhelyezéséhez az alábbi parancsokat használhatjuk: - \url{link címe}: a zárójelbe beírt linket megjeleníti a dokumentumban kattintható formában. - \href{link címe}{választott név}: ugyanazt csinálja, mint a fenti parancs azzal a különbséggek, hogy a link kiírása helyett az általunk választott nevet helyezi el a dokumentumban. Ha a dokumentumunkat nyomtatásra szánjuk ez nem szerencsés választás, hiszen nem biztos, hogy az olvasó tudni fogja, hogy pl. "Egy népszer˝u keres˝oprogram" alatt mi pontosan mit értettünk. - \href{mailto:e-mail cím}{választott név}: kattintást követ˝oen megnyitja az alapértelmezett levelez˝oklienst, hogy e-mailt küldjön a megadott címre. A választott név szintén tetsz˝oleges lehet, elektronikusan jól mutat az "E-mail küldéséhez kattintson ide", nyomtatásban viszont célszer˝u a konkrét e-mail cím megjelenítése. Amire figyelnünk kell a csomag használata során, hogy néha sajnos nem tökéletesen ugrik a megfelel˝o helyre. Ez f˝oként fejezeteknél, ábráknál szokott hibaként el˝ofordulni. Ha ilyet tapasztalunk, akkor a kívánt hivatkozáshoz helyezzünk el egy \phantomsection utasítást, mely létrehoz az adott helyen egy ugrópontot, ezáltal "helyreteszi" a hivatkozást. A Tex Live és MikTeX újabb verzióiban egyre kevesebbszer fordul el˝o a hibás ugrás, de itt-ott még mindig tapasztalható ez a jelenség, így érdemes a fejezetek, alfejezetek el˝ott beírni a fenti parancsot. Szintén ehhez a témakörhöz kapcsolódik a képekre, táblázatokra, egyenletekre, bibliográfiai elemekre történ˝o hivatkozások kezelése, melyek mindenféle külön csomag beolvasása nélkül is m˝uködnek. Ezeket az adott fejezetben is megemlítem, ám itt összegy˝ujtve is tárgyaljuk o˝ ket. Általában hivatkozást létrehozni a \label{hivatkozás neve} parancs segítségével lehet, melyet a hivatkozni kívánt objektum után kell elhelyezni (ezalól kivétel a bibliográfia, melyr˝ol az utolsó fejezetben lesz szó). A hivatkozás neve bármi lehet, de célszer˝u könnyen követhet˝o neveket adni (ezért is alkalmaztam a könyvben a képek esetén fig el˝otagot, a táblázatoknál tab-ot, egyenleteknél, egyenletrendszereknél pedig célszer˝u eq-val ellátni o˝ ket, de persze ez csak egy támpont, egyáltalán nem kötelez˝o követni). Ha elkészítettük a hivatkozásainkat, úgy el˝ohívni o˝ ket az alábbiak szerint tudjuk (ne felejtsük el ekkor is egymás után kétszer lefordítani a dokumentumunkat): - Táblázatok, képek, tételek esetén \ref{hivatkozás neve}. - Egyenleteknél, egyenletrendszereknél \eqref{hivatkozás neve}. - Bibliográfiai hivatkozásoknál pedig \cite{hivatkozás neve}. 17
4.2. TARTALOMJEGYZÉK LÉTREHOZÁSA Amennyiben szeretnénk a készül˝o dokumentumunkat tartalomjegyzékkel ellátni, úgy nincs más dolgunk, mint els˝oként a preambulumban meghatározni a "mélységét" a \setcounter{tocdepth}{szám} utasítás segítségével. Alapbeállításként ez 3, ami azt jelenti, hogy a tartalomjegyzékben fejezetek, alfejezetek és al-alfejezetek jelennek meg. Ha ez megfelel így, akkor a fenti parancsot be sem kell írnunk. Ha szeretnénk csökkenteni/növelni a részletességet, akkor írhatunk kisebb/nagyobb számot 3 helyett. Amint ezzel készen vagyunk, úgy a dokumentumunk elejére, vagy végére (vagy ahova a tartalomjegyzéket szeretnénk) helyezzük el az alábbi sorokat: \tableofcontents \phantomsection \addcontentsline{\toc}{section}{Tartalomjegyzék} Az els˝o sor létrehozza magát a tartalomjegyzéket. A második sorról a korábbiakban már volt szó, egy ugrópontot készít a hivatkozásokhoz (ha nem használunk hyperref csomagot ezt nem kell beírni), míg a harmadik sor hozzáadja magát a "Tartalomjegyzék" bejegyzést is a tartalomjegyzékhez méghozzá fejezet mélységben (azaz úgy kezeli a "Tartalomjegyzéket", mintha az önmaga egy fejezet lenne). Ha szeretnénk, nyugodtan átírhatjuk a section részt subsection-re, subsubsection-re, a "Tartalomjegyzék" szót pedig pl. "Fejezetek"-re, "A dokumentum tartalma"-ra, vagy egyéb, nekünk tetsz˝o hangzatos kifejezésre. Ha ábrák, képek, táblázatok is szerepelnek m˝uvünkben (és azokat meg is hivatkoztuk a korábban látott módon), úgy ha kívánjuk a fentebb szerepl˝o három sor után beírhatjuk a \listoffigures, illetve \listoftables parancsokat. Az els˝o az ábrákat, képeket sorolja be, míg a második a táblázatokat. A tartalomjegyzék kinézetét sokféleképp meg lehet változtatni, ám mivel a LATEX alapbeállítása igen szép munkát végez, így jelen könyvben csak a cím formátumának átalakítását mutatom meg. Illesszük be a preambulumba az alábbi utasítások közül azokat, melyek szükségesek számunkra: \addto\captionsmagyar{\renewcommand{\contentsname}{Kívánt név megfelel˝o formázással}} \addto\captionsmagyar{\renewcommand{\listfigurename}{Kívánt név megfelel˝o formázással}} \addto\captionsmagyar{\renewcommand{\listtablename}{Kívánt név megfelel˝o formázással}} Természetesen, ha angol nyelven írjuk a dokumentumunkat és angol nyelvi csomagot használunk, úgy a captionsmagyar részt cseréljük captionsenglish-re. Az els˝o parancs a tartalomjegyzék, a második az ábrák jegyzéke, míg a harmadik a táblázatok jegyzéke kifejezéseket cseréli le az általunk megadottakra. Ha pl. szeretnénk "Tartalomjegyzék" helyett "Fejezetek listája" szavakat látni az els˝o oldalon félkövér és kiskapitális bet˝utípussal és nagy mérettel, úgy írjuk be az els˝o parancs végére, hogy \large{\textbf{\textsc{Fejezetek listája}}}. Az utolsó dolog amit a tartalomjegyzékkel kapcsolatban megemlítek az az ún. \addcontentsline parancs. Ennek lényege, hogy ha a dokumentumunkban valamit hozzá szeretnénk adni a tartalomjegyzékhez ami nem fejezet, alfejezet, ábra, stb., akkor ezt megtehessük. Mint már korábban is említettem a fentieket automatikusan hozzáadja, így azoknál ezt a parancsot nem kell alkalmazni. A helyes szintaxis az alábbiak szerint néz ki: - \addcontentsline{hely}{mélység}{név}, ahol: - A hely segítségével adhatjuk meg, hogy hova illessze be az adott objektumot. A toc esetén a tartalomjegyzékbe, a lof esetén az ábrák jegyzékébe, míg a lot esetén a táblázatok jegyzékébe kerül. - A mélység mondja meg, hogy miként tüntesse fel az elhelyezend˝o dolgot. Ez lehet többek között section, subsection, stb.
18
- A név pedig megadja, hogy milyen néven szerepeljen a beillesztend˝o tartalom. Ez tetsz˝oleges lehet, így nem kötelez˝o azt a szót, kifejezést beírni ahol éppen a szövegben járunk. Természetesen formázásokat itt is alkalmazhatunk, így nem kell attól tartani, hogy a beillesztett tartalom nem illeszkedik majd a LATEX által automatikusan generáltakhoz.
4.3. F EJEZETEK , ALFEJEZETEK ELKÉSZÍTÉSE Mivel az el˝oz˝o fejezetben és korábban is többször felmerült az, hogy a készül˝o dokumentumunkat fejezetekkel, alfejezetekkel tagoljuk, így néhány sorban ismertetem ennek mikéntjét. A LATEX-ben nagyon egyszer˝u megjelölni egy szerkezeti egység kezd˝opontját. Mindössze ki kell adni a \section{formázott fejezetcím} utasítást. A formázás szinte bármi lehet az eddig megismertek közül: félkövér, d˝olt, aláhúzott, kiskapitális, kicsi, közepes, nagy, stb., illetve ezek majdnem tetsz˝oleges kombinációja. A section helyére írhatunk subsectiont, subsubsectiont, chaptert (csak akkor, ha a preambulumban a documentclass book volt) és megannyi más dolgot is, melyeket az adott documentclass leírásában lehet megtekinteni. Ne felejtsük el, hogy ha használjuk a hyperref csomagot, akkor a fentebb látott parancs elé szúrjuk be, hogy \phantomsection a helyes hivatkozás miatt.
4.4. L ÁBJEGYZETEK , SZÉLJEGYZETEK A LATEX lehet˝oséget biztosít számunkra, hogy könnyen és egyszer˝uen helyezhessünk el láb-, illetve széljegyzeteket m˝uvünkben. Els˝oként a lábjegyzetekr˝ol és az azokhoz kapcsolódó beállításokról ejtek néhány szót: Ahhoz, hogy beszúrhassuk ezeket az oldal aljára, nincs más dolgunk, minthogy a szövegtörzsben a kívánt szó, vagy mondat után begépeljük a \footnote{lábjegyzet} parancsot, mely az el˝otte lév˝o szót fels˝o indexben megszámozza, illetve a lap aljára a margó területére beírja a kapcsos zárójelben lév˝o szöveget.1 Mint a mellékelt lábjegyzet is mutatja, a hyperref csomag használata a lábjegyzeteket is kattinthatóvá alakítja. Az alábbi felsorolásban szerepl˝o parancsokat nyugodtan használhatjuk (mind a preambulumban, mind a dokumentumban tetsz˝oleges helyen), hogy a magyar nyelv˝u dokumentumunk lábjegyzeteit testreszabjuk. Egyel˝ore ezek az utasítások csak akkor m˝uködnek, ha a preambulumban magyar nyelvi csomagot állítottunk be, így angol, vagy egyéb nyelvek esetén ne gépeljük be o˝ ket, mert a fordító hibát fog jelezni. - \footnotestyle{utasítás}: meghatározza a lábjegyzet kinézetét. Néhány fontosabb utasítás: - reset=page: a LATEX alapbeállításon folyamatosan számozza a lábjegyzeteket, így el˝ofordulhat, hogy egy igen hosszú m˝u esetén az utolsó oldalakon már százas nagyságrend˝uek szerepelnek, ami nem esztétikus. Ezzel az utasítással ez a számláló minden oldalon 1-t˝ol indul. - reset=section: ezzel a paranccsal fejezetenként újraindul a számozás. - mark=stars-max: csillagokra cseréli a számokat. - rule=fourth: amennyiben nem rak alapból vonalat a lábjegyzet fölé, ezzel a beállítással ezt orvosolhatjuk. - rule=none: ha nem szeretnénk a lábjegyzetünk fölött vonalat látni, úgy ezzel kikapcsolhatjuk. 1
Ha alkalmazzuk a hyperref csomagot, akkor még kattintható hivatkozásként is megjelenik, amit beírtunk.
19
Amennyiben nem magyar nyelvi csomagot használunk, de szeretnénk, hogy id˝onként újrainduljon a számozás, úgy szúrjuk be a kívánt helyre a \setcounter{footnote}{0} parancsot és a következ˝o lábjegyzetünk ismét az egyes számot fogja kapni. Lehet˝oségünk van arra, hogy több szóhoz, mondathoz is ugyanazt a számot rendeljük hozzá. Ehhez az els˝o el˝ofordulási helyen írjuk be, hogy \footnote{lábjegyzet}, mivel ez készíti el a tényleges lábjegyzetünket, majd azokon a pontokon, ahol szeretnénk ugyanezt a számot viszontlátni, alkalmazzuk a \footnotemark[szám] parancsot, ahol a szám helyére írjuk be az el˝oz˝o utasítás által generált értéket. Az alfejezet végén néhány mondat erejéig rátérnék a széljegyzetek kérdésére. Alapbeállításon ezek a jobboldali margóra kerülnek, mégpedig a \marginpar{széljegyzetek} segítségével. Ha balra szeretnénk helyezni o˝ ket, akkor adjuk ki valahol a a \reversemarginpar utasítást, melyet követ˝oen az els˝o parancs használatával automatikusan az ellenkez˝o oldalra kerülnek jegyzeteink. Amennyiben szeretnénk visszatérni a jobboldali margó használatához, úgy írjuk be, hogy \normalmarginpar. Tekintve, hogy széljegyzetet viszonylag ritkán készítenek, így nem kívánok foglalkozni a különböz˝o beállítási módokkal.
4.5. S ZÖVEGDOBOZOK , „ MINIOLDALAK ” BESZÚRÁSA El˝ofordulhat, hogy az éppen begépelt szövegünket szeretnénk kiemelni, valamelyest elkülöníteni a többit˝ol, netán hasábokba rendezni. Ehhez lehet megfelel˝o a szövegdobozok, vagy az úgynevezett minioldalak (minipage) használata. Az alábbi lista példákkal együtt szemlélteti ezeknek a használatát: - \mbox{szöveg}: egyszer˝uen egy keret nélküli dobozt hoz létre, melynek mérete automatikusan igazodik a benne lév˝o szöveg méretéhez. Ha folyószövegben használjuk, akkor nem is lehet észrevenni. - \makebox[szélesség][pozíció]{szöveg}: egy el˝ore meghatározott szélesség˝u, keret nélküli dobozt készíthetünk ezzel, melyben a szöveg pozícióját is beállíthatjuk: - c: középre zárt. - l: balra zárt. - r: jobbra zárt. - Példa: ha ezt szeretnénk egy 5 cm széles, középre zárt szöveg˝u dobozban elhelyezni, használjuk a \makebox[5cm][c]{ezt szeretnénk} utasítást a megfelel˝o helyen. - \fbox{szöveg}: teljesen megegyezik az mbox használatával, az egyetlen eltérés, hogy ez egy vékony keretet helyez a begépelt szavak köré. - \framebox[szélesség][pozíció]{szöveg}: ld. makebox, csak kerettel. egy 5 cm széles, középre zárt szöveg˝u, kerettel - Példa: ha ezt szeretnénk ellátott dobozban elhelyezni, használjuk a \framebox[5cm][c]{ezt szeretnénk} utasítást a megfelel˝o helyen. - \raisebox{méret}{szöveg}: a méret helyére írt, mértékegységgel ellátott számnak megfelel˝oen megemeli, vagy negatív szám esetén lejjebb tolja a megadott mondatot. - Példa: ha szeretnénk megemelni ezt a néhány szót pontosan 2 mm-el, akkor használjuk a \raisebox{2mm}{ezt a néhány szót} parancsot.
20
Az általam fontosnak ítélt típusok közül az utolsó három jelent˝os mértékben összekapcsolódik. Ezeknek a lényege, hogy elmenthetünk egy bizonyos szövegrészletet, hogy a kés˝obbiekben, ahol csak szükségünk van rá, felhasználhassuk. Nézzük, hogyan tehetjük ezt meg: - Els˝o lépésként kiadjuk a \newsavebox{\név} utasítást, ahol a \név helyére beírjuk, hogy kés˝obb, hogyan szeretnénk majd a dobozra hivatkozni (figyeljünk a perjel használatára). - Ezt követ˝oen begépeljük az elmenteni kívánt szöveget az alábbi parancsok valamelyikét felhasználva: - \savebox{\név}[szélesség][pozíció]{szöveg}, ahol a \név az el˝oz˝oekben megadott, míg az összes többi beállítás megegyezik a fentebb felsoroltakkal. - \sbox{\név}{szöveg}. Ez éppúgy, ahogy az mbox, fbox esetén láthattuk, automatikusan a szöveg méretéhez állítja a dobozt. - Legvégül a megfelel˝o helyen használjuk a \usebox{\név} parancsot, mely automatikusan beilleszti a kívánt helyre a szöveget. Az utolsó fontos dolog, amir˝ol az alfejezetben még szót ejtek a „minioldalak” létrehozása a m˝uvünkben. Ezek olyan kis szerkezeti egységek, melyek nevükhöz h˝uen egy teljes oldalként viselkednek annak ellenére, hogy a méretüket mi szabhatjuk meg, így akár egymás mellé is elhelyezhetünk bel˝olük többet. Az általános szintaxis a következ˝oképp néz ki: \begin{minipage}[elhelyezés]{szélesség} I DE KERÜL A SZÖVEG , KÉP, TÁBLÁZAT,. . . \end{minipage} Ahol az elhelyezés a minioldalak és az azokat körülvev˝o szöveg körbefuttatásáért felel˝os - t: ekkor a hozzá közvetlenül kapcsolódó szöveg a tetejéhez lesz zárva. - c: ekkor a szöveg közepéhez. - b: míg végül az aljához. A fentebbi három beállítással rengeteget lehet vesz˝odni, mert az esetek jelent˝os részében nem úgy viselkedik, mint ahogy mi azt elvárnánk t˝ole, így célszer˝u ráállni egy adott stílusra, melyet használunk. Ha egymás mellé kívánjuk helyezni a minioldalakat, akkor ahányat szeretnénk, annyit készítsünk el, ügyelve arra, hogy pl. az els˝ohöz tartozó \end{minipage} és a másodikhoz tartozó \begin{minipage}[elhelyezés]{szélesség} között ne legyen üres sor, különben két teljesen független objektumként kezeli o˝ ket a program. Zárásként nézzünk egy példát a m˝uködésére: Feladat: szeretnénk létrehozni két egymás melletti minioldalt, melyek szélessége pont kitölti a rendelkezésre álló sorszélességet. \begin{minipage}[t]{0.5\textwidth} \begin{minipage}[t]{0.5\textwidth} Amennyiben azt szeretnénk, hogy a minioldalunk Fontos megjegyezni, hogy a program forrásszélessége egy rögzített érték legyen, úgy termé- kódjában nem hagytam üres sort a baloldali szetesen az is megadható egy mértékegységgel el- minioldalt lezáró \end{minipage} és az ezt kezd˝o látott szám segítségével (pl. 7cm). \begin{minipage}[t]{. . . } utasítások között. \end{minipage} \end{minipage} Tekintve, hogy ezek a struktúrák úgy viselkednek, mint egy teljesen új oldal, így ugyanúgy helyezhetünk el bennük képeket, ugyanúgy formázhatjuk a szövegünket, használhatunk lábjegyzeteket, matematikai módot,. . . stb. 21
4.6. H OGYAN SZÍNEZZÜK A MEGÍRT SZÖVEGET ? A könyv ezen alfejezete egy olyan témát jár körül, melynek - annak ellenére, hogy használati értéke nem túlzottan magas - célszer˝u legalább alapszinten elsajátítani a kezelését, hisz pl. bemutatókban igen jól jöhet, ha segítségével hatékonyabban ki tudunk emelni egy-egy vázlatpontot. Ahhoz, hogy biztosan m˝uködjön minden parancs, hasznos a preambulumban els˝oként kiadni a \usepackage{color,colortbl} utasítást, melyek közül az els˝o engedélyezi a különböz˝o színek, illetve színezési opciók használatát, míg a második a táblázatok dekorálását hivatott segíteni. A következ˝o sorba gépeljük be, hogy \usepackage[dvipsnames]{xcolor}. Itt a dvipsnames lehet˝ové teszi számunkra, hogy 60-70 új színt használjunk. Természetesen, a LATEX-ben több száz szín is rendelkezésünkre áll a megfelel˝o csomagok engedélyezésével, ám úgy vélem, hogy ez a néhány is több, mint elegend˝o lesz számunkra. Nézzük, milyen alapvet˝o lehet˝oségeink vannak a szövegünk díszítésére: - A leggyakrabban használt parancs, mely egyszer˝uen a megadott színre festi a beírt szöveget a \textcolor{szín}{szöveg}. - Ugyanennek az utasításnak a környezetként használható verziója a \begin{color}{szín}, illetve az ezt lezárandó \end{color} utasításokból áll. - Az el˝oz˝o alfejezetben írtakhoz hasonlóan hozhatunk létre színezett szövegdobozokat is. A megfelel˝o utasítások ezekhez: - \colorbox{szín}{szöveg}, mely egy keret nélküli, pontosan szöveg szélesség˝u, adott szín˝u dobozt hoz létre (melyben tetsz˝olegesen még a szavakat is színezhetjük a fentebbi parancsokkal). - \fcolorbox{keret színe}{háttér színe}{szöveg}, ami egy adott keret-, illetve háttérszínnel ellátott dobozt készít el. - Végül, ha az egész oldal színét meg kívánjuk változtatni, akkor helyezzük el a szövegünkben a megfelel˝o helyen a \pagecolor{szín} parancsot. Az alfejezet utolsó részében ejtenék néhány szót a táblázatok színezésér˝ol is. A sorok, illetve cellák színezése egyszer˝uen történik, mindösszesen be kell szúrnunk az adott helyre a \rowcolor{szín} (sorokhoz), illetve \cellcolor{szín} (cellákhoz) parancsokat: \begin{tabular}{ccc} \rowcolor{gray} 1&2&\cellcolor{red}3 \rowcolor{blue} 4&\cellcolor{green}5&6 \end{tabular}
1 4
2 5
3 6
Az oszlopok színezése legegyszer˝ubben úgy történhet, ha megadunk egy új oszloptípust, melynek meghatározzuk a színét és kés˝obb ezt használjuk, ha szükség van rá. Ehhez nézzük az alábbi parancsot: \newcolumntype{név}{>{\columncolor{szín}}igazítás} Ahol a név egy általunk megadott oszlopnév lehet (célszer˝u egy bet˝ut használni, majd meglátjuk, hogy miért), az igazítás pedig az el˝oz˝oekben már megismert l, c, r attól függ˝oen, hogy az oszlopban lév˝o szöveget balra, középre, vagy jobbra szeretnénk elhelyezni. Fontos, hogy a fenti sort a táblázatunk megkezdése el˝ott helyezzük el valahol, majd a táblázatban az oszlopok igazításának helyénél használjuk a most definiált új oszlopunkat:
22
\newcolumntype{o}{>{\columncolor{gray}}c} \begin{tabular}{coco} 4 1 2 3 1&2&3 5 6 7 8 4&5&6 9 10 11 12 7&8&9 \end{tabular} A könyv végén a függelékben található egy lista, mely a dvipsnames, svgnames használata után elérhet˝o több száz színt tartalmazza nevekkel együtt (megjegyzés: figyeljünk a nagybet˝us kezd˝onevekre, mert nem m˝uködik az összes csupa kisbet˝uvel). ˝ 4.7. D OKUMENTUMOK ELHELYEZÉSE A M UVÜNKBEN
Ez az alfejezet egy igen tág témakört próbál egy igen sz˝uk helyen összefogni, mely nem más, mint különböz˝o PDF dokumentumok, el˝ore megírt szövegrészletek elhelyezése a f˝o dokumentumtörzsünkben. Annak ellenére, hogy rengeteg lehetséges beállítás, parancs található ilyen téren, arra törekedtem, hogy csak a legfontosabb két utasítást ismertessem, hiszen ezek birtokában képesek leszünk elvégezni a beillesztések túlnyomó többségét. Els˝oként vizsgáljuk meg az egyszer˝u LATEX fájlok elhelyezésének módját a szövegünkben: Ehhez használjuk a \input{fájl helye/fájlnév.tex} parancsot (pl. a fájl helye/fájlnév.tex helyére jelen könyvben a /home/csanad/Dokumentumok/TeX/fejezet4.7.tex került). Fontos megjegyezni, hogy a fájlnév.tex egy olyan dokumentum, melynek nincs preambulum része, csak maga a LATEX segítségével formázott szöveg, hisz a fenti sor segítségével a fájlunk a f˝o dokumentumtörzsben lév˝o beállításokat fogja használni. Nem egy esetben láttam már olyat, hogy egy-egy hosszabb m˝u szerz˝oje elkészítette a dokumentum preambulumát, melyben a \begin{document}, illetve \end{document} környezetek között csak és kizárólag input parancsok helyezkedtek el, míg az egyes fejezetek különkülön, preambulum nélküli, .tex fájlokban voltak elehelyezve, így segítvén a könnyebb áttekinthet˝oséget, szerkeszthet˝oséget. Természetesen ezek a beékelt dokumentumok formázástechnikailag semmiben sem különböznek az eddig használtaktól, így a korábban megismert összes parancs alkalmazható azokban. Ezen rész második felében néhány szó erejéig kitérek a küls˝o PDF oldalak beszúrásának kérdésére. Elöljáróban szeretném megjegyezni, hogy amennyiben rendelkezünk a beillesztend˝o dokumentum .tex verziójával, úgy mindenképp a fentebb látott utasítást használjuk ehhez a feladathoz, hisz sokkal jobban beépül akkor a bemásolni kívánt szöveg. Amennyiben erre nincs lehet˝oségünk, úgy a preambulumban helyezzük el a \usepackage{pdfpages} sort, mely segítségével lehet˝oségünk lesz kész PDF dokumentumok beszúrására a szövegünkben. Ahhoz, hogy ezt megtegyük, használjuk a \includepdf[beállítások]{fájl helye/fájlnév.pdf} parancsot. A beállításokat vessz˝ovel elválasztva, szóköz nélkül egymás mellé kell írni a szögletes zárójelben. Nézzük, hogy mi az a két parancs, melyeket feltétlenül ismernünk szükséges: - pages={. . . }: itt a kapcsos zárójelen belül megadhatunk egy intervallumot (pl. 15-20), konkrét oldalakat vessz˝ovel elválasztva (pl. 7,11,13), illetve ezek kombinációját (pl. 7,11-16,17,{},43,4648, ahol a {} segítségével tudunk egy üres oldalt beszúrni). - nup=számxszám: ennek segítségével egy oldalra több oldalnyi PDF dokumentumot is beszúrhatunk. A számxszám mondja meg, hogy egy oldalon hány sornyi és oszlopnyi PDF lap legyen elhelyezve (pl. 3x4 esetén egy oldalra 12-t rak be a parancs). Természetesen ennél lényegesen több beállítási lehet˝oség létezik, azonban azok annyira speciálisak, hogy a felhasználók igen kis hányadának van rájuk szüksége, így ezeket itt nem részletezném, ám aki mélyebb ismeretekre szeretne szert tenni ilyen téren, annak bátran ajánlom a pdfpages csomag dokumentációjának (és úgy általában véve, minden, a könyvemben el˝oforduló csomag dokumentációjának) forgatását. 23
4.8. A NEWCOMMAND ÉS RENEWCOMMAND UTASÍTÁSOK A következ˝o két alfejezetben bemutatásra kerül, hogy hogyan hozhatunk létre saját parancsokat. Ezek lehetnek egészen egyszer˝uek is (pl. egy meglév˝o hosszú parancs rövidebbé alakítása), ám ha jobban belemélyedünk a LATEX rejtelmeibe úgy igazán bonyolult utasításokat is el tudunk készíteni. Megtanuljuk továbbá, hogy hogyan lehet már meglév˝o utasításokat újradefiniálni, illetve kitérünk arra, hogy hogy tudunk létrehozni és módosítani egész környezeteket. Els˝oként az egyszer˝u parancsokkal fogunk foglalkozni. A newcommand egy teljesen újat hoz létre, míg a renewcommand egy már meglév˝o parancsot értelmez újra. Tekintsük át, hogy formailag, hogyan is néznek ki ezek: - \newcommand{\név}[argumentumok száma][opcionális argumentum]{definíció} - A név egy általunk kitalált szó lehet, mellyel a kés˝obbiekben hivatkozni tudunk majd a parancsunkra. Fontos, hogy ékezetet, illetve speciális karaktert lehet˝oleg ne használjuk, illetve, ahogy azt már eddig megszokhattuk, egy visszafelé d˝ol˝o perjellel kell kezdeni. - Az argumentumok száma egy nem kötelez˝oen megadott, 1-9 közötti szám. Ha teljesen kihagyjuk, akkor a program nullának veszi azt. Mivel a funkcióját sokkal könnyebb megérteni egy példán keresztül, mint leírni, így erre a kés˝obbiekben térünk vissza. - Az opcionális argumentum egy szintén nem kötelez˝o beállítás, mely azt mondja meg, hogy amennyiben nem adunk meg az utasításnak argumentumot, ám a newcommand esetén jeleztük, hogy oda mégis kéne valami, úgy az el˝ore beállítottat használja. - Végül a definíció mondja meg, hogy konkrétan mit is hajtson végre az adott parancs. - \renewcommand{\név}[argumentumok száma][opcionális argumentum]{definíció} - A beállítások teljesen ugyanúgy zajlanak, mint fentebb, azzal az egy különbséggel, hogy ezt egy már létez˝o parancs módosításához használhatjuk csak fel. Ahhoz, hogy jobban megértsük a használat mikéntjét, álljon itt néhány példa: Feladat: a könyv címét (A LATEX ALAPJAI) szeretnénk kiírni a \cim parancs segítségével. Megoldás: ez egy olyan utasítás lesz, melyhez nem szükségesek argumentumok, egyszer˝uen néhány formázási parancs van benne: \newcommand{\cim}{\textsc{\textbf{A \LaTeX\hspace{0.5mm} alapjai}}} Az els˝o kapcsos zárójelben megadtuk, hogy a \cim parancs beírásával fogjuk behozni az adott utasítást, míg a második zárójelben megmondtuk, hogy a szövegünk kiskapitális, illetve félkövér legyen. A programban el˝ore be van építve a LATEX logó, melyet a \LaTeX segítségével lehet kiírni, ám gyári beállításon nem tesz utána automatikusan szóközt, ezért helyeztünk el utána a \hspace{0.5mm} segítségével 0.5 mm üres helyet. Fontos megjegyezni, hogy a newcommand utasítást nem csak a preambulumban lehet elhelyezni, hanem a dokumentum tetsz˝oleges részén, vigyázva arra, hogy még azel˝ott tegyük ezt meg, miel˝ott a megadott utasítást használni szeretnénk. Ha begépeltük a kívánt helyre a fenti sort, úgy már alkalmazhatjuk is, például a következ˝o módon: A könyv címe: \cim A könyv címe: A LATEX
ALAPJAI
Feladat: szeretnénk az általunk begépelt szöveget félkövér, d˝olt és aláhúzott bet˝utípussal viszontlátni a \sajatforma{szövegünk} parancs begépelése után. Megoldás: itt már használnunk kell egy argumentumot, mely nem más, mint az általunk begépelt szöveg. Így tegyük most az alábbiakat: 24
\newcommand{\sajatforma}[1]{\textbf{\textit{\underline{#1}}}} Itt a használni kívánt név utáni szögletes zárójelben megadtuk, hogy egy argumentumot fogunk használni, mely majd a beírt szövegünk lesz. A definícióban látható, hogy el˝oször beállítottuk, hogy félkövér, d˝olt, illetve aláhúzott legyen majd amit beírunk, végül a konkrét szavak, mondatok helyére #1-et írva, megmondtuk, hogy oda majd azt illessze be a program, amit mi gépelünk be kés˝obb. A használatára itt egy szemléletes példa: \sajatforma{Ezt szeretnénk a korábban megadott módon viszontlátni} Ezt szeretnénk a korábban megadott módon viszontlátni Feladat: a cos2 x + sin2 x = 1 azonosságot írassuk ki a \trigpit-el. Megoldás: ez ismét egy argumentum nélkül megoldható feladat lesz, ám figyelni kell arra, hogy ahhoz, hogy ezt végrehajthassuk, be kell lépnünk matematikai módba, így jó választásnak tunhetne ˝ az alábbi megoldás: \newcommand{\trigpit}{$\cos^2 x + \sin^2 x = 1$} Ez látszólag remek ötletnek látszik, hiszen beléptünk matematikai módba, ki is léptünk bel˝ole, mégis van vele egy nagy probléma. Amennyiben már eleve matematikai módban voltunk, úgy a fentebbi parancsban az els˝o $ kilép abból, majd a második $ ismét belép, tehát épp ellentétes hatást fogunk elérni, a program hibát jelez és a dokumentumunk nem fog megfelel˝oen kinézni, rosszabb esetben el sem fog készülni. Ahhoz, hogy ezt kikerüljük, a dollárjelek helyett használjuk a \ensuremath{} operátort, mely automatikusan figyeli, hogy épp hol vagyunk és ennek megfelel˝oen állítgatja a szükséges módokat: \newcommand{\trigpit}{\ensuremath{\cos^2 x + \sin^2 x = 1}} Ezt követ˝oen kipróbálhatjuk, hogy fog kinézni az elkészült utasításunk: El˝oször nézzük „alapesetben”: \trigpit. Majd úgy, hogy matematikai módban vagyunk: $\trigpit$. El˝oször nézzük „alapesetben”: cos2 x + sin2 x = 1. Majd úgy, hogy matematikai módban vagyunk: cos2 x + sin2 x = 1. Látható, hogy ugyanúgy m˝uködik mindkét esetben az utasítás. Feladat: az általunk begépelt matematikai képletet és az utána következ˝o d˝oltbet˝us zárójeles kommentet írjuk ki a \kepletkomment{képlet}{komment} utasítással. Megoldás: ez egy olyan feladat, amihez már két argumentumra van szükségünk. Az els˝o a szükséges képlet lesz, míg a második a zárójeles komment. Így az alábbiakat kell tennünk (figyelve, hogy ismét használjuk a \ensuremath utasítást: \newcommand{\kepletkomment}[2]{\ensuremath{#1}\textit{ (#2)}} Mivel a képlet helyére az #1-et írtuk, míg a d˝olt hozzászóláshoz a #2-t, így figyeljünk arra, hogy a parancsunkban is ebben a sorrendben hivatkozzunk rájuk: A megfelel˝o jelölések bevezetésével: \kepletkomment{a^2+b^2=c^2}{Pitagorasz tétele} A megfelel˝o jelölések bevezetésével: a2 + b2 = c2 (Pitagorasz tétele) Feladat: utolsó példánkban állítsuk be, hogy a bevitt szöveget olyan formázással készítse el, amit megadunk, ám ha semmit nem írunk be neki, akkor legyen csak d˝oltbet˝us. Megoldás: jelen esetben két argumentumról lesz szó, melyek közül az els˝o opcionális. Kiemelném, hogy a program csak és kizárólag az els˝o argumentumot tudja opcionálisként kezelni, így figyeljünk a helyes szintaxisra. A LATEX 3. verziójában lehet˝oség lesz tetsz˝oleges számú argumentumnak megadni, hogy kötelez˝o legyen-e, avagy sem, ám ez jelenleg viszonylag nehezen megvalósítható (fel kell telepíteni a fejleszt˝oi és tesztfájlokat, melyek még nem feltétlenül stabilak, így okozhatnak kisebb-nagyobb fennakadásokat). 25
\newcommand{\formazott}[2][itshape]{\begin{#1}#2\end{#1}} Miután megadtuk a nevet és a kívánt argumentumszámot, beállítottuk, hogy ha nem adunk meg semmit formázási utasításnak, akkor a d˝oltbet˝us írásmódot (\begin{itshape}. . . \end{itshape}) fogja alkalmazni. Ez a használatban így néz ki (figyeljük meg a zárójelek típusát): El˝oször nem adunk meg neki külön beállítást: \formazott{ekkor így fog kinézni a szövegünk.} El˝oször nem adunk meg neki külön beállítást: ekkor így fog kinézni a szövegünk. Most viszont d˝olt helyett kiskapitálist szeretnénk: \formazott[scshape]{ekkor ezt látjuk.} Most viszont d˝olt helyett kiskapitálist szeretnénk: EKKOR EZT LÁTJUK . A renewcommand használatára, tekintve, hogy teljesen ugyanaz, mint a newcommand-é, nem írnék külön példát, ha ezt alkalmazzuk, egyedül arra figyeljünk, hogy a \renewcommand{\név}[argumentumok száma][opcionális argumentum]{definíció} Szintaxisban a név helyére egy már létez˝o parancsot helyezzünk el (pl. a korábbiakban használt \trigpit, \kepletkomment,. . . ). Lényeges azonban, hogy így az el˝ore beépített utasításokat is meg tudjuk változtatni, ám, tekintve, hogy ehhez ismernünk kell az adott parancs fejleszt˝ok által megadott definícióját, így kevés kivételt˝ol eltekintve ezt igen ritkán szokták használni (ilyen kivétel például a korábban látott felsorolás jelének újradefiniálása is).
4.9. A NEWENVIRONMENT ÉS RENEWENVIRONMENT UTASÍTÁSOK Ebben az alfejezetben a környezetek megadását fogjuk megismerni. Az általános szintaxis szinte teljes egészében megegyezik a korábban látottakkal, így itt kevesebb példát mutatok be. Mivel a newenvironment és a renewenvironment használata teljesen ugyanaz, így az utóbbiról nem kívánok szót ejteni, a renewcommand esetében leírtak érvényben maradnak itt is. A helyes használat során az alábbi sorrendet kell betartanunk: - \newenvironment{név}[argumentumok száma][opcionális argumentum]{el˝okód}{utókód} - \renewenvironment{név}[argumentumok száma][opcionális argumentum]{el˝okód}{utókód} - A név, argumentumok száma, opcionális argumentum majdnem ugyanúgy használható, mint a newcommand esetén. Az egyetlen különbség, hogy itt a név elé nem kell perjelet tennünk. - Az el˝okód megmondja, hogy mi hajtódjon végre a \begin{név} kiadása után, míg az utókód azért felel˝os, hogy mi történjen, miután lezártuk az utasítást a \end{név} segítségével. - Nagyon fontos megjegyezni, hogy egy tervezési sajátosság miatt az utókódban közvetlenül nem tudunk elhelyezni az argumentumokra hivatkozásokat (#1, #2,. . . ). Erre szintén a LATEX 3. verziójában lesz lehet˝oségünk az xparse csomag felhasználásával (melyet akár most is használhatunk, ám ahhoz, hogy hibaüzenet helyett m˝uköd˝o dokumentumot tudjunk készíteni igen sok beállítás szükséges). Lássunk egy-két példát a jobb érthet˝oség kedvéért: Feladat: írjunk olyan kódot, ami a kezd˝o és végpont közötti szöveget félkövérre és kiskapitálisra alakítja! Megoldás: meglep˝o módon most nem lesz szükségünk egyetlen argumentumra sem, hiszen ennek a szerepét most a kezd˝o- és végpont közötti hely fogja felváltani. El˝okód
Utókód
}| { z }| { z \newenvironment{ujformazas}{\begin{bfseries}\begin{textsc}}{\end{textsc}\end{bfseries}}
26
Látható, hogy az el˝okódban megadtuk, hogy az utasítás nyisson meg egy fékövér és kiskapitális környezetet, majd az utókódban lezártuk azt. Figyeljük meg a fentebb szerepl˝o parancsok sorrendjét: félkövér→kiskapitális; kiskapitális→félkövér. Ez azért van, mert a LATEX úgy van beállítva, hogy mindig a legutoljára kiadott utasítást kell legel˝oször lezárni. Nézzük meg ennek a m˝uködését a gyakorlatban: \begin{ujformazas} Ha mindent jól csináltunk, akkor az ide írt szöveg megfelel˝oen fog kinézni. \end{ujformazas} ˝ H A MINDENT JÓL CSINÁLTUNK , AKKOR AZ IDE ÍRT SZÖVEG MEGFELEL OEN FOG KINÉZNI .
Feladat: készítsünk el egy olyan környezetet, mely szögletes zárójelben lév˝o, középre zárt, képaláírással rendelkez˝o, általunk megadott méret˝u táblázatokat hoz létre. Megoldás: ez egy klasszikus példája annak, hogy miért érdemes létrehoznunk saját környezeteket. Amennyiben a m˝uvünkben több helyen is szükségünk van arra, hogy ilyeneket megjelenítsünk, úgy ez rengeteg munkával jár, így sokkal könnyebb dolgunk van abban az esetben, ha ezt el˝ore megadjuk egy környezetként. A feladat összetettsége révén nézzük meg el˝oször, hogy mit kéne beles˝urítenünk a parancsunkba: \begin{table}[ht] \centering $\left[ \begin{tabular}{*3c} 1&2&3\\ 4&5&6\\ 7&8&9 \end{tabular} \right]$ \caption{Els˝o táblázatunk} \end{table}
A keret megkezdése, elhelyezési paraméterek A lap közepén helyezkedjen el Belépünk matematikai módba, zárójel megadása Elkezdjük magát a táblázatot (*3c: három, középre zárt szöveg˝u oszlop) 1. sor 2.sor 3.sor A táblázat vége Kilépünk a matematikai módból, zárójel megadása Táblázat alá írt szöveg Befejezzük a keretet 1 2 3 4 5 6 7 8 9 1. táblázat. Els˝o táblázatunk
Látható, hogy ezt igen nehézkes lenne minden egyes alkalommal begépelni, így nézzük meg, hogyan tudjuk megoldani ezt egy új környezettel:
\newenvironment{tablazat}[2]{\pushQED{#2}\begin{table}[ht]\centering$\left[\begin{tabular}{*#1c}} {\end{tabular}\right]$\caption{\popQED}\end{table}} Ez a hosszú parancs lényegében a néhány sorral fentebbi utasításkészlet majdnem szó szerinti beleírása a newenvironment megfelel˝o helyére. A \begin{tabular}{*#1c}} adja meg, hogy hány oszlopunk legyen majd. Az egyetlen dolog, ami nem egyértelm˝u, a \pushQED{#2} lehet. Mint korábban említettem, egy fejlesztési sajátosság miatt az utókódban nem lehet elhelyezni argumentumhivatkozásokat, viszont, látható, hogy nekünk a \caption{} miatt szükségünk lenne erre. Így ez egy kerül˝oút ahhoz, hogy ezt meg tudjuk csinálni. A \pushQED{#2} eltárolja a #2 argumentumot, majd a megfelel˝o helyen a \popQED visszaadja azt, így érve el a kívánt hatást. Amint begépeltük a fenti parancsot, ki is próbálhatjuk: 27
\begin{tablazat}{4}{Muködik?} ˝ 1&2&3&4\\ 5&6&7&8\\ 9&10&11&12 \end{tablazat}
Beállítjuk, hogy 4 oszlop legyen, megadjuk az aláírást 1. sor 2. sor 3.sor Befejezzük a táblázatot
1 5 9
2 6 10
3 7 11
4 8 12
2. táblázat. M˝uködik?
Mint az érzékelhet˝o, lényegesen egyszer˝ubb dolgunk van ezek után, ha létre szeretnénk hozni ilyen objektumokat. Tekintve, hogy szinte bármit szabadon meg tudunk határozni, így ez az eljárás lényegesen megkönnyítheti a dokumentumunk elkészítését. 5. A MATEMATIKAI MÓD Az utolsó el˝otti fejezet, mint a címéb˝ol is kit˝unik azzal foglalkozik, hogy hogyan lehetséges a cikkekben, szakkönyvekben látott képleteket, egyenleteket majdhogynem játszi könnyedséggel elkészíteni, mindenféle különösebb er˝ofeszítés nélkül. Amennyiben a célunk csupán annyi volt, hogy egy beadandó dolgozatot, esszét, önéletrajzot, illetve egyéb, matematikai jeleket nem igényl˝o dokumentumot készítsünk el, úgy ez a fejezet teljes egészében átugorható. Ám, ha nem a korábban említett célok vezérelnek minket, hanem szeretnénk kihasználni a LATEX igazi erejét, úgy érdemes alaposan elsajátítani a fejezetben szerepl˝o parancsokat. Természetesen ez nem egy minden részletre kiterjed˝o leírás, mely tartalmazza a matematikai mód összes utasítását, sokkal inkább egy indulócsomag, melynek ismeretében nem jövünk zavarba ha képleteket, egyenleteket kell elhelyeznünk m˝uvünkben Igyekeztem csupán a leglényegesebb dolgokat összegy˝ujteni, így kell˝oképp összes˝ur˝usödött a fejezet, azonban úgy érzem, hogy ez nem ment az érthet˝oség rovására, hiszen itt már inkább a szimbólumok, utasítások ismeretén van a hangsúly. Természetesen senkit˝ol nem várható el, hogy az összes halmazelméleti jelölést, analízisben, geometriában, számelméletben, algebrában használt jelet kívülr˝ol tudja, így a könyv végére beillesztettem egy listát, mely a leggyakrabban használt matematikai jeleket tartalmazza. Sajnos nem tudom, hogy ezt ki készítette el, így hivatkozást sem tudok hozzá írni, így ezúton szeretném megköszönni számára, hogy id˝ot és energiát nem sajnálva begépelte a megfelel˝o parancsokat.
5.1. A LAPOK , FORMÁZÁSOK Ahhoz, hogy elkezdhessünk dolgozni a matematikai módban, els˝o lépésként át kell váltanunk annak a használatára. Én erre egyetlen egy parancsot szoktam használni annak ellenére, hogy már legalább 5-6 különféléhez volt szerencsém (és persze mindenki szerint a sajátja a legjobb). Jelen könyvben kétféle eljárást mutatok meg, melyek végeredményben ugyanazt a hatást érik el, csak az egyik használata „elegánsabb”. - Rövidebb képletek beszúrásához a $ képletek, jelölések, egyebek $ operátorokat szokták használni. Az els˝o dollárjel megnyitja a matematikai módot, míg a második bezárja azt. Ha visszaemlékszünk, korábban már használtam ezeket a táblázatokhoz, newcommand utasításokhoz. - Ha hosszabban kívánunk elid˝ozni a matematika világában, akkor a \begin{displaymath}, illetve \end{displaymath} parancsokat célszer˝u használni. Ez teljesen megegyezik az el˝oz˝o pontban bemutatott eljárással, az egyetlen különbség talán csak annyi, hogy jobban áttekinthet˝o. Én nem szoktam ezt használni. 28
Az els˝o dolog, amit észre lehet venni matematikai módban az az, hogy a gépelt szöveget furcsán jeleníti meg. S˝ot, egyenesen hadban áll az ékezetes bet˝ukkel, illetve szóközökkel: Lthat, hogykicsitproblmselolvasnibrminemrtelmesmondatot. Akár hisszük, akár nem, ez egy értelmes, magyar nyelven íródott mondatnak indult, csak id˝oközben átalakult egy kicsit, hála a matematikai módnak. Hogy ezt elkerüljük, egyszer˝uen használjuk a \textrm{ ide már írhatjuk a szövegünket, nem lesz baj az ékezetekkel, illetve szóközökkel } utasítást. Lássunk egy példát a \textrm{} használata nélküli esetre, illetve a helyes használat utáni állapotra: - a = 3, b = 4esetn, P itagoraszttelvelc = 5addik. - a = 3, b = 4 esetén, Pitagorasz tételével c = 5 adódik. Fontos, hogy mivel matematikai módban a szóköz nem m˝uködik, ezért ha a textrm utasításon belül nem tesszük ki a szöveg elejére és végére kézzel a szóközöket, akkor a beírt szövegünk összeolvad az el˝otte és utána következ˝o képletekkel. Persze, ha számunkra úgy kényelmesebb, akkor ki-be lépkedhetünk a matematikai módból, ám egy id˝o után a dollárjelek száma követhetetlen lesz, így óhatatlanul is lehagyunk valahol egyet-kett˝ot, ami a kés˝obbiekben bizony sok fejtörést és szitkozódást tud okozni számunkra. Mivel a \textrm{} parancs lényegében elhagyja a matematikai módot, így azon belül nyugodtan használhatjuk a korábbi fejezetekben megismert formázásokat, például, ha d˝olttel szeretnénk írni, akkor a \textrm{\textit{ ide fog kerülni a d˝olt szöveg }} egy jó választásnak t˝unik (figyeljük meg, hogy a beírt mondat el˝ott és után tettem egy-egy szóközt). Néha szükségünk lehet arra, hogy egyes kifejezéseket pl. félkövér bet˝uvel szedjünk, esetleg bizonyos karaktereket „gótikus” stílusban írjunk. Az alábbi táblázatban összefoglalom néhány fontosabb formázási parancs használatát, melyek azonban az aláhúzás kivételével csupán matematikai módban m˝uködnek: Parancs \mathbf{} \mathit{} \underline{} \mathcal{} \mathbb{}
Használat \mathbf{szöveg} \mathit{szöveg} \underline{szöveg} \mathcal{nagybet˝u} \mathbb{nagybet˝u}
Eredmény a2 + b2 a2 + b2 szöveg ABC ZQR
Ahhoz, hogy képleteket készíthessünk, elengedhetetlen a hatványozás, törtvonal,. . . ismerete is, melyeket az alfejezet végén lév˝o táblázatból sajátíthatunk el. Ehhez kapcsolódóan fontos kiemelni, hogy hatványozásnál, indexelésnél, amennyiben a kitev˝o/index több karakterb˝ol áll, úgy a program csupán az els˝ot teszi oda, ahova szánjuk, tehát például az x^12 szintaxissal x12 helyett x1 2 kapunk, ami nyilvánvalóan helytelen. Ahhoz, hogy mégis hibátlanul jeleníthessük meg a kívánt kifejezést egyszer˝uen annyit kell tennünk, hogy a kitev˝ot/indexet kapcsos zárójelek közé helyezzük: x^{12}. Érdekes még a program azon tulajdonsága, hogy igyekszik helyet spórolni nekünk azzal, hogy ha (folyó)szövegben akarunk képleteket elhelyezni, akkor bizonyos szimbólumokat lekicsinyít, hogy esztétikusabban nézzen ki a m˝u. Ehhez lássuk az alábbi példát: ∞ n X P∞ 1 n 1 A n=0 2 sor összege 2. Ugyanez „eredetileg” így nézne ki: A sor összege 2. 2 n=0 Amennyiben valamilyen oknál fogva arra van szükségünk, hogy normális méretben jelenítsük meg a kívánt kifejezést, úgy ezt megtehetjük a \displaystyle{képlet} segítségével. Kiemelném itt azonban, hogy a matematikai mód elejének és végének a parancson kívül kell elhelyezkednie, tehát a displaystyle operátor csak matematikai módban m˝uködik. 29
Hatás Hatványozás
Parancs a^x
Gyökvonás
\sqrt[n]{x+y}
Törtvonal
\frac{x+1}{y-1}
Indexelés
a_b
Binomiális együttható
\binom{n}{k}
Stirling-számok 1
{n \brack k}
Stirling-számok 2
{n \brace k}
Lah-számok
\left\lfloor\begin{matrix} n \\ k \end{matrix}\right\lfloor
Eredmény ax √ n x+y x+1 y−1 ab n k n k n k n k
5.2. Z ÁRÓJELEK , EGYENLETEK , EGYENLETRENDSZEREK Ez az alfejezet az egyik legfontosabb témakörrel foglalkozik, melynek ismerete nélkül szinte képtelenség elkészíteni egy cikket, könyvet. Nem gy˝ozöm hangsúlyozni, hogy mint a LATEX-ben oly sok esetben, itt is rengeteg megoldás létezik ugyanarra a problémára és természetesen mindenki a sajátját védi t˝uzzel-vassal. Ebben a könyvben azonban igyekszem majd bemutatni egy-egy alternatívát az általam használt utasításokra, meghagyván az olvasónak a szabad választás lehet˝oségét. Els˝oként egy vitán felül álló témakörbe csapnék bele, mely nem egyéb, mint a zárójelek alkalmazása. Annak ellenére, hogy a billenty˝uzetünk segítségével szinte az összeset be tudjuk vinni, nem árt figyelni néhány dologra: - A (a + b), [a + b], |a + b| jelek módosítás nélkül használhatóak a klaviatúráról. - A {a + b} zárójeleket azonban, mivel a LATEX-ben ezeket a parancsok során használjuk, csak úgy lehet alkalmazni, ha eléjük egy visszafelé d˝ol˝o perjelet helyezünk, mely utasítást ad a programnak, hogy szövegként szeretnénk ha elhelyezné: \{a + b\} Szükség lehet egyes esetekben a zárójelek méretének megváltoztatására is, hisz figyeljük meg 1 2 3 5 a következ˝o példát: ( + ) · ( − ). Látható, hogy a zárójelek lényegesen kisebbek, mint azt a 2 3 4 6 tört mérete megkövetelné. Ahhoz, hogy ezt orvosoljuk két lehet˝oségünk van. Az els˝o az automatikus méretválasztás. Ehhez nem kell mást tennünk, mint az adott zárójel elé beírni, hogy \left, illetve \right attól függ˝oen, hogy bal-, vagy jobboldali jelet használtunk épp. Egy hibás és egy javított példát az alábbi táblázatban figyelhetjük meg: Eredmény
Forrás $\displaystyle{(\frac{1}{2}+\frac{2}{3})}$ $\displaystyle{\left(\frac{1}{2}+\frac{2}{3}\right)}$
1 2 ( + ) 2 3 1 2 + 2 3
Bár ez az eljárás szinte minden esetben elegend˝o számunkra, azonban hátránya, hogy az egyenletrendszereknél zárójelen belül nem tudunk ún. "sorigazító" pontokat elhelyezni (ld. kés˝obb). Így 30
ha ilyen problémával szembesülünk, sajnos kézzel kell megadnunk a zárójel méretét, melyet a \big(, \Big(, \bigg(, \Bigg( parancsokkal tudunk megtenni (a zárójel fajtáját és irányát természetesen változtathatjuk," ha pedig {-et szeretnénk, úgy ne felejtsük el kitenni a \jelet a { elé). A kapott zárójelek: ( ) o #i ! h n , illetve hasonlóan a \langle és \rangle parancsokkal h i
zárójeleket kapunk, melyeket a fenti módokon szintén méretezhetünk. Ezen rövidebb témakör lezárásával eljutottunk azon sokat vitatott területhez, amely kulcsfontosságú szerepet játszik a matematikai mód hatékony használatában: egyenletek. Els˝oként megjegyezném, hogy ezekhez nem szükséges matematikai módba lépnünk, mivel a megfelel˝o utasítás automatikusan aktiválja azt, így a program hibát jelez, ha mi is külön megpróbálunk átváltani. Két eljárást fogok bemutatni, melyek közel ugyanazt az eredményt hozzák. Els˝oként egy-egy példán keresztül szemléltetem o˝ ket, utána rátérek a megfelel˝o szintaxisra: 1 + 2 + 3 + ... + n =
n · (n + 1) 2
n · (n + 1) 2 Nos, az els˝o az általam használt eljárással készült, míg a második nem. Aki felfedez bárminem˝u különbséget a két egyenlet között, bátran keressen meg engem e-mailben. Épp emiatt említettem korábban, hogy mindenki azt tanulja meg, ami számára kényelmesebb, hisz lényeges különbség nincs az egyes módszerek között, ezért célszer˝ubbnek látom egyben tárgyalni a kétféle megoldást. Az egysoros egyenletekhez én az alábbi szintaxist használom: 1 + 2 + 3 + ... + n =
\begin{align} I DE JÖN A KÍVÁNT KÉPLET \end{align} Ezzel teljes mértékben megegyez˝o eredményt érünk el, ha az align szó helyett equation-t írunk, így arra nem készítek külön példát. Alapállapotban az egyenletek számozva készülnek el, ám amennyiben az align\equation szavak után egy *-ot helyezünk, úgy ezt letilthatjuk (lásd el˝oz˝o példa), míg ha az egyenlet után a \label{eq:név} utasítást helyezzük el (ahol a név általunk választott), akkor kés˝obb tudunk majd hivatkozni rá a \eqref{eq:név} paranccsal. Nézzük meg ezt a gyakorlatban: Z 2x dx = x2 + c (1) Látható, hogy az (1) egyenlet egy publikálható, újszer˝u eredményt magában hordozó képlet. A fentebbi mondatoknak így néz ki a forrása: \begin{align} \int 2x\, dx = x^2 + c \label{eq:probaegyenlet} \end{align} Látható, hogy az \eqref{eq:probaegyenlet} egyenlet egy publikálható, újszer˝u. . . Egy fokkal talán bonyolultabb a többsoros egyenletek létrehozása. Itt már tapasztalhatunk egy apró különbséget a két használati mód között, melyet az alábbi példa is illusztrál: 1+2=3 4 · 5 = 20 31
Vagy, az általam nem alkalmazott módszernél: 1+2 = 3 4 · 5 = 20 Figyeljük meg, hogy utóbbi esetben az egyenl˝oség elé és mögé lényegesen nagyobb szóközt rak a program, mint más helyekre. Az els˝o esetben az align operátort használtuk, míg a második esetben teljesen hasonló szintaxissal, mint fentebb az eqnarray utasítást. Az egyenletek számozása, a rájuk történ˝o hivatkozás teljesen ugyanúgy történik, mint korábban, az egyetlen eltérés az egysoros egyenletekhez képest annyi, hogy itt szükséges megjelölnünk, hogy mi legyen az a karakter, amihez igazítja a sorokat. Látható, hogy példánkban ez az egyenl˝oségjel volt. Ahhoz, hogy ezt megtegyük align esetén a kívánt igazítási ponthoz egy & jelet kell tennünk, míg eqnarray esetén elé és utána is egyet-egyet: \begin{align*} 1 + 2 &= 3\\ 4 \cdot 5 &= 20 \end{align*} Vagy, a másik esetben: \begin{eqnarray*} 1 + 2 &=& 3\\ 4 \cdot 5 &=& 20 \end{eqnarray*} Amennyiben egy egyenletet szeretnénk folytatni több sorban, úgy a következ˝oképpen néz ki align*, illetve eqnarray* felhasználásával: (a + b + c)2 = = a2 + b2 + c2 + ab + ac + bc + ba + ca + cb = = a2 + b2 + c2 + 2ab + 2ac + 2bc (a + b + c)2 = = a2 + b2 + c2 + ab + ac + bc + ba + ca + cb = = a2 + b2 + c2 + 2ab + 2ac + 2bc Tekintve, hogy majdnem teljesen ugyanúgy kell begépelni mindkét parancsot, így ismét csak az egyiken mutatom meg a megfelel˝o forráskódot: \begin{eqnarray*} \lefteqn{(a+b+c)^2=}\\ &&=a^2+b^2+c^2+ab+ac+bc+ba+ca+cb=\\ &&=a^2+b^2+c^2+2ab+2ac+2bc \end{eqnarray*} A \lefteqn{} paranccsal zárjuk balra az els˝o sort, míg a következ˝o sorok elején lév˝o && jelekkel egyszer˝uen hozzáigazítjuk a sor elejéhez a többit. Az egyetlen eltérés az align használatakor, hogy a korábban is látottaknak megfelel˝oen egyetlen & kell a sorok elejére. Az eqnarray* esetén kicsit jobban balra zárja az els˝o sort.
32
Könnyen el˝ofordulhat az is, hogy egyenletrendszerünk során több ponton is igazítani szeretnénk a sorokat (pl. ha két egyenl˝oségjelünk van, úgy célszer˝u mindkett˝ohöz igazítani). Ehhez használjuk a \begin{alignat}{szám} parancsot (hasonlóan m˝uködik *-al is). Itt a szám mondja meg, hogy hány oszlopot szeretnénk egymáshoz igazítani. Ha 2-t írunk be, akkor lényegében visszakapjuk a hagyományos align utasítást. Nézzük meg egy példán keresztül a m˝uködését: \begin{alignat*}{3}\\ 1+2+3+4+5&=10+5&=15\\ 1+2+3+4+5+6&=10+5+6&=21 \end{alignat*} 1 + 2 + 3 + 4 + 5 = 10 + 5 = 15 1 + 2 + 3 + 4 + 5 + 6 = 10 + 5 + 6= 21 Látható, hogy a zárójelek szépen egymáshoz vannak igazítva, azonban a két zárójel közötti értékek el vannak csúszva egymáshoz képest. Ennek megoldására több módszer is létezik, ám a legegyszer˝ubb (és egyben "legbarbárabb") az az, ha egy \hspace{méret} utasítással "próbálkozással" a helyére illesztjük. Például 3 mm-nyi helyet beszúrva az alábbi eredményhez jutunk: \begin{alignat*}{3}\\ 1+2+3+4+5&=\hspace{3mm}10+5&=15\\ 1+2+3+4+5+6&=10+5+6&=21 \end{alignat*} 1 + 2 + 3 + 4 + 5 = 10 + 5 = 15 1 + 2 + 3 + 4 + 5 + 6 = 10 + 5 + 6= 21 Minden kétséget kizáróan nem a legelegánsabb módszert választottuk a probléma megoldásához, ám a végeredmény esztétikus lett.
5.3. A Z ALIGN VS EQNARRAY VITA Az el˝oz˝o alfejezetben bemutatott két egyenletszerkesztési mód között látható, hogy nincs túl nagy különbség. Azonban én az align használatát javaslom. Ennek indoklására nézzük meg mind az eqnarray, mind az align el˝onyeit és hátrányait: E QNARRAY A LIGN - Hosszú egyenleteknél összecsúszik az adott egyenlet és annak számozása. - Furcsán kezeli az egyenl˝oségjel körüli szóközöket. - Majdhogynem lehetetlen megváltoztatni az egyenletek végén lév˝o számozást (pl. bet˝ukre, római számokra,. . . ) anélkül, hogy a dokumentumunkban mindenhol meg ne változna. - Külön parancs kell az egyenletekhez és az egyenletrendszerekhez. Lássuk most az el˝onyöket: 33
- Nincs benne az alapcsomagban, így ha valamiért nincs lehet˝oségünk az amsmath csomag használatára, akkor nem tudjuk alkalmazni ezt a környezetet.
E QNARRAY
A LIGN
- Az alapcsomag részét képezi, így olyan cikkben is nyugodtan használhatjuk, ahol a folyóirat kiadója nem engedélyezi az amsmath csomag használatát. - „Beszédes” a parancs neve, így könnyen megjegyezhet˝o kezd˝oknek is.
- Akármilyen hosszú egyenletünk is van, sosem fog összecsúszni a számozással. - Nem tesz speciális szóközöket az egyenl˝oségjelek köré. - Könnyen és gyorsan megváltoztathatjuk az egyenletek címkéjét, számozását. - Ugyanaz a parancs alkalmazható egyenletek és egyenletrendszerek esetén.
Ahhoz, hogy jobban megértsük a fentebb írtakat, vizsgáljuk meg az alábbi egyenletrendszereket: E QNARRAY
A LIGN
45 = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 +(2) 9 1·2·3 = 6=3+2+1 (3)
45 = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 (4) 1·2·3=6=3+2+1
(5)
Figyeljük meg, hogy míg az eqnarray esetében az els˝o egyenlet vége belecsúszott a számozásba, addig az align automatikusan, mindenféle beavatkozás nélkül lejjebb rakta kicsit a számot, így nem keletkezett torlódás. A második egyenletnél pedig az eqnarray az els˝o egyenl˝oség el˝ott és után kicsivel nagyobb szóközt hagyott, mint a másodiknál, ellentétben az align egyenl˝o méret˝u szóközeivel. Egyenletrendszereink számozását sajnos nem tudom összehasonlítani, tekintve, hogy az eqnarray környezetet jelent˝os ideig tartó internetes keresgélés után sem sikerült rábírnom a jelölések megváltoztatására, így lentebb csak az align utasításon belül elvégezhet˝o m˝uvelet egyszer˝uségére mutatnék egy példát: A LIGN
A LIGN
\begin{align} 1+2+3&=6 \notag\\ 4-3-2-1&=-2 \tag{Masodik} \end{align}
1+2+3=6 4 − 3 − 2 − 1 = −2
(Masodik)
Látható, hogy a \tag{címke} utasítással tudunk megadni akár az összes egyenlethez saját elnevezést, míg a \notag letiltja azt az adott sorban. Az egyenl˝o bánásmód jegyében azonban megjegyzem, hogy az eqnarray esetén is m˝uködik a letiltás, méghozzá teljesen ugyanolyan módon, mint fentebb látható, ám a \tag{címke} parancs használatakor ott hibautasítást kapunk. Ahhoz, hogy align és alignat esetén hivatkozni tudjunk az egyenletekre, a kívánt sorok végére helyezzünk el egy \label{hivatkozás neve} kifejezést. A "hivatkozás neve" természetesen tetsz˝oleges lehet, de célszer˝u az "eq:valami" formátum megtartása, hogy a kés˝obbiekben tudjuk, hogy egyenletre hivatkozunk. Megjeleníteni a hivatkozás számát pedig \eqref{hivatkozás neve} módon tudjuk. Ezek alapján úgy vélem célszer˝u a sokkal könnyebben használható és esztétikusabb eredményt is nyújtó align környezetet alkalmazni, ha egyenletrendszereket kívánunk elhelyezni dokumentumunkban, hiszen a másik alternatíva túl sok hátránnyal rendelkezik ahhoz, hogy el˝onyei mérsékelni tudják ezeket.
34
5.4. T ÉTELEK , LEMMÁK , DEFINÍCIÓK , MEGJEGYZÉSEK Ha visszaemlékszünk a könyv elején olvasottakra, akkor ott beállítottuk, hogy milyen számozással lássa majd el a program a lemmáinkat, tételeinket, illetve, hogy milyen szót, szavakat írjon eléjük (hiszen külföldi cikkben természetesen a Tétel kifejezés nem használható). Alapbeállításként a lemmák, tételek, definíciók, megjegyzések mind ugyanúgy néznek ki formailag. Ahhoz, hogy ezt megváltoztassuk az ezen dokumentum elején kiadott utasítások preambulumban történ˝o elhelyezése szükséges. Ismétlésként nézzük, hogy is mutatnak ezek a gyakorlatban: 5.1. Lemma. A \theoremstyle{plain} parancs kiadásával ilyen lemmákat kapunk. 5.1. Tétel. Szintén ugyanezen beállítást alkalmaztuk a tételeinkhez is. Mivel section szint˝u mélységet adtunk meg, ezért néz ki a számozás úgy, ahogy kinéz. Definíció. A \theoremstyle{definition} parancs kiadásával ilyen definíciókat kapunk. Mivel itt kivettük a számozást a * jellel, így itt csak egyszer˝u "Definíció" jelenik meg. Remark. Végül a \theoremstyle{remark} utasítással így néznek ki a megjegyzéseink. Bizonyítás. Ahhoz, hogy bizonyítást írjunk be kell írnunk a \begin{proof}. . . \end{proof} szavakat. A "Bizonyítás" szót a nyelvi csomagunkból veszi, így angol esetén azt automatikusan Proof-ra változtatja. Figyeljük meg, hogy, mivel az ötödik fejezetnél tartunk, így az els˝o két mondat az ötös számmal kezd˝odik, majd, mivel ebben a fejezetben ez az egyetlen lemma, tétel, így értelemszer˝uen az egyes számot kapják meg utána. Természetesen a preambulumban beállíthatjuk, hogy ne csak a fejezetszámot, hanem az alfejezetszámot is írja bele, ekkor az ott szerepl˝o section szót egyszer˝uen subsection-re kell cserélnünk. A bizonyítások végére a QED szimbólumot magától illeszti oda a program. A formája megváltoztatható, ám ehhez ismét piszkálnunk kéne a dokumentumunk fejlécében, melyet azonban jelen lapok keretei között nem teszünk meg. A korábbi mondatok szintaxisa igen egyszer˝u: \begin{lem} A \theoremstyle{plain} parancs kiadásával ilyen lemmákat kapunk. \end{lem} \begin{all} Szintén ugyanezen beállítást alkalmaztuk a tételeinkhez is. Mivel section szintu˝ mélységet adtunk meg, ezért néz ki a számozás úgy, ahogy kinéz. \end{all} \begin{proof} Ahhoz, hogy bizonyítást írjunk be kell írnunk a \begin{proof}. . . \end{proof} szavakat. A "Bizonyítás" szót a nyelvi csomagunkból veszi, így angol esetén azt automatikusan Proof-ra változtatja. \end{proof} Illetve hasonlóan a definíciók és megjegyzések esetén (defin és rem). Lehet˝oségünk van továbbá arra is, hogy egy adott tételt, lemmát, stb. saját szöveggel lássunk el, melyre az alábbi parancsot adhatjuk ki: \begin{all}[tétel neve]. Nézzünk erre egy példát: 5.2. Tétel (Pitagorasz tétele). Bármely derékszög˝u háromszög a és b befogóira, továbbá c átfogójára igaz, hogy a2 + b 2 = c 2 .
35
Mindez parancsokkal: \begin{all}[Pitagorasz tétele] Bármely derékszögu˝ háromszög $a$ és $b$ befogóira, továbbá $c$ átfogójára igaz, hogy \begin{align*} a∧ 2+b∧ 2=c∧ 2. \end{align*} \end{all} Amennyiben valamiért nem lennénk megelégedve az el˝ore beépített stílusokkal, úgy viszonylag minimális energiabefektetéssel létrehozhatunk sajátot is, melyet a preambulumban tehetünk meg. Ennek szintaxisa a következ˝o: \newtheoremstyle{név} {helykihagyás fölötte} {helykihagyás alatta} {a "test" formázása (d˝olt, félkövér, stb.)} {behúzás mértéke a margótól} {a "fejléc" formázása} {a "fejléc" utáni írásjel} {a "fejlécet" követ˝o helykihagyás} {a "fejléchez" tartozó speciális utasítások} A név tetsz˝oleges lehet, perjelet nem kell tenni elé. A helykihagyásokhoz, behúzásokhoz használhatunk mértékegységként mm-t, cm-t, pt-t, illetve más elfogadott egységeket is. A formázáshoz \itshape, \bfseries, \scshape, stb. alkalmazható. A fejléc utáni írásjel tetsz˝oleges lehet (pont, kett˝ospont, pontosvessz˝o, stb.). Míg a fejlécet követ˝o helykihagyásnál akár \newline-t is írhatunk (persze a fentebb írtak is érvényesek). A speciális utasításokat hagyjuk üresen (azaz csak {}-et írjunk), mert több kárt tudunk vele csinálni, mint hasznot ha rossz dolgokkal próbálkozunk. Nézzünk egy konkrét példát! Helyezzük el a preambulumban az alábbi sorokat: \newtheoremstyle{proba} {3mm} {0.5cm} {\scshape\bfseries} {1cm} {\itshape} {;} {\newline} {} \theoremstyle{proba} \newtheorem*{minta}{Minta tétel} Ha ezt követ˝oen a dokumentumunkban kiadjuk a \begin{minta} Nézzük milyen lett az elkészített tételünk. \end{minta} Parancsokat, akkor az alábbi eredményt kapjuk: Minta tétel; N ÉZZÜK MILYEN LETT AZ ELKÉSZÍTETT TÉTELÜNK .
36
Figyeljük meg, hogy a tétel el˝ott és mögött is van automatikus helykihagyás (el˝otte 3 mm, mögötte 0.5 cm. Sajnos az utóbbi az oldaltörés miatt nem látszik, de higgyük el, hogy ott van).
5.5. K ÜLÖNBÖZ O˝ SZÁMTÁBLÁZATOK HATÉKONY BEILLESZTÉSE A korábbiakban már esett szó táblázatok, mátrixok létrehozásáról, ám a LATEX-ben vannak el˝ore beépített típusok is, melyek jelent˝osen felgyorsítják a szövegszerkesztést, hiszen nem kell bajlódnunk az o˝ ket körülvev˝o zárójelezéssel, illetve az oszlopok számával és az igazításukkal. Nézzük, hogy mily módon tudjuk alkalmazni ezeket: - \begin{matrix}: egy egyszer˝u, határoló vonalak nélküli számtáblázatot hoz létre. Ne felejtsük el a végén lezárni a \end{matrix} paranccsal. - \begin{pmatrix}: ugyanaz, mint a fentebbi, de a határolók közönséges zárójelek. - \begin{bmatrix}: szögletes zárójelek határolják. - \begin{Bmatrix}: kapcsos zárójelek határolják. - \begin{vmatrix}: függ˝oleges vonalak határolják. - \begin{Vmatrix}: mindkét oldalon két-két függ˝oleges vonal határolja. Fontosnak tartom kiemelni, hogy az eddig tapasztaltakkal ellentétben nem szükséges megadnunk az oszlopok számát, azt a program automatikusan megoldja helyettünk. Hátrány azonban, hogy oszlopok közötti határolókat sem tudunk beállítani. Megjegyzend˝o még, hogy ezen utasítások kizárólag matematikai módban alkalmazhatóak. Lássunk egy-egy példát a fentebbi környezetekre: \begin{matrix} 1&2&3\\ 4&5&6 \end{matrix}
1 2 3 4 5 6
\begin{pmatrix} 1&2&3\\ 4&5&6 \end{pmatrix}
1 2 3 4 5 6
\begin{bmatrix} 1&2&3\\ 4&5&6 \end{bmatrix}
\begin{Bmatrix} 1&2&3\\ 4&5&6 \end{Bmatrix}
1 2 3 4 5 6
\begin{vmatrix} 1&2&3\\ 4&5&6 \end{vmatrix}
1 2 3 4 5 6
\begin{Vmatrix} 1&2&3\\ 4&5&6 \end{Vmatrix}
1 2 3
4 5 6
1 2 3 4 5 6
Lehet˝oségünk van arra is, hogy folyószövegben helyezzünk el kisméret˝u mátrixokat, azonban itt nekünk kell megadnunk a határoló zárójel fajtáját. A létrehozásukra a megfelel˝o parancs a \begin{smallmatrix}. Erre egy szemléletes példa alább látható:
37
Ha mátrixokat illesztünk be a szövegbe, (pl. így: $\left( \begin{smallmatrix} 1&2\\ Ha mátrixokat illesztünk be a szövegbe, (pl. így: 3&4 ( 13 24 )) akkor figyeljünk arra, hogy el˝oször lépjünk \end{smallmatrix} be matematikai módba, majd lépjünk is ki onnan. \right)$) akkor figyeljünk arra, hogy el˝oször lépjünk be matematikai módba, majd lépjünk is ki onnan. Látható, hogy hátrányaik mellett (nem, vagy csak igen nehezen lehet megadni a cellák közötti határolókat, nem minden zárójelre van beépített parancs, csak matematikai módban m˝uködnek) számos el˝onnyel is bírnak (gyorsan lehet elkészíteni, nem kell az oszlopok számának megadásával foglalkozni), így használatukat mindenképp javaslom elsajátítani.
38
5.6. T IPPEK , TRÜKKÖK , RÖVIDEBB PARANCSOK A matematikai móddal foglalkozó fejezet végén következzen egy olyan alfejezet, melynek célja, hogy "ömlesztve" felsoroljon parancsokat, környezeteket, utasításokat. Bár ezek közül sok megoldható más módon is, az itt szerepl˝o parancs beírásával esztétikusabban, vagy gyorsabban tudjuk elvégezni a szükséges feladatot. Els˝oként álljon itt egy táblázat néhány fontosabb matematikai jelöléssel. Hatás
Parancs
Példa
Szumma
\sum_{alatta}∧ {felette}
\sum_{n=0}∧ {\infty}
Több sor a szumma alatt
\sum_{\substack{sor1 \\sor2 \\. . . }}
\sum_{\substack{i=1\\j=2}}
Határérték Függvénydefiníció
\lim_{alatta} fv\colon honnan\rightarrow hová
\lim_{x\to\infty} f(x)\colon A\rightarrow B
Alá-fölé helyezés
\stackrel{fölé}{alá}
\stackrel{5}{=}
Alá-középre-fölé helyezés
\mathop{közép}_{lent}∧ {fent}
\mathop{=}_{2}∧ {1}
Határozott integrál
\int_{alá}∧ {fölé}
\int_{a}∧ {b}
Határozott integrál máshogy
\int\limits_{alá}∧ {fölé}
\int\limits_{a}∧ {b}
Kett˝os integrál Hármas integrál Távolság csökkentése 1. Távolság csökkentése 2. Távolság csökkentése 3. Távolság növelése 1. Távolság növelése 2. Távolság növelése 3. Három pont 1. Három pont 2.
\iint \iiint \! \negmedspace \negthickspace \, \: \; \ldots \cdots
\iint \iiint A\!B A\negmedspace B A\negthickspace B A\,B A\:B A\;B
Három pont 3.
\vdots
-
Három pont 4. Szorzásjel Aláhúzás
\ddots \cdot \underline{szöveg}
\underline{5x+2}
Alsó kapcsos zárójel
\underbrace{szöveg}_{aláírás}
\underbrace{5x+2}_{abc}
-
Eredmény ∞ X n=0 X i=1 j=2
lim
x→∞
f (x) : A → B 5 = 1 = R2b a
Rb
a RR RRR
AB AB AB AB AB AB ... ··· .. . .. . · 5x + 2 + 2} |5x{z abc abc
Fels˝o kapcsos zárójel
\overbrace{szöveg}∧ {aláírás}
\overbrace{5x+2}∧ {abc}
Alsó bal nyíl
\underleftarrow{szöveg}
\underleftarrow{5x+2}
Alsó jobb nyíl
\underrightarrow{szöveg}
\underrightarrow{5x+2}
z }| { 5x + 2 5x + 2 ←−−−− 5x + 2 −−−−→
A mathop, illetve a szummára vonatkozó sor kizárólag akkor ad megfelel˝o eredményt, ha vagy a displaystyle operátoron belül, vagy kiemelt egyenletekben (equation, align, eqnarray) alkalmazzuk o˝ ket. Az utolsó parancsoknak természetesen van olyan verziója is, ahol az adott jel a szöveg fölé kerül. Ehhez egyszer˝uen cseréljük le az under szót over-re az utasításban. Amennyiben csak egyszer˝uen megjeleníteni szeretnénk a balra, illetve jobbra nyilakat, úgy a \leftarrow, illetve \rightarrow a megfelel˝o választás. Oda-vissza nyílhoz alkalmazzuk a \leftrightarrow utasítást, melynek létezik over és under felhasználása is (ld. fentebb). 39
Sok esetben szükségünk lehet arra, hogy függvényeket esetszétválasztással definiáljunk. Erre szolgál a cases környezet: −1, ha a szám negatív f := 0, ha a szám nulla 1, ha a szám pozitív
$f:=\begin{cases} -1,&\textrm{ha a szám negatív}\\ 0,&\textrm{ha a szám nulla}\\ 1,&\textrm{ha a szám pozitív} \end{cases}
El˝ofordulhat az is, hogy egy kiemelt egyenletet be szeretnénk keretezni. Ehhez használjuk a boxed parancsot, mely folyószövegben automatikusan belépteti matematikai módba a benne lév˝o szöveget, így ezzel nem kell nekünk foglalkoznunk: \fbox{1+2+3+4=10} \boxed{1+2+3+4=10} \begin{align} \boxed{1+2+3+4=10} \end{align}
1+2+3+4=10 1 + 2 + 3 + 4 = 10 1 + 2 + 3 + 4 = 10
(6)
Figyeljük meg a számok, illetve jelek eltér˝o írásmódját fbox, illetve boxed használatánál. Nem meglep˝o módon ugyanazt a hatást érjük el mindkét utasítás segítségével, ha fbox-on belül külön belépünk matematikai módba, ám úgy vélem célszer˝ubb a boxed alkalmazása, ha épp matematikai szöveget szerkesztünk. Az utolsó témakör, amivel az alfejezet során még foglalkozni kívánok, a lánctörtek kérdése. Ha a korábban látott \frac{számláló}{nevez˝o} módon próbáljuk létrehozni o˝ ket, akkor a displaystyle igen precíz használata szükséges ahhoz, hogy megkíméljük magunkat egy igen gyatra végeredményt˝ol. Ellenben, ha a frac szavakat lecseréljük cfrac-ra, akkor könnyen és gyorsan elérhetjük a kívánt hatást: F RAC \begin{align*} \frac{1}{1+ \frac{1}{1+ \frac{1}{1+\ldots}}} \end{align*}
F RAC
C FRAC
1 1+
1 1 1+ 1+...
\begin{align*} \cfrac{1}{1+ \cfrac{1}{1+ \cfrac{1}{1+\ldots}}} \end{align*}
C FRAC 1 1
1+ 1+
1 1 + ...
6. A BIBLIOGRÁFIA A legutolsó fejezet a szövegben elhelyezend˝o bibliográfiai hivatkozásokról fog szólni. Ezek elkészítésére két különböz˝o lehet˝oségünk van. Az els˝o egy teljesen különálló bib kiterjesztés˝u fájl létrehozása, melybe beleírjuk a hivatkozásainkat speciális formátumban. A másik verzió a dokumentumunk legvégére beírt hivatkozásjegyzék elkészítése. Miel˝ott részletesebben tárgyalnánk o˝ ket, álljon itt egy rövid összehasonlítás a két stílusról: - A különálló bib kiterjesztés˝u fájl el˝onyei és hátrányai: - Egyetlen bib fájlt használhatunk életünk végéig, azt b˝ovíthetjük újabb és újabb elemekkel. A dokumentumban elég az éppen szükségeseket behívni a fájlból. - Ugyanabban a stílusban kell elkészíteni az összes hivatkozásunkat, mert a dokumentum stílusfájlja automatikusan gondoskodik arról, hogy a megfelel˝o kinézet˝ure alakítsa o˝ ket. - Sok újság azonban nem fogadja el a különálló fájl beküldését. 40
- Az évek során felhalmozódó hivatkozásneveken nehéz kiigazodni. - Igen sok részletet kell beleírni a bib fájlba egy-egy hivatkozáshoz. - A dokumentum végére beszúrt hivatkozáslista el˝onyei és hátrányai: - Minden egyes cikknél újra kell írni a hivatkozásokat. - A folyóirat elvárásai szerint kell elkészíteni a bibliográfiát, így tíz különböz˝o cikk esetén akár tíz különböz˝o stílust kell használni. - Az összes tudományos folyóirat elfogadja az ilyen bibliográfiát, hiszen az lényegében a tex fájlunk része. - Könny˝u kiigazodni a hivatkozásokon, hiszen rendszerint a cikk készítése során helyezzük el o˝ ket, így nem felejtjük el a "hivatkozószavakat". - Sokkal kevesebb részletet kell beleírni egy-egy hivatkozásba. A fenti el˝onyök és hátrányok majdnem kiegyenlítik egymást. Azonban az a tény, hogy az újságok rendszerint nem fogadják el a külön fájlban lév˝o bibliográfiát elég er˝os érv amellett, hogy inkább a dokumentumba illesztett verziót sajátítsuk el. Ám a teljesség igénye miatt bemutatom mindkét verzió elkészítését. Els˝oként a külön bib fájllal foglalkozunk: Ahhoz, hogy ezt elkészíthessük, el˝oször is szükségünk van egy teljesen különálló szövegfájlra, melyet az egyszer˝uség kedvéért most a dokumentumunkkal egy mappában helyezünk el. Ennek neve tetsz˝oleges lehet, a kiterjesztés azonban legyen .bib. Mostantól kezdve a fejezet végéig én a pelda.bib-et fogom használni demonstrációs célra. A fájlban minden egyes hivatkozásnak külön-külön kell szerepelnie az alábbi struktúrában: @hivatkozás típusa{választott név, author={szerz˝o(k) neve(i)}, title={a hivatkozott mu˝ címe}, publisher={a kiadó neve}, journal={a folyóirat neve, ahol megjelent}, year=megjelenés éve, month=megjenés hónapja (jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec), volume={kötetszám (ha még nem jelent meg, akkor -1 kerüljön ide)}, pages={oldalszám, pl. 11-23}, chapter=fejezetszám, note={megjegyzést fuzhetünk ˝ hozzá (pl.: megjelenés alatt)} } A fentebbi sorok közül természetesen nem mindegyiket muszáj megjeleníteni, azt, hogy mi a kötelez˝o és mi nem a hivatkozás típusa dönti el. Tekintve, hogy ez a konferenciakiadványtól kezdve a „hivatalosan nem publikált”-on át a könyvrészletig szinte bármi lehet, így most csak a három leggyakoribbat írom le, kiemelve, hogy mi az, amit kötelez˝o ezeknél használni. A többi pont elhagyható, ha nincs rá szükségünk. - article: folyóiratcikk. - Kötelez˝o: author, title, journal, year. - book: egy teljes könyv. - Kötelez˝o: author, title, publisher, year.
41
- inbook: egy könyv része. - Kötelez˝o: author, title, chapter/pages, publisher, year. Látható, hogy az utolsó kivételével minden sor végét vessz˝ovel kell lezárni. Az adatok bevitele vagy kapcsos zárójelek között történhet, vagy mindenféle formázás nélkül (year, month, chapter). A szerz˝ok neveinek bevitele többféleképp történhet: - author={Pál Példa} - author={Példa, Pál} - author={Sheldon Cooper and Leonard Hofstadter} Amint elkészültünk a pelda.bib fájlunkkal, ideje, hogy elhelyezzük azt a szövegben valahol. Ehhez el˝oször keressük meg azt a helyet, ahol szeretnénk, hogy az irodalomjegyzékünk megjelenjen. Ez általában az utolsó oldal, de ízlés szerint természetesen akárhova beilleszthet˝o. Amint ezzel kész vagyunk, illesszük be a LATEX fájlunkba az alábbi sorokat: - \bibliographystyle{stílus neve} Ahol a „stílus neve” a következ˝o lehet (a leggyakrabban használtak): - unsrt: az irodalomjegyzékben az elemek a szövegben való el˝ofordulásuk sorrendjében jelennek meg, míg a szövegben lév˝o hivatkozások számok (pl. „ahogy [9] mutatja"). - alpha: az elemek ABC sorrendben jelennek meg a jegyzékben, a szövegben pedig a szerz˝ok nevét és a kiadás évét láthatjuk. - plain: szintén ABC sorrendben vannak a nevek, ám a szövegben számok szerepelnek. - abbrv: teljesen ugyanaz, mint az el˝oz˝o, de néhány mez˝ot rövidít a jegyzékben a program (pl. a szerz˝ok neveit). - \bibliography{fájl neve és elérési helye (kiterjesztés nélkül)} - Példa: \bibliography{/home/csanad/doc/texkonyv/pelda} Most, hogy ezt is befejeztük, nincs más dolgunk, mint a dokumentumunkban a megfelel˝o helyeken kiadni a parancsot az adott irodalomra mutató hivatkozás beillesztésére. Amennyiben például a pelda.bib fájlban van egy elsokonyv névvel ellátott bejegyzés, melyre hivatkozni szeretnénk, akkor így kell tennünk: - „Amint látható a \cite[18. fejezetében]{elsokonyv}, a kémia egy igen fontos tudományterület” Itt a szögletes zárójelek közé bármilyen szöveget írhatunk tetszés szerint, általában oldalakat, fejezeteket szoktak megjelölni vele, ám természetesen amennyiben erre nincs szükség, úgy elegend˝o a \cite{elsokonyv} parancsot kiadni. Ha van olyan bejegyzés a pelda.bib fájlban, melyet szeretnénk ugyan elhelyezni az irodalomjegyzékben, ám nem hivatkozunk rá a m˝uben, akkor a \bibliography-t tartalmazó sor után gépeljük be a \nocite{hivatkozások nevei vessz˝ovel elválasztva (pl. elsokonyv, kettokonyv,. . . )} parancsot, melyben felsoroljuk, hogy mi az, amire nem hivatkoztunk. Legvégül pedig fordítsuk le el˝oször az elkészült LATEX fájlunkat, majd BibTeX segítségével a kapott .aux fájlt, végül fordítsuk le ismét kétszer LATEX-el a dokumentumot. Ha mindent jól csináltunk, akkor a szövegünkben megjelennek a hivatkozások. Lehet˝oség van arra is, hogy belenyúljunk a kész irodalomjegyzékbe (pl. átírni egy ember nevét, kicserélni az „and” szót „és”-re,. . . ). Ehhez szövegszerkeszt˝ovel nyissuk meg a második lépés végén (a BibTeX-es fordítást követ˝oen) kapott pelda.bbl fájlunkat, majd egyszer˝uen végezzük el a szükséges módosításokat, majd ha elkészültünk, fordítsuk le LATEX segítségével a dokumentumunkat. 42
Térjünk most rá a bibliográfia elkészítésének másik módjára. Ez sokkal egyszer˝ubb elkészítés terén, ám épp emiatt sokkal kevesebb beállítási lehet˝oséget is hagy számunkra. Els˝o lépésként a kívánt helyen ki kell adnunk a \begin{thebibliography}{99} parancsot, mellyel jelezzük, hogy az adott ponton szeretnénk, ha megjelenne az irodalomjegyzékünk (célszer˝u el˝otte egy \newpage parancs kiadása is. Ha végeztünk ne felejtsük el lezárni \end{thebibliography}-val). A 99-es szám helyére bármi kerülhet, ez azt mondja meg a programnak, hogy milyen széles legyen a számokat tartalmazó oszlop. A 99 elegend˝o akkor ha maximum 99 hivatkozásunk van. Ha ennél több elemet tartalmaz az irodalomjegyzékünk, akkor írjunk 999-et. Amint ezzel elkészültünk, külön sorokban elkészíthetjük a hivatkozásainkat, melyeknek az alábbi formátumot kell követniük: \bibitem{hivatkozás neve}{bármi} A hivatkozás neve akármi lehet, célszer˝u beszédes és egyben rövid szavakat választani (pl. a szerz˝ok kezd˝obet˝ui). Az ékezetes bet˝uk kerülend˝oek. Ennél sokkal érdekesebb a második argumentum, nevezetesen a "bármi". Ez egyszer˝uen annyit jelent, hogy akármit írhatunk ide akármilyen formázással. Ez a hatalmas szabadság amiatt van, mert ahány újság csak létezik annyiféle elvárással kell szembenéznünk, így nagyon nehéz egy univerzális, dokumentumon belüli stílusfájlt ráhúzni ezekre. Sajnos ennek nagy hátránya továbbá, hogy így le kell mondanunk az ABC szerinti rendezésr˝ol, ezért erre nekünk kell manuálisan figyelnünk. Másik hátrány, hogy mi felelünk a stílusért is, így ha kifelejtünk valamit (például az egyik hivatkozásban a címet elfelejtjük félkövérrel írni), akkor a program nem javítja ki ezt helyettünk. El˝onye viszont, hogy nincsenek kötelez˝o mez˝ok és általában véve is gyorsabban lehet haladni ezen hivatkozások elkészítésével. A szövegben hivatkozni a már korábban is látott cite paranccsal lehet, melynek szintaxisa teljesen megegyezik a fentebb említettel. Egy nagyon rövid minta irodalomjegyzék például így is kinézhet: \begin{thebibliography}{99} \bibitem{pelda1}{Kovács Iza, Kiss Eli - \textbf{A matematika rejtelmei} - 2014, \textit{Magyar Matematikai Lapok} 27., 102-154 \bibitem{pelda2}{Minta Szerzo, Pelda Iro - \textbf{Újabb eredmények a számelméletben} - 2015, \textit{Dörmög˝o Dömötör} 43., 215-233 \end{thebibliography} Ekkor ha felcserélem a fenti két hivatkozást, akkor természetesen a program nem fog szólni, hogy nem bet˝urendben vannak, így figyeljünk erre. Hivatkozni a legegyszer˝ubben a \cite{pelda1} és \cite{pelda2} utasításokkal tudunk ezekre. Látható, hogy a formázást teljesen mi határoztuk meg. Ha az újság nem rendelkezik az irodalomjegyzék kinézetér˝ol, akkor nyugodtan használhatunk nekünk tetsz˝o formátumot.
43
7. F ÜGGELÉK El˝oször egy hibára hívnám fel a figyelmet: a tételek, lemmák rosszul jelennek meg az elkészült fájlunkban, amennyiben magyar elválasztási csomagot használunk. Ennek oka, hogy ez egy viszonylag régi, 1.4-es verziószámú fájl, így, hogy kiküszöböljük a problémát, töltsük le a magyar.ldf állományt, majd írjuk felül ezzel a számítógépünkön találhatót, vagy egyszer˝uen másoljuk be minden alkalommal az éppen írandó dokumentumunk mappájába. ˝ MATEMATIKAI MÓDBAN 7.1. K ÜLÖNBÖZ O˝ BET UK
ABCDEFGHI ABCDEFGHI
\mathcal{ABCDEFGHI} \mathbb{ABCDEFGHI}
7.2. S ZÖGFÜGGVÉNYEK , LIMESZEK ,. . . cos arccos cosh sin arcsin sinh tan arctan tanh cot coth dim min max exp det lg ln lim supn→+∞ lim inf n→−∞
\cos \arccos \cosh \sin \arcsin \sinh \tan \arctan \tanh \cot \coth \dim \min \max \exp \det \lg \ln \limsup_{n\to\+infty} \liminf_{n\to\-infty}
˝ , SZIMBÓLUMLISTA 7.3. G ÖRÖG BET UK ˝ BET UT ˝ ˝ NAGGYAL A GÖRÖG NAGYBET UKHÖZ ÍRJUK AZ ELS O σ \sigma α \alpha µ \mu \beta ν \nu ς \varsigma β \tau \gamma ω \omega τ γ \theta δ \delta φ \phi θ ϕ \varphi ϑ \vartheta \epsilon π \pi υ \upsilon ε \varepsilon \xi $ \varpi ξ η \eta ψ \psi ζ \zeta ι \iota ρ \rho κ \kappa λ \lambda % \varrho
44
LATEX symbols
· ♣ ∪ x ´ x ¨ x ˜ | ⇓ } ←− ∅ ∀ ♥ (
\amalg \bigodot \bigtriangledown \bigwedge \bracerd \cdotp \clubsuit \cup \acute{x} \ddot{x} \tilde{x} \arrowvert \Downarrow \lfloor \rbrace
\rmoustache \updownarrow \longleftarrow \emptyset \forall \heartsuit \Im \int ∧ \wedge ← \leftarrow ↔ \leftrightarrow / \ll ←→ \longleftrightarrow ∨ \lor $ \mathdollar £ \mathsterling ∓ \mp ¬ \neg 5 \not \oint ⊗ \otimes ∂ \partial ≺ \prec = \Relbar → \rightarrow \rightleftharpoons C \simeq ♠ \spadesuit
≈
⊥
··· : † x ¯ x˙ x
↓
↑ | −→ ≡ ← ı ∈ . ⇐ ⇔ ¬ ⇐⇒ ∨ ...
∇ 5= 7 9 6 ⊥ ? − ⇒ B ∼ F
\approx \bigoplus \bigtriangleup \bot \braceru \cdots \colon \dagger \bar{x} \dot{x} \vec{x} \Arrowvert \downarrow \lgroup
∠
\rceil
\uparrow \vert \longrightarrow \equiv \frown \hookleftarrow \imath \in \ldotp \Leftarrow \Leftrightarrow \lnot \Longleftrightarrow \vee \mathellipsis \mathunderscore \nabla \neq \nwarrow \ominus \owns \perp \prime \relbar \Rightarrow \searrow \sim \sqcap 1
• · ∼ = x˘e x` x \
⇑
♦ ∃ ≥ → ∞ ≤ ≤ ¬ 0−→ 0 ¶ | 6 8 ⊕ 6 ± A
\ ∫ G
\angle \bigotimes \biguplus \bowtie \bullet \cdot \cong \dashv \breve{x} \grave{x} \widehat{x} \backslash \langle \lmoustache
∗
\rfloor
\Uparrow \Vert \diamondsuit \exists \geq \hookrightarrow \infty \jmath \le \leftharpoondown \leq \neg \longmapsto \mapstochar \mathparagraph \mid \natural \ni \odot \oplus \ni \pm \prod \Re \rightharpoondown \setminus \smallint \sqcup
∩ ◦ ‡ xˇ xˆ x
√
\ast \bigsqcup \bigvee \bracelu \cap \circ \coprod \ddagger \check{x} \hat{x} \widetilde{x} \bracevert \lceil \rangle \rgroup
\Updownarrow \sqrtsign \diamond \flat $ \gg ⇐⇒ \iff \intop ∧ \land ≤ \leq
\leftharpoonup \lhook ⇐= \Longleftarrow =⇒ \Longrightarrow 0→ \mapsto § \mathsection |= \models 4 \nearrow ∈ / \notin \ointop ; \oslash
\parallel = \preceq ∝ \propto \rhook \rightharpoonup \sharp \smile H \sqsubseteq 2
2 I L ⊃ → .. . T ÷
\sqsupseteq \succeq \supset \to \triangleright
M √
\vdots \wr \div \bigcup
∨
V
→
\star \succ \surd \rightarrow \triangle
⊆
\subseteq \sum \swarrow \top \uplus
⊂ ⊇ × S
\vee \| \ell \bigcirc
∧
U
\wedge \Vert \asymp
℘ ←
P Q R
\subset \supseteq \times \triangleleft \vdash \wp \leftarrow \bigcap
AMS symbols ♦ ♦ $ ( * . 2 5 9 ∵ ? C G K O S W [ _
\yen \ulcorner \dashrightarrow \rightleftharpoons \sqsupset \vartriangleright \rightsquigarrow \trianglelefteq \trianglerighteq \lozenge \lozenge \trianglelefteq \square \blacklozenge \boxminus \twoheadrightarrow \upuparrows \upharpoonright \rightarrowtail \Lsh \looparrowleft \gtrsim \because \triangleq \eqslantless \preccurlyeq \backprime \geqq \vartriangleleft \between \vartriangle \lesseqgtr \Rrightarrow
∠ ! % ) + / 3 6 : > @ D H L P T X \ `
\checkmark \urcorner \dashleftarrow \angle \mho \vartriangleleft \lhd \rhd \Box \leadsto \vartriangleright \boxdot \blacksquare \circlearrowright \Vdash \twoheadleftarrow \downdownarrows \downharpoonright \leftarrowtail \Rsh \looparrowright \gtrapprox \doteqdot \precsim \eqslantgtr \leqq \risingdotseq \geqslant \trianglerighteq \blacktriangledown \blacktriangle \gtreqless \Lleftarrow
" ⇔ * , 0 7 ; > A E I M ≷ U Y ] a
\circledR \llcorner \dasharrow \hbar \square \trianglerighteq \vartriangleleft \vartriangleright \square \rightsquigarrow \vartriangleleft \boxplus \centerdot \circlearrowleft \Vvdash \leftleftarrows \upharpoonright \upharpoonleft \leftrightarrows \rightsquigarrow \circeq \multimap \Doteq \lesssim \curlyeqprec \leqslant \fallingdotseq \gtrless \trianglelefteq \blacktriangleright \triangledown \lesseqqgtr \veebar
♦ ♦ # ⇒ * 1 4 8 ∴ > B F ≶ N R V Z ^ b
\maltese \lrcorner \dashrightarrow \sqsubset \lozenge \trianglelefteq \unlhd \unrhd \Diamond \rightsquigarrow \trianglerighteq \boxtimes \lozenge \leftrightharpoons \vDash \rightrightarrows \restriction \downharpoonleft \rightleftarrows \leftrightsquigarrow \succsim \therefore \doteqdot \lessapprox \curlyeqsucc \lessgtr \succcurlyeq \vartriangleright \bigstar \blacktriangleleft \eqcirc \gtreqqless \barwedge
3 c g k l p t ≫ z ~ ≯
\doublebarwedge \smallsmile \Cup \Cap \rightthreetimes \Bumpeq \gggtr \backsim \circledcirc \gvertneqq \ngtr \gneqq \gneq \succnsim \ngeqq \succnapprox \ncong $ \varsupsetneq ( \supsetneqq , \supsetneq 0 \nmid 4 \nVdash 8 \ntrianglelefteq < \nrightarrow @ \nleftrightarrow D \Finv G \beth K \gtrdot O \shortparallel S \approxeq W \curvearrowright Z \hslash \Box \sqsupset \unrhd
d h k m q ≪ w { ⊀
! % ) 1 5 9 = A E ג L P T X [
\measuredangle \smallfrown \doublecup \curlywedge \subseteqq \lll \circledS \backsimeq \circledast \nleq \nprec \nleqslant \npreceq \lnsim \precneqq \lnapprox \diagup \nsubseteqq \varsubsetneqq \nsubseteq \nshortmid \nvDash \ntriangleleft \nLeftarrow \divideontimes \Game \gimel \ltimes \smallsetminus \succapprox \digamma \backepsilon \Diamond \lhd asl.sty symbols
· −
\dotminus \game
(requires rotate.sty)
e i l n r ≪ x |
" & * . 2 6 : > ∅ ð I M ∼ U κ
\sphericalangle \Subset \Cap \curlyvee \supseteqq \llless \pitchfork \complement \circleddash \ngeq \nsucc \ngeqslant \nsucceq \gnsim \succneqq \gnapprox \diagdown \nsupseteqq \varsupsetneqq \nsupseteq \nshortparallel \nVDash \ntriangleright \nRightarrow \varnothing \eth \daleth \rtimes \thicksim \precapprox \varkappa \mho \leadsto \unlhd
∝ j l o s ≫ y } ≮ # ' + ∦ 3 7 ; ? C F J N ≈ V k
\varpropto \Supset \doublecap \leftthreetimes \bumpeq \ggg \dotplus \intercal \lvertneqq \nless \lneqq \lneq \precnsim \nleqq \precnapprox \nsim \varsubsetneq \subsetneqq \subsetneq \nparallel \nvdash \ntrianglerighteq \nleftarrow \nLeftrightarrow \nexists \eqsim \lessdot \shortmid \thickapprox \curvearrowleft \Bbbk \Join \sqsubset \rhd
G
7.4. A LATEX- BEN ELÉRHETO˝ NÉHÁNY SZÍN A Z ALAPSZÍNEK
A DVIPSNAMES BEÁLLÍTÁSSAL ELÉRHET O˝ SZÍNEK
A Z SVGNAMES BEÁLLÍTÁSSAL ELÉRHET O˝ SZÍNEK
48
49