texforge

Applicazione desktop · Windows, macOS, Linux

Un sorgente LaTeX,
due documenti.

texforge compila un file .tex con una distribuzione LaTeX vera e ne ricava due cose: un PDF impaginato da stampare e un HTML in cui le domande del quiz si rispondono davvero, con correzione e punteggio. Lo stesso testo, senza riscriverlo due volte.

Scarica l'ultima versione Leggi i comandi

La compilazione avviene sul tuo computer. I documenti non vengono caricati da nessuna parte.

Lo stesso frammento, due risultati
quiz.tex
% sorgente
\domanda[2]{Capitale della Francia?}
\begin{opzioni}
  \opzione{Marsiglia}
  \rispostacorretta{Parigi}
\end{opzioni}
PDF · da stampare

Domanda 1. Capitale della Francia? (2 pt)

Marsiglia

Parigi

Le due risposte sono identiche: sulla carta nulla rivela quale sia giusta.

HTML · da rispondere

Domanda 1. Capitale della Francia? 2 pt

Marsiglia

Parigi

Corretta · 2/2

L'applicazione

Tre schermate, nessuna configurazione

texforge è un programma che installi e apri, non un servizio a cui ti registri. La finestra è divisa in tre pagine: si compila nella prima, si gestiscono i pacchetti nella seconda, si controlla il motore LaTeX nella terza.

Compilatore

Trascini i .tex nella finestra, o li scegli dal disco, e premi Compila. Puoi aggiungere gli esempi inclusi con un click, per avere subito qualcosa che funziona da cui partire.

I file di supporto — quizstruct.sty, quiz.cfg, quiz.js, quiz.css — vengono messi accanto al tuo sorgente automaticamente: non devi procurarteli né tenerli nella stessa cartella.

Risultati e download

A fine compilazione trovi due gruppi, PDF e HTML. Ogni gruppo si scarica con un solo pulsante: se hai compilato più documenti, il gruppo diventa un unico archivio .zip invece di chiederti un salvataggio per ciascun file. Con un solo documento il salvataggio resta diretto.

L'HTML si può provare prima di salvarlo: l'anteprima gira in un riquadro isolato, così lo script del quiz non ha accesso alla finestra dell'app.

Registro

Sotto ai risultati c'è l'output di pdflatex e htlatex, per intero. Quando un documento non compila è lì che si legge il perché: pacchetto mancante, ambiente non chiuso, errore di sintassi alla riga n.

Se una delle due compilazioni fallisce, texforge non si ferma: produce quel formato con il generatore interno e lo segna nel registro, così hai comunque un risultato in mano.

Motore LaTeX

Usa il LaTeX che hai, o se lo installa

La pagina Motore LaTeX dice a che punto sei e cosa manca. Il comportamento dipende da cosa trova sul computer.

  1. Cerca una distribuzione

    Prima quella gestita da texforge, poi quella di sistema. L'ordine conta: se hai fatto installare la distribuzione all'app, i pacchetti che aggiungi finiscono lì, e vengono usati quelli.

  2. Se non ne trova nessuna, la installa

    Scarica TinyTeX — una TeX Live ridotta — e la scompatta nella tua cartella utente. Non serve la password di amministratore, non tocca il resto del sistema, e resta installata fra un avvio e l'altro. Per disinstallarla basta cancellare quella cartella, che l'app apre con un pulsante.

  3. Completa la dotazione con tlmgr

    Il download iniziale è piccolo, così è veloce e difficile che fallisca. Subito dopo, texforge installa 31 pacchetti di base — quelli che servono agli esempi e ai compiti di scuola — e poi 19 collezioni di TeX Live: font, matematica e scienze, grafica, bibliografia, lingue europee, LuaTeX e XeTeX. Il risultato è una distribuzione quasi completa.

    Restano fuori di proposito le lingue rare e la documentazione sorgente: pesano molto e servono a pochissimi. Se ti servono, si installano dalla pagina Pacchetti come qualunque altra cosa.

Se invece LaTeX c'è già

texforge lo rileva e compila con quello, senza scaricare nulla. Un limite però c'è: il tlmgr di una distribuzione di sistema richiede spesso i permessi di root, quindi la gestione dei pacchetti da dentro l'app può non essere disponibile. In quel caso li installi con il gestore della tua distribuzione — oppure lasci che texforge si installi la propria copia, che governa per intero.

Quando serve la rete

