Update 00_SetupLaTeX.tex
Build LaTeX PDF / build (push) Successful in 34s

This commit is contained in:
2026-07-27 04:10:38 +02:00
parent ebc5082331
commit 3c73555df6
+180 -50
View File
@@ -2,13 +2,16 @@
\PassOptionsToPackage{pdftex}{color}
\PassOptionsToPackage{pdftex}{xcolor}
\documentclass[aspectratio=169]{beamer}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{tabularx}
\usepackage{booktabs}
\usepackage{colortbl}
\usepackage{tcolorbox}
\usepackage{tikz}
\tcbuselibrary{skins,breakable}
% Commento per aggiornare il pdf n 3
% ---------- Tema ----------
\usetheme{metropolis}
\metroset{
block=fill,
@@ -23,6 +26,10 @@
\definecolor{ForestAccent}{HTML}{6BAA75}
\definecolor{ForestLight}{HTML}{EAF2EB}
\definecolor{ForestDark}{HTML}{1B2E22}
\definecolor{WarnColor}{HTML}{B5651D}
\definecolor{WarnLight}{HTML}{FBEBDD}
\definecolor{TipColor}{HTML}{1F6F78}
\definecolor{TipLight}{HTML}{E3F2F3}
\setbeamercolor{palette primary}{bg=ForestPrimary, fg=white}
\setbeamercolor{background canvas}{bg=white}
@@ -43,6 +50,34 @@
\setbeamertemplate{itemize item}{\textbullet}
\setbeamertemplate{itemize subitem}{\textendash}
% ---------- Icone leggere disegnate a TikZ (nessuna dipendenza esterna) ----------
\newcommand{\iconcircle}[3]{%
% #1 = colore riempimento, #2 = colore testo, #3 = simbolo
\tikz[baseline=-0.65ex]{\node[circle, fill=#1, inner sep=1.6pt, minimum size=1.6em] {\textcolor{#2}{\footnotesize\textbf{#3}}};}%
}
\newcommand{\iconinfo}{\iconcircle{ForestAccent}{white}{?}}
\newcommand{\icontip}{\iconcircle{TipColor}{white}{\checkmark}}
\newcommand{\iconwarn}{\iconcircle{WarnColor}{white}{!}}
\newcommand{\icongit}{\iconcircle{ForestPrimary}{white}{G}}
\newcommand{\iconstar}{\iconcircle{ForestPrimary}{ForestAccent}{$\star$}}
% ---------- Box tematici ----------
\newtcolorbox{tipbox}[1][Consiglio]{
colback=TipLight, colframe=TipColor, boxrule=0.6pt, arc=2pt,
left=6pt, right=6pt, top=4pt, bottom=4pt, breakable,
fonttitle=\bfseries, title={\icontip\ #1}
}
\newtcolorbox{warnbox}[1][Attenzione]{
colback=WarnLight, colframe=WarnColor, boxrule=0.6pt, arc=2pt,
left=6pt, right=6pt, top=4pt, bottom=4pt, breakable,
fonttitle=\bfseries, title={\iconwarn\ #1}
}
\newtcolorbox{infobox}[1][Info]{
colback=ForestLight, colframe=ForestPrimary, boxrule=0.6pt, arc=2pt,
left=6pt, right=6pt, top=4pt, bottom=4pt, breakable,
fonttitle=\bfseries, title={\iconinfo\ #1}
}
\title{Setup LaTeX}
\author{Domipoke}
\date{\today}
@@ -57,21 +92,31 @@
\tableofcontents
\end{frame}
\section{Introduction}
\section{Introduzione}
\begin{frame}{LaTeX 1/2}
LaTeX è un linguaggio di \textbf{marcatura} (non di programmazione), ovvero un linguaggio che delinea delle regole per la formattazione di testo.\\
Generalmente trova la sua applicazione nella scrittura di libri e paper di ricerca. \\
LaTeX divenne negli anni successivi un po' "complesso" dato l'evolversi delle interfacce grafiche e soluzioni come word furono all'inizio solo wrap\footnote{Per wrap si fa riferimento a un programma che nasconde la complessità di un qualcosa sotto istruzioni più semplici. Nell'esempio di word è nascosto da un'interfaccia grafica. Il cliccare un pulsante all'atto pratico scrive il testo nel formato "codice LaTeX" corrispondente a quell'azione. Ad oggi word è un linguaggio assestante chiamato docx} di LaTeX o simili.
\begin{frame}{Cos'è LaTeX}
\begin{itemize}
\item È un linguaggio di \textbf{marcatura} (non di programmazione): definisce delle regole per la formattazione del testo.
\item Trova applicazione soprattutto nella scrittura di \textbf{libri} e \textbf{paper di ricerca}.
\item LaTeX divenne negli anni successivi un po' "complesso" dato l'evolversi delle interfacce grafiche e soluzioni come word furono all'inizio solo wrap\footnote{Per wrap si fa riferimento a un programma che nasconde la complessità di un qualcosa sotto istruzioni più semplici. Nell'esempio di word è nascosto da un'interfaccia grafica. Il cliccare un pulsante all'atto pratico scrive il testo nel formato "codice LaTeX" corrispondente a quell'azione. Ad oggi word è un linguaggio assestante chiamato docx} di LaTeX o simili.
\end{itemize}
\end{frame}
\begin{frame}{LaTeX 2/2}
LaTeX è abbastanza intuitivo una volta capite le basi del linguaggio ed è anche ricchissimo di funzionalità. \\
LaTeX puro permette un insieme molto limitato di azioni e queste forse non giustificano nemmeno la sua "complessità" nell'uso; pertanto useremo anche molte librerie distribuite da CTAN.
\begin{frame}{LaTeX: pro e limiti}
\begin{itemize}
\item È abbastanza intuitivo una volta capite le basi del linguaggio.
\item È ricchissimo di funzionalità grazie a un enorme ecosistema di librerie.
\item LaTeX "puro'' permette un insieme piuttosto limitato di azioni, che difficilmente giustificano da sole la sua complessità d'uso.
\end{itemize}
\begin{tipbox}
Per questo useremo anche molte librerie distribuite da \textbf{CTAN}, l'archivio ufficiale dei pacchetti LaTeX.
\end{tipbox}
\end{frame}
\begin{frame}{Requisiti 1/2}
Prima di iniziare ci serve fare delle scelte:\\
\section{Editor e distribuzioni}
\begin{frame}{Le scelte da fare}
Prima di iniziare ci servono alcune decisioni su \textbf{dove} e \textbf{come} scrivere in LaTeX:
\begin{table}[h]
\centering
\renewcommand{\arraystretch}{1.3}
@@ -81,8 +126,8 @@
\rowcolor{ForestPrimary}
\textcolor{white}{} & \textcolor{white}{Overleaf} & \textcolor{white}{Overleaf-toolkit} & \textcolor{white}{VS Code} \\
\midrule
{LaTeX$\rightarrow$Pdf} & Media & Media & Veloce* \\
Peso & 0 & 0** & 200MB - 2GB \\
LaTeX $\rightarrow$ Pdf & Media & Media & Veloce* \\
Peso & 0 & 0** & 200MB -- 2GB \\
Limite & Imposto dal sito & Nessuno** & Nessuno* \\
\bottomrule
\end{tabularx}
@@ -93,64 +138,149 @@
\end{table}
\end{frame}
\begin{frame}{Overleaf 1/2}
Più nello specifico Overleaf è un tool online che divide lo spazio in due metà, a sinistra il codice, a destra il pdf risultante.\\
Overleaf ha il limite nel tempo di compilazione, se il nostro file usa varie librerie, ha delle immagini o ha tanto testo come può accadere con degli appunti per un esame allora non compilerà.\\
\capitalgrave{E} possibile maneggiare tanti più piccoli file (es. uno per capitolo) per garantire che ognuno di questi sia elaborato senza problemi dal sito ma potrebbe risultare noioso. \\
Inoltre i tuoi file sono online e accessibili solo tramite internet essendo un sito web.
\begin{frame}{Overleaf: come funziona}
\begin{itemize}
\item È un tool \textbf{online} che divide lo schermo in due metà: a sinistra il codice, a destra il pdf risultante.
\begin{warnbox}
Overleaf ha un limite di \textbf{tempo di compilazione}: se il file usa molte librerie, contiene immagini o è molto lungo (come degli appunti d'esame), la compilazione può fallire.
\end{warnbox}
\item È possibile lavorare su tanti file più piccoli (es. uno per capitolo), così ognuno viene elaborato senza problemi dal sito, ma può risultare scomodo da gestire.
\item I file restano \textbf{online}, accessibili solo tramite internet.
\end{itemize}
\end{frame}
\begin{frame}{Overleaf toolkit 2/2}
Overleaf toolkit è la versione "Selfhosted" di Overleaf. Permette di far girare il sito in una pseudo versione locale dando al proprietario del server l'opzione di regolare alcuni limiti e volendo rimuoverli.\\
I lati negativi di avere un sito online sono gli stessi, inoltre si aggiunge il fatto che non possa distribuirvi overleaf se non tramite wireguard.\\
\capitalgrave{E} necessario wireguard in quanto Overleaf spinge a comprare il piano premium e priva di ogni misura di sicurezza il piano base (anche quello selfhosted).
\begin{frame}{Overleaf Toolkit: la versione self-hosted}
\begin{itemize}
\item È la versione \textbf{self-hosted} di Overleaf.
\item Il proprietario del server può regolare e volendo rimuovere alcuni limiti.
\item Essendo online condivide gli altri lati negativi della versione classica.
\end{itemize}
\begin{warnbox}
Il piano base (anche quello self-hosted) è privo di ogni misura di sicurezza, perché Overleaf spinge verso il piano premium. Per questo è \textbf{necessario} accedervi con WireGuard.
\end{warnbox}
\end{frame}
\begin{frame}{Visual Studio Code}
Visual Studio Code è un ambiente di sviluppo che supporta il download di varie estensioni per la gestione di codice.\\
Mi rendo conto possa essere un po' troppo per quello che dobbiamo fare ma è anche il migliore dal punto di vista delle integrazioni. \\
Visual Studio Code di per se è solo un ambiente di lavoro. Pesa relativamente poco, qualche centinaio di megabyte. \\
Necessità però di avere una LaTeX installato localmente.
\begin{itemize}
\item È un ambiente di sviluppo che supporta il download di varie \textbf{estensioni} per la gestione del codice.
\item Può sembrare eccessivo per quello che dobbiamo fare, ma è il migliore dal punto di vista delle \textbf{integrazioni} e dell'interfaccia grafica.
\item Di per sé è solo un ambiente di lavoro: pesa relativamente poco, qualche centinaio di megabyte.
\item Necessita però di avere LaTeX installato \textbf{localmente} sul proprio computer.
\end{itemize}
\end{frame}
\begin{frame}{LaTeX installato localmente}
LaTeX è scaricabile principalmente da due distribuzioni:
LaTeX è scaricabile da varie distribuzioni, a seconda del sistema operativo:
\begin{itemize}
\item Windows
\begin{itemize}
\item MikTex
\item TexLive
\item MikTeX
\item TeX Live
\end{itemize}
\item Mac
\begin{itemize}
\item MacTex [Mai usata, spero sia intuitiva da scaricare]
\item MacTeX \emph{[mai usata, spero sia intuitiva da scaricare]}
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}{TexLive vs MikTex 1/2}
TexLive è la distribuzione da me usata, non perchè sia meglio (anzi). Scarica tutte le librerie di LaTeX in locale o al più passando un filtro quelle che vuoi installare. Non è tanto il peso di tutte le librerie ad essere il lato negativo alla fine si parla di 1.6GB ma la velocità di download ad essere incredibilmente lenta perchè distribuita da migliaia di server differenti e vecchissimi. A me ha impiegato circa 6 ore. \\
MikTex non l'ho mai usato ma si presenta come più nuovo e più veloce e leggero ma necessità del download di un'altra libreria di circa 200 MB chiamata pearl (è un linguaggio di programmazione). Rimane sempre più leggera ed è strutturata per scaricare le sole librerie che usate al momento della compilazione (quando trasformate i .tex in .pdf).
\begin{frame}{TeX Live vs MikTeX: TeX Live}
\begin{itemize}
\item È la distribuzione usata da me, non perché sia la migliore (anzi).
\item Scarica tutte le librerie di LaTeX in locale, oppure solo quelle filtrate che si vogliono installare.
\item Il peso totale non è il vero problema: si parla di circa \textbf{1.6\,GB}.
\item Il vero lato negativo è la \textbf{velocità di download}, incredibilmente lenta perché distribuita da migliaia di server diversi e datati. A me ha richiesto circa \textbf{6 ore}.
\end{itemize}
\end{frame}
\begin{frame}{TexLive vs MikTex 2/2}
Un'altra soluzione sarebbe quella di scaricare la copia da me condivisa di quella che ho installato io, il che dovrebbe essere più veloce ma potrebbe portare a diversi errori. MikTex è sconsigliato da parte degli autori dell'estensioni ma non è mai troppo un problema
\begin{frame}{TeX Live vs MikTeX: MikTeX}
\begin{itemize}
\item Non l'ho mai usata personalmente, ma si presenta come più \textbf{nuova}, \textbf{veloce} e \textbf{leggera}.
\item Richiede però il download di un'altra libreria di circa \textbf{200\,MB} chiamata Perl (un linguaggio di programmazione).
\item Resta comunque più leggera: scarica solo le librerie effettivamente usate al momento della compilazione (quando si trasforma il \texttt{.tex} in \texttt{.pdf}).
\end{itemize}
\end{frame}
\begin{frame}{Dunque cosa farei io?}
Io userei overleaf per le prime settimane mentre si fa un po' di pratica, poi se ci piace installerei la completa e lenta versione di TexLive se vogliamo evitare problemi. Trovo infinitamente più comodo lavorare come sto scrivendo queste slide in locale rispetto che sul limitato overleaf.
\begin{frame}{Una scorciatoia: la mia installazione}
\begin{itemize}
\item Un'alternativa è scaricare la copia già configurata da me installata, il che dovrebbe essere più veloce.
\item C'è il rischio che sia particolarmente instabile.
\end{itemize}
\begin{warnbox}
MikTeX è sconsigliata dagli stessi autori delle estensione di VS Code, ma nella pratica non è quasi mai un vero problema.
\end{warnbox}
\end{frame}
\begin{frame}{Dunque, cosa farei io?}
\begin{tipbox}[Il mio consiglio]
\begin{itemize}
\item Nelle prime settimane: \textbf{Overleaf}, mentre si fa un po' di pratica.
\item Se si vuole continuare è utile installare la versione \textbf{completa} di TeX Live, per evitare problemi futuri.
\end{itemize}
\end{tipbox}
Trovo infinitamente più comodo lavorare in locale, come sto scrivendo queste slide, rispetto al limitato Overleaf.
\end{frame}
\begin{frame}{Alternative a LaTeX}
LaTeX ha dato vita a tanti piccoli linguaggi come per esempio KaTeX usato dai blocchi matematici di Notion. Una più semplice e leggera alternativa possono essere le note di Obsidian che ultimamente uso sul mio telefono al posto delle note di default, che per quanto mi piacciano sono leggermente più lente di obsidian.
LaTeX ha dato vita a tanti altri linguaggi:
\begin{itemize}
\item \textbf{KaTeX}, usato ad esempio dai blocchi matematici di Notion.
\item Le note di \textbf{Obsidian}, un'alternativa più semplice e leggera, che uso ultimamente sul telefono al posto delle note di default che per quanto mi piacciano, le trovo leggermente più lente.
\end{itemize}
\end{frame}
\begin{frame}{Slide bonus 1/4}
Trovo utile insegnarvi un altro strumento di cui vi ho già parlato molte volte e qualcuno del gruppo lo ha anche già usato ma non se lo ricorderà. \capitalgrave{E} un programma che permette la sincronizzazione di file di testo, generalmente di codice ma non esclusivamente di quello, in repository (ovvero raccolte) online pubbliche o private. \\
\capitalgrave{E} uno strumento essenziale nello sviluppo ma ho relativamente da poco scoperto che è utilizzato in un modo più generale in qualsiasi ambiente di lavoro di gruppo per le sue comodità.
\section{Bonus}
\begin{frame}{Il Tool}
\begin{itemize}
\item Vi ho già parlato di questo tool molte volte, e qualcuno del gruppo lo ha anche già usato (ma probabilmente non se lo ricorderà).
\item Permette la \textbf{sincronizzazione di file di testo}, generalmente codice, in repository (raccolte) online, pubbliche o private.
\end{itemize}
\begin{infobox}
È uno strumento essenziale nello sviluppo software, ma ho scoperto che viene utilizzato in modo più generale in qualsiasi ambiente di lavoro di gruppo per la sua comodità.
\end{infobox}
\end{frame}
\begin{frame}{Git 2/4}
Stiamo parlando di Git che è il nome del tool. Siti come Github, GitLab e Gitea permetto la gestione e hostano questo servizio. Github è il più usato e diffuso. Gitea è la versione selfhosted che utilizzo sul mio server. Github è utile inoltre perchè permette a qualsiasi utente di pubblicare un sito web costruito da una repository in modo automatico purchè questo rispetti l'obbligo di non infrangere leggi e di essere non a fine commerciale. Github è il sito preferito da programmatori e artisti per un proprio portfolio.
\begin{frame}{Git}
\begin{itemize}
\item \icongit\ \textbf{Git} è il nome del tool di cui sto parlando.
\item Piattaforme che ne gestiscono e ospitano il servizio sono:
\begin{itemize}
\item \textbf{GitHub}: la più usata e diffusa.
\item \textbf{GitLab}
\item \textbf{Gitea}: versione self-hosted, che uso sul mio server.
\end{itemize}
\end{itemize}
\begin{tipbox}[GitHub Pages]
GitHub permette a qualsiasi utente di pubblicare automaticamente un sito web costruito a partire da una repository, purché non infranga leggi e non abbia fini commerciali. È la piattaforma preferita da programmatori e artisti per il proprio portfolio.
\end{tipbox}
\end{frame}
\begin{frame}{Git 3/4}
Immaginate un repository come una cartella di un cloud sul quale possiamo inviare e aggiornare i dati tramite un push o ricevere i dati aggiornati tramite un pull. \\
Inoltre è possibile tornare indietro alle versioni precedenti (qualsiasi mai esistita) oppure eseguire azioni dopo l'invio o prima della ricezione dei dati (Actions). \\
Le Actions sono generalmente usate per creare siti web da file di testo per chi vuole un sito semplice partendo da un semplice template ma esiste la possibilità di configurarla in modo che chi invia un .tex carichi effettivamente sia il .tex che il pdf automaticamente generato e che possa dunque dopo alcuni secondi scaricare il risultato.
\begin{frame}{I concetti base}
Immaginate un repository come una cartella su un cloud:
\begin{itemize}
\item \textbf{Push} $\rightarrow$ inviamo e aggiorniamo i dati.
\item \textbf{Pull} $\rightarrow$ riceviamo i dati aggiornati.
\item È possibile tornare a \textbf{qualsiasi versione precedente} sia mai esistita.
\item Si possono eseguire azioni automatiche dopo l'invio o prima della ricezione dei dati: le \textbf{Actions}.
\item Inoltre piattaforme come GitHub non hanno un limite di spazio.
\end{itemize}
\end{frame}
\begin{frame}{Git 4/4}
\capitalgrave{E} realisticamente usabile solo nel momento in cui non necessitiamo di controllare ogni secondo cosa stiamo scrivendo ma solo generare il file finale ma forse per progetti grandi è la scelta migliore, inoltre permette di salvarli in un ambiente online e all'occorrenza condiviso o pubblico.
\begin{frame}{Le Actions}
\begin{itemize}
\item Generalmente sono usate per generare siti web da file di testo partendo da un semplice template.
\item È possibile configurare una Action in modo che, appena qualcuno invia un file \texttt{.tex}, venga caricato automaticamente anche il \textbf{pdf compilato}: dopo pochi secondi il risultato è pronto da scaricare.
\end{itemize}
\end{frame}
\end{document}
\begin{frame}{Quando conviene usarlo}
\begin{itemize}
\item È realisticamente utile quando \textbf{non} serve controllare ogni secondo cosa si sta scrivendo, ma solo generare il file finale.
\item Per progetti grandi è probabilmente la scelta migliore.
\item Inoltre permette di salvare i propri lavori in un ambiente online, condiviso o pubblico a seconda delle necessità.
\end{itemize}
\end{frame}
\end{document}