\chapter{Formattazione}
\section{Bold, Italic, Underline}
Il testo scritto all'interno di un ambiente documento viene normalmente visualizzato come testo regolare. Per decorare il testo trasformandolo in grassetto (bold), corsivo (italic) o sottolinearlo (underline) è richiesto includere il testo in uno dei rispettivi comandi.
\paragraph{Bold} Per tasformare il testo in grassetto è necessario l'uso del comando \mintinline{latex}{\textbf{testo}}. Come dice il comando scrive il testo in "bold font". Si ottiene un effetto del genere \textbf{testo}.
\paragraph{Italic} Per tasformare il testo in corsivo è necessario l'uso del comando \mintinline{latex}{\textit{testo}}. Si ottiene un effetto del genere \textit{testo}.
\paragraph{Underline} Per sottolineare il testo si utilizza in {\LaTeX} base il comando \mintinline{latex}{\underline{testo}}. Si ottiene un effetto del genere \underline{testo}. Underline però ha un problema, se vogliamo sottolineare un testo particolarmente lungo allora underline non supporterà l'andata a capo automatica del testo. Ciò si risolve utilizzando la libreria ulem e utilizzando al posto di underline, \mintinline{latex}{\uline{a}}. Con una conoscenza più avanzata di {\LaTeX} potete usare il comando \mintinline{latex}{\renewcommand{cmd}{def}} per rinominare un comando. In questa guida io utilizzo queste due istruzioni. La prima per importare la libreria (necessario), la seconda per ridefinire il comando underline in modo che si comporti come uline.
\begin{minted}{latex} 
\usepackage[normalem]{ulem}

