-
Notifications
You must be signed in to change notification settings - Fork 1
/
maltoni_niccolo_tesi.tex
240 lines (218 loc) · 11.5 KB
/
maltoni_niccolo_tesi.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
%% Direttive TeXworks:
% !TeX root = ./maltoni_niccolo_tesi.tex
% !TEX encoding = UTF-8 Unicode
% !TEX program = arara
% !TEX TS-program = arara
% !TeX spellcheck = it-IT
% arara: pdflatex: { synctex: yes, action: batchmode, options: "-halt-on-error -file-line-error-style" }
% arara: frontespizio
% arara: biber
% arara: pdflatex: { synctex: yes, action: batchmode, options: "-halt-on-error -file-line-error-style" }
% arara: pdflatex: { synctex: yes, action: nonstopmode, options: "-halt-on-error -file-line-error-style" }
\documentclass[%
a4paper, % specifica il formato A4 (default: letter)
12pt, % specifica la dimensione del carattere a 12
% openright, % serve per aprire i capitoli sulla destra
openany, % serve per aprire i capitoli su qualunque pagina
oneside, % serve per impaginare per stampa solo fronte
% twoside, % serve per impaginare per stampa fronteretro
% draft, % evidenzia i punti in cui il testo sborda
titlepage % opzione necessaria per il pacchetto frontespizio
]{book}
\usepackage{a4wide} % consente di avere più spazio nell'A4
%% ORDINE IMPORTANTE INIZIO %%%%%%%%%%%%
\usepackage[T1]{fontenc} % serve per impostare la codifica di output del font
\usepackage{textcomp} % serve per fornire supporto ai Text Companion fonts
\usepackage[utf8]{inputenc} % serve per impostare la codifica di input del font
\usepackage[
english, % utilizza l'inglese come lingua secondaria
italian % utilizza l'italiano come lingua primaria
]{%
babel, % serve per scrivere Indice, Capitolo, etc in Italiano
varioref % introduce il comando \vref da usarsi nello stesso modo del comune \ref per i riferimenti
}
\usepackage{lmodern} % carica una variante Latin Modern prodotto dal GUST
%% ORDINE IMPORTANTE FINE %%%%%%%%%%%%%%
\usepackage{indentfirst} % serve per avere l'indentazione nel primo paragrafo
\usepackage{setspace} % serve a fornire comandi di interlinea standard
\usepackage{fancyhdr} % serve per impaginare bene la tesi
\usepackage{xcolor} % serve per la gestione dei colori nel testo
\usepackage{graphicx} % serve per includere immagini e grafici
%% Configurazione listings orribile, ma funziona %%%%%%%%%%%%%%%%%%%%
\usepackage{listings} % serve ad inserire blocchi di codice
\lstdefinelanguage{yaml}{
basicstyle=\scriptsize\sffamily\color{black},
string=[s]{"}{"},
stringstyle=\color{blue},
comment=[l]{:},
commentstyle=\color{blue},
frame=single,
numbers=left,
numbersep=5pt,
numberstyle=\tiny\color{gray},
showspaces=false,
showstringspaces=false,
tabsize=1
}
\lstdefinelanguage{json}{
basicstyle=\scriptsize\sffamily\color{black},
string=[s]{"}{"},
stringstyle=\color{black},
comment=[l]{:},
commentstyle=\color{blue},
frame=single,
numbers=left,
numbersep=5pt,
numberstyle=\tiny\color{gray},
showspaces=false,
showstringspaces=false,
tabsize=1
}
\usepackage{subfigure} % serve a creare sottofigure
\usepackage{wrapfig} % serve per includere figure "wrapped" nel testo
\usepackage[%
write, % alternativa a nowrite, crea il file *-frn.tex
%nowrite, % alternativa a write, non crea il file *-frn.tex
standard, % alternativa a suftesi, crea un frontespizio standard
%signatures, % lascia fra i nomi dei relatori lo spazio per le loro firme
%noadvisor, % opzione per non mostrare il relatore
swapnames, % scambia la posizione dei nomi di relatori e candidato
normal % alternativa a sans, utilizza un font "normale"
%sans, % alternativa a normal, utilizza un font senza grazie
%norules, % eliminano i filetti fra il nome dell'ateneo e quello della facoltà e sopra l'indicazione dell'anno accademico
%nouppercase, % disabilita il maiuscoletto nel nome della facoltà
%noinputenc, % disabilita la trascrizione dell'inputenc nel preambolo
%onlyinclude % disabilita tutte le altre opzioni
]{frontespizio} % serve a costruire un buon frontespizio
\usepackage[%
strict, % rende tutti gli warning degli errori
autostyle, % imposta lo stile in base al linguaggio specificato in babel
english=american, % imposta lo stile per l'inglese
italian=guillemets % imposta lo stile per l'italiano
]{csquotes} % serve a impostare lo stile delle virgolette
\usepackage[%
maxcitenames=2, % massimo numero di nomi nelle citazioni
mincitenames=2, % minimo numero di nomi nelle citazioni
maxbibnames=99, % massimo numero di nomi nella blibliografia
minbibnames=99, % minimo numero di nomi nella blibliografia
style=numeric,
giveninits=true,
backend=biber % specifica il backend per la bibliografia
]{biblatex} % si interfaccia con bibtex e biber per la bibliografia
\addbibresource{biblio.bib}
\usepackage[%
% page, % Aggiunge una pagina con la scritta Appendices
% toc, % Aggiunge un campo Appendices nell'indice
titletoc, % Aggiunge la parola Appendice per ogni capitolo dell'appendice nell'indice
title% % Aggiunge la parola Appendice per ogni capitolo dell'appendice
]{appendix} % modifica la gestione dell'appendice, e aggiunge l'ambiente appendices alternativo al comando \appendix
\usepackage[%
%notbib, % rimuove la bibliografia dall'indice
notindex, % rimuove l'indice dall'indice
nottoc, % rimuove la Table of Contents dall'indice
notlot, % rimuove la lista delle tabelle dall'indice
notlof, % rimuove la lista delle figure dall'indice
%chapter, % "Use chapter-level headings, if possible"
%section, % "Use section-level headings, if possible"
%numbib % numera il capitolo della bibliografia
%numindex % numera il capitolo dell'indice
]{tocbibind} % aggiunge cose all'indice
%\usepackage{fncychap} % serve a personalizzare il formato dei titoli dei capitoli
%\usepackage[]{titlesec} % una volta definito lo stile nel preambolo con \titleformat formatta i \chapter{}
%\usepackage{enumitem} % serve a personalizzare liste enumerate, itemize e description
%\usepackage{amssymb} % abilita i font matematici forniti dall'American Mathematical Society, carica anche {amsfonts}
%\usepackage{mathtools} % carica {amsmath} e fornisce estensioni per il miglioramento della struttura informativa e della stampa di formule matematiche
%\usepackage{relsize} % consente di assegnare dimensioni relative con i comandi \smaller e \larger
\onehalfspacing % Imposta interlinea a 1,5 ed equivale a \linespread{1,5}
%% Produce un buon layout con fancyhdr %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\pagestyle{fancy}\addtolength{\headwidth}{20pt}
\renewcommand{\chaptermark}[1]{\markboth{\thechapter.\ #1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection \ #1}{}}
\cfoot{}
\rhead[\fancyplain{}{\bfseries\leftmark}]{\fancyplain{}{\bfseries\thepage}}
\lhead[\fancyplain{}{\bfseries\thepage}]{\fancyplain{}{\bfseries\rightmark}}
%% Definisco un nuovo comando per enfatizzare il testo in inglese %%%%%%%%%%%
\newcommand{\engEmph}[1] {\emph{\foreignlanguage{english}#1}}
%% Aggiunge pagine bianche vuote %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty}%
%\cleardoublepage}}
\clearpage}}
%% Definisce l'environment abstract per la classe book %%%%%%%%%%%%%%%%%%%%%%
\newenvironment{abstract}%
{\clearemptydoublepage%
\thispagestyle{empty}%
\null \vfill\begin{center}%
\bfseries \phantomsection%
\addcontentsline{toc}{chapter}{\abstractname}%
\abstractname \end{center}}%
{\vfill\null}
\usepackage[htt]{hyphenat} % Enable hyphenation of TT text
\hyphenation{ % Permette di sillabare bene le parole
JavaFX
Swing
Micro-systems
Script
script
Pack-age
pack-age
Manage-ment
manage-ment
Com-munity
com-munity
}
\setcounter{secnumdepth}{2} % Numera fino alla sottosezione nel corpo del testo
\setcounter{tocdepth}{3} % Numera fino alla sotto-sottosezione nell'indice
\graphicspath{{img/}}
%% ORDINE IMPORTANTE INIZIO %%%%%%%%%%%%
% hyperref va caricato il più tardi possibile
\usepackage{hyperxmp} % Simile ad hyperref
\usepackage{hyperref} % Gestisce tutte le cose ipertestuali del pdf
\hypersetup{%
pdfpagemode={UseOutlines},
hidelinks, % nasconde i collegamenti (non vengono quadrettati)
hypertexnames=false,
linktoc=all, % inserisce i link nell'indice
bookmarks=true,
bookmarksopen,
bookmarksopenlevel=3,
plainpages=false,
breaklinks,
pdfstartview={FitH},
pdfauthor={Niccolò Maltoni},
pdfcopyright={Copyright (C) 2017, Niccolò Maltoni},
pdftitle={Progettazione object-oriented di un'interfaccia grafica JavaFX per il simulatore Alchemist},
pdfcontactcountry={Italy},
pdfcontactemail={[email protected]},
pdflang={it},
pdfsubject={Lo scopo di questa tesi è la progettazione e la successiva implementazione di un'interfaccia grafica 2D per il simulatore Alchemist. La nuova interfaccia permette di interagire con la simulazione a tempo di esecuzione e di vedere chiaramente rappresentate informazioni su di essa. In particolare, è supportata una struttura modulare di effetti che rende facilmente osservabili determinate entità del sistema ed eventuali loro proprietà: rispetto alla classe di effetti dell'interfaccia classica, la nuova tipologia di effetti non è più una funzione dal singolo nodo alla rappresentazione grafica, bensì fa riferimento all'intero ambiente, permettendo di costruire rendering complessi facilmente esportabili tramite file JSON. Si è scelto di mantenere un'interfaccia il più possibile user-friendly, mantenendo un design più simile ai simulatori a scopo videoludico per favorire l'utilizzo da parte di utenti inesperti. Lo stile estetico al quale si è deciso di allinearsi è il Material Design di Google e la libreria grafica utilizzata per l'implementazione è stata JavaFX.},
pdfkeywords={Progettazione object-oriented, Simulazione, Java, JavaFX, Interfaccia grafica},
pdfa
}
\usepackage[all]{hypcap} % sistema i problemi di hyperref
% cleveref va anche dopo hyperref
\usepackage[%
english,italian, % definizione delle lingue da usare
nameinlink % inserisce i link nei riferimenti
]{cleveref} % permette di usare riferimenti migliori dei \ref e dei varioref
%% ORDINE IMPORTANTE FINE %%%%%%%%%%%%%%
\begin{document}
\frontmatter
\pagenumbering{Roman}
\pagestyle{empty}
\input{tex/frontmatter/frontespizio.tex}
\input{tex/frontmatter/keyword.tex}
% \input{tex/frontmatter/dedica.tex}
\input{tex/frontmatter/abstract.tex}
\tableofcontents
\mainmatter
\pagenumbering{arabic}
\pagestyle{fancy}
\input{tex/mainmatter/capitolo0.tex}
\input{tex/mainmatter/capitolo1.tex}
\input{tex/mainmatter/capitolo2.tex}
\input{tex/mainmatter/capitolo3.tex}
\input{tex/appendice.tex}
\backmatter
\input{tex/backmatter/bibliografia.tex}
\input{tex/backmatter/ringraziamenti.tex}
\end{document}