Solo per scaricare la distribuzione la prima volta e per installare o aggiornare pacchetti. Compilare è un'operazione locale: una volta che il motore è a posto, texforge lavora offline. I file .tex non escono mai dal computer, né durante la compilazione né dopo.

La pagina Pacchetti

Cosa puoi fare, e cosa corrisponde in tlmgr
Nell'appComandoA cosa serve
Elenco degli installati tlmgr list --only-installed Cosa hai già, con la descrizione breve di ogni pacchetto. C'è un filtro per cercare nel proprio elenco.
Cerca tlmgr search --global Cerca nel catalogo remoto, non solo fra gli installati: serve per trovare un pacchetto che ancora non hai.
Installa tlmgr install nome Aggiunge il pacchetto e le sue dipendenze. Resta installato anche dopo aver chiuso l'app.
Rimuovi tlmgr remove nome Lo toglie dalla distribuzione gestita da texforge.
Aggiorna tutti tlmgr update --self --all Aggiorna tlmgr stesso e tutti i pacchetti. È l'operazione più lunga: può richiedere diversi minuti.

I nomi passano da un controllo prima di finire in una riga di comando: solo lettere, cifre e . _ + - sono accettati.

Senza installare niente

Il PDF si compila anche su Overleaf

Il sorgente è LaTeX vero, quindi per il PDF texforge non è obbligatorio: lo stesso .tex compila su Overleaf, dal browser. Utile sul computer della scuola, su tablet, o per lavorare in due sullo stesso documento.

  1. Crea il progetto

    Su Overleaf, New Project → Blank Project. Se hai già uno ZIP di sorgenti, Upload Project.

  2. Carica due file

    Il tuo .tex e quizstruct.sty, che trovi fra gli allegati di ogni release. Il .sty va nella stessa cartella del .tex: Overleaf lo trova da solo, non c'è niente da installare. Usa solo pacchetti standard — amsmath, amssymb, xcolor, enumitem, pgffor — già presenti lì.

  3. Compila con pdfLaTeX

    Menu → Compiler → pdfLaTeX, poi Recompile. I file quiz.cfg, quiz.js e quiz.css non servono: riguardano solo l'HTML.

L'HTML interattivo — risposte cliccabili e 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.

quizstruct.sty

I comandi del pacchetto

Il pacchetto non aggiunge interattività: dà struttura semantica. Invece di un itemize muto, ogni pezzo del quiz ha un comando dedicato, e questo permette al convertitore HTML di riconoscerlo e trasformarlo nel controllo giusto. Nel PDF gli stessi comandi diventano tipografia normale.

Si carica come qualsiasi altro pacchetto. Richiede da sé amsmath, amssymb, xcolor, enumitem e pgffor, quindi non devi aggiungerli tu:

\usepackage{quizstruct}
\begin{quiz}{titolo}\end{quiz} ambiente

Contiene le domande. Stampa il titolo come sezione non numerata e azzera i contatori, così più quiz nello stesso documento ripartono ognuno da «Domanda 1».

titolo — l'intestazione del quiz.

\domanda[punti]{testo} comando

Apre una domanda, la numera e ne somma i punti al totale del quiz. Va seguito da uno dei tre modi di rispondere: opzioni, \tendina o \numerica.

punti — opzionale, vale 1 se lo ometti.
testo — la domanda; può contenere matematica, come $\int_0^1 x\,dx$.

PDF «Domanda 1.» in neretto, il testo, e i punti a destra in grigio. HTML un blocco domanda con il suo punteggio.

\begin{opzioni} … \end{opzioni} ambiente

Racchiude le risposte di una domanda a scelta multipla. Va subito dopo \domanda e contiene solo \opzione e \rispostacorretta.

PDF un elenco di caselle da barrare. HTML un gruppo di radio button: una sola scelta possibile.

\opzione{testo}  ·  \rispostacorretta{testo} comando

Una risposta sbagliata e una giusta. Nel PDF sono indistinguibili — stessa casella, stessa formattazione — quindi stampare il compito non svela le soluzioni. Nell'HTML la differenza esiste solo per lo script che corregge.

Puoi metterne quante vuoi, in qualsiasi ordine.

\tendina{corretta}{sbagliate} comando

Menu a discesa, comodo quando le alternative sono molte e occuperebbero troppo spazio in elenco. Le sbagliate si scrivono in un unico argomento, separate da virgole.