% se pensate vi possa tornare utile, copia incollatelo nel vostro progetto
\renewcommand{\underline}[1]{\uline{#1}} 
\end{minted} 
\section{Font}
\begin{wrapfigure}{r}{0.5\textwidth}
    \centering
    \begin{tabularx}{\linewidth}{X c}
        \toprule
        \textbf{Name} & \textbf{Weight} \\
        \midrule
        Thin / Hairline	& $100$ \\
        Ultra/Extra light & $200$ \\
        Light & $300$ \\
        Normal / regular & $400$ \\
        Medium & $500$ \\
        Semi/Demi bold & $600$ \\
        Bold & $700$ \\
        Extra/Ultra bold & $800$ \\
        Heavy / Black & $900$ \\
        Extra/Ultra black & $950$ \\
        \bottomrule
    \end{tabularx} 
\end{wrapfigure}
Un font è un file che definisce lo stile generico di un insieme di caratteri. Esistono vari file descrittivi di un font, i più utilizzati sono i \texttt{ttf} e i \texttt{otf}.
I \texttt{ttf} sono \texttt{otf} raggruppati. Un \texttt{ttf} possiede generalmente il raggruppamento degli stili Regular, Bold, Italic e BoldItalic, \texttt{ttf} più complessi possiedono varianti anche sul peso che possiedono associate a un valore generalmente da $1$ a $1000$. 

Per ognuno dei pesi è generalmente necessario specificare le 4 varianti: Regular, Bold, italic e BoldItalic. Non è necessario che un font definisca tutti i pesi.


\newpage % ! UNSAFE -> new page to get space from wrap figure 
\subsection{Definire un font}
Usando il compilatore XeLaTeX è possibile utilizzare la libreria fontspec per definire un font da un file. Importata la libreria si utilizza \mintinline{latex}{\newfontfamily} che prende come primo argomento il nome del comando che lo identificherà e come secondo argomento il nome del font o il suo percorso e come terzo argomento (opzionale) un listato di opzioni in forma \texttt{key=value}. Tra le opzioni che possiamo passare vi è la specifica dei file \texttt{otf} che compongono il font. Nell'esempio cerca il file nella cartella \texttt{./fonts/} (è importante lo \textbackslash finale per la cartella) con il nome che finisce\footnote{Il simbolo \texttt{*} è un wildcard, ovvero in un pattern indica una serie di qualsiasi carattere, scrivere \texttt{*testo} vuol dire che si cerca qualcosa che finisce con "testo"} in \texttt{-Regular} per il regular (UprightFont), che finisce con \texttt{-Bold} per il bold e così via. Il comando che creiamo con \mintinline{latex}{\newfontfamily} necessita di iniziare con un solo \textbackslash. Il comando cambia il font da lì in poi quindi è utile usarlo includendo il comando e il testo in una coppia di parentesi graffe che crea un'insieme isolato dal resto del lavoro.
\begin{minted}{latex}
\usepackage{fontspec}
\newfontfamily{\simplecustomfont}{./path/to/font}
\newfontfamily{\extendedcustomfont}{nomefont}[
    Path = ./fonts/,
    Extension = .otf,
    UprightFont = *-Regular,
    BoldFont = *-Bold,
    ItalicFont = *-Italic,
    BoldItalicFont = *-BoldItalic,
]
\begin{document}
{\simplecustomfont Regular text}
{\extendedcustomfont Regular text}
\end{document}
\end{minted}

\subsection{Usare un font}
Il metodo base per usare un font è quello visto nella sezione precedente che consiste nel chiamarlo utilizzando il comando definito. Il comando cambia il font in uso da lì in avanti ed è spesso utile porlo all'interno di un blocco di parentesi graffe. 
Per impostare un font che vale come default per l'intero documento usiamo \mintinline{\setmainfont{path/to/font}} o 
\begin{minted}{latex}
\setmainfont{OpenDyslexic}[
  Path = fonts/OpenDyslexic/,
  Extension = .otf,
  UprightFont = *-Regular,
  BoldFont = *-Bold,
  ItalicFont = *-Italic,
  BoldItalicFont = *-BoldItalic
]
\end{minted} 
Inoltre la libreria fontspec ha una lunga lista di font preinstallati. Potete scaricare i file \texttt{ttf} o \texttt{otf} da siti come \href{https://fonts.google.com}{Google Fonts}, \href{https://www.dafont.com/it/}{DaFont} e \href{https://www.1001fonts.com}{1001fonts} oppure ricercare font simili a quello che desiderate usando siti come \href{https://www.myfonts.com/pages/whatthefont}{WhatTheFont}

\section{Colori}
Il miglior modo di usare dei colori in {\LaTeX} è importare la libreria \texttt{xcolor}. Gli argomenti opzionali comma-separated\footnote{Gli argomenti sono passati come una lista di parole divise da una virgola. es. [a, b, c, d]} di questa libreria si possono raggruppare in due tipi: "nomi dei colori" e "tipo di colore". La libreria \texttt{xcolor} di base presenta 19 colori, aggiungendo un argomento opzionale del tipo "nomi dei colori", forziamo la libreria ad ampliare la lista di colori disponibili. Esempi di liste disponibili sono \texttt{svgnames}\footnote{SVG è un formato di file molto usato nei disegni vettoriali. Un disegno vettoriale ha la peculiarietà di essere facilmente scalabile in dimensione ed è la scelta preferita per la rappresentazione delle icone}, \texttt{dvipsnames}\footnote{dvi è un formato intermedio di latex, ps fa riferimento a un vecchio linguaggio di Adobe per la stampa di alcuni file. Alcune librerie potrebberlo richiederlo, tuttavia non è un obbligo importarlo} e \texttt{table}. Con l'argomento di "tipo di colore" definiamo come la libreria \texttt{xcolor} gestisce i colori. I "tipi di colore" disponibili sono: natural (non esegue alcuna modifica), rgb\footnote{Red Green Blue è il formato usato dai display. Ottimo per i pdf in formato digitale}, cmyk\footnote{Cyan Magenta Yellow Key è il formato usato dalle stampanti. Ottimo per i pdf da stampare}, gray (trasforma tutto in toni di grigio).
\begin{minted}{latex}
    \usepackage[svgnames, dvipsnames, table, rgb]{xcolor}
\end{minted}
\subsection{Definire un colore}
La libreria \texttt{xcolor} permette di definire un colore personalizzato nel formato che si desidera.
\paragraph{RGB} Lo standard RGB prevede il definire un colore mediante la specifica di $3$ valori interi da $0$ a $255$ rispettivamente indicanti le intensità del rosso, del verde e del blu. Il comando da utilizzare è \mintedinline{latex}{\definecolor{nome}{RGB}{0,100,200}}.
\paragraph{rgb} Lo standard è lo stesso del RGB ma prevede l'uso di $3$ da $0$ a $1$ ottenuti come $valore_rgb = valore_RGB/255$. Il comando da utilizzare è \mintedinline{latex}{\definecolor{nome}{RGB}{0,0.39,0.78}}.
\paragraph{HTML} Lo standard di HTML\footnote{Linguaggio di marcatura per la creazione di pagine web statiche, ovvero prive di animazioni o interazioni} è una rappresentazione RGB in formato HEX\footnote{Esadecimale, ovvero base$16$. Base$16$ vuol dire che le cifre che abbiamo a disposizione non sono $10$ bensì $16$. Le cifre sono 0123456789ABCDEF. A volte si presenta con un hashtag iniziale o preceduto dalla sigla 0x, per latex né l'una né l'altra sono necessarie}. Ognuno dei $3$ valori è scritto come una coppia di cifre esadecimali\footnote{0123456789ABCDEF} da $0_{10}=00_{16}$ a $255_{10}=FF_{16}$. Il comando da utilizzare è \mintedinline{latex}{\definecolor{nome}{HTML}{0064C8}}
\paragraph{cmyk} Lo standard cmyk è quello delle stampanti, prevede l'uso di $4$ valori da $0$ a $1$ facenti riferimento alla quantità di colore ciano, magenta e giallo e, relativamente al parametro key, all'intesità dell'insieme. Non è molto usato per la definizione di colori. Il comando da utilizzare è \mintedinline{latex}{\definecolor{nome}{cmyk}{1.000, 0.500, 0.000, 0.216}}
\paragraph{gray} Lo standard gray è il monocromatico, prevede l'uso di un solo valore da $0$ a $1$ facente riferimento all'intensità del grigio. Il comando da utilizzare è \mintedinline{latex}{\definecolor{nome}{cmyk}{0.39}}
\paragraph{Mix di colori} La libreria \textttt{xcolor} permette la definizione di un colore sulla base della miscelazione di colori esistenti. Il comando da utilizzare è \mintedinline{latex}{\colorlet{nome}{nomecolore!percentuale!nomecolore2!percentuale!nomecolore3}}. Come potete notare si alternano un nome del colore e una percentuale divisi da punti esclamativi, l'ultimo colore può non avere percentuale e verrà per differenza dal totale calcolata in automatico. Potete miscelare tra loro $n=1,2,3\dots$ colori. La percentuale è solo un numero, privo del simbolo \texttt{\%}. 
\begin{nota}
    Definire un colore secondo un formato è non correlato all'imposizione data nell'importazione della libreria. Qualora il tipo definito nell'importazione della libreria non dovesse coincidere con quello della definizione, sarà la libreria stessa a riadattare verso quanto definito dal formato definito nell'importazione. Ciò vuol dire che siete liberi di definire i colori come preferite, preferendo uno o l'altro formato o anche di definire differenti colori con differenti formati. Immaginate di avere un documento inizialmente pensato per solo formato digitale e di doverlo stampare, sarebbe impensabile dover andare a ridefinire tutti i colori usati ed infatti ciò non avviene, basterà invece modificare la sola specifica nell'argomento opzionale della libreria e dunque ricompilare.
\end{nota}
\subsection{Uso di un colore}
La libreria \texttt{xcolor} permette di cambiare colore al testo, allo sfondo o di creare un riquadro intorno a quest'ultimo. Inoltre i colori definiti con la libreria \texttt{xcolor} sono compatibili con la maggiorparte delle librerie di {\LaTeX}.
\paragraph{Cambiare colore al testo} Per scrivere del testo in un colore particolare si preferisce usare il comando \mintinline{latex}{\textcolor{nomecolore}{testo}}. Un'altra opzione è usare il comando \mintinline{latex}{\color{nomecolore}} che cambia il colore di default del testo dalla sua esecuzione in poi. \capitalgrave{E} possibile usare il comando \mintinline{latex}{\color{nomecolore}} all'interno di un blocco di parentesi graffe in modo da effettuare la modifica per il solo contenuto del blocco. La differenza tra il comando \mintinline{latex}{{\color{nomecolore} testo}} e \mintinline{latex}{\textcolor{nomecolore}{testo}} è che il secondo si aspetta di avere come argomento "testo" perlappunto solo testo e potrebbe avere problemi di incompatibilità quando usato insieme a comandi più particolari come la creazione di una tabella, di una lista.