syntax fix
Build XeLaTeX to PDF / build (push) Failing after 1m4s

This commit is contained in:
Domipoke
2026-07-29 14:48:33 +02:00
parent 98c793c69e
commit 72d2c93eca
3 changed files with 10 additions and 8 deletions
+7 -7
View File
@@ -1,8 +1,8 @@
\chapter{Prefazione} \chapter{Prefazione}
\section{Semplicità e accuratezza} \section{Semplicità e accuratezza}
Questa è una guida che scrivo per un pubblico di non programmatori in quanto penso che molto spesso si tende a voler usare tecnicismi per creare una bolla di conoscenze non "alla portata di tutti". Mi rendo conto spiegando spesso a "persone che non sanno programmare"\footnote{modo semplice e un po' uno scusante per indicare quelle persone che non sono "avezze" nell'uso del computer nonostante siano "nativi digitali"} che ci sono tantissimi termini loro sconosciuti che dò per scontato. In questa guida tratterò questi termini con piccole note a piè di pagina che spiegano nel modo più semplice e chiaro\footnote{Per chiarezza intendo lo speigare qualcosa a qualcuno nel migliore dei modi che ho di associare quel concetto a qualcosa che questa persona conosce anche se la mia spiegazione dovesse risultare non tecnicamente accurata.} a cosa faccio riferimento. Per essere più chiari e diretti il commento sulle spiegazioni "Mi dicono che in realtà non funziona proprio così" o "Questa spiegazione è un po' riduttiva rispetto a quello che accade realmente" sono precisazioni talvolta inutili altre un po' sconsiderate. Sono ben felice di darvi qualsiasi tipo di spiegazione su ognuna delle cose che conosco e sulle quali metto mano quotidianamente ma spiegazioni del genere richiedono tempo e parole. Fidati di questi due punti, quanto leggerete in questa prefazione non è altro che la sintesi estremamente accorciata di una registrazione audio di 40 m che ho fatto per ipotizzare ciò che avrei dovuto scrivere, di questi 40 minuti 30 ho parlato di git e Github, programmi che conosco e utilizzo da sempre (la data di creazione del mio account Github risale al 2018-08-11T14:13:22Z). Questa è una guida che scrivo per un pubblico di non programmatori in quanto penso che molto spesso si tende a voler usare tecnicismi per creare una bolla di conoscenze non "alla portata di tutti". Mi rendo conto spiegando spesso a "persone che non sanno programmare"\footnote{modo semplice e un po' uno scusante per indicare quelle persone che non sono "avezze" nell'uso del computer nonostante siano "nativi digitali"} che ci sono tantissimi termini loro sconosciuti che dò per scontato. In questa guida tratterò questi termini con piccole note a piè di pagina che spiegano nel modo più semplice e chiaro\footnote{Per chiarezza intendo lo speigare qualcosa a qualcuno nel migliore dei modi che ho di associare quel concetto a qualcosa che questa persona conosce anche se la mia spiegazione dovesse risultare non tecnicamente accurata.} a cosa faccio riferimento. Per essere più chiari e diretti, il commento sulle spiegazioni "Mi dicono che in realtà non funziona proprio così" o "Questa spiegazione è un po' riduttiva rispetto a quello che accade realmente" sono precisazioni talvolta inutili altre un po' sconsiderate. Sono ben felice di darvi qualsiasi tipo di spiegazione su ognuna delle cose che conosco e sulle quali metto mano quotidianamente ma spiegazioni del genere richiedono tempo e parole. Fidatevi di questi due punti, quando leggerete in questa prefazione non è altro che la sintesi estremamente accorciata di una registrazione audio di 40 m che ho fatto per ipotizzare ciò che avrei dovuto scrivere, di questi 40 minuti 30 ho parlato di git e Github, programmi che conosco e utilizzo da sempre\footnote{la data di creazione del mio account Github risale al 2018-08-11T14:13:22Z}.
\section{\LaTeX : vita morte e miracoli} \section{{\LaTeX}: vita morte e miracoli}
Prima di inizia poniamo delle premesse, \LaTeX è un linguaggio di marcatura il che vuol dire che nasce col fine di formattare testo. Nasce nel 1994 e si evolve in una miriade di sottolinguaggi come il KaTeX di notion (quello dei blocchi matematici) che verticalizza e isola l'uso di \LaTeX rendendolo una comoda implementazione per scrivere equazioni. Un'altra evoluzione seguita da \LaTeX è stata quella di evolvere i propri compilatori\footnote{Un compilatore è un programma che si occupa di tradurre da codice a programma finito, nel nostro caso da .tex a pdf}, li vedremo più nello specifico in futuro ma vi basti sapere che ho scelto di usare XeLaTeX che è un implementazione più nuova e ottimizzata del compilatore base denominato PdfLaTeX. Prima di inizia poniamo delle premesse, {\LaTeX} è un linguaggio di marcatura il che vuol dire che nasce col fine di formattare testo. Nasce nel 1994 e si evolve in una miriade di sottolinguaggi come il KaTeX di notion (quello dei blocchi matematici) che verticalizza e isola l'uso di {\LaTeX} rendendolo una comoda implementazione per scrivere equazioni. Un'altra evoluzione seguita da {\LaTeX} è stata quella di evolvere i propri compilatori\footnote{Un compilatore è un programma che si occupa di tradurre da codice a programma finito, nel nostro caso da .tex a pdf}, li vedremo più nello specifico in futuro ma vi basti sapere che ho scelto di usare XeLaTeX che è un implementazione più nuova e ottimizzata del compilatore base denominato PdfLaTeX.
\section{Ai} \section{Ai}
Una premessa anche sull'uso dell'intelligenza artificiale è opportuna. Gemini, in quanto probabilmente sarà la vostra scelta, nella sua modalità pro in particolare, è brava a capire come usare piccoli e singoli blocchi di \LaTeX, tipo "come si crea una tabella su \LaTeX?", "come creo una lista?", "come aggiungo un'immagine". Più informazioni passiamo a Gemini, più questa risposta sarà precisa. Un'accortezza che dovrete avere o quantomeno un punto da tener in considerazione nell'uso di gemini è lo specificare le librerie che volete usi o informarmi anche conversando con Gemini e prendendo le sue informazioni con le pinze di quali siano le librerie compatibili con la compilazione che abbiamo scelto. Attenzione però che Gemini usato senza controllo sbaglia, sbaglia spesso e porta a peggiorare gli errori commessi consigliando di apportare diverse modifiche, magari giuste in generale ma non per il vostro progetto. Il mio consiglio è di dare due possibilità a Gemini, se due modifiche di Gemini non sistemano il codice allora ritornate indietro a prima che Gemini ci mettesse mano. Un'altra alternativa sarebbe usare Claude valgono pur sempre le avvertenze ma è molto migliore di Gemini. Claude però ha un piano base con limiti piuttosto stringenti quindi usatelo "in caso di emergenza". Un uso utile di un'intelligenza artificiale è quando il vostro lavoro non compila e come errore vi dà un log immenso da leggere, copia incollatelo interamente su un ai e cercate di vedere che spiegazione vi da, valutatene la correttezza delle sue affermazioni e corregete. Una premessa anche sull'uso dell'intelligenza artificiale è opportuna. Gemini, in quanto probabilmente sarà la vostra scelta, nella sua modalità pro in particolare, è brava a capire come usare piccoli e singoli blocchi di \LaTeX, tipo "come si crea una tabella su \LaTeX?", "come creo una lista?", "come aggiungo un'immagine". Più informazioni passiamo a Gemini, più questa risposta sarà precisa. Un'accortezza che dovrete avere o quantomeno un punto da tener in considerazione nell'uso di gemini è lo specificare le librerie che volete usi o informarmi anche conversando con Gemini e prendendo le sue informazioni con le pinze di quali siano le librerie compatibili con la compilazione che abbiamo scelto. Attenzione però che Gemini usato senza controllo sbaglia, sbaglia spesso e porta a peggiorare gli errori commessi consigliando di apportare diverse modifiche, magari giuste in generale ma non per il vostro progetto. Il mio consiglio è di dare due possibilità a Gemini, se due modifiche di Gemini non sistemano il codice allora ritornate indietro a prima che Gemini ci mettesse mano. Un'altra alternativa sarebbe usare Claude valgono pur sempre le avvertenze ma è molto migliore di Gemini. Claude però ha un piano base con limiti piuttosto stringenti quindi usatelo "in caso di emergenza". Un uso utile di un'intelligenza artificiale è quando il vostro lavoro non compila e come errore vi dà un log immenso da leggere, copia incollatelo interamente su un ai e cercate di vedere che spiegazione vi da, valutatene la correttezza delle sue affermazioni e corregete.
\section{Dove scrivere in \LaTeX} \section{Dove scrivere in \LaTeX}
@@ -12,19 +12,19 @@ Il tool web più usato si chiama Overleaf, è una piattaforma comoda da usare ma
\subsection{Overleaf Toolkit} \subsection{Overleaf Toolkit}
\capitalgrave{E} la versione selfhosted\footnote{Il termine selfhosted vuol dire che si può installare localmente su un server o computer, nel mio caso userò selfhosted per indicare i programmi che posso scaricare sul mio server e rendere a voi accessibili} di Overleaf. Permette di alzare i limiti ma essendo il mio server non particolarmente potente non so che carico potrà effettivamente sostenere. Il carico inoltre scala in funzione di quanti di voi decideranno di utilizzarlo. \capitalgrave{E} la versione selfhosted\footnote{Il termine selfhosted vuol dire che si può installare localmente su un server o computer, nel mio caso userò selfhosted per indicare i programmi che posso scaricare sul mio server e rendere a voi accessibili} di Overleaf. Permette di alzare i limiti ma essendo il mio server non particolarmente potente non so che carico potrà effettivamente sostenere. Il carico inoltre scala in funzione di quanti di voi decideranno di utilizzarlo.
\subsection{Download locale} \subsection{Download locale}
Il download locale di \LaTeX necessità di 2 componenti: Il download locale di {\LaTeX} necessità di 2 componenti:
\begin{itemize} \begin{itemize}
\item Ambiente di sviluppo \item Ambiente di sviluppo
\item Compilatore locale o remoto \item Compilatore locale o remoto
\end{itemize} \end{itemize}
\subsubsection{Ambiente di sviluppo} \subsubsection{Ambiente di sviluppo}
\paragraph{Visual Studio Code} \paragraph{Visual Studio Code}
L'ambiente di sviluppo locale che consiglio è Visual Studio Code. Mi rendo conto possa essere un troppo per quel poco di \LaTeX che dobbiamo fare in quanto nasce come ambiente per la programmazione ma proprio per questo risulta essere il più completo editor di testo che puoi desiderare. Possiede una miriade di estensioni installabili per migliorare il suo uso e permette di visualizzare nella stessa applicazione sia il codice che il pdf finito. Visual Studio Code possiede una funzione denominata IntelliSense che suggerisce la completazione automatica del codice (non del testo) che stiamo scrivendo in funzione di ciò che abbiamo scritto. IntelliSense non è basata su intelligenza artificiale. L'ambiente di sviluppo locale che consiglio è Visual Studio Code. Mi rendo conto possa essere un troppo per quel poco di {\LaTeX} che dobbiamo fare in quanto nasce come ambiente per la programmazione ma proprio per questo risulta essere il più completo editor di testo che puoi desiderare. Possiede una miriade di estensioni installabili per migliorare il suo uso e permette di visualizzare nella stessa applicazione sia il codice che il pdf finito. Visual Studio Code possiede una funzione denominata IntelliSense che suggerisce la completazione automatica del codice (non del testo) che stiamo scrivendo in funzione di ciò che abbiamo scritto. IntelliSense non è basata su intelligenza artificiale.
\paragraph{TeXStudio} \paragraph{TeXStudio}
L'opzione più vecchia è altrimenti usare TeXStudio che nativamente supporta \LaTeX e che forse possiede un compilatore inegrato. Non l'ho mai usato. Sarà sicuramente comodo quanto vecchio. Lo penso perchè non sono nati molti altri programmi del genere. L'opzione più vecchia è altrimenti usare TeXStudio che nativamente supporta {\LaTeX} e che forse possiede un compilatore inegrato. Non l'ho mai usato. Sarà sicuramente comodo quanto vecchio. Lo penso perchè non sono nati molti altri programmi del genere.
\subsubsection{Compilatore locale} \subsubsection{Compilatore locale}
\paragraph{Windows} Per quanto riguarda Windows abbiamo due possibilità: \textbf{TeX Live} e \textbf{MiKTeX}. \paragraph{Windows} Per quanto riguarda Windows abbiamo due possibilità: \textbf{TeX Live} e \textbf{MiKTeX}.
\subparagraph{TeX Live} TeX Live installa la libreria completa di \LaTeX con tutte librerie e i compilatori ad esso associate . Si parla di 1.6GB ma il problema non è tanto il peso quanto il fatto di essere distribuito da un server vecchio e che il download non è centralizzato, ovvero ogni singolo file ha una posizione differente, che rallenta maggiormente il download di questi file. A me ha impiegato circa 6 ore. \capitalgrave{E} un download che non dovrebbe essere interrotto. \subparagraph{TeX Live} TeX Live installa la libreria completa di {\LaTeX} con tutte librerie e i compilatori ad esso associate . Si parla di 1.6GB ma il problema non è tanto il peso quanto il fatto di essere distribuito da un server vecchio e che il download non è centralizzato, ovvero ogni singolo file ha una posizione differente, che rallenta maggiormente il download di questi file. A me ha impiegato circa 6 ore. \capitalgrave{E} un download che non dovrebbe essere interrotto.
\subparagraph{MiKTeX} MiKTeX è l'alternativa più veloce e più nuova, installa una minima parte delle librerie e dei compilatori necessari, necessità del download di una libreria in più denominata Pearl (un linguaggio di programmazione) per poter essere usata con l'estensione di Visual Studio Code per \LaTeX. MiKTeX scarica le ulteriori librerie solo quando compiliamo un progetto che le usa. \subparagraph{MiKTeX} MiKTeX è l'alternativa più veloce e più nuova, installa una minima parte delle librerie e dei compilatori necessari, necessità del download di una libreria in più denominata Pearl (un linguaggio di programmazione) per poter essere usata con l'estensione di Visual Studio Code per \LaTeX. MiKTeX scarica le ulteriori librerie solo quando compiliamo un progetto che le usa.
\paragraph{MacOsX} L'opzione per MacOsX è una sola: MacTeX. Non l'ho mai usata. \paragraph{MacOsX} L'opzione per MacOsX è una sola: MacTeX. Non l'ho mai usata.
\subsubsection{Compilatore remoto} \subsubsection{Compilatore remoto}
+2
View File
@@ -102,3 +102,5 @@ Un ambiente è un blocco che modifica la formattazione del testo per creare bloc
A differenza dei comandi è necessario prima sempre esplicare il tipo di ambiente, seguono gli argomenti opzionali, seguono gli argomenti obbligatori. A differenza dei comandi è necessario prima sempre esplicare il tipo di ambiente, seguono gli argomenti opzionali, seguono gli argomenti obbligatori.
\end{nota} \end{nota}
In generale un ambiente può contenere un altro ambiente in un rapporto gerarchico infinito\footnote{Può esistere un ambiente dentro un ambiente dentro un ambiente dentro un ambiente dentro un ambiente\dots} In generale un ambiente può contenere un altro ambiente in un rapporto gerarchico infinito\footnote{Può esistere un ambiente dentro un ambiente dentro un ambiente dentro un ambiente dentro un ambiente\dots}
\subsection{Parentesi}
Le parentesi graffe (\{\}) si utilizzano per creare un blocco o un insieme. Ciò che avviene in un blocco è isolato dal resto del testo, se invochiamo dei comandi che apportano modifiche questi esisteranno solo nel blocco. Un blocco può contenere un sottoblocco. Raggruppare un comando aiuta a renderizzarlo correttamente in caso di errori di visualizzazione.
+1 -1
View File
@@ -29,7 +29,7 @@ I \texttt{ttf} sono \texttt{otf} raggruppati. Un \texttt{ttf} possiede generalme
\end{tabularx} \end{tabularx}
Per ognuno dei pesi è generalmente necessario specificare le 4 varianti: Regular, Bold, italic e BoldItalic. Non è necessario che un font definisca tutti i pesi. Per ognuno dei pesi è generalmente necessario specificare le 4 varianti: Regular, Bold, italic e BoldItalic. Non è necessario che un font definisca tutti i pesi.
\subsection{Definire un font} \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 \slash 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, scriver *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. 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 \backslash 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 \slash. 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} \begin{minted}{latex}
\usepackage{fontspec} \usepackage{fontspec}
\newfontfamily{\simplecustomfont}{./path/to/font} \newfontfamily{\simplecustomfont}{./path/to/font}