corretta — la risposta giusta.
sbagliate — le altre, separate da virgola: {Po, Arno, Adige}.

PDF «Scegli dal menu:» e sotto l'elenco delle alternative. HTML un vero <select>.

\numerica{valore}{tolleranza} comando

Risposta numerica libera, accettata entro un margine. Utile quando il risultato è un numero e non ha senso suggerire delle alternative.

valore — il numero corretto.
tolleranza — il margine ammesso; 0 accetta solo il valore esatto.

PDF «Risposta:» seguito da una riga vuota da compilare a penna. HTML un <input type="number"> validato entro la tolleranza.

\numerica{3.14}{0.01} accetta da 3,13 a 3,15. \numerica{42}{0} accetta solo 42.

\risultato comando

Segna il punto in cui stampare il punteggio. Di solito è l'ultima riga prima di \end{quiz}. Qui i due output divergono per forza: un PDF non calcola nulla mentre lo leggi.

PDF il punteggio massimo ottenibile, sommato durante la compilazione. HTML il punteggio ottenuto, calcolato mentre rispondi.

Riepilogo

I tre modi di rispondere

Scelti in base alla domanda, non al gusto: quante alternative ci sono, e se la risposta è un numero.

Tipo Si scrive Sul PDF Sull'HTML Quando usarlo
Scelta multipla opzioni con \opzione e \rispostacorretta Caselle da barrare Radio button Poche alternative, da leggere tutte insieme.
Menu a tendina \tendina{giusta}{sbagliate} Elenco delle alternative <select> Molte alternative, che in elenco occuperebbero troppo.
Numerica \numerica{valore}{tolleranza} Riga vuota Campo numerico con tolleranza La risposta è un numero e suggerirla sarebbe un aiuto.

A chiudere il quiz c'è \risultato, che non è un tipo di domanda ma il punto in cui compare il punteggio: massimo sul PDF, ottenuto sull'HTML.

Esempi

Sorgenti da cui partire

Sono gli stessi file inclusi nell'app, che puoi caricare con un click dalla pagina Compilatore. Clicca su un blocco per copiarlo.

Un quiz completo e minimo: preambolo, un ambiente quiz, i tre tipi di domanda e il punteggio. È il punto di partenza consigliato.

\documentclass[11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[italian]{babel}
\usepackage{quizstruct}

\begin{document}
\begin{quiz}{Capitali europee}

  \domanda[2]{Qual è la capitale della Francia?}
  \begin{opzioni}
    \opzione{Marsiglia}
    \opzione{Lione}
    \rispostacorretta{Parigi}
    \opzione{Nizza}
  \end{opzioni}

  \domanda[3]{Quale fiume attraversa Roma?}
  \tendina{Tevere}{Po, Arno, Adige}

  \domanda[2]{Quanto vale $\int_0^1 x\,dx$?}
  \numerica{0.5}{0.01}

  \risultato

\end{quiz}
\end{document}

Scaricabili singolarmente dall'ultima release: quiz.tex, matematica.tex, lezione.tex.

Installazione

Scarica texforge

Prendi il file adatto al tuo sistema dall'ultima release. Non serve installare LaTeX prima: se manca, ci pensa l'app.

SistemaFileNote
Windowstexforge-versione-windows-x64.exeInstaller: puoi scegliere la cartella, non richiede l'amministratore.
macOStexforge-versione-macos-arm64.dmgPer i Mac Apple Silicon.
Linuxtexforge-versione-linux-x86_64.AppImageFunziona su qualsiasi distribuzione: rendilo eseguibile e aprilo.
Debian, Ubuntutexforge-versione-linux-amd64.debDa installare con il gestore pacchetti di sistema.
Fedoratexforge-versione-linux-x86_64.rpmCome sopra, per le distribuzioni RPM.

Vai alle release

Al primo avvio

Apri la pagina Motore LaTeX. Se trova già una distribuzione lo dice e non c'è altro da fare. Altrimenti premi Installa la distribuzione e aspetta: scarica, scompatta e aggiunge i pacchetti, mostrando il registro mentre lavora. È l'unico momento in cui serve un po' di pazienza.

L'avviso di sicurezza

Windows e macOS segnaleranno l'applicazione come non riconosciuta, perché gli installer non sono firmati: la firma richiede un certificato a pagamento. Su Windows scegli Ulteriori informazioni → Esegui comunque; su macOS fai clic destro sull'app e poi Apri.