generated from NiccoMlt/Unibo-Tesi-Template
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathunibotesi.sty
206 lines (190 loc) · 9.91 KB
/
unibotesi.sty
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
% This package defines the Unibo Tesi packages configurations
%
% Copyright 2020 Niccolò Maltoni
%
% Licensed under the Apache License, Version 2.0 (the "License");
% you may not use this file except in compliance with the License.
% You may obtain a copy of the License at
%
% http://www.apache.org/licenses/LICENSE-2.0
%
% Unless required by applicable law or agreed to in writing, software
% distributed under the License is distributed on an "AS IS" BASIS,
% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
% See the License for the specific language governing permissions and
% limitations under the License.
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{unibotesi}[2020/01/23 v0.1-custom Unibo Tesi LaTeX template, customized for my personal usage]
% \RequirePackage{kvoptions}
\RequirePackage{minted} % evidenzia la sintassi dei listati di codice; richiede pygments installato e shell-escape
\RequirePackage[%
english,italian % definizione delle lingue da usare
]{varioref} % introduce il comando \vref da usarsi nello stesso modo del comune \ref per i riferimenti
\RequirePackage[
rgb, % richiesto da pdfx
hyperref, % richiesto da pdfx
luatex,
dvipsnames,
table, % permette di colorare le tabelle
xcdraw
]{xcolor} % permette di usare colori
\RequirePackage[a-1b]{pdfx} % permette di generare PDF/A
\RequirePackage{shellesc} % aggiunge il comando \write18 necessario su Overleaf per frontespizio
%% Font
% non è necessario \RequirePackage[utf8]{inputenc} perché luaLaTeX accetta solo UTF-8
\RequirePackage{fontspec}
\defaultfontfeatures{ Scale = MatchUppercase }
\setmainfont{libertinusserif}[
Scale=1.0,
Ligatures={Common, TeX},
% Numbers={OldStyle, Proportional},
UprightFont={*-regular},
BoldFont={*-bold},
ItalicFont={*-italic},
BoldItalicFont={*-bolditalic},
Extension=.otf
]
\setsansfont{libertinussans}[
Ligatures={Common, TeX},
% Numbers={OldStyle, Proportional},
UprightFont={*-regular},
BoldFont={*-bold},
ItalicFont={*-italic},
% BoldItalicFont={*-bolditalic},
Extension=.otf
]
\setmonofont{libertinusmono}[
Scale=0.95,
UprightFont={*-regular},
% BoldFont={*-bold},
% ItalicFont={*-italic},
% BoldItalicFont={*-bolditalic},
Extension=.otf
]
%% Matematica
\RequirePackage{amsmath}
% non bisogna assolutamente invocare il pacchetto amssymb
\RequirePackage[%
math-style=ISO % per scrivere la matematica delle scienze sperimentali bisogna seguire le norme ISO
]{unicode-math} % implementazione di glifi Unicode per caratteri matematici
\setmathfont{LibertinusMath-Regular.otf}
\RequirePackage[%
output-decimal-marker={,}, % le convenzioni tipografiche italiane prevedono la virgola e non il punto
binary-units % abilita le espressioni per bit e byte
]{siunitx} % permette di definire numeri con unità di misura
%% Lingue
\RequirePackage[%
strict=true, % converte tutti i warning in errori
autostyle=true, % adatta continuamente lo stile delle virgolette alla lingua
english=american, % imposta lo stile per l'inglese
italian=guillemets % imposta lo stile per l'italiano
]{csquotes} % configura le virgolette secondo gli stnadard della lingua
\RequirePackage{polyglossia}
\setmainlanguage[%
babelshorthands % attiva il carattere " come switch per virgolettature etimologiche
]{italian} % imposta l'italiano come lingua principale
\setotherlanguage[%
variant=american % imposta la variante americana dell'inglese
]{english} % imposta l'inglese come lingua secondaria
% non è necessario \RequirePackage{indentfirst} perché con lualatex il rientro del primo capoverso è preimpostato
%% Altri pacchetti
\RequirePackage{graphicx} % serve per includere immagini e grafici
\RequirePackage{svg}
\RequirePackage[
subrefformat=parens,
labelformat=parens
]{subcaption} % serve per ottenere sottofigure
\RequirePackage{caption} % permette di controllare la formattazione delle didascalie
\RequirePackage{adjustbox} % permette di effettuare il crop delle immagini
\RequirePackage{wrapfig} % permette di inserire immagini wrappate dal testo
\usepackage{sidecap} % permette di realizzare figure con caption laterale
\RequirePackage{xargs}
% \RequirePackage[
% colorinlistoftodos,
% prependcaption,
% textsize=tiny
% ]{todonotes} % permette di definire note a margine di cose da fare
% \newcommandx{\unsure}[2][1=]{\todo[linecolor=red,backgroundcolor=red!25,bordercolor=red,#1]{#2}}
% \newcommandx{\change}[2][1=]{\todo[linecolor=blue,backgroundcolor=blue!25,bordercolor=blue,#1]{#2}}
% \newcommandx{\info}[2][1=]{\todo[linecolor=OliveGreen,backgroundcolor=OliveGreen!25,bordercolor=OliveGreen,#1]{#2}}
% \newcommandx{\improvement}[2][1=]{\todo[linecolor=Plum,backgroundcolor=Plum!25,bordercolor=Plum,#1]{#2}}
% \RequirePackage{ctable} % permette di migliorare la spaziatura dell'ambiente tabular standard
% \RequirePackage{flafter} % impedisce alle figure di apparire prima della loro definizione nel testo
\RequirePackage{scrhack} % risolve incompatibilità tra KOMA e pacchatti vari (float, listings, ...)
\RequirePackage{float} % permette di forzare il posizionamento dell’oggetto nel punto in cui è situato con l’opzione H
\RequirePackage{afterpage} % permette di eseguire qualcosa nella pagina successiva con \afterpage{...} (ad esempio, figure)
% \RequirePackage{placeins} % permette di mettere delle barriere invalicabili per le figure con \FloatBarrier
\RequirePackage[%
write, % (write|nowrite) genera o meno il file
standard, % (standard|suftesi) specifica tipo di frontespizio
normal, % (normal|sans) usa font con grazie anziché senza
noinputenc, % non carica inputenc (poiché usa lualatex)
% norules, % non vengono inseriti filetti nel frontespizio
nouppercase, % con questa opzione verrà rispettato il maiuscolo e il minuscolo
driver=luatex % imposta la chiamata di graphicx nel documento frn per l'uso di un driver diverso da dvips o pdftex
]{frontespizio}
\RequirePackage{geometry} % permettte la modifica della gabbia del documento
\geometry{
a4paper, % formato di pagina
heightrounded, % modifica di poco le dimensioni della gabbia per contenere un numero intero di righe
hmargin=2.5cm, % dimensioni margini destro-sinistro
vmargin=2.5cm % dimensioni margini superiore-inferiore
}
\RequirePackage{setspace} % serve a fornire comandi di interlinea standard
\onehalfspacing{} % imposta interlinea a 1,5 ed equivale a \linespread{1,5}
%% Definizioni di comandi e ambienti
%% 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}%
{\cleardoublepage%
\thispagestyle{empty}%
\null\vfill\begin{center}%
\bfseries\LARGE\abstractname\end{center}}%
{\vfill\null}
\def\blx@nowarnpolyglossia{}
\RequirePackage[%
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=ieee, % imposta lo stile della blibliografia (numeric|alphabetic|authoryear|authortitle|verbose|...)
citestyle=numeric, bibstyle=ieee,
giveninits=true,
sorting=ynt,
backend=biber % specifica il backend per la bibliografia
]{biblatex} % si interfaccia con bibtex e biber per la bibliografia
\addbibresource{maltoni_niccolo_tesi.bib}
\RequirePackage[%
% 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
% \RequirePackage[htt]{hyphenat} % permette la sillabazione dei blocchi di testo monospaziato
% \RequirePackage{enumerate} % aggiunge un argomento opzionale che determina come comporre l’etichetta numerata delle liste
% \RequirePackage{enumitem}
\RequirePackage{paralist}
\RequirePackage{microtype} % gestisce la microtipografia
% \RequirePackage{hyperref} % gestisce tutte le cose ipertestuali del pdf; importato automaticamente
\hypersetup{%
pdfpagemode={UseNone},
hidelinks, % nasconde i collegamenti (non vengono quadrettati)
hypertexnames=false,
linktoc=all, % inserisce i link nell'indice
unicode=true, % usa solo caratteri Latini nei segnalibri di Acrobat
pdftoolbar=false, % nasconde la toolbar di Acrobat
pdfmenubar=false, % nasconde il menu di Acrobat
plainpages=false,
breaklinks,
pdfstartview={Fit},
pdflang={it}
}
\RequirePackage[%
english,italian, % definizione delle lingue da usare
nameinlink % inserisce i link nei riferimenti
]{cleveref} % permette di usare riferimenti migliori dei \ref e dei varioref