-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprojekt.tex
506 lines (454 loc) · 26.7 KB
/
projekt.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
%==============================================================================
% Tento soubor použijte jako základ
% This file should be used as a base for the thesis
% Autoři / Authors: 2008 Michal Bidlo, 2022 Jaroslav Dytrych
% Kontakt pro dotazy a připomínky: sablona@fit.vutbr.cz
% Contact for questions and comments: sablona@fit.vutbr.cz
%==============================================================================
% kódování: UTF-8 (zmena prikazem iconv, recode nebo cstocs)
% encoding: UTF-8 (you can change it by command iconv, recode or cstocs)
%------------------------------------------------------------------------------
% zpracování / processing: make, make pdf, make clean
%==============================================================================
% Soubory, které je nutné upravit nebo smazat: / Files which have to be edited or deleted:
% projekt-20-literatura-bibliography.bib - literatura / bibliography
% projekt-01-kapitoly-chapters.tex - obsah práce / the thesis content
% projekt-01-kapitoly-chapters-en.tex - obsah práce v angličtině / the thesis content in English
% projekt-30-prilohy-appendices.tex - přílohy / appendices
% projekt-30-prilohy-appendices-en.tex - přílohy v angličtině / appendices in English
%==============================================================================
%\documentclass[]{fitthesis} % bez zadání - pro začátek práce, aby nebyl problém s překladem
\documentclass[english,zadani]{fitthesis} % without assignment - for the work start to avoid compilation problem
%\documentclass[zadani]{fitthesis} % odevzdani do IS VUT a/nebo tisk s barevnými odkazy - odkazy jsou barevné
%\documentclass[english,zadani]{fitthesis} % for submission to the IS VUT and/or print with color links - links are color
%\documentclass[zadani,print]{fitthesis} % pro černobílý tisk - odkazy jsou černé
%\documentclass[english,zadani,print]{fitthesis} % for the black and white print - links are black
%\documentclass[zadani,cprint]{fitthesis} % pro barevný tisk - odkazy jsou černé, znak VUT barevný
%\documentclass[english,zadani,cprint]{fitthesis} % for the print - links are black, logo is color
% * Je-li práce psaná v anglickém jazyce, je zapotřebí u třídy použít
% parametr english následovně:
% If thesis is written in English, it is necessary to use
% parameter english as follows:
% \documentclass[english]{fitthesis}
% * Je-li práce psaná ve slovenském jazyce, je zapotřebí u třídy použít
% parametr slovak následovně:
% If the work is written in the Slovak language, it is necessary
% to use parameter slovak as follows:
% \documentclass[slovak]{fitthesis}
% * Je-li práce psaná v anglickém jazyce se slovenským abstraktem apod.,
% je zapotřebí u třídy použít parametry english a enslovak následovně:
% If the work is written in English with the Slovak abstract, etc.,
% it is necessary to use parameters english and enslovak as follows:
% \documentclass[english,enslovak]{fitthesis}
% Základní balíčky jsou dole v souboru šablony fitthesis.cls
% Basic packages are at the bottom of template file fitthesis.cls
% zde můžeme vložit vlastní balíčky / you can place own packages here
% Pro seznam zkratek lze využít balíček Glossaries - nutno odkomentovat i níže a při kompilaci z konzoly i v Makefile (plnou verzi pro Perl, nebo lite)
% The Glossaries package can be used for the list of abbreviations - it is necessary to uncomment also below. When compiling from the console also in the Makefile (full version for Perl or lite)
%\usepackage{glossaries}
%\usepackage{glossary-superragged}
%\makeglossaries
% Nastavení cesty k obrázkům
% Setting of a path to the pictures
%\graphicspath{{obrazky-figures/}{./obrazky-figures/}}
%\graphicspath{{obrazky-figures/}{../obrazky-figures/}}
%---rm---------------
\renewcommand{\rmdefault}{lmr}%zavede Latin Modern Roman jako rm / set Latin Modern Roman as rm
%---sf---------------
\renewcommand{\sfdefault}{qhv}%zavede TeX Gyre Heros jako sf
%---tt------------
\renewcommand{\ttdefault}{lmtt}% zavede Latin Modern tt jako tt
% vypne funkci šablony, která automaticky nahrazuje uvozovky,
% aby nebyly prováděny nevhodné náhrady v popisech API apod.
% disables function of the template which replaces quotation marks
% to avoid unnecessary replacements in the API descriptions etc.
\csdoublequotesoff
\usepackage{url}
\usepackage{subcaption}
\usepackage{listings}
\usepackage{color}
\definecolor{lightgray}{rgb}{0.95, 0.95, 0.95}
\definecolor{darkgray}{rgb}{0.4, 0.4, 0.4}
%\definecolor{purple}{rgb}{0.65, 0.12, 0.82}
\definecolor{editorGray}{rgb}{0.95, 0.95, 0.95}
\definecolor{editorOcher}{rgb}{1, 0.5, 0} % #FF7F00 -> rgb(239, 169, 0)
\definecolor{editorGreen}{rgb}{0, 0.5, 0} % #007C00 -> rgb(0, 124, 0)
\definecolor{orange}{rgb}{1,0.45,0.13}
\definecolor{olive}{rgb}{0.17,0.59,0.20}
\definecolor{brown}{rgb}{0.69,0.31,0.31}
\definecolor{purple}{rgb}{0.38,0.18,0.81}
\definecolor{lightblue}{rgb}{0.1,0.57,0.7}
\definecolor{lightred}{rgb}{1,0.4,0.5}
\usepackage{upquote}
\usepackage{listings}
% CSS
\lstdefinelanguage{CSS}{
keywords={color,background-image:,margin,padding,font,weight,display,position,top,left,right,bottom,list,style,border,size,white,space,min,width, transition:, transform:, transition-property, transition-duration, transition-timing-function},
sensitive=true,
morecomment=[l]{//},
morecomment=[s]{/*}{*/},
morestring=[b]',
morestring=[b]",
alsoletter={:},
alsodigit={-}
}
% JavaScript
\lstdefinelanguage{JavaScript}{
morekeywords={typeof, new, true, false, catch, function, return, null, catch, switch, var, if, in, while, do, else, case, break},
morecomment=[s]{/*}{*/},
morecomment=[l]//,
morestring=[b]",
morestring=[b]'
}
\lstdefinelanguage{HTML5}{
language=html,
sensitive=true,
alsoletter={<>=-},
morecomment=[s]{<!-}{-->},
tag=[s],
otherkeywords={
% General
>,
% Standard tags
<!DOCTYPE,
</html, <html, <head, <title, </title, <style, </style, <link, </head, <meta, />,
% body
</body, <body,
% Divs
</div, <div, </div>,
% Paragraphs
</p, <p, </p>,
% scripts
</script, <script,
% More tags...
<canvas, /canvas>, <svg, <rect, <animateTransform, </rect>, </svg>, <video, <source, <iframe, </iframe>, </video>, <image, </image>, <header, </header, <article, </article
},
ndkeywords={
% General
=,
% HTML attributes
charset=, src=, id=, width=, height=, style=, type=, rel=, href=,
% SVG attributes
fill=, attributeName=, begin=, dur=, from=, to=, poster=, controls=, x=, y=, repeatCount=, xlink:href=,
% properties
margin:, padding:, background-image:, border:, top:, left:, position:, width:, height:, margin-top:, margin-bottom:, font-size:, line-height:,
% CSS3 properties
transform:, -moz-transform:, -webkit-transform:,
animation:, -webkit-animation:,
transition:, transition-duration:, transition-property:, transition-timing-function:,
}
}
\lstdefinestyle{htmlcssjs} {%
% General design
% backgroundcolor=\color{editorGray},
basicstyle={\footnotesize\ttfamily},
frame=b,
% line-numbers
xleftmargin={0.75cm},
numbers=left,
stepnumber=1,
firstnumber=1,
numberfirstline=true,
% Code design
identifierstyle=\color{black},
keywordstyle=\color{blue}\bfseries,
ndkeywordstyle=\color{editorGreen}\bfseries,
stringstyle=\color{editorOcher}\ttfamily,
commentstyle=\color{brown}\ttfamily,
% Code
language=HTML5,
alsolanguage=JavaScript,
alsodigit={.:;},
tabsize=2,
showtabs=false,
showspaces=false,
showstringspaces=false,
extendedchars=true,
breaklines=true,
% German umlauts
literate=%
{Ö}{{\"O}}1
{Ä}{{\"A}}1
{Ü}{{\"U}}1
{ß}{{\ss}}1
{ü}{{\"u}}1
{ä}{{\"a}}1
{ö}{{\"o}}1
}
% =======================================================================
% balíček "hyperref" vytváří klikací odkazy v pdf, pokud tedy použijeme pdflatex
% problém je, že balíček hyperref musí být uveden jako poslední, takže nemůže
% být v šabloně
% "hyperref" package create clickable links in pdf if you are using pdflatex.
% Problem is that this package have to be introduced as the last one so it
% can not be placed in the template file.
\ifWis
\ifx\pdfoutput\undefined % nejedeme pod pdflatexem / we are not using pdflatex
\else
\usepackage{color}
\usepackage[unicode,colorlinks,hyperindex,plainpages=false,pdftex]{hyperref}
\definecolor{hrcolor-ref}{RGB}{223,52,30}
\definecolor{hrcolor-cite}{HTML}{2F8F00}
\definecolor{hrcolor-urls}{HTML}{092EAB}
\hypersetup{
linkcolor=hrcolor-ref,
citecolor=hrcolor-cite,
filecolor=magenta,
urlcolor=hrcolor-urls
}
\def\pdfBorderAttrs{/Border [0 0 0] } % bez okrajů kolem odkazů / without margins around links
\pdfcompresslevel=9
\fi
\else % pro tisk budou odkazy, na které se dá klikat, černé / for the print clickable links will be black
\ifx\pdfoutput\undefined % nejedeme pod pdflatexem / we are not using pdflatex
\else
\usepackage{color}
\usepackage[unicode,colorlinks,hyperindex,plainpages=false,pdftex,urlcolor=black,linkcolor=black,citecolor=black]{hyperref}
\definecolor{links}{rgb}{0,0,0}
\definecolor{anchors}{rgb}{0,0,0}
\def\AnchorColor{anchors}
\def\LinkColor{links}
\def\pdfBorderAttrs{/Border [0 0 0] } % bez okrajů kolem odkazů / without margins around links
\pdfcompresslevel=9
\fi
\fi
% Řešení problému, kdy klikací odkazy na obrázky vedou za obrázek
% This solves the problems with links which leads after the picture
\usepackage[all]{hypcap}
% Informace o práci/projektu / Information about the thesis
%---------------------------------------------------------------------------
\projectinfo{
%Prace / Thesis
project={DP}, %typ práce BP/SP/DP/DR / thesis type (SP = term project)
year={2024}, % rok odevzdání / year of submission
date=\today, % datum odevzdání / submission date
%Nazev prace / thesis title
title.cs={
Webová aplikace pro nastavení ergonomického posedu na jízdním kole}, % název práce v češtině či slovenštině (dle zadání) / thesis title in czech language (according to assignment)
title.en={Web application for setting up an ergonomic position on a bicycle}, % název práce v angličtině / thesis title in english
%title.length={14.5cm}, % nastavení délky bloku s titulkem pro úpravu zalomení řádku (lze definovat zde nebo níže) / setting the length of a block with a thesis title for adjusting a line break (can be defined here or below)
%sectitle.length={14.5cm}, % nastavení délky bloku s druhým titulkem pro úpravu zalomení řádku (lze definovat zde nebo níže) / setting the length of a block with a second thesis title for adjusting a line break (can be defined here or below)
%dectitle.length={14.5cm}, % nastavení délky bloku s titulkem nad prohlášením pro úpravu zalomení řádku (lze definovat zde nebo níže) / setting the length of a block with a thesis title above declaration for adjusting a line break (can be defined here or below)
%Autor / Author
author.name={Jiří}, % jméno autora / author name
author.surname={Vlasák}, % příjmení autora / author surname
author.title.p={Bc.}, % titul před jménem (nepovinné) / title before the name (optional)
%author.title.a={Ph.D.}, % titul za jménem (nepovinné) / title after the name (optional)
%Ustav / Department
department={UPGM}, % doplňte příslušnou zkratku dle ústavu na zadání: UPSY/UIFS/UITS/UPGM / fill in appropriate abbreviation of the department according to assignment: UPSY/UIFS/UITS/UPGM
% Školitel / supervisor
supervisor.name={Martin}, % jméno školitele / supervisor name
supervisor.surname={Čadík}, % příjmení školitele / supervisor surname
supervisor.title.p={doc. Ing.}, %titul před jménem (nepovinné) / title before the name (optional)
supervisor.title.a={Ph.D.}, %titul za jménem (nepovinné) / title after the name (optional)
% Klíčová slova / keywords
keywords.cs={odhad pózy, bikefit, zpracování videa, webová aplikace, RTMPose}, % klíčová slova v českém či slovenském jazyce / keywords in czech or slovak language
keywords.en={pose estimation, bikefit, video processing, web application, RTMPose}, % klíčová slova v anglickém jazyce / keywords in english
%keywords.en={Here, individual keywords separated by commas will be written in English.},
% Abstrakt / Abstract
abstract.cs={Tato práce se zaměřuje na vývoj webové aplikace, která uživatelům pomůže nastavit ergonomickou polohu na jízdním kole. Aplikace využívá model odhadu pózy RTMPose k analýze videa uživatele šlapajícího na kole z profilu, poté vypočítá rozličné úhly kloubů a poskytne uživateli návrhy na změnu výšky sedla kola, předozadní polohu sedla, výšky řídítek a předozadní polohy řídítek pro dosažení ergonomičtějšího posedu. Aplikace je implementována pomocí frameworku SvelteKit. Model pro odhad pózy běží na straně klienta pomocí knihovny TensorFlow.js. Pro vyhodnocení a zlepšení přesnosti modelu odhadu pózy byla vytvořena datová sada 2309 fotografií autora šlapajícího na kole. Po fine-tunování modelu na tomto datovém souboru se normovaná průměrná chyba modelu výrazně snížila z 2,54 na 1,51 (zlepšení o 40 \%). Experimenty ukázaly, že aplikace detekuje změny úhlu způsobené změnami výšky sedla a že ji lze použít k nastavení výšky sedla.
}, % abstrakt v českém či slovenském jazyce / abstract in czech or slovak language
abstract.en={
This work focuses on the development of a web application that helps users to set up an ergonomic position on a bicycle. The application uses the RTMPose pose estimation model to analyze a side view video of the user pedaling their bicycle, then computes various joint angles and provides the user suggestions for changing the bicycle saddle height, saddle setback, handlebar height and handlebar reach to achieve more ergonomic position. The application is implemented using the SvelteKit framework. The pose estimation model runs on the client-side using the TensorFlow.js library. To evaluate and improve the accuracy of the pose estimation model, a dataset of 2309 photos of the author pedaling his bicycle was created. After fine-tuning the model on this dataset, the model Normalized Mean Error significantly decreased from 2.54 to 1.51 (40\% improvement). Experiments showed that that the application successfully detects angle changes caused by the saddle height changes and that the application can be used to set up the saddle height.
}, % abstrakt v anglickém jazyce / abstract in english
%abstract.en={An abstract of the work in English will be written in this paragraph.},
% Prohlášení (u anglicky psané práce anglicky, u slovensky psané práce slovensky; u projektové praxe lze zakomentovat) / Declaration (for thesis in english should be in english; for project practice can be commented out)
% declaration={Prohlašuji, že jsem tuto diplomovou práci vypracoval samostatně pod vedením pana doc. Ing. Martina Čadíka, Ph.D a uvedl jsem všechny literární prameny, publikace a další zdroje, ze kterých jsem čerpal.},
declaration={I hereby declare that this Master's thesis was prepared as an original work by the author under the supervision of Mr. doc. Ing. Martin Čadík, Ph.D and all the relevant information sources, literature, and other sources have been properly cited and included in the bibliography.},
% Poděkování (nepovinné, nejlépe v jazyce práce; nechcete-li, zakomentujte pro skrytí nadpisu) / Acknowledgement (optional, ideally in the language of the thesis; comment out for hiding including heading)
% acknowledgment={V této sekci je možno uvést poděkování vedoucímu práce a těm, kteří poskytli odbornou pomoc
% (externí zadavatel, konzultant apod.).},
acknowledgment={I would like to express my gratitude to my supervisor, Mr. doc. Ing. Martin Čadík, Ph.D, for his guidance, valuable advice, and support throughout the work on this thesis.},
% Rozšířený abstrakt (cca 3 normostrany) - lze definovat zde nebo níže / Extended abstract (approximately 3 standard pages) - can be defined here or below
%extendedabstract={Do tohoto odstavce bude zapsán rozšířený výtah (abstrakt) práce v českém (slovenském) jazyce.},
%extabstract.odd={true}, % Začít rozšířený abstrakt na liché stránce? / Should extended abstract start on the odd page?
%faculty={FIT}, % FIT/FEKT/FSI/FA/FCH/FP/FAST/FAVU/USI/DEF
faculty.cs={Fakulta informačních technologií}, % Fakulta v češtině - pro využití této položky výše zvolte fakultu DEF / Faculty in Czech - for use of this entry select DEF above
faculty.en={Faculty of Information Technology}, % Fakulta v angličtině - pro využití této položky výše zvolte fakultu DEF / Faculty in English - for use of this entry select DEF above
department.cs={Ústav matematiky}, % Ústav v češtině - pro využití této položky výše zvolte ústav DEF nebo jej zakomentujte / Department in Czech - for use of this entry select DEF above or comment it out
department.en={Institute of Mathematics} % Ústav v angličtině - pro využití této položky výše zvolte ústav DEF nebo jej zakomentujte / Department in English - for use of this entry select DEF above or comment it out
}
% Rozšířený abstrakt (cca 3 normostrany) - lze definovat zde nebo výše / Extended abstract (approximately 3 standard pages) - can be defined here or above
\extendedabstract{Tato práce se zaměřuje na vývoj webové aplikace, která uživatelům pomáhá nastavit ergonomickou polohu na jízdním kole. Aplikace využívá model odhadu pózy RTMPose k analýze videa uživatele šlapajícího na kole z profilu, poté vypočítá rozličné úhly kloubů a tyto úhly porovná s doporučenými hodnotami. Na základě tohoto porovnání aplikace následně poskytne uživateli návrhy na změnu výšky sedla kola, předozadní polohu sedla, výšky řídítek a předozadní polohy řídítek pro dosažení ergonomičtějšího posedu. Aplikace umožňuje nastavení posedu pro 3 typy kol (silniční, gravel a horské) a umožňuje uživateli vybrat si ze 3 typů posedů (komfort, výkon a kompromis mezi komfortem a výkonem).
První část práce se zabývá pozadím nastavování posedu na jízdním kole, možnými nastaveními kola a existujícími aplikacemi a metodami pro nastavení posedu na kole a jejich limitacemi. Další části se zabývají popisem metod sledování klíčových bodů těla ve videu. Nejdříve je představena jednoduchá metoda pro sledování nálepek a jsou diskutovány její nedostatky. Následně jsou představeny rozličné metody pro odhad pózy, které nálepky nepotřebují.
Pro vyhodnocení a zlepšení přesnosti modelů odhadu pózy byla vytvořena datová sada 2309 fotografií autora šlapajícího na kole. Anotace pro tuto datovou sadu byly získany pomocí sledování 8 barevných nálepek nalepených na straně těla otočené ke kameře. Nálepky byly sledovány pomocí jednoduchého algoritmu založeného na barevném prahování a trackování, který je v této práci také popsán. Zbylé anotace byly získány automaticky pomocí modelu odhadu pózy RTMPose.
Evaluace na této datové sadě ukázala, že modely RTMPose dosahují dobrých výsledků v odhadu pózy, ale chyba modelu je výrazně vyšší u klíčových bodů na noze (špička nohy a pata). Pro zlepšení přesnosti modelu byl model RTMPose fine-tunován na této datové sadě. Po fine-tunování modelu na tomto datovém souboru se normovaná průměrná chyba modelu výrazně snížila z 2,54 na 1,51 (zlepšení o 40 \%). Fine-tunování proběhlo pomocí knihovny MMpose.
Aplikace je implementována jako single page aplikace pomocí frameworku SvelteKit. Model pro odhad pózy běží na straně klienta pomocí knihovny TensorFlow.js. Zpracování videa je rovněž prováděno na straně klienta pomocí WebCodecs API. Výsledné predikce modelu a vypočítané úhly kloubů jsou po zpracování zobrazeny uživateli nad videem za využití HTML canvas elementu. Aplikace kromě prezentování doporučených změn pro posed uživatele také zobrazuje pokročilejší statistiky a grafy jak se mění úhly kloubů pro jednotlivé cykly šlapání.
Experimenty ukázaly, že aplikace detekuje změny úhlu způsobené změnami výšky sedla a že ji lze použít k nastavení výšky sedla. Zároveň se ukázalo, že doporučení aplikace dobře korespondovaly s pocity autora při různých výškách sedla. Následné měření výkonu ukázaly, že aplikace zpracuje jeden snímek videa za asi 160-200 ms na starším stolním počítači s využitím WebGPU backendu a za asi 325-400 ms na mobilním telefonu s využitím WebGL backendu.
}
% Začít rozšířený abstrakt na liché stránce? / Should extended abstract start on the odd page?
%\extabstractodd{true}
% nastavení délky bloku s titulkem pro úpravu zalomení řádku - lze definovat zde nebo výše / setting the length of a block with a thesis title for adjusting a line break - can be defined here or above
%\titlelength{14.5cm}
% nastavení délky bloku s druhým titulkem pro úpravu zalomení řádku - lze definovat zde nebo výše / setting the length of a block with a second thesis title for adjusting a line break - can be defined here or above
%\sectitlelength{14.5cm}
% nastavení délky bloku s titulkem nad prohlášením pro úpravu zalomení řádku - lze definovat zde nebo výše / setting the length of a block with a thesis title above declaration for adjusting a line break - can be defined here or above
%\dectitlelength{14.5cm}
% řeší první/poslední řádek odstavce na předchozí/následující stránce
% solves first/last row of the paragraph on the previous/next page
\clubpenalty=10000
\widowpenalty=10000
% checklist
\newlist{checklist}{itemize}{1}
\setlist[checklist]{label=$\square$}
% Kompilace po částech (rychlejší, ale v náhledu nemusí být vše aktuální)
% Compilation piecewise (faster, but not all parts in preview will be up-to-date)
% Další informace viz / For more information see https://www.overleaf.com/learn/latex/Multi-file_LaTeX_projects
% \usepackage{subfiles}
% Nechcete-li, aby se u oboustranného tisku roztahovaly mezery pro zaplnění stránky, odkomentujte následující řádek / If you do not want enlarged spacing for filling of the pages in case of duplex printing, uncomment the following line
% \raggedbottom
\begin{document}
% Vysazeni titulnich stran / Typesetting of the title pages
% ----------------------------------------------
\maketitle
% Obsah
% ----------------------------------------------
\setlength{\parskip}{0pt}
{\hypersetup{hidelinks}\tableofcontents}
% Seznam obrazku a tabulek (pokud prace obsahuje velke mnozstvi obrazku, tak se to hodi)
% List of figures and list of tables (if the thesis contains a lot of pictures, it is good)
% \ifczech
% \renewcommand\listfigurename{Seznam obrázků}
% \fi
% \ifslovak
% \renewcommand\listfigurename{Zoznam obrázkov}
% \fi
% {\hypersetup{hidelinks}\listoffigures}
% \ifczech
% \renewcommand\listtablename{Seznam tabulek}
% \fi
% \ifslovak
% \renewcommand\listtablename{Zoznam tabuliek}
% \fi
% {\hypersetup{hidelinks}\listoftables}
% Seznam zkratek / List of abbreviations
%\ifczech
% \renewcommand*\glossaryname{Seznam zkratek}%
% \renewcommand*\entryname{Zkratka}
% \renewcommand*\descriptionname{Význam}
%\fi
%\ifslovak
% \renewcommand*\glossaryname{Zoznam skratiek}%
% \renewcommand*\entryname{Skratka}
% \renewcommand*\descriptionname{Význam}
%\fi
%\ifenglish
% \renewcommand*\glossaryname{List of abbreviations}%
% \renewcommand*\entryname{Abbreviation}
% \renewcommand*\descriptionname{Meaning}
%\fi
% Definice zkratek - z textu se odkazují např. \Gls{TF–IDF}
% Definition of abbreviations - referred from the text e.g. \Gls{TF–IDF}
%\newglossaryentry{TF–IDF}
%{
% name={TF–IDF},
% description={Term Frequency-Inverse Document Frequency}
%}
%
%\setglossarystyle{superragged}
%\printglossaries
\ifODSAZ
\setlength{\parskip}{0.5\bigskipamount}
\else
\setlength{\parskip}{0pt}
\fi
% vynechani stranky v oboustrannem rezimu
% Skip the page in the two-sided mode
\iftwoside
\cleardoublepage
\fi
% Text prace / Thesis text
% ----------------------------------------------
\ifenglish
\input{projekt-01-kapitoly-chapters-en}
\else
\input{projekt-01-kapitoly-chapters}
\fi
% Kompilace po částech (viz výše, nutno odkomentovat a zakomentovat input výše)
% Compilation piecewise (see above, it is necessary to uncomment it and comment out input above)
%\subfile{chapters/projekt-01-uvod-introduction}
% ...
%\subfile{chapters/projekt-05-zaver-conclusion}
% Pouzita literatura / Bibliography
% ----------------------------------------------
\ifslovak
\makeatletter
\def\@openbib@code{\addcontentsline{toc}{chapter}{Literatúra}}
\makeatother
\bibliographystyle{bib-styles/Pysny/skplain}
\else
\ifczech
\makeatletter
\def\@openbib@code{\addcontentsline{toc}{chapter}{Literatura}}
\makeatother
\bibliographystyle{bib-styles/Pysny/czplain}
\else
\makeatletter
\def\@openbib@code{\addcontentsline{toc}{chapter}{Bibliography}}
\makeatother
\bibliographystyle{bib-styles/Pysny/enplain}
% \bibliographystyle{alpha}
\fi
\fi
\begin{flushleft}
\bibliography{projekt-20-literatura-bibliography}
\end{flushleft}
% vynechani stranky v oboustrannem rezimu
% Skip the page in the two-sided mode
\iftwoside
\cleardoublepage
\fi
% Prilohy / Appendices
% ---------------------------------------------
\appendix
\ifczech
\renewcommand{\appendixpagename}{Přílohy}
\renewcommand{\appendixtocname}{Přílohy}
\renewcommand{\appendixname}{Příloha}
\fi
\ifslovak
\renewcommand{\appendixpagename}{Prílohy}
\renewcommand{\appendixtocname}{Prílohy}
\renewcommand{\appendixname}{Príloha}
\fi
% \appendixpage
% vynechani stranky v oboustrannem rezimu
% Skip the page in the two-sided mode
%\iftwoside
% \cleardoublepage
%\fi
\ifslovak
% \section*{Zoznam príloh}
% \addcontentsline{toc}{section}{Zoznam príloh}
\else
\ifczech
% \section*{Seznam příloh}
% \addcontentsline{toc}{section}{Seznam příloh}
\else
% \section*{List of Appendices}
% \addcontentsline{toc}{section}{List of Appendices}
\fi
\fi
\startcontents[chapters]
\setlength{\parskip}{0pt}
% seznam příloh / list of appendices
% \printcontents[chapters]{l}{0}{\setcounter{tocdepth}{2}}
\ifODSAZ
\setlength{\parskip}{0.5\bigskipamount}
\else
\setlength{\parskip}{0pt}
\fi
% vynechani stranky v oboustrannem rezimu
\iftwoside
\cleardoublepage
\fi
% Přílohy / Appendices
\ifenglish
\input{projekt-30-prilohy-appendices-en}
\else
\input{projekt-30-prilohy-appendices}
\fi
% Kompilace po částech (viz výše, nutno odkomentovat)
% Compilation piecewise (see above, it is necessary to uncomment it)
% \subfile{projekt-30-prilohy-appendices}
\end{document}