01
Build XeLaTeX to PDF / build (push) Failing after 16s

This commit is contained in:
Domipoke
2026-07-28 20:45:48 +02:00
parent c233e7dc61
commit e89e577bb9
7 changed files with 134 additions and 15 deletions
+1 -1
View File
@@ -34,7 +34,7 @@ jobs:
args: >-
-c "mkdir -p pdf aux .texcache/texmf-var .texcache/xdg && for f in ${{ steps.roots.outputs.roots }}; do
echo Building $f;
latexmk -xelatex -interaction=nonstopmode -halt-on-error -outdir=pdf -auxdir=aux \"$f\" || exit 1;
latexmk -xelatex -shell-escape -interaction=nonstopmode -halt-on-error -outdir=pdf -auxdir=aux \"$f\" || exit 1;
done && find pdf -type f ! -name '*.pdf' -delete"
- name: Upload built PDFs
+4 -1
View File
@@ -1,5 +1,8 @@
\documentclass{scrbook}
% 2
\usepackage{myformat}
\title{LearnLaTeX}
\author{Domipoke}
\begin{document}
\input{./book/copertina.tex}
\input{./book/00_premessa.tex}
+5 -9
View File
@@ -17,17 +17,13 @@ Il download locale di \LaTeX necessità di 2 componenti:
\end{itemize}
\subsubsection{Ambiente di sviluppo}
\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}
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}
\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{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{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{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.
\subsubsection{Compilatore remoto}
Questa è una soluzione che sto testando con i lavori degli ultimi giorni. Consiste nell'usare git insieme a Gitea (versione selfhosted del più famoso Github). Git gestisce il \verb|push| (upload) e \verb|pull| (download) dei progetti in una cartella remota definita come \verb|repository|. Possiede una funzione detta \verb|Action| che permette di eseguire in modo automatico su un docker\footnote{Un particolare programma di macchine virtuali} remoto delle azioni di compilazione e aggiungere al nostro upload il risultato finito. Gitea essendo selfhosted è priva di code a meno di più richieste simultanee e generalmente risolve la compilazione entro i due minuti. \capitalgrave{E} possibile scaricare il pdf in locale effettuando una \verb|pull|. Altro vantaggio di git il quale lo rende estremamente usato sia dai programmatori che più in generale per qualsiasi progetto di gruppo è la sua comoda gestione del lavoro simultaneo di più persone contemporaneamente anche sullo stesso file.
+25
View File
@@ -0,0 +1,25 @@
\chapter{\LaTeX}
\section{Le basi}
La base di un progetto in \LaTeX è un file con estensione\footnote{Ogni file possiede un'estensione che si divide dal nome del file utilizzando un \verb|.|. L'estensione generalmente è una parola di massimo 4 caratteri. Esempi famosi sono: .exe, .mp3, .mp4, .png.} \verb|.tex|. La generale struttura di un file \verb|.tex| è composto da:
\begin{itemize}
\item \verb|\commands[optionArgs]{Args}|
\item \verb|\begin{ambiente}...\end{ambiente}|: immaginatelo come una parentesi che si apre e si chiude e che ha un contenuto.
\item Testo normale
\item \verb|%| Commento: ciò che segue \verb|%| nella stessa riga viene ignorato
\end{itemize}
Lo scheletro di un file \verb|.tex| è il seguente:
\begin{minted}[fontsize=\small, linenos, frame=single, framesep=2mm]{latex}
\documentclass{article} % Definizione del tipo di documento
% Lista di librerie
...
% Inizio del documento
\begin{document}
% Testo del nostro documento
\end{document}
\end{minted}
La riga \verb|\documentclass| è necessaria per identificare il file e dovrebbe essere la prima chiamata. La lista delle librerie è buona norma elencarla all'inizio, subito dopo \verb|\documentclass| per assicurarci che il compilatore abbia già caricato tutte le librerie correttamente prima di iniziare a compilare il testo effettivamente.
Tutto ciò che appartiene al nostro documento va inserito all'interno dell'ambiente \verb|document|.
\section{\verb|\documentclass{}|}
La prima riga di un file \verb|.tex|, se rappresenta un root file, ovvero il file ch dovrà essere compilato in pdf, deve delineare la document class. All'interno della prima coppia di parentesi graffe che va posta attaccata al comando \verb|\documentclass|, viene esplicato il tipo di documento. Esistono svariati tipi di documenti e di ognuno di questi si trova la documentazione completa online cercando "latex documentclass nome docs". I più famosi sono i seguenti:
\paragraph{article}
+6
View File
@@ -0,0 +1,6 @@
\begin{titlepage}
\maketitle
\end{titlepage}
\cleardoublepage
\tableofcontents
+3 -1
View File
@@ -1,5 +1,5 @@
\documentclass{scrbook}
\usepackage{fontspec}
\usepackage{myformat}
\setmainfont{OpenDyslexic}[
Path = fonts/OpenDyslexic/,
Extension = .otf,
@@ -8,6 +8,8 @@
ItalicFont = *-Italic,
BoldItalicFont = *-BoldItalic
]
\title{LearnLaTeX}
\author{Domipoke}
% 2
\begin{document}
\input{./book/copertina.tex}
+87
View File
@@ -0,0 +1,87 @@
\ProvidesPackage{myformat}[2026/07/28 SrcBook styled]
% This file change the behaviour of some commands such as:
% \underline -> \uline
%
%
\RequirePackage{fontspec}
\RequirePackage[svgnames, dvipsnames, table]{xcolor}
\RequirePackage{fontawesome5}
\KOMAoptions{
paper=a4,
fontsize=12pt,
chapterprefix=true,
twoside=semi,
DIV=classic,
parskip=half
}
% JP Font
% \RequirePackage{xeCJK}
% \setCJKmainfont{HaranoAji_GothicMedium.otf}[Path=./fonts/]
% other package
\RequirePackage{lmodern}
\RequirePackage{microtype}
\RequirePackage{tcolorbox}
\RequirePackage{graphics}
\RequirePackage{booktabs}
\RequirePackage[normalem]{ulem}
\renewcommand{\underline}[1]{\uline{#1}}
\RequirePackage{tabularx}
\tcbuselibrary{skins,breakable}
\sffamily
\linespread{1.25}
\setfootnoterule{0.8\textwidth}
\RequirePackage{scrlayer-scrpage}
\pagestyle{scrheadings}
\automark[section]{chapter}
\ofoot*{}
\cfoot*{\pagemark}
\RequirePackage{imakeidx}
\begin{filecontents}[overwrite]{myindexstyle.ist}
headings_flag 1
heading_prefix
"\\bigskip\\par\\penalty-50\\textbf{"
heading_suffix
"}\\\\[\\medskipamount]"
symhead_positive "Symbols"
symhead_negative "symbols"
numhead_positive "Numbers"
numhead_negative "numbers"
delim_0 ",\~"
\end{filecontents}
\makeindex[intoc, options=-s myindexstyle]
\usepackage{hyperref}
\hypersetup{
colorlinks,
linkcolor = black,
urlcolor = blue!70!Red,
citecolor = blue!70!Red,
pdfauthor = Domipoke,
pdftitle = LearnLATEX
}
\RequirePackage[open,openlevel=1,atend,numbered]{bookmark}
\RequirePackage{pdfpages}
% Chapter Heading (and related)
\renewcommand*{\chaptermarkformat}{\chapapp~\thechapter~--~}
\addtokomafont{chapterprefix}{\itshape\color{white}}
\renewcommand*{\chapterformat}{\raggedleft\colorbox{RoyalBlue}{\parbox[b][2.8em]{2.8em}{\vfill\centering{\large\chapapp}\\[-0.4em]\thechapter\vfill}}}
\renewcommand*{\chapterheadstartvskip}{\addvspace{2em}}
\RequirePackage{pgfornament}
\renewcommand*{\chapterheadendvskip}{\pgfornament[width=\textwidth]{88}\par}
% Section Heading
\renewcommand*{\sectionformat}{\colorbox{black}{\textcolor{white}{\thesection\autodot}}\enskip}
\renewcommand*{\sectionlinesformat}[4]{\makebox[0pt][l]{\rule[-\fboxsep-\fboxrule]{\textwidth}{\fboxrule}}#3\parbox[b]{0.85\textwidth}{\linespread{1}\selectfont#4}}
\RequirePackage{minted}
\setmonofont{JetBrains Mono}
\usemintedstyle{monokai}