% arara: pdflatex
% arara: pdflatex
% arara: pdflatex

% search for template in template/ subfolder
\makeatletter
\providecommand*{\input@path}{}
\g@addto@macro\input@path{{template/}}
\makeatother

% options:
% thesis=B bachelor's thesis
% thesis=M master's thesis
% czech thesis in Czech language
% slovak thesis in Slovak language
% english thesis in English language
% hidelinks remove colour boxes around hyperlinks

\documentclass[thesis=B,czech]{FITthesis}[2019/12/23]

\usepackage[utf8]{inputenc} % LaTeX source encoded as UTF-8

\makeatletter\AtBeginDocument{\let\@elt\relax}\makeatother % fix babel bug in ubuntu 20.04

\usepackage[english,main=czech]{babel} % load babel manually

% fix babel patching failed
%\usepackage{etoolbox}
%\makeatletter
%\newcommand\my@hyphen{-}
%\newcommand\my@apostroph{'}
%\patchcmd\select@language{-}{\my@hyphen }{}{\fail}
%\patchcmd\select@language{'}{\my@apostroph }{}{\fail}
%\makeatother

% load biblatex
%\usepackage[backend=biber,style=iso-numeric]{biblatex}
%\addbibresource{reference.bib}

% copy unicode symbols correctly from PDF, allow hyphenation of words with unicode chars
\usepackage[resetfonts]{cmap}
\usepackage{lmodern}
\usepackage[T1]{fontenc}

% misc imports
\usepackage{todonotes}
\usepackage{dirtree} %directory tree visualisation
\usepackage{listings}
\usepackage{float}
\usepackage{subfig}
\usepackage[ruled,linesnumbered,algochapter]{algorithm2e}
\usepackage{fancyvrb}
\usepackage{etoolbox}
\usepackage{relsize}
\usepackage{multirow}
\usepackage{tabularx}
\usepackage[acronym]{glossaries}
\usepackage{notoccite}

\usepackage{tikz}
\usetikzlibrary{automata,positioning}

% math
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amsthm}

% modest ref color
\usepackage{xcolor}
\hypersetup{
	colorlinks,
	linkcolor={blue},
	citecolor={blue},
	urlcolor={blue}
}

% % list of acronyms
% \usepackage[acronym,nonumberlist,toc,numberedsection=autolabel]{glossaries}
% \iflanguage{czech}{\renewcommand*{\acronymname}{Seznam pou{\v z}it{\' y}ch zkratek}}{}
% \makeglossaries

% math semantic stuff
\newcommand{\tg}{\mathop{\mathrm{tg}}} %cesky tangens
\newcommand{\cotg}{\mathop{\mathrm{cotg}}} %cesky cotangens

\newcommand{\set}[1]{{\{#1\}}}
\newcommand{\abs}[1]{{\left|#1\right|}}
\newcommand{\mfloor}[1]{\lfloor#1\rfloor}
\newcommand{\mceil}[1]{\lceil#1\rceil}
\newcommand{\mat}[1]{\textbf{#1}}
\newcommand{\str}[1]{\textbf{#1}}
\newcommand{\BigO}{\mathcal{O}}
\newcommand{\dotdot}{\mathinner {\ldotp \ldotp}}
\newcommand{\symdex}{\mathop{\mathrm{index}}}
\newcommand{\Border}{\mathop{\mathrm{Hranice}}}

% reference algorithm names
\newcommand{\method}[1]{\textsc{#1}}
\newcommand{\mcall}[2]{{\method{#1}(#2)}}

% code
\newcommand{\code}[1]{\mbox{\textsf{#1}}}

% theorems
\newtheorem{definition}{Definice}
\numberwithin{definition}{chapter}
\newtheorem*{annotation}{Značení}
\theoremstyle{remark}
\newtheorem*{example}{Příklad}
\newtheorem*{remark}{Poznámka}

% boxes for verbatims
\newsavebox{\boxa}
\newsavebox{\boxb}

% listings
\lstset{basicstyle=\sffamily,columns=fullflexible,breaklines=true,postbreak=\mbox{\textcolor{red}{$\hookrightarrow$}\space}}
\lstset{morekeywords={print,execute},morestring=[d]{"}}
\lstdefinestyle{verb}{basicstyle=\small\ttfamily, columns=fixed}

% algorithms
\SetFuncSty{textsc}
\SetFuncArgSty{}
\newcommand{\AlgoName}[2]{%
	\everypar={\relax}
	{\vspace{2pt}\Indm\textsc{#1}#2\par\Indp}
	\everypar={\nl}
}

\SetKw{KwAnd}{and}
\SetKw{KwOr}{or}
\SetKw{KwTo}{to}
\SetKw{KwDownTo}{downto}
\SetKw{KwEach}{each}
\SetKw{KwIn}{in}
%\SetKwFunction{Index}{Index}
\SetKwFunction{BCS}{BCS}
\SetKwFunction{GSS}{GSS}
\SetKwFunction{FMOcc}{Occ}

% numbered item in description
\AtBeginEnvironment{description}{\setcounter{enumi}{0}}
\newcommand{\nitem}[1]{\item[\stepcounter{enumi}\theenumi. {#1}]}

% search for figures in figures/ subfolder
\graphicspath{{figures/}{template/}}

% letter footnotes (to not conflict with citations)
\renewcommand{\thefootnote}{\emph{\alph{footnote}}}

% glossary
\renewcommand*{\glsgroupskip}{}
\renewcommand{\glossarysection}[2][]{}

\newacronym{xml}{XML}{eXtensible Markup Language}
\newacronym{alt}{ALT}{Algorithms Library Toolkit}
\newacronym[sort=ccvut]{cvut}{ČVUT}{České vysoké učení technické}
\newacronym{bwt}{BWT}{Burrows-Wheelerova transformace}
\newacronym{gpl3}{GPL3}{GNU General Public License, verze 3}
\newacronym{aql}{AQL}{Algorithm Query Language}
\newacronym{gcc}{GCC}{GNU C Compiler}
\newacronym{bcs}{BCS}{Bad-character shift}
\newacronym{gss}{GSS}{Good-suffix shift}
\newacronym{nfa}{NFA}{Nedeterministický konečný automat}
\newacronym{dfa}{DFA}{Deterministický konečný automat}

\makeglossaries

% % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
% ODTUD DAL VSE ZMENTE
% % % % % % % % % % % % % % % % % % % % % % % % % % % % % %

\department{Katedra teoretické informatiky}
\title{Burrows-Wheelerova transformace a~vyhledávání v~textu}
\authorGN{Martin} %(křestní) jméno (jména) autora
\authorFN{Prokopič} %příjmení autora
\authorWithDegrees{Martin Prokopič} %jméno autora včetně současných akademických titulů
\author{Martin Prokopič} %jméno autora bez akademických titulů
\supervisor{Ing. Jan Trávníček, Ph.D.}
\acknowledgements{Především bych chtěl poděkovat Ing. Janu Trávníčkovi, Ph.D. za vedení, podporu a~čas věnovaný konzultacím a~zodpovídání dotazů. Dále děkuji rodině a~přátelům za podporu nejen při psaní této práce, kterou jsem ještě více ocenil kvůli aktuální situací ve společnosti.}
\abstractCS{Tato bakalářská práce popisuje dopřednou a~zpětnou Burrows-Wheelerovu transformaci a~obsahuje rešerši existujících algoritmů řešících problém vyhledávání přesného vzorku v~transformovaném textu. Přiložena je potom naše otestovaná implementace popsaných datových struktur a~algoritmů do fakultního projektu Algorithms Library Toolkit.}
\abstractEN{This Bachelor's thesis describes forward and reverse Burrows-Wheeler transform and researches its applications for solving the string exact pattern matching problem in transformed domain. Attached is our tested implementation of described data structures and algorithms in the Algorithms Library Toolkit project.}
\placeForDeclarationOfAuthenticity{V~Praze}
\declarationOfAuthenticityOption{4} %volba Prohlášení (číslo 1-6)
\keywordsCS{Burrows-Wheelerova transformace, Algorithms Library Toolkit, FM-index, vyhledávání v~textu, řetězec}
\keywordsEN{Burrows-Wheeler transform, Algorithms Library Toolkit, FM-index, string pattern matching, string}
% \website{http://site.example/thesis} %volitelná URL práce, objeví se v tiráži - úplně odstraňte, nemáte-li URL práce

\begin{document}

\hyphenation{pod-při-hrád-ka pod-při-hrá-dek pod-při-hrád-ce pod-při-hrád-ky}

\shorthandoff{-} % fix babel bug with \cline

\begin{introduction}
	\input{chapters/0-Úvod.tex}
\end{introduction}

\chapter{Cíl práce}\label{ch:purpose}
\input{chapters/1-Cíl-práce.tex}

\chapter{Teoretický úvod}\label{ch:preliminaries}
\input{chapters/2-Teoretický-úvod.tex}

\chapter{Burrows-Wheelerova transformace}\label{ch:bwt}
\input{chapters/3-Burrows-Wheelerova-transformace.tex}

\chapter{Vyhledávání v~textu}\label{ch:searching}
\input{chapters/4-Vyhledávání-v-textu.tex}

\chapter{Implementace}\label{ch:implementation}
\input{chapters/5-Implementace.tex}

\chapter{Testování}\label{ch:testing}
\input{chapters/6-Testování.tex}

\begin{conclusion}
\input{chapters/7-Závěr.tex}
\end{conclusion}

%\printbibliography
\inputencoding{cp1250}
\bibliographystyle{csn690}
\bibliography{reference}
\inputencoding{utf8}

\appendix

\chapter{Seznam použitých zkratek}
\printglossary[type=\acronymtype]

\chapter{Uživatelská příručka}
\input{chapters/B-Uživatelská-příručka.tex}

\chapter{Obsah přiloženého CD}

%upravte podle skutecnosti

%\begin{figure}

 	\dirtree{%
 		.1 readme.txt\DTcomment{stručný popis obsahu CD}.
 		.1 exe\DTcomment{adresář se spustitelnou formou implementace}.
 		.1 src.
 		.2 automata-library\DTcomment{kód \acrshort{alt} s~implementovanými algoritmy}.
 		.2 thesis\DTcomment{zdrojová forma práce ve formátu \LaTeX{}}.
 		.1 perftest\DTcomment{experimentální měření algoritmů}.
 		.2 automata-library\DTcomment{kód \acrshort{alt} s~měřícím modulem}.
 		.2 results\DTcomment{adresář s~naměřenými výsledky}.
 		.2 evaluation.ipynb\DTcomment{notebook pro zpracování výsledků}.
 		.1 text.
 		.2 thesis.pdf\DTcomment{text práce ve formátu PDF}.
 	}

%\end{figure}

\end{document}
