Un sorgente .tex, due documenti. Scrivi un compito o un quiz in LaTeX,
texforge lo compila in un PDF da stampare e in un HTML interattivo
dove si risponde davvero, con correzione e punteggio automatici. Stesso
testo, nessuna riscrittura.
Applicazione desktop per Windows, macOS e Linux. Compila sul tuo computer, con LaTeX vero — non ti serve nemmeno installarlo, se non ce l'hai già ci pensa l'app.
- Scarica l'applicazione
- Come funziona
- Il pacchetto
quizstruct.sty - Il PDF si compila anche su Overleaf
- Sicurezza e privacy
- Sviluppo
- Struttura del repository
- Licenza
Ultima release — un installer per il tuo sistema:
| Sistema | File |
|---|---|
| Windows | texforge-*-windows-x64.exe |
| macOS (Apple Silicon) | texforge-*-macos-arm64.dmg |
| macOS (Intel) | texforge-*-macos-x64.dmg |
| Linux (qualsiasi distribuzione) | texforge-*-linux-x86_64.AppImage |
| Debian / Ubuntu | texforge-*-linux-amd64.deb |
| Fedora | texforge-*-linux-x86_64.rpm |
Gli installer non sono firmati digitalmente — il certificato è a pagamento. Windows mostrerà un avviso: scegli Ulteriori informazioni → Esegui comunque. Su macOS: clic destro sull'app → Apri.
Al primo avvio, vai su Motore LaTeX e premi Installa la distribuzione: scarica una TeX Live minima (TinyTeX) nella tua cartella utente, senza permessi di amministratore. Se hai già LaTeX installato, texforge lo trova e lo usa direttamente.
- Compila con LaTeX vero —
pdflatexper il PDF,htlatexper l'HTML — non un'approssimazione del linguaggio - Gestione dei pacchetti integrata — cerchi, installi, rimuovi da
tlmgrsenza uscire dall'app; restano installati fra un avvio e l'altro - Funziona anche senza LaTeX — un compilatore JavaScript interno produce comunque PDF e HTML per i quiz, coprendo l'uso scolastico di base
- HTML autosufficiente — stile e script incorporati in un solo file: lo mandi a chiunque, funziona offline
- 4 tipi di domanda — scelta multipla, menu a tendina, risposta numerica, punteggio finale calcolato a video
- Multi-file — carica più sorgenti insieme; gli output vengono impacchettati in un unico ZIP
- Tutto in locale — i documenti non lasciano mai il tuo computer; serve rete solo per installare LaTeX o un pacchetto
Il quiz si scrive con pochi comandi LaTeX:
\begin{quiz}{Capitali europee}
\domanda[2]{Qual è la capitale della Francia?}
\begin{opzioni}
\opzione{Marsiglia}
\rispostacorretta{Parigi}
\opzione{Lione}
\end{opzioni}
\risultato
\end{quiz}| Comando | Sintassi | Descrizione |
|---|---|---|
| ambiente | \begin{quiz}{Titolo} |
Contenitore del quiz |
| comando | \domanda[punti]{testo} |
Apre una domanda (default 1 pt) |
| ambiente | \begin{opzioni} ... \end{opzioni} |
Scelta multipla (radio) |
| comando | \opzione{testo} |
Risposta sbagliata |
| comando | \rispostacorretta{testo} |
Risposta corretta |
| comando | \tendina{corretta}{sbagliate} |
Menu a discesa (select) |
| comando | \numerica{valore}{tolleranza} |
Risposta numerica libera |
| comando | \risultato |
Placeholder del punteggio finale |
Documentazione completa dei comandi e altri esempi: sito del progetto.
Il sorgente è LaTeX vero: per il PDF non serve texforge. Lo stesso .tex
compila su Overleaf, dal browser — comodo su un
computer della scuola, su tablet, o per lavorare in due sullo stesso
documento.
- Su Overleaf: New Project → Blank Project.
- Carica nel progetto due file: il tuo
.texequizstruct.sty(scaricalo qui, o prendilo dagli allegati di una release). Il.styva nella stessa cartella del.tex: Overleaf lo trova da solo, non serve installare niente. - Compilatore pdfLaTeX (
Menu → Compiler), poi Recompile.
quizstruct.sty usa solo pacchetti standard (amsmath, amssymb,
xcolor, enumitem, pgffor), già presenti nella TeX Live di Overleaf.
Non servono quiz.cfg, quiz.js né quiz.css: riguardano solo l'HTML.
L'HTML interattivo — risposte cliccabili, punteggio che si calcola da
solo — è la parte in più, e si ottiene solo con l'app: richiede
htlatex e i file di configurazione, che Overleaf non mette in conto. In
pratica: su Overleaf ottieni il compito da stampare, con texforge ottieni
anche la versione che si corregge da sola — stesso sorgente, nessuna
modifica.
- Niente rete per i tuoi documenti. La compilazione avviene sul tuo computer: i sorgenti e gli output non vengono mai inviati altrove. Una connessione serve solo per installare la distribuzione TeX o un pacchetto nuovo, entrambi scaricati dalle fonti ufficiali.
- Interfaccia isolata dal sistema. La finestra gira con
contextIsolationattivo e senza integrazione Node: può fare solo ciò che il ponte inpreload.cjsespone esplicitamente, e nessun canale accetta percorsi arbitrari dal renderer. - Testo non fidato sempre escapato prima di finire nell'HTML generato.
- Anteprima confinata in un iframe
sandbox="allow-scripts": origine opaca, nessun accesso alla finestra dell'app. - Zero terze parti. Né l'app né i documenti generati caricano font, script o risorse da domini esterni.
- LaTeX confinato —
pdflatexgira con-no-shell-escapeeopenin_any/openout_anyin modalità paranoica, con timeout. - Nomi dei pacchetti validati prima di finire in una riga di comando
tlmgr. - Codice e distribuzione sono libere. Il repository è MIT; TeX Live e TinyTeX (scaricati dalle fonti ufficiali al momento dell'installazione, mai inclusi negli installer) sono sotto licenze libere pensate apposta per la ridistribuzione.
cd desktop
npm install
npm start # avvia l'app in sviluppo
npm run dist:linux # AppImage + deb + rpm
npm run dist:win # installer Windows
npm run dist:mac # dmg macOSGli installer finiscono in dist-desktop/. Ogni sistema può costruire solo
i propri pacchetti nativi; la release su GitHub li produce tutti insieme con
una matrice di CI (.github/workflows/release.yml).
Prova automatica dell'app (serve un display virtuale su Linux):
cd desktop && xvfb-run -a node smoke-test.mjsProve sul compilatore (non serve LaTeX installato):
npm testIl sito di presentazione (docs/) si serve così:
npm install && npm start # http://localhost:3000Per i dettagli su come contribuire vedi CONTRIBUTING.md.
Oltre all'applicazione esiste una versione in un solo file HTML, che gira nel browser senza installare nulla — comoda dove non puoi installare programmi:
npm install
npm run build:app # genera dist/texforge.htmlUsa solo il compilatore JavaScript interno: niente LaTeX vero, niente gestione pacchetti. Per quelli serve l'applicazione.
Si caricano con un click dal compilatore, oppure sono in latex-source/ ed
esempi/:
quiz.tex— quiz base (capitali, fiumi, integrali)matematica.tex— derivata, equazione, integrale, formulalezione.tex— lezione completa (testo + formule + 2 quiz)fisica-lezione.tex— lezione di fisica
texforge/
├── desktop/ l'applicazione (Electron)
│ ├── main.js processo principale: finestra, IPC, compilazione
│ ├── latex.js rileva/installa LaTeX, gestisce i pacchetti con tlmgr
│ ├── preload.cjs ponte isolato fra interfaccia e sistema
│ ├── renderer/ interfaccia: Compilatore, Pacchetti, Motore LaTeX
│ ├── prepare.mjs copia in vendor/ le risorse condivise
│ └── smoke-test.mjs prova automatica dell'app vera
├── src/
│ ├── compiler.js il compilatore: logica pura, gira in Node e nel browser
│ └── *.test.mjs prove automatiche (npm test)
├── build/build-app.mjs impacchetta tutto in dist/texforge.html
├── server.js servitore statico del sito di presentazione
├── frontend/ risorse grafiche condivise
│ ├── style.css design system (colori, caratteri, componenti)
│ ├── app.css stile del compilatore
│ └── icons/ icone dell'applicazione
├── docs/ sito di presentazione (statico, GitHub Pages)
│ ├── index.html comandi, tipi di domanda, esempi
│ ├── script.js nav, scroll progress, tabs, copia codice
│ └── style.css design system
├── backend/fonts/ DejaVu Sans (sottoinsieme) per il generatore PDF
├── latex-source/ pacchetto + file di supporto per l'HTML
│ ├── quizstruct.sty pacchetto LaTeX
│ ├── quiz.cfg configurazione htlatex
│ ├── quiz.js validazione dell'HTML interattivo
│ ├── quiz.css stile dell'HTML interattivo
│ └── quiz.tex quiz base (capitali, fiumi, integrali)
├── esempi/ documenti dimostrativi
├── .github/workflows/ CI + release multipiattaforma
├── LICENSE MIT
├── CHANGELOG.md
└── CONTRIBUTING.md
Apri un .tex nell'applicazione
↓
Se c'è LaTeX: pdflatex (2 passate) → PDF
htlatex + quiz.cfg → HTML, poi reso autosufficiente
(stile, script e immagini incorporati)
Se non c'è: compilatore JavaScript interno → PDF (pdf-lib) e HTML
↓
Salvi dove vuoi, o provi il quiz nell'anteprima
↓
Sul disco resta solo quello che hai salvato tu:
la cartella di lavoro viene cancellata
Sito completo, con tutti i comandi e gli esempi: https://francy2009.github.io/TeXForge/
(o, in locale, con il server avviato: http://localhost:3000).
MIT — vedi LICENSE. Codice e risorse di terze parti (TeX Live, TinyTeX, i font DejaVu, le dipendenze npm) sono tutti sotto licenze libere; nessuna viene mai ridistribuita dentro l'installer.
Vedi CONTRIBUTING.md.