\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\PassOptionsToPackage{defaults=hu-min}{magyar.ldf}
\usepackage[magyar]{babel}

% Csak a dokumentáció kinézetéhez szükséges csomagok
\usepackage[hidelinks]{hyperref}
\usepackage{xcolor}
\usepackage{upquote}
\usepackage{listings}
\usepackage{multicol}
\usepackage{geometry}
\geometry{margin=2.5cm}
\usepackage{url}

\makeatletter
\renewcommand\paragraph{\@startsection{paragraph}{4}{\z@}%
	{1.5ex \@plus .2ex \@minus .2ex}%
	{0.8ex \@plus .1ex}%
	{\normalfont\normalsize\bfseries}}
\makeatother

%keretezésekhez:
\usepackage{ifpdf}
\ifpdf
   % A pdf-trans nem minden TeX-telepítés része.
   % Ha elérhető, használjuk; ha nem, biztonságos üres definíciókkal fordítunk.
   \InputIfFileExists{pdf-trans}{}{%
     \providecommand{\boxshow}[3]{}%
     \providecommand{\boxbaselineat}[1]{}%
   }%
\else
  \providecommand{\boxshow}[3]{}%
  \providecommand{\boxbaselineat}[1]{}%
\fi
\usepackage{graphicx}

%  INDEX ÉS STÍLUSLÉPÉS ---
\usepackage{firstindexletter}

% a firstindexletter csomag bekapcsolása:
\FirstIndexLetterEnable

%speciális többtagú kezdőbetűkhöz:
\FirstIndexLetterSeparateDz
\FirstIndexLetterSeparateDzs

%for english:
%\makeindex[
%name=index,
%title=Index,
%columns=3,
%noautomatic
%]
\makeindex[
name=helyseg,
title=Helységnevek,
columns=3,
noautomatic,
program=texindy,
options=-L hungarian -M hungarian-utf8
]

% ==== INDEX KEZDŐBETŰ BEÁLLÍTÁSAI ====
% Méret:
\renewcommand\IndexInitialSize{\Huge}
% az alapértelmezett betűméret is növelt betűméret.

% Betűtípus (pl. sans-serif, vagy egyedi font):
\renewcommand\IndexInitialFamily{\sffamily\bfseries}
% alapértelmezett a cmr, tehát ezt a sort nem fontos megadni

% Szín (xcolor nevei, vagy saját definiált szín):
\renewcommand\IndexInitialColor{blue}
% alapértelmezett a fekete, ezt se fontos megadni

% ==== EGALIZÁLÁS (KERNING) BEÁLLÍTÁSAI ====
% Magas szárú betűk (kivételek)
\renewcommand\IndexKerningAscenders{hlbkdti}

% 1. Csoport: Legnagyobb behúzás (T, Y)
\renewcommand\IndexKerningGroupOneLetters{TY}
\renewcommand\IndexKerningGroupOneValue{-.5ex} %
\renewcommand\IndexKerningGroupOneAscenderValue{-.2ex} 

% 2. Csoport: Közepes behúzás (V)
\renewcommand\IndexKerningGroupTwoLetters{V}
\renewcommand\IndexKerningGroupTwoValue{-.4ex} %
\renewcommand\IndexKerningGroupTwoAscenderValue{-.1ex} 

% 3. Csoport: Kis behúzás (P, F, W)
\renewcommand\IndexKerningGroupThreeLetters{PFW}
\renewcommand\IndexKerningGroupThreeValue{-.3ex} %
\renewcommand\IndexKerningGroupThreeAscenderValue{0ex} 
% =====================================

% Kódrészletek formázása a manualhoz
\lstset{
  language=[LaTeX]TeX,
  basicstyle=\ttfamily\small,
  backgroundcolor=\color{gray!10},
  keywordstyle=\color{blue},
  commentstyle=\color{gray},
  frame=single,
  rulecolor=\color{gray!30},
  xleftmargin=10pt,
  xrightmargin=10pt,
  breaklines=true
}

\title{\textbf{A \texttt{firstindexletter} csomag dokumentációja}}
\author{Bihari Zsolt \url{info@tengerikajak.net}}
\date{v1.0 -- \today}


\begin{document}

\maketitle

\begin{abstract}
\noindent
A \texttt{firstindexletter} csomag célja, hogy a \texttt{xindy} vagy \texttt{makeindex} által generált tárgymutatókban optikailag kiemelje minden betűcsoport legelső elemének kezdőbetűjét. 
Ezzel a terjedelmes jegyzék kevesebb oldalra tördelhető.

A csomag rugalmas formázási lehetőségeket (méret, szín, fontcsalád) biztosít, és beépített, háromszintű betűpár-egalizálási (kerning) logikával védi ki a nagy méretkülönbségekből adódó tipográfiai (és optikai) ütközéseket.
\end{abstract}

{
	\begin{multicols}{2}\raggedright 
\tableofcontents
	\end{multicols}
}
\vspace{1cm}

\section{Bevezetés}
Hagyományos tárgymutatók készítésekor a \texttt{makeindex} vagy \texttt{texindy} motorok gyakran tesznek egy úgynevezett \texttt{lettergroup} fejlécet (pl. \textbf{A}, \textbf{B}\ldots{} \textbf{Z}) a betűcsoportok elé. 

Esetünkben azonban nem a \TeX{} rendszerben megszokott különálló betűkből álló fejlécet, hanem az adott csoport legelső bejegyzésének megnövelt, kiemelt kezdőbetűjét valósítjuk meg. Ennek manuális szerkesztése az \texttt{.ind} fájlban hosszas és hibalehetőségekkel teli folyamat. A \texttt{firstindexletter} csomag ezt a folyamatot teljesen automatizálja.

\section{Használat és követelmények}
A csomag betöltése önmagában még nem változtatja meg az indexet. A speciális
kezdőbetűs indexkép bekapcsolásához az alábbi két sor szükséges:

\begin{lstlisting}
	\usepackage{firstindexletter}
	\FirstIndexLetterEnable
\end{lstlisting}

A csomag automatikusan betölti az \texttt{imakeidx} és az \texttt{xcolor} csomagokat. Fontos, hogy a dokumentumban a tárgymutató generálásakor az \texttt{\textbackslash indexspace} parancsnak (amit a generáló motorok használnak a betűcsoportok elválasztására) benne kell lennie a generált \texttt{.ind} fájlban, mert a csomag ez alapján ismeri fel az új csoportok kezdetét.

%%%%%%%%%%%
\subsection{Használati javaslat magyar dokumentumokhoz}

Magyar dokumentumokban a csomagot célszerű a \texttt{texindy} magyar rendezési
szabályaival együtt használni. A minimális beállítás:

{
\begin{lstlisting}
	\usepackage{firstindexletter}
	\FirstIndexLetterEnable
	\makeindex[
	name=indexfile,
	title=Index,
	columns=3,
	noautomatic
	]
\end{lstlisting}
}

A \texttt{\textbackslash FirstIndexLetterEnable} kapcsolja be a csomag
speciális működését. Enélkül az index a generált \texttt{.ind} fájl eredeti
szerkezete szerint jelenik meg.

A magyar többjegyű kezdőbetűk közül a csomag a következőket mindig önálló
iniciáléként kezeli:

\begin{center}
	\texttt{Cs, Gy, Ly, Ny, Sz, Ty, Zs}
\end{center}

A Dz és a Dzs kezelése külön szabályozható. Alapértelmezésben a Dz és Dzs
kezdetű bejegyzések a D csoporthoz fűződnek.

Ha a Dz külön csoportként jelenjen meg:

\begin{lstlisting}
	\FirstIndexLetterSeparateDz
\end{lstlisting}

Ha a Dzs is önálló csoport legyen:

\begin{lstlisting}
	\FirstIndexLetterSeparateDzs
\end{lstlisting}

A \texttt{\textbackslash FirstIndexLetterSeparateDzs} automatikusan bekapcsolja
a Dz külön kezelését is.




%%%%%%%%%%%%

\subsection{Overleaf használata}

Overleaf alatt a dokumentum \texttt{pdflatex} fordítóval lefordítható, de a
\texttt{texindy} futtatása nem minden projektbeállítás mellett történik meg
ugyanúgy, mint helyi gépen. Ez különösen akkor fontos, ha a magyar rendezéshez
saját \texttt{.xdy} modul vagy külön \texttt{texindy} parancssori beállítás
szükséges.

A jelen dokumentum indexe helyi gépen az alábbi paranccsal készül:

\begin{lstlisting}
	pdflatex manual-hu.tex
	texindy -L hungarian -M hungarian-utf8 helyseg.idx
	pdflatex manual-hu.tex
\end{lstlisting}

Overleaf használatakor a biztos módszer az, hogy a \texttt{helyseg.ind} fájlt
helyi gépen generáljuk le, majd ezt a kész fájlt feltöltjük az Overleaf
projektbe. Ezután az Overleaf már nem az index rendezését végzi el, hanem a
kész \texttt{.ind} fájlt olvassa be a \texttt{\textbackslash printindex}
parancsnál.

Ez azért előnyös, mert így pontosan ugyanaz az indexszerkezet kerül a
dokumentumba Overleafen is, mint helyi fordításkor. Különösen fontos ez a
\texttt{\textbackslash lettergroup\{...\}} sorok miatt, mivel a
\texttt{firstindexletter} csomag ezekre is támaszkodik a betűcsoportok
tipográfiai kezelésénél.

\section{Kinézet testreszabása}
Az első betű fizikai megjelenését három \texttt{\textbackslash renewcommand} segítségével állíthatjuk be a dokumentum preambulumában.

\subsection{Betűméret}
A kezdőbetű méretének beállításához az \texttt{\textbackslash IndexInitialSize} parancsot használjuk. 

Alapértelmezett értéke \texttt{\textbackslash LARGE}.
\begin{lstlisting}
\renewcommand\IndexInitialSize{\Huge}
\end{lstlisting}

\subsection{Betűtípus}
A kezdőbetű családját az \texttt{\textbackslash IndexInitialFamily} makró tárolja. Itt használhatunk beépített rövidítéseket, de hivatkozhatunk külső betűkészletekre is.

Alapértelmezés: \texttt{\textbackslash fontfamily\{cmr\}\textbackslash selectfont}.
\begin{lstlisting}
% Pelda vastag talpatlan (sans-serif) betukeszletre:
\renewcommand\IndexInitialFamily{\sffamily\bfseries}
\end{lstlisting}

\subsection{Szín}
A szín beállításához az \texttt{\textbackslash IndexInitialColor} parancsot írjuk át, amely az \texttt{xcolor} csomag színneveit fogadja. Alapértelmezés: \texttt{black}. Jelen leírásban kékre álltunk:
\begin{lstlisting}
\renewcommand\IndexInitialColor{blue}
\end{lstlisting}

\section{Tipográfiai egalizálás (Kerning)}
Mivel a kiemelt kezdőbetű lényegesen nagyobb a szót folytató karaktereknél, egyes betűk (különösen az \textbf{F, P, T, V, W, Y}) esetében optikai űr keletkezhet a kezdőbetű és a második betű között. Ennek kiküszöbölésére a csomag háromszintű (nagy, közepes, kis behúzás) automatikus kerning-mechanizmussal rendelkezik.

További tipográfiai probléma, hogy ha a második betű magas szárú, (pl. \emph{h, l, b, t}), a negatív távolság miatt fizikailag is összeakadhat a nagy kezdőbetű kalapjával (pl. \emph{Thira}, \emph{Florence}). A csomag ezért külön megadható távolságot kezel az ilyen betűpárokra.

\subsection{Kivétellista (Magas szárú betűk)}
Ide soroljuk azokat a kisbetűket, melyek felfelé kinyúlnak.
\begin{lstlisting}
\renewcommand\IndexKerningAscenders{hlbkdti}
\end{lstlisting}
Ez az angolszász betűktől eltérő (pl. görög, cirill) esetekben megváltoztatható.\\
Példa a \emph{h} és az \emph{l} betűkre, amikor eltérő a balra tolás mértéke:

\vspace{.1cm}
\begin{center}
	\scalebox{3}{%
		\hbox{%
			\boxshow{.4 w 1 .5 .5 RG}{[10 5]0 d}{}%
			\hbox{\sffamily\bfseries\Huge T}%
			\hspace{-.5ex}%
			%\boxbaselineat{0}\hbox{acoma}%
			\boxshow{.4 w 0 0 1 RG}{}{}%
			\boxbaselineat{0}\hbox{hira}%
		}
		\hspace{3.3ex}
		\hbox{%
			\boxshow{.4 w 1 .5 .5 RG}{[10 5]0 d}{}%
			\hbox{\sffamily\bfseries\Huge F}%
			\hspace{-.1ex}%
			%\boxbaselineat{0}\hbox{acoma}%
			\boxshow{.4 w 0 0 1 RG}{}{}%
			\boxbaselineat{0}\hbox{lorence}%
		}
	}
\end{center}

\subsection{Első csoport: Legnagyobb behúzás}
Jellemzően a \textbf{T} és az \textbf{Y} betűket soroljuk ide, mivel ezek alatt hatalmas optikai űr tátong.
\begin{lstlisting}
\renewcommand\IndexKerningGroupOneLetters{TY}
\renewcommand\IndexKerningGroupOneValue{-.5ex}
\renewcommand\IndexKerningGroupOneAscenderValue{-0.2ex}
\end{lstlisting}

\subsection{Második csoport: Közepes behúzás}
Ide a \textbf{V} betű és társai illenek.
\begin{lstlisting}
\renewcommand\IndexKerningGroupTwoLetters{V}
\renewcommand\IndexKerningGroupTwoValue{-.4ex}
\renewcommand\IndexKerningGroupTwoAscenderValue{-0.1ex}
\end{lstlisting}

\subsection{Harmadik csoport: Kis behúzás}
Ideális a \textbf{P, F} és a \textbf{W} betűkhöz. 
\begin{lstlisting}
\renewcommand\IndexKerningGroupThreeLetters{PFW}
\renewcommand\IndexKerningGroupThreeValue{-0.3ex}
\renewcommand\IndexKerningGroupThreeAscenderValue{0ex}
\end{lstlisting}

\newpage 
\section{Működési elv (Technikai háttér)}
A csomag futásidőben újraértelmezi az \texttt{\textbackslash item} makrót a \texttt{theindex} környezeten belül. Miután érzékeli a környezet kezdetét, vagy egy \texttt{\textbackslash indexspace} parancsot, az elkövetkező \texttt{\textbackslash item} esetében izolálja az \texttt{\textbackslash expandafter} segítségével a szó legelső (\texttt{\#1}), illetve második (\texttt{\#2}) karakterét. 
%Az első karaktert beburkolja a formázó parancsokba, majd az \texttt{\textbackslash in@} operátorral rekurzívan megvizsgálja, melyik kerning csoportba tartozik, és ehhez mérten \texttt{\textbackslash hspace} paranccsal igazítja hozzá a második (\texttt{\#2}) karaktert. 
Az első karaktert beburkolja a formázó parancsokba, majd az \texttt{\textbackslash in@} operátorral egymás után megvizsgálja, melyik kerning csoportba tartozik, és ehhez mérten \texttt{\textbackslash hspace} paranccsal igazítja hozzá a második (\texttt{\#2}) karaktert.
A stíluslapba beépített \LaTeX{} makrókkal ez a módszer sokkal kényelmesebb, mintha BASH-ba kilépve \texttt{sed} vagy \texttt{awk} scriptekkel írnánk át az \texttt{.ind} fájl fizikai tartalmát. 
Ráadásul a megoldás platformfüggetlen. 



\section{Teljes referencia}

Ez a fejezet a \texttt{firstindexletter.sty} teljes működését soronkénti logikában, de még halandó emberi nyelven ismerteti. A cél nem csupán az, hogy a csomagot használni lehessen, hanem az is, hogy később biztonsággal módosítható, karbantartható és továbbfejleszthető maradjon.

A csomag alapötlete az, hogy a tárgymutató minden betűcsoportjában az \emph{első tényleges bejegyzés} kezdőbetűje optikailag nagyobb legyen, mint a többi szó. A csomag nem a forrás \texttt{\textbackslash index\{\}} bejegyzéseit alakítja át, és nem is a generált \texttt{.ind} fájlt írja át külső programmal, hanem a LaTeX indexkörnyezetének futásidejű viselkedését módosítja.

\subsection{A csomag fejléce és függőségei}

A csomag eleje:

\begin{lstlisting}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{firstindexletter}[2026/05/31 First item initial in each index group]

\RequirePackage{imakeidx}
\RequirePackage{xcolor}
\end{lstlisting}

A \texttt{\textbackslash NeedsTeXFormat\{LaTeX2e\}} sor azt jelzi, hogy a csomag LaTeX2e környezetet igényel. Ez ma gyakorlatilag szabványos fejléc.

A \texttt{\textbackslash ProvidesPackage} sor két dolgot szolgáltat: a csomag nevét és egy rövid azonosító leírást. Ez egyrészt dokumentációs célú, másrészt a logfájlban is megjelenik, így könnyebb azonosítani, hogy a fordítás során pontosan melyik csomagverzió töltődött be.

A csomag automatikusan betölti az \texttt{imakeidx} és az \texttt{xcolor} csomagokat. Az \texttt{imakeidx} szükséges az index deklarálásához és nyomtatásához, az \texttt{xcolor} pedig a nagyított kezdőbetű színezéséhez kell. 

\subsection{A \texttt{\textbackslash makeatletter} szerepe}

A következő sor:

\begin{lstlisting}
\makeatletter
\end{lstlisting}

lehetővé teszi, hogy a csomag olyan belső nevű makrókat definiáljon és használjon, amelyek \texttt{@} karaktert tartalmaznak. A LaTeX-ben ez bevett technika a ,,belső'', csomagszintű makrók elkülönítésére. A felhasználó számára szánt makrók rendszerint nem tartalmaznak \texttt{@}-t, a belső segédmakrók viszont igen.

\subsection{A csomag bekapcsolása és a \texttt{lettergroup} feldolgozása}

A következő blokk:

\begin{lstlisting}
\newif\iffil@enabled
\fil@enabledfalse

\newcommand{\FirstIndexLetterEnable}{%
  \global\fil@enabledtrue
}
\end{lstlisting}

egy logikai kapcsolót vezet be. A \texttt{\textbackslash newif\textbackslash iffil@enabled} létrehoz egy új feltételes változót, amelynek két állapota lehet: igaz vagy hamis.

Alapértelmezésben a csomag ezt hamisra állítja:

\begin{lstlisting}
\fil@enabledfalse
\end{lstlisting}

tehát önmagában a csomag még nem módosítja az index viselkedését.

A felhasználó számára szánt parancs:

\begin{lstlisting}
\newcommand{\FirstIndexLetterEnable}{%
  \global\fil@enabledtrue
}
\end{lstlisting}

globálisan igazra állítja ezt a kapcsolót. Ennek gyakorlati jelentése az, hogy ha a dokumentumban meghívjuk a

\begin{lstlisting}
\FirstIndexLetterEnable
\end{lstlisting}

parancsot, akkor a csomag később a \texttt{theindex} környezeten belül átmenetileg újradefiniálja a \texttt{\textbackslash lettergroup}, a \texttt{\textbackslash indexspace} és a \texttt{\textbackslash item} makrókat. A \texttt{\textbackslash lettergroup} nem egyszerűen üres makróvá válik: a csomag az argumentumából effektív csoportnevet képez, és ez alapján dönti el, hogy valóban új betűcsoport kezdődött-e.

Ez tipikusan akkor hasznos, ha az indexet \texttt{noautomatic} módban használjuk, vagy ha nem akarunk külön csoportfejlécet, hanem annak tipográfiai szerepét a megnagyobbított első szókezdő betű veszi át. A \texttt{D}, \texttt{Dz} és \texttt{Dzs} esetében ez a feldolgozás azért különösen fontos, mert a csomag beállítástól függően ezeket külön csoportként vagy azonos effektív csoport részeként kezeli.

\subsection{A megjelenés alapértelmezett paraméterei}

A következő blokk adja meg az alap stílusbeállításokat:

\begin{lstlisting}
\providecommand\IndexInitialSize{\LARGE}
\providecommand\IndexInitialFamily{\fontfamily{cmr}\selectfont}
\providecommand\IndexInitialColor{black}
\end{lstlisting}

Itt fontos, hogy \texttt{\textbackslash providecommand} szerepel, nem pedig \texttt{\textbackslash newcommand}. Ennek az az értelme, hogy ha a felhasználó korábban már definiálta ezeket a makrókat, akkor a csomag nem írja felül őket. Ha még nem léteznek, akkor létrehozza őket a megadott alapértékekkel.

A három makró feladata:

\begin{itemize}
\item \texttt{\textbackslash IndexInitialSize}: a kiemelt kezdőbetű mérete;
\item \texttt{\textbackslash IndexInitialFamily}: a kiemelt kezdőbetű betűcsaládja és stílusa;
\item \texttt{\textbackslash IndexInitialColor}: a kiemelt kezdőbetű színe.
\end{itemize}

Az alapértelmezett méret a \texttt{\textbackslash LARGE}, az alapértelmezett betűcsalád a Computer Modern Roman, a szín pedig fekete.

A dokumentumban ezek szabadon átírhatók például így:

\begin{lstlisting}
\renewcommand\IndexInitialSize{\Huge}
\renewcommand\IndexInitialFamily{\sffamily\bfseries}
\renewcommand\IndexInitialColor{blue}
\end{lstlisting}

\subsection{A kerningrendszer alapötlete}

A nagyított kezdőbetű és a szó második betűje között gyakran optikailag kellemetlen rés keletkezik. Ez főként akkor látszik, ha az első betű felső vagy átlós szerkezete nagy üres teret hagy maga után, például \texttt{T}, \texttt{Y}, \texttt{V}, \texttt{W}, \texttt{P}, \texttt{F} esetén.

Erre szolgál a következő paraméterezés:

\begin{lstlisting}
\providecommand\IndexKerningAscenders{hlbkdti}

\providecommand\IndexKerningGroupOneLetters{TY}
\providecommand\IndexKerningGroupOneValue{-1.2ex}
\providecommand\IndexKerningGroupOneAscenderValue{-0.2ex}

\providecommand\IndexKerningGroupTwoLetters{VW}
\providecommand\IndexKerningGroupTwoValue{-0.8ex}
\providecommand\IndexKerningGroupTwoAscenderValue{-0.1ex}

\providecommand\IndexKerningGroupThreeLetters{PF}
\providecommand\IndexKerningGroupThreeValue{-0.4ex}
\providecommand\IndexKerningGroupThreeAscenderValue{0ex}
\end{lstlisting}

Ez a rendszer három negatív térközcsoportot kezel.

\paragraph{Kivétellista: magas szárú második betűk.}
Az \texttt{\textbackslash IndexKerningAscenders} azoknak a kisbetűknek a listája, amelyek magas szárúak, vagyis felfelé nyúlnak: \texttt{h, l, b, k, d, t, i}. Ha ilyen betű áll a nagyított kezdőbetű után, akkor az agresszív negatív behúzás könnyen összeütközést vagy csúnya túl közel kerülést okozhat. Ezért minden kerningcsoporthoz két érték tartozik: egy általános, és egy enyhébb változat ascenderes második betűhöz. 

\paragraph{Első csoport.}
Ez a csoport a legerősebb negatív térközt adja. Ide alapból a \texttt{T} és \texttt{Y} tartozik. Ezeknél a betűknél a nagy kezdőbetű és a következő kisbetű közötti optikai rés különösen nagy. 

Ha pontosan a nagy kezdőbetű után írjuk a szó további részét, így néz ki:

\vspace{.1cm}
\hspace{4cm}%
\scalebox{2}{%
\hbox{%
	\boxshow{.4 w 1 .5 .5 RG}{[10 5]0 d}{}%
	\hbox{\sffamily\bfseries\Huge T}%
	\hspace{0ex}%
	%\boxbaselineat{0}\hbox{acoma}%
	\boxshow{.4 w 0 0 1 RG}{}{}%
	\boxbaselineat{0}\hbox{acoma}%
}
\hspace{3ex}
\hbox{%
	\boxshow{.4 w 1 .5 .5 RG}{[10 5]0 d}{}%
	\hbox{\sffamily\bfseries\Huge Y}%
	\hspace{0ex}%
	%\boxbaselineat{0}\hbox{acoma}%
	\boxshow{.4 w 0 0 1 RG}{}{}%
	\boxbaselineat{0}\hbox{akima}%
}
}

\vspace{1ex}
Ha a normál betűmérettel és \texttt{-.5ex} (vagyis fél ,,x'' betűszélességgel) balra toljuk jelen csomag kihasználásával, akkor ezt az összképet kapjuk:

\vspace{1ex}

\hspace{4cm}%
\scalebox{2}{%
\hbox{%
	\boxshow{.4 w 1 .5 .5 RG}{[10 5]0 d}{}%
	\hbox{\sffamily\bfseries\Huge T}%
	\hspace{-.5ex}%
	\boxshow{.4 w 0 0 1 RG}{}{}%
	\boxbaselineat{0}\hbox{acoma}%
}
\hspace{3.5ex}
\hbox{%
	\boxshow{.4 w 1 .5 .5 RG}{[10 5]0 d}{}%
	\hbox{\sffamily\bfseries\Huge Y}%
	\hspace{-.5ex}%
	%\boxbaselineat{0}\hbox{acoma}%
	\boxshow{.4 w 0 0 1 RG}{}{}%
	\boxbaselineat{0}\hbox{akima}%
}
}

\paragraph{Második csoport.}
Ez a csoport közepes erősségű negatív térközt ad. Ide alapból a \texttt{V} és \texttt{W} került. Ezeknél szintén gyakori a zavaró rés, de általában nem akkora, mint \texttt{T} vagy \texttt{Y} esetén. 

\vspace{.1cm}
\hspace{4cm}%
\scalebox{2}{%
	\hbox{%
		\boxshow{.4 w 1 .5 .5 RG}{[10 5]0 d}{}%
		\hbox{\sffamily\bfseries\Huge V}%
		\hspace{0ex}%
		%\boxbaselineat{0}\hbox{acoma}%
		\boxshow{.4 w 0 0 1 RG}{}{}%
		\boxbaselineat{0}\hbox{allejo}%
	}
	\hspace{3ex}
	\hbox{%
		\boxshow{.4 w 1 .5 .5 RG}{[10 5]0 d}{}%
		\hbox{\sffamily\bfseries\Huge W}%
		\hspace{0ex}%
		%\boxbaselineat{0}\hbox{acoma}%
		\boxshow{.4 w 0 0 1 RG}{}{}%
		\boxbaselineat{0}\hbox{aco}%
	}
}

\vspace{.1cm}
\hspace{4cm}%
\scalebox{2}{%
	\hbox{%
		\boxshow{.4 w 1 .5 .5 RG}{[10 5]0 d}{}%
		\hbox{\sffamily\bfseries\Huge V}%
		\hspace{-.3ex}%
		%\boxbaselineat{0}\hbox{acoma}%
		\boxshow{.4 w 0 0 1 RG}{}{}%
		\boxbaselineat{0}\hbox{allejo}%
	}
	\hspace{3.3ex}
	\hbox{%
		\boxshow{.4 w 1 .5 .5 RG}{[10 5]0 d}{}%
		\hbox{\sffamily\bfseries\Huge W}%
		\hspace{-.3ex}%
		%\boxbaselineat{0}\hbox{acoma}%
		\boxshow{.4 w 0 0 1 RG}{}{}%
		\boxbaselineat{0}\hbox{aco}%
	}
}



\paragraph{Harmadik csoport.}
Itt enyhébb negatív térközt használunk. Ide alapból a \texttt{P} és \texttt{F} tartozik. Ezeknél is lehet optikai hiányérzet, de kisebb mértékű. 


\vspace{.1cm}
\hspace{4cm}%
\scalebox{2}{%
	\hbox{%
		\boxshow{.4 w 1 .5 .5 RG}{[10 5]0 d}{}%
		\hbox{\sffamily\bfseries\Huge P}%
		\hspace{0ex}%
		%\boxbaselineat{0}\hbox{acoma}%
		\boxshow{.4 w 0 0 1 RG}{}{}%
		\boxbaselineat{0}\hbox{aco}%
	}
	\hspace{3ex}
	\hbox{%
		\boxshow{.4 w 1 .5 .5 RG}{[10 5]0 d}{}%
		\hbox{\sffamily\bfseries\Huge P}%
		\hspace{-.1ex}%
		%\boxbaselineat{0}\hbox{acoma}%
		\boxshow{.4 w 0 0 1 RG}{}{}%
		\boxbaselineat{0}\hbox{aco}%
	}
}



A felhasználó ezeket mind átírhatja \texttt{\textbackslash renewcommand}-dal, ahogyan a mintadokumentumban is szerepel.

\subsection{Csoportkezdés felismerése}

A következő sor:

\begin{lstlisting}
\newif\iffil@indexgroupstart
\end{lstlisting}

egy újabb logikai kapcsolót hoz létre. Ez fogja jelezni, hogy éppen egy index-betűcsoport első eleme következik-e.

A csomag nem próbálja meg a betűrendet tartalmilag értelmezni. Nem nézi, hogy a következő szó milyen betűvel kezdődik, és nem végez szótári összehasonlítást sem. Ehelyett a generált index szerkezetét figyeli: amikor a \texttt{theindex} környezet elindul, vagy amikor \texttt{\textbackslash indexspace} jelenik meg, a csomag úgy tekinti, hogy a következő \texttt{\textbackslash item} lesz a következő betűcsoport első eleme. 

Ez egyszerű, gyors és stabil megoldás, de fontos feltétele, hogy a generált \texttt{.ind} fájl valóban használja az \texttt{\textbackslash indexspace} parancsot a csoportok elválasztására.

%%%%%%%%%%%%%%%%
\subsection{A \texttt{\textbackslash fil@grabfirst} makró részletes működése}

A csomag kulcsfontosságú makrója a \texttt{\textbackslash fil@grabfirst}. Ez veszi át a következő \texttt{\textbackslash item} tartalmából a karaktereket. Az új architektúrában a klasszikus, egymásba ágyazott \texttt{\textbackslash if}-\texttt{\textbackslash else} láncolatok helyett egy modernebb, robusztusabb megoldást használunk, amely elkerüli a TeX token-beolvasási (\textit{expansion}) hibáit.

\begin{enumerate}
\item A makró első körben lementi az első két betűt egy belső makróba (\texttt{\textbackslash fil@currentpair}).
\item Ezt követően makró-összehasonlítással (\texttt{\textbackslash ifx}) megvizsgálja a magyar kétjegyű mássalhangzókat. Például létrehoz egy \texttt{\textbackslash fil@checkcs\{Cs\}} makrót, és összehasonlítja a beolvasottal.
\item Ha egyezést talál, meghívja a \texttt{\textbackslash fil@doublepair} formázást.
\item \textbf{Kivétel a Dzs esetén:}\\
Ha a vizsgált két betű \texttt{Dz}, a makró még nem véglegesíti a formázást, hanem az \texttt{\textbackslash expandafter} parancs segítségével meghívja a \texttt{\textbackslash fil@grabthirdforDzs} segédmakrót.
\item Ez a segédmakró beolvassa a következő, harmadik karaktert. Ha az \texttt{s}, akkor alkalmazza a \texttt{\textbackslash fil@triplepair\{D\}\{z\}\{s\}} parancsot. 
Ha valami más következik, akkor egy egyszerű \texttt{\textbackslash fil@doublepair{D}{z}}
formázást alkalmaz, vagyis az adott szó elejét Dz-ként kezeli, nem pedig Dzs-ként. 
\end{enumerate}

Ezzel a letisztult makró-összehasonlításos módszerrel a csomag kezeli a magyar egyjegyű, kétjegyű és a Dzs esetében háromjegyű kezdőbetűket is.



%%%%%%%%%%%%%%%%

\subsection{A \texttt{theindex} környezet átdefiniálása}

A csomag egyik legfontosabb része a következő blokk:

\begin{lstlisting}
\let\fil@oldtheindex\theindex
\renewcommand\theindex{...}
\end{lstlisting}

Itt a csomag előbb elmenti a \texttt{theindex} eredeti definícióját \texttt{\textbackslash fil@oldtheindex} néven, majd újradefiniálja a környezetet.

Ez azért jó megoldás, mert nem akarja nulláról újraírni az index teljes tördelését. Ehelyett előbb meghívja az eredeti \texttt{theindex}-et, és csak utána végez lokális beavatkozást a környezeten belül. 

Az új definíció négy fontos dolgot csinál.

\paragraph{1. A csomag bekapcsolt állapotának ellenőrzése.} A környezet elején a csomag megvizsgálja az \texttt{\textbackslash iffil@enabled} kapcsolót. \\
Ha a felhasználó nem hívta meg a \texttt{\textbackslash FirstIndexLetterEnable} parancsot, akkor a csomag nem avatkozik be az index feldolgozásába.

\paragraph{2. A \texttt{lettergroup} feldolgozása}\mbox{}\par
\noindent
Bekapcsolt állapotban a csomag a \texttt{\textbackslash lettergroup}
parancsot nem pusztán üres makróvá teszi, hanem a csoportnevet átadja a
\texttt{\textbackslash fil@handlelettergroup} segédmakrónak. Ez a
segédmakró dönti el, hogy a kapott csoportnév valóban új effektív
csoportot jelent-e. Így kezelhető az is, hogy a \texttt{Dz} és a
\texttt{Dzs} külön betűként jelenjen-e meg, vagy a \texttt{D}, illetve
\texttt{Dz} effektív csoportjához tartozzon.

\paragraph{3. Az első elem jelölése.}
Amikor a \texttt{\textbackslash lettergroup} valódi új effektív csoportot jelez, a csomag globálisan beállítja, hogy a következő \texttt{\textbackslash item} egy új csoport első eleme lesz.

\paragraph{4. Az \texttt{\textbackslash indexspace} újradefiniálása.}
A csomag elmenti az eredeti \texttt{\textbackslash indexspace} definícióját, majd újradefiniálja úgy, hogy az eredeti térközt ne azonnal szúrja be, hanem előbb csak egy függő állapotot állítson be a \texttt{\textbackslash fil@pendingindexspace} kapcsolón keresztül.

Ez nagyon fontos: amikor az indexmotor egy új betűcsoport előtt \texttt{\textbackslash indexspace}-et szúr be, a csomag még megvárja a következő \texttt{\textbackslash lettergroup} információját. Ha az effektív csoport valóban megváltozott, akkor szükség esetén meghívja a korábban elmentett eredeti \texttt{\textbackslash indexspace} parancsot; ha viszont például a \texttt{Dz} vagy \texttt{Dzs} az aktuális beállítás szerint nem külön csoport, akkor elkerülhető a felesleges térköz.

\subsection{Az \texttt{\textbackslash item} lokális újradefiniálása}

A csomag ezután az \texttt{\textbackslash item} makrót is újradefiniálja a \texttt{theindex} környezeten belül:

\begin{lstlisting}
\let\fil@olditem\item
\def\item{%
  \fil@olditem
  \iffil@indexgroupstart
    \global\fil@indexgroupstartfalse
    \expandafter\fil@grabfirst
  \fi
}%
\end{lstlisting}

Ez a működés szíve.

A logika a következő:

\begin{enumerate}
\item Először meghívja az eredeti \texttt{\textbackslash item} viselkedést, tehát az indexlista normál szerkezete megmarad.
\item Ezután megnézi, hogy a \texttt{\textbackslash iffil@indexgroupstart} kapcsoló igaz-e.
\item Ha nem igaz, akkor semmi különös nem történik: ez nem csoportkezdő elem, tehát nincs nagy kezdőbetű.
\item Ha igaz, akkor ezt az állapotot azonnal hamisra állítja, hogy csak a csoport első eleme kapja meg a speciális kezelést.
\item Végül az \texttt{\textbackslash expandafter\textbackslash fil@grabfirst} hívással ráengedi a következő szövegre a kezdőbetű-fogyasztó makrót. 
\end{enumerate}

%A \texttt{\textbackslash expandafter} itt azért szükséges, mert a cél az, hogy a \texttt{\textbackslash item} után következő első két karakter ténylegesen paraméterként bekerüljön a \texttt{\textbackslash fil@grabfirst} makróba. 
A \texttt{\textbackslash expandafter} itt azért szükséges, mert a cél az, hogy a \texttt{\textbackslash item} után következő első két karakter ténylegesen paraméterként bekerüljön a \texttt{\textbackslash fil@grabfirst} makróba. 
Ez finom TeX-szintű technika, és ezért is nehéz a háromjegyű \texttt{Dzs} kezelése: a kétkarakteres elfogyasztás itt még stabil, a háromkarakteres viszont már sokkal kényesebb. 

\subsection{Miért nem a \texttt{.ind} fájlt írja át a csomag?}

Felmerülhet, hogy egyszerűbb lenne a generált \texttt{.ind} fájlt egy külső szkripttel, például \texttt{sed}, \texttt{awk} vagy Python segítségével módosítani. A csomag mégsem ezt teszi.

Ennek okai:

\begin{itemize}
\item a makrós megoldás platformfüggetlenebb;
\item nem igényel külön shell-szintű utófeldolgozást;
\item egyetlen \texttt{.sty} fájlba zárható;
\item jobban együttműködik online rendszerekkel, amennyiben a szükséges indexgenerálás maga elérhető;
\item a dokumentum tipográfiai paraméterei közvetlenül \LaTeX-ből vezérelhetők. 
\end{itemize}

%A hátránya az, hogy a TeX tokenfogyasztási modellje miatt bizonyos többkarakteres nyelvi egységek, mint a magyar \texttt{Dzs}, nehezebben vagy csak sokkal bonyolultabb architektúrával kezelhetők. 
A hátránya az, hogy a \TeX{} tokenfogyasztási modellje miatt bizonyos többkarakteres nyelvi egységek kezelése bonyolultabb megoldást igényel.

\subsection{Használati javaslat magyar dokumentumokhoz}

Magyar szövegben, ahol kétjegyű kezdőbetűk is előfordulnak, célszerű az indexet így deklarálni:

\begin{lstlisting}
\usepackage{firstindexletter}
\FirstIndexLetterEnable
\makeindex[name=helyseg,title=Index,columns=3,noautomatic]
\end{lstlisting}

Ennek oka, hogy a külön lettergroup-fejlécek és a megnagyobbított első szókezdő betű együtt rendszerint redundáns tipográfiai hatást adnak. A \texttt{noautomatic} opció és a \texttt{\textbackslash FirstIndexLetterEnable} együtt tiszta, visszafogott, könyvszerű indexképet eredményez. 

\subsection{A matematikai és speciális indexbejegyzések kérdése}

A mintadokumentumban látható, hogy bizonyos matematikai alakokkal vegyes indexkulcsok problémásak lehetnek, különösen akkor, ha a rendezési kulcs és a nyomtatandó alak nem tiszta szövegként van elválasztva. A stabil gyakorlat az, hogy a rendezési kulcs legyen egyszerű, jól rendezhető szöveg, és csak a nyomtatandó részben szerepeljenek matematikai vagy különleges formázások.

Ezért működőképes például az ilyen szerkezet:

\begin{lstlisting}
\index[helyseg]{deviation kszi@\(D^2\xi\)}
\end{lstlisting}

míg a túl agresszíven formázott vagy nem kellően „tiszta” rendezési kulcs könnyen hibához vagy csúnya indexkimenethez vezethet. 

\subsection{Mit lehet biztonsággal testre szabni?}

A csomag jelenlegi állapotában biztonságosan módosítható:

\begin{itemize}
\item a kiemelt kezdőbetű mérete;
\item a kiemelt kezdőbetű betűcsaládja és stílusa;
\item a kiemelt kezdőbetű színe;
\item az ascender-lista;
\item az 1., 2. és 3. kerningcsoport betűlistája;
\item az ezekhez tartozó normál és ascenderes negatív térközértékek;
\item a \texttt{Dz} és \texttt{Dzs} külön vagy összevont effektív csoportként való kezelése. 
\end{itemize}

Nem tekinthető biztonságosan módosíthatónak komolyabb TeX-ismeret nélkül:

\begin{itemize}
\item a \texttt{\textbackslash fil@grabfirst} paraméterszáma;
\item a \texttt{\textbackslash item} újradefiniálási logikája;
\item a \texttt{\textbackslash expandafter} használata;
\item a két- és háromjegyű magyar kezdőbetűk kezelésének mély szerkezete. 
\end{itemize}

\subsection{Technikai korlátok és sajátosságok}

\begin{enumerate}
\item A működés feltételezi, hogy az indexgenerátor (\texttt{makeindex} vagy \texttt{xindy}) a \texttt{\textbackslash indexspace} paranccsal jelzi a betűcsoportok határát.
\item A kerning nem igazi, fontszintű OpenType/TrueType kerning, hanem egy kézzel szabályozható, statikus optikai korrekció (negatív \texttt{\textbackslash hspace}).
\item A betűcsoport-kezelés továbbra is a generált index szerkezetére (\texttt{\textbackslash indexspace}) épül, nem pedig nyelvi vagy szemantikai elemzésre.
\item A csomag elsődlegesen latin betűs, hagyományos indexstruktúrákra készült.
\end{enumerate}

%\subsection*{A többjegyű mássalhangzók (például Dzs) kezelése}
%A csomag legújabb verziója teljesen stabilan, natívan kezeli a háromjegyű magyar kezdőbetűket is, például a \texttt{Dzs}-t. 
%A csomag jelenlegi verziója kezeli a háromjegyű magyar kezdőbetűket is, például a \emph{Dzs}-t. 
%Korábbi verziókban (a TeX paraméter-beolvasási \textit{expansion} anomáliái miatt) ez okozott némi nehézséget, azonban az új, makró-alapú (\texttt{\textbackslash ifx}) string-összehasonlító logika biztonságosan megeszi akár a harmadik karaktert is, anélkül, hogy a beágyazott feltételrendszer összeomlana. 
%Ha a makró a szónál egyezést talál a \texttt{Dz}-vel, automatikusan meghív egy újabb beolvasót (\texttt{\textbackslash fil@grabthirdforDzs}), ami leellenőrzi a harmadik betűt (az \texttt{s}-t), és ha az is megegyezik, egyetlen gyönyörű, hármas inicializált dobozba (\texttt{\textbackslash fil@triplepair}) helyezi el.
%Ha a makró a szónál egyezést talál a \emph{Dzs}-vel, automatikusan meghív egy újabb beolvasást (\texttt{\textbackslash fil@grabthirdforDzs}), amely ellenőrzi a harmadik betűt, az \emph{s}-t, és ha az is megegyezik, az egységet a \texttt{\textbackslash fil@triplepair} makróval kezeli.

\subsection{Záró megjegyzés}

%A \texttt{firstindexletter} csomag egy kifejezetten praktikus, tipográfiai célú megoldás arra, hogy a tárgymutató betűcsoportjai külön fejléc helyett egy vizuálisan hangsúlyos első szókezdő betűvel induljanak. 
Jelen csomag tipográfiai célú megoldást ad arra, hogy a tárgymutató betűcsoportjai külön fejléc helyett vizuálisan hangsúlyos első szókezdő betűvel induljanak.
%A jelenlegi megoldás erőssége a kis méret, az egyszerű beépíthetőség és a jól hangolható optikai korrekció. 
A jelenlegi megoldás kis méretű, egyszerűen beépíthető, és optikai korrekciója jól hangolható.
%A csomag sikeresen kezeli mind a kétjegyű, mind a háromjegyű magyar kezdőbetűket.
%A csomag kezeli a két- és háromjegyű magyar kezdőbetűket.
%Ezzel a letisztult, makró-összehasonlításos módszerrel a csomag kezeli a magyar egyjegyű, kétjegyű és a Dzs esetében háromjegyű kezdőbetűket is.

%\clearpage 

\section{Példafejezet}

Az alábbi szójegyzék jelen csomag indexjegyzékének érdekében lett elkészítve. 
A szavak az alábbi módszerrel lettek listázva:

\begin{lstlisting}
Amsterdam\index[helyseg]{Amsterdam} 
Austin\index[helyseg]{Austin}
...
\end{lstlisting}

A texindy programot a magyar névsorba rendezés szabályai szerint így futtatjuk:

\begin{lstlisting}
pdflatex dokumentum.tex
texindy -L hungarian -M hungarian-utf8 helyseg.idx
pdflatex dokumentum.tex
\end{lstlisting}

\ldots{}ahol előbb legeneráltuk az alapdokumentumot, majd a keletkező \texttt{.idx} fájlból az \texttt{.ind} fájlt, végül csatoltuk a formázott indexfájlt az alapdokumentumhoz -- ami már a pdf-ben is megjelenik. 

\bigskip \noindent 
Amsterdam\index[helyseg]{Amsterdam} Austin\index[helyseg]{Austin} Atlanta\index[helyseg]{Atlanta} Athens\index[helyseg]{Athens} Accra\index[helyseg]{Accra} Adelaide\index[helyseg]{Adelaide} Albany\index[helyseg]{Albany} Anchorage\index[helyseg]{Anchorage} Boston\index[helyseg]{Boston} Baltimore\index[helyseg]{Baltimore} Brisbane\index[helyseg]{Brisbane} Belfast\index[helyseg]{Belfast} Berlin\index[helyseg]{Berlin} Birmingham\index[helyseg]{Birmingham} Buffalo\index[helyseg]{Buffalo} Boise\index[helyseg]{Boise} Chicago\index[helyseg]{Chicago} Cleveland\index[helyseg]{Cleveland} Cairo\index[helyseg]{Cairo} Calgary\index[helyseg]{Calgary} Colombo\index[helyseg]{Colombo} Charlotte\index[helyseg]{Charlotte} Cincinnati\index[helyseg]{Cincinnati} Columbus\index[helyseg]{Columbus} Dallas\index[helyseg]{Dallas} Denver\index[helyseg]{Denver} Detroit\index[helyseg]{Detroit} Dublin\index[helyseg]{Dublin} Dakar\index[helyseg]{Dakar} Darwin\index[helyseg]{Darwin} Dayton\index[helyseg]{Dayton} Dover\index[helyseg]{Dover} Edmonton\index[helyseg]{Edmonton} Eugene\index[helyseg]{Eugene} Elpaso\index[helyseg]{Elpaso} Erie\index[helyseg]{Erie} Evansville\index[helyseg]{Evansville} Everett\index[helyseg]{Everett} Entebbe\index[helyseg]{Entebbe} Europe\index[helyseg]{Europe} Frankfurt\index[helyseg]{Frankfurt} Florence\index[helyseg]{Florence} Fargo\index[helyseg]{Fargo} Fresno\index[helyseg]{Fresno} Flint\index[helyseg]{Flint} Fremont\index[helyseg]{Fremont} Fukuoka\index[helyseg]{Fukuoka} Freetown\index[helyseg]{Freetown} Geneva\index[helyseg]{Geneva} Glasgow\index[helyseg]{Glasgow} Galveston\index[helyseg]{Galveston} Gary\index[helyseg]{Gary} Genoa\index[helyseg]{Genoa} Georgetown\index[helyseg]{Georgetown} Glendale\index[helyseg]{Glendale} Guangzhou\index[helyseg]{Guangzhou} Houston\index[helyseg]{Houston} Honolulu\index[helyseg]{Honolulu} Halifax\index[helyseg]{Halifax} Havana\index[helyseg]{Havana} Hartford\index[helyseg]{Hartford} Helsinki\index[helyseg]{Helsinki} Hobart\index[helyseg]{Hobart} Hanoi\index[helyseg]{Hanoi} Indianapolis\index[helyseg]{Indianapolis} Islamabad\index[helyseg]{Islamabad} Irvine\index[helyseg]{Irvine} Ithaca\index[helyseg]{Ithaca} Incheon\index[helyseg]{Incheon} Ibadan\index[helyseg]{Ibadan} Iquique\index[helyseg]{Iquique} Izmir\index[helyseg]{Izmir} Jacksonville\index[helyseg]{Jacksonville} Juneau\index[helyseg]{Juneau} Jakarta\index[helyseg]{Jakarta} Johannesburg\index[helyseg]{Johannesburg} Jeddah\index[helyseg]{Jeddah} Jersey\index[helyseg]{Jersey} Joliet\index[helyseg]{Joliet} Juba\index[helyseg]{Juba} Kansas\index[helyseg]{Kansas} Kyoto\index[helyseg]{Kyoto} Kingston\index[helyseg]{Kingston} Knoxville\index[helyseg]{Knoxville} Kampala\index[helyseg]{Kampala} Kobe\index[helyseg]{Kobe} Karachi\index[helyseg]{Karachi} Kabul\index[helyseg]{Kabul} London\index[helyseg]{London} Lisbon\index[helyseg]{Lisbon} Lagos\index[helyseg]{Lagos} Lima\index[helyseg]{Lima} Lincoln\index[helyseg]{Lincoln} Lansing\index[helyseg]{Lansing} Laredo\index[helyseg]{Laredo} Lubbock\index[helyseg]{Lubbock} Miami\index[helyseg]{Miami} Memphis\index[helyseg]{Memphis} Milwaukee\index[helyseg]{Milwaukee} Manila\index[helyseg]{Manila} Melbourne\index[helyseg]{Melbourne} Mumbai\index[helyseg]{Mumbai} Madison\index[helyseg]{Madison} Mobile\index[helyseg]{Mobile} Nairobi\index[helyseg]{Nairobi} Naples\index[helyseg]{Naples} Nashville\index[helyseg]{Nashville} Newark\index[helyseg]{Newark} Norfolk\index[helyseg]{Norfolk} Norman\index[helyseg]{Norman} Nagoya\index[helyseg]{Nagoya} Niamey\index[helyseg]{Niamey} Orlando\index[helyseg]{Orlando} Omaha\index[helyseg]{Omaha} Oakland\index[helyseg]{Oakland} Osaka\index[helyseg]{Osaka} Oslo\index[helyseg]{Oslo} Odessa\index[helyseg]{Odessa} Ostrava\index[helyseg]{Ostrava} Oxford\index[helyseg]{Oxford} Paris\index[helyseg]{Paris} Portland\index[helyseg]{Portland} Phoenix\index[helyseg]{Phoenix} Philadelphia\index[helyseg]{Philadelphia} Pittsburgh\index[helyseg]{Pittsburgh} Perth\index[helyseg]{Perth} Pretoria\index[helyseg]{Pretoria} Peoria\index[helyseg]{Peoria} Queens\index[helyseg]{Queens} Quito\index[helyseg]{Quito} Quebec\index[helyseg]{Quebec} Quanzhou\index[helyseg]{Quanzhou} Qingdao\index[helyseg]{Qingdao} Quetta\index[helyseg]{Quetta} Quilmes\index[helyseg]{Quilmes} Quimper\index[helyseg]{Quimper} Rome\index[helyseg]{Rome} Reno\index[helyseg]{Reno} Richmond\index[helyseg]{Richmond} Raleigh\index[helyseg]{Raleigh} Riverside\index[helyseg]{Riverside} Rochester\index[helyseg]{Rochester} Rockford\index[helyseg]{Rockford} Roswell\index[helyseg]{Roswell} Seattle\index[helyseg]{Seattle} Sydney\index[helyseg]{Sydney} Seoul\index[helyseg]{Seoul} Savannah\index[helyseg]{Savannah} Spokane\index[helyseg]{Spokane} Syracuse\index[helyseg]{Syracuse} Springfield\index[helyseg]{Springfield} Tokyo\index[helyseg]{Tokyo} Toronto\index[helyseg]{Toronto} Tampa\index[helyseg]{Tampa} Tucson\index[helyseg]{Tucson} Tulsa\index[helyseg]{Tulsa} Toledo\index[helyseg]{Toledo} Tacoma\index[helyseg]{Tacoma} Utah\index[helyseg]{Utah} Utica\index[helyseg]{Utica} Uppsala\index[helyseg]{Uppsala} Ulaanbaatar\index[helyseg]{Ulaanbaatar} Ulsan\index[helyseg]{Ulsan} Ufa\index[helyseg]{Ufa} Ushuaia\index[helyseg]{Ushuaia} Vancouver\index[helyseg]{Vancouver} Venice\index[helyseg]{Venice} Vienna\index[helyseg]{Vienna} Victoria\index[helyseg]{Victoria} Vallejo\index[helyseg]{Vallejo} Verona\index[helyseg]{Verona} Varna\index[helyseg]{Varna} Washington\index[helyseg]{Washington} Wichita\index[helyseg]{Wichita} Waco\index[helyseg]{Waco} Wilmington\index[helyseg]{Wilmington} Winston\index[helyseg]{Winston} Warsaw\index[helyseg]{Warsaw} Wuhan\index[helyseg]{Wuhan} Xiamen\index[helyseg]{Xiamen} Xuzhou\index[helyseg]{Xuzhou} Xining\index[helyseg]{Xining} Xian\index[helyseg]{Xian} Xanthus\index[helyseg]{Xanthus} Xalapa\index[helyseg]{Xalapa} Xingu\index[helyseg]{Xingu} York\index[helyseg]{York} Yokohama\index[helyseg]{Yokohama} Yonkers\index[helyseg]{Yonkers} Yakima\index[helyseg]{Yakima} Yantai\index[helyseg]{Yantai} Yuma\index[helyseg]{Yuma} Ypsilanti\index[helyseg]{Ypsilanti} Zurich\index[helyseg]{Zurich} Zagreb\index[helyseg]{Zagreb} Zhengzhou\index[helyseg]{Zhengzhou} Zaria\index[helyseg]{Zaria} Zamboanga\index[helyseg]{Zamboanga} Zinder\index[helyseg]{Zinder} Zibo\index[helyseg]{Zibo}

Zibo\index[helyseg]{Zibo} Zinder\index[helyseg]{Zinder} Zamboanga\index[helyseg]{Zamboanga} Zaria\index[helyseg]{Zaria} Zhengzhou\index[helyseg]{Zhengzhou} Zagreb\index[helyseg]{Zagreb} Zurich\index[helyseg]{Zurich} Ypsilanti\index[helyseg]{Ypsilanti} Yuma\index[helyseg]{Yuma} Yantai\index[helyseg]{Yantai} Yakima\index[helyseg]{Yakima} Yonkers\index[helyseg]{Yonkers} Yokohama\index[helyseg]{Yokohama} York\index[helyseg]{York} Xingu\index[helyseg]{Xingu} Xalapa\index[helyseg]{Xalapa} Xanthus\index[helyseg]{Xanthus} Xian\index[helyseg]{Xian} Xining\index[helyseg]{Xining} Xuzhou\index[helyseg]{Xuzhou} Xiamen\index[helyseg]{Xiamen} Wuhan\index[helyseg]{Wuhan} Warsaw\index[helyseg]{Warsaw} Winston\index[helyseg]{Winston} Wilmington\index[helyseg]{Wilmington} Waco\index[helyseg]{Waco} Wichita\index[helyseg]{Wichita} Washington\index[helyseg]{Washington} Varna\index[helyseg]{Varna} Verona\index[helyseg]{Verona} Vallejo\index[helyseg]{Vallejo} Victoria\index[helyseg]{Victoria} Vienna\index[helyseg]{Vienna} Venice\index[helyseg]{Venice} Vancouver\index[helyseg]{Vancouver} Ushuaia\index[helyseg]{Ushuaia} Ufa\index[helyseg]{Ufa} Ulsan\index[helyseg]{Ulsan} Ulaanbaatar\index[helyseg]{Ulaanbaatar} Uppsala\index[helyseg]{Uppsala} Utica\index[helyseg]{Utica} Utah\index[helyseg]{Utah} Tacoma\index[helyseg]{Tacoma} Toledo\index[helyseg]{Toledo} Tulsa\index[helyseg]{Tulsa} Tucson\index[helyseg]{Tucson} Tampa\index[helyseg]{Tampa} Toronto\index[helyseg]{Toronto} Tokyo\index[helyseg]{Tokyo} Springfield\index[helyseg]{Springfield} Syracuse\index[helyseg]{Syracuse} Spokane\index[helyseg]{Spokane} Savannah\index[helyseg]{Savannah} Seoul\index[helyseg]{Seoul} Sydney\index[helyseg]{Sydney} Seattle\index[helyseg]{Seattle} Roswell\index[helyseg]{Roswell} Rockford\index[helyseg]{Rockford} Rochester\index[helyseg]{Rochester} Riverside\index[helyseg]{Riverside} Raleigh\index[helyseg]{Raleigh} Richmond\index[helyseg]{Richmond} Reno\index[helyseg]{Reno} Rome\index[helyseg]{Rome} Quimper\index[helyseg]{Quimper} Quilmes\index[helyseg]{Quilmes} Quetta\index[helyseg]{Quetta} Qingdao\index[helyseg]{Qingdao} Quanzhou\index[helyseg]{Quanzhou} Quebec\index[helyseg]{Quebec} Quito\index[helyseg]{Quito} Queens\index[helyseg]{Queens} Peoria\index[helyseg]{Peoria} Pretoria\index[helyseg]{Pretoria} Perth\index[helyseg]{Perth} Pittsburgh\index[helyseg]{Pittsburgh} Philadelphia\index[helyseg]{Philadelphia} Phoenix\index[helyseg]{Phoenix} Portland\index[helyseg]{Portland} Paris\index[helyseg]{Paris} Oxford\index[helyseg]{Oxford} Ostrava\index[helyseg]{Ostrava} Odessa\index[helyseg]{Odessa} Oslo\index[helyseg]{Oslo} Osaka\index[helyseg]{Osaka} Oakland\index[helyseg]{Oakland} Omaha\index[helyseg]{Omaha} Orlando\index[helyseg]{Orlando} Niamey\index[helyseg]{Niamey} Nagoya\index[helyseg]{Nagoya} Norman\index[helyseg]{Norman} Norfolk\index[helyseg]{Norfolk} Newark\index[helyseg]{Newark} Nashville\index[helyseg]{Nashville} Naples\index[helyseg]{Naples} Nairobi\index[helyseg]{Nairobi} Mobile\index[helyseg]{Mobile} Madison\index[helyseg]{Madison} Mumbai\index[helyseg]{Mumbai} Melbourne\index[helyseg]{Melbourne} Manila\index[helyseg]{Manila} Milwaukee\index[helyseg]{Milwaukee} Memphis\index[helyseg]{Memphis} Miami\index[helyseg]{Miami} Lubbock\index[helyseg]{Lubbock} Laredo\index[helyseg]{Laredo} Lansing\index[helyseg]{Lansing} Lincoln\index[helyseg]{Lincoln} Lima\index[helyseg]{Lima} Lagos\index[helyseg]{Lagos} Lisbon\index[helyseg]{Lisbon} London\index[helyseg]{London} Kabul\index[helyseg]{Kabul} Karachi\index[helyseg]{Karachi} Kobe\index[helyseg]{Kobe} Kampala\index[helyseg]{Kampala} Knoxville\index[helyseg]{Knoxville} Kingston\index[helyseg]{Kingston} Kyoto\index[helyseg]{Kyoto} Kansas\index[helyseg]{Kansas} Juba\index[helyseg]{Juba} Joliet\index[helyseg]{Joliet} Jersey\index[helyseg]{Jersey} Jeddah\index[helyseg]{Jeddah} Johannesburg\index[helyseg]{Johannesburg} Jakarta\index[helyseg]{Jakarta} Juneau\index[helyseg]{Juneau} Jacksonville\index[helyseg]{Jacksonville} Izmir\index[helyseg]{Izmir} Iquique\index[helyseg]{Iquique} Ibadan\index[helyseg]{Ibadan} Incheon\index[helyseg]{Incheon} Ithaca\index[helyseg]{Ithaca} Irvine\index[helyseg]{Irvine} Islamabad\index[helyseg]{Islamabad} Indianapolis\index[helyseg]{Indianapolis} Hanoi\index[helyseg]{Hanoi} Hobart\index[helyseg]{Hobart} Helsinki\index[helyseg]{Helsinki} Hartford\index[helyseg]{Hartford} Havana\index[helyseg]{Havana} Halifax\index[helyseg]{Halifax} Honolulu\index[helyseg]{Honolulu} Houston\index[helyseg]{Houston} Guangzhou\index[helyseg]{Guangzhou} Glendale\index[helyseg]{Glendale} Georgetown\index[helyseg]{Georgetown} Genoa\index[helyseg]{Genoa} Gary\index[helyseg]{Gary} Galveston\index[helyseg]{Galveston} Glasgow\index[helyseg]{Glasgow} Geneva\index[helyseg]{Geneva} Freetown\index[helyseg]{Freetown} Fukuoka\index[helyseg]{Fukuoka} Fremont\index[helyseg]{Fremont} Flint\index[helyseg]{Flint} Fresno\index[helyseg]{Fresno} Fargo\index[helyseg]{Fargo} Florence\index[helyseg]{Florence} Frankfurt\index[helyseg]{Frankfurt} Europe\index[helyseg]{Europe} Entebbe\index[helyseg]{Entebbe} Everett\index[helyseg]{Everett} Evansville\index[helyseg]{Evansville} Erie\index[helyseg]{Erie} Elpaso\index[helyseg]{Elpaso} Eugene\index[helyseg]{Eugene} Edmonton\index[helyseg]{Edmonton} Dover\index[helyseg]{Dover} Dayton\index[helyseg]{Dayton} Darwin\index[helyseg]{Darwin} Dakar\index[helyseg]{Dakar} Dublin\index[helyseg]{Dublin} Detroit\index[helyseg]{Detroit} Denver\index[helyseg]{Denver} Dallas\index[helyseg]{Dallas} Columbus\index[helyseg]{Columbus} Cincinnati\index[helyseg]{Cincinnati} Charlotte\index[helyseg]{Charlotte} Colombo\index[helyseg]{Colombo} Calgary\index[helyseg]{Calgary} Cairo\index[helyseg]{Cairo} Cleveland\index[helyseg]{Cleveland} Chicago\index[helyseg]{Chicago} Boise\index[helyseg]{Boise} Buffalo\index[helyseg]{Buffalo} Birmingham\index[helyseg]{Birmingham} Berlin\index[helyseg]{Berlin} Belfast\index[helyseg]{Belfast} Brisbane\index[helyseg]{Brisbane} Baltimore\index[helyseg]{Baltimore} Boston\index[helyseg]{Boston} Anchorage\index[helyseg]{Anchorage} Albany\index[helyseg]{Albany} Adelaide\index[helyseg]{Adelaide} Accra\index[helyseg]{Accra} Athens\index[helyseg]{Athens} Atlanta\index[helyseg]{Atlanta} Austin\index[helyseg]{Austin} Amsterdam\index[helyseg]{Amsterdam}

Amsterdam\index[helyseg]{Amsterdam} Atlanta\index[helyseg]{Atlanta} Accra\index[helyseg]{Accra} Albany\index[helyseg]{Albany} Boston\index[helyseg]{Boston} Brisbane\index[helyseg]{Brisbane} Berlin\index[helyseg]{Berlin} Buffalo\index[helyseg]{Buffalo} Chicago\index[helyseg]{Chicago} Cairo\index[helyseg]{Cairo} Colombo\index[helyseg]{Colombo} Cincinnati\index[helyseg]{Cincinnati} Dallas\index[helyseg]{Dallas} Detroit\index[helyseg]{Detroit} Dakar\index[helyseg]{Dakar} Dayton\index[helyseg]{Dayton} Edmonton\index[helyseg]{Edmonton} Elpaso\index[helyseg]{Elpaso} Evansville\index[helyseg]{Evansville} Entebbe\index[helyseg]{Entebbe} Frankfurt\index[helyseg]{Frankfurt} Fargo\index[helyseg]{Fargo} Flint\index[helyseg]{Flint} Fukuoka\index[helyseg]{Fukuoka} Geneva\index[helyseg]{Geneva} Galveston\index[helyseg]{Galveston} Genoa\index[helyseg]{Genoa} Glendale\index[helyseg]{Glendale} Houston\index[helyseg]{Houston} Halifax\index[helyseg]{Halifax} Hartford\index[helyseg]{Hartford} Hobart\index[helyseg]{Hobart} Indianapolis\index[helyseg]{Indianapolis} Irvine\index[helyseg]{Irvine} Incheon\index[helyseg]{Incheon} Iquique\index[helyseg]{Iquique} Jacksonville\index[helyseg]{Jacksonville} Jakarta\index[helyseg]{Jakarta} Jeddah\index[helyseg]{Jeddah} Joliet\index[helyseg]{Joliet} Kansas\index[helyseg]{Kansas} Kingston\index[helyseg]{Kingston} Kampala\index[helyseg]{Kampala} Karachi\index[helyseg]{Karachi} London\index[helyseg]{London} Lagos\index[helyseg]{Lagos} Lincoln\index[helyseg]{Lincoln} Laredo\index[helyseg]{Laredo} Miami\index[helyseg]{Miami} Milwaukee\index[helyseg]{Milwaukee} Melbourne\index[helyseg]{Melbourne} Madison\index[helyseg]{Madison} Nairobi\index[helyseg]{Nairobi} Nashville\index[helyseg]{Nashville} Norfolk\index[helyseg]{Norfolk} Norman\index[helyseg]{Norman} Orlando\index[helyseg]{Orlando} Oakland\index[helyseg]{Oakland} Oslo\index[helyseg]{Oslo} Ostrava\index[helyseg]{Ostrava} Paris\index[helyseg]{Paris} Phoenix\index[helyseg]{Phoenix} Pittsburgh\index[helyseg]{Pittsburgh} Pretoria\index[helyseg]{Pretoria} Queens\index[helyseg]{Queens} Quebec\index[helyseg]{Quebec} Qingdao\index[helyseg]{Qingdao} Quilmes\index[helyseg]{Quilmes} Rome\index[helyseg]{Rome} Richmond\index[helyseg]{Richmond} Riverside\index[helyseg]{Riverside} Rockford\index[helyseg]{Rockford} Seattle\index[helyseg]{Seattle} Seoul\index[helyseg]{Seoul} Spokane\index[helyseg]{Spokane} Springfield\index[helyseg]{Springfield} Tokyo\index[helyseg]{Tokyo} Tampa\index[helyseg]{Tampa} Tulsa\index[helyseg]{Tulsa} Tacoma\index[helyseg]{Tacoma} Utah\index[helyseg]{Utah} Uppsala\index[helyseg]{Uppsala} Ulsan\index[helyseg]{Ulsan} Ushuaia\index[helyseg]{Ushuaia} Vancouver\index[helyseg]{Vancouver} Vienna\index[helyseg]{Vienna} Vallejo\index[helyseg]{Vallejo} Varna\index[helyseg]{Varna} Washington\index[helyseg]{Washington} Waco\index[helyseg]{Waco} Winston\index[helyseg]{Winston} Wuhan\index[helyseg]{Wuhan} Xiamen\index[helyseg]{Xiamen} Xining\index[helyseg]{Xining} Xanthus\index[helyseg]{Xanthus} Xingu\index[helyseg]{Xingu} York\index[helyseg]{York} Yonkers\index[helyseg]{Yonkers} Yantai\index[helyseg]{Yantai} Ypsilanti\index[helyseg]{Ypsilanti} Zurich\index[helyseg]{Zurich} Zhengzhou\index[helyseg]{Zhengzhou} Zamboanga\index[helyseg]{Zamboanga} Zibo\index[helyseg]{Zibo} Austin\index[helyseg]{Austin} Athens\index[helyseg]{Athens} Adelaide\index[helyseg]{Adelaide} Anchorage\index[helyseg]{Anchorage} Baltimore\index[helyseg]{Baltimore} Belfast\index[helyseg]{Belfast} Birmingham\index[helyseg]{Birmingham} Boise\index[helyseg]{Boise} Cleveland\index[helyseg]{Cleveland} Calgary\index[helyseg]{Calgary} Charlotte\index[helyseg]{Charlotte} Columbus\index[helyseg]{Columbus} Denver\index[helyseg]{Denver} Dublin\index[helyseg]{Dublin} Darwin\index[helyseg]{Darwin} Dover\index[helyseg]{Dover} Eugene\index[helyseg]{Eugene} Erie\index[helyseg]{Erie} Everett\index[helyseg]{Everett} Europe\index[helyseg]{Europe} Florence\index[helyseg]{Florence} Fresno\index[helyseg]{Fresno} Fremont\index[helyseg]{Fremont} Freetown\index[helyseg]{Freetown} Glasgow\index[helyseg]{Glasgow} Gary\index[helyseg]{Gary} Georgetown\index[helyseg]{Georgetown} Guangzhou\index[helyseg]{Guangzhou} Honolulu\index[helyseg]{Honolulu} Havana\index[helyseg]{Havana} Helsinki\index[helyseg]{Helsinki} Hanoi\index[helyseg]{Hanoi} Islamabad\index[helyseg]{Islamabad} Ithaca\index[helyseg]{Ithaca} Ibadan\index[helyseg]{Ibadan} Izmir\index[helyseg]{Izmir} Juneau\index[helyseg]{Juneau} Johannesburg\index[helyseg]{Johannesburg} Jersey\index[helyseg]{Jersey} Juba\index[helyseg]{Juba} Kyoto\index[helyseg]{Kyoto} Knoxville\index[helyseg]{Knoxville} Kobe\index[helyseg]{Kobe} Kabul\index[helyseg]{Kabul} Lisbon\index[helyseg]{Lisbon} Lima\index[helyseg]{Lima} Lansing\index[helyseg]{Lansing} Lubbock\index[helyseg]{Lubbock} Memphis\index[helyseg]{Memphis} Manila\index[helyseg]{Manila} Mumbai\index[helyseg]{Mumbai} Mobile\index[helyseg]{Mobile} Naples\index[helyseg]{Naples} Newark\index[helyseg]{Newark} Nagoya\index[helyseg]{Nagoya} Niamey\index[helyseg]{Niamey} Omaha\index[helyseg]{Omaha} Osaka\index[helyseg]{Osaka} Odessa\index[helyseg]{Odessa} Oxford\index[helyseg]{Oxford} Portland\index[helyseg]{Portland} Philadelphia\index[helyseg]{Philadelphia} Perth\index[helyseg]{Perth} Peoria\index[helyseg]{Peoria} Quito\index[helyseg]{Quito} Quanzhou\index[helyseg]{Quanzhou} Quetta\index[helyseg]{Quetta} Quimper\index[helyseg]{Quimper} Reno\index[helyseg]{Reno} Raleigh\index[helyseg]{Raleigh} Rochester\index[helyseg]{Rochester} Roswell\index[helyseg]{Roswell} Sydney\index[helyseg]{Sydney} Savannah\index[helyseg]{Savannah} Syracuse\index[helyseg]{Syracuse} Toronto\index[helyseg]{Toronto} Tucson\index[helyseg]{Tucson} Toledo\index[helyseg]{Toledo} Topeka\index[helyseg]{Topeka} Tehran\index[helyseg]{Tehran} Vancouver\index[helyseg]{Vancouver} Venice\index[helyseg]{Venice} Victoria\index[helyseg]{Victoria} Verona\index[helyseg]{Verona} Wichita\index[helyseg]{Wichita} Wilmington\index[helyseg]{Wilmington} Warsaw\index[helyseg]{Warsaw} Xuzhou\index[helyseg]{Xuzhou} Xian\index[helyseg]{Xian} Xalapa\index[helyseg]{Xalapa} Yokohama\index[helyseg]{Yokohama} Yakima\index[helyseg]{Yakima} Yuma\index[helyseg]{Yuma} Zagreb\index[helyseg]{Zagreb} Zaria\index[helyseg]{Zaria} Zinder\index[helyseg]{Zinder}

Tyukfalva\index[helyseg]{Tyukfalva}
Tyukmajor\index[helyseg]{Tyukmajor}
Tyukos\index[helyseg]{Tyukos}
Tyukod\index[helyseg]{Tyukod}
Tyukostanya\index[helyseg]{Tyukostanya}
Tyukospuszta\index[helyseg]{Tyukospuszta}

Lyukfalva\index[helyseg]{Lyukfalva}
Lyukos\index[helyseg]{Lyukos}
Lyukasd\index[helyseg]{Lyukasd}
Lyukostanya\index[helyseg]{Lyukostanya}
Lyukospatak\index[helyseg]{Lyukospatak}
Lyukvolgy\index[helyseg]{Lyukvolgy}

Csongrád\index[helyseg]{Csongrád}
Csikszereda\index[helyseg]{Csikszereda}
Csorna\index[helyseg]{Csorna}

Zsámbék\index[helyseg]{Zsámbék}
Zsira\index[helyseg]{Zsira}
Zsombolya\index[helyseg]{Zsombolya}

Szada\index[helyseg]{Szada}
Szarvas\index[helyseg]{Szarvas}
Szeged\index[helyseg]{Szeged}
Szeghalom\index[helyseg]{Szeghalom}
Szentendre\index[helyseg]{Szentendre}
Szekszard\index[helyseg]{Szekszard}
Szentes\index[helyseg]{Szentes}
Szigetvar\index[helyseg]{Szigetvar}
Szolnok\index[helyseg]{Szolnok}
Szombathely\index[helyseg]{Szombathely}

Dzsungelfalva\index[helyseg]{Dzsungelfalva}
Dzsunka-tó\index[helyseg]{Dzsunka-tó}
Dzeta-függvény-tó\index[helyseg]{Dzeta-függvény-tó}


% Itt kiakad:
% A szórásnégyzet jele $D^2\xi$\index[helyseg]{0 d négyzet kszi@$D^2\xi$}.\\
% (...ez a "0 d" van a latex.pdf-ben)
% Úgy néz ki, jobb, ha a rendezési kulcs tiszta szöveg.

% itt viszont nem:
A szórásnégyzet jele $D^2\xi$\index[helyseg]{deviation kszi@\(D^2\xi\)}.


% lefut:
A $\Gamma$-eloszlás\index[helyseg]{eloszlás!gamma@$\Gamma$}
% lefut:
az egy $\Gamma$-eloszlás\index[helyseg]{gamma-eloszlás@$\Gamma$-eloszlás!eloszlásfüggvénye}

\smallskip
\hrule



\clearpage
\printindex[helyseg]

\end{document}
