Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Riga di comando

Perché il terminale

Compilazione

I compositori del sistema TeX sono programmi a linea di comando. Compilare un sorgente per ottenere il PDF di fatto consiste nell’eseguire uno specifico comando al terminale

Poichè nella maggior parte dei casi l’esecuzione del compositore avviene “dietro le quinte” premendo un pulsante nella finestra dell’editor, possiamo in qualche modo pensare che l’interfaccia grafica di questi programmi sia l’editor stesso.

Sapere che l’azione compilare significa eseguire un comando al terminale,

Procedure per TeX Live

Installare e tenere aggiornata una distribuzione TeX Live sul proprio PC, implica l’esecuzione di comandi al terminale, specie su Linux e Windows.

Utilità generale

se si lavora al computer conoscere il terminale può aiutare a svolgere compiti ripetitivi o elaborazioni sui file in modo automatico e sicuro.

Cos’è il Terminale

Il terminale è una finestra di testo in cui si digitano comandi invece di fare click su icone o menù, che richiedono elaborazioni ai programmi o al sistema operativo.

Sinonimi del termine “terminale”:

  • riga (o linea) di comando
  • shell
  • prompt dei comandi
  • console

Warning

Questa sezione tratta l’argomento del Terminale in modo sintetico. Tieni conto che è invece molto vasto e articolato. L’evoluzione di questo componente storico dell’informatica è ancora attiva e allarga ulteriormente il campo.

Apri una shell

Prova ad aprire una finestra di terminale. In questo elenco trovi alcuni modi per farlo a seconda del sistema operativo:

  • in Windows, premi Start e nella barra di ricerca inizia a scrivere terminale poi premi invio.
  • in Linux, premi CTRL + Alt + T
  • in macOS, premi Cmd + Spazio e digita “Terminale”

La finestra è molto semplice: noterai un cursore lampeggiante che segnala il punto di inserimento del testo che segue il prompt che riporta la directory di lavoro.

Prima esecuzione

Ora che hai davanti un finestra di terminale prova a dare un comando così da chiarire ogni dettaglio operativo.

Scrivi pwd e poi invio. Il comando sta per print working directory. Dovresti leggerla come effetto dell’esecuzione le righe sottostanti.

Nella guida indicheremo i comandi così (nota che a destra si attiva il pulsante di copia del contenuto se passi sul riquadro del codice con il mouse):

pwd

Spesso i comandi accettano opzioni e argomenti. Spesso, ma non è una regola che vale sempre, le opzioni hanno nomi che iniziano con due trattini per esempio --color green oppure più brevemente con un trattino solo e una lettera, per esempio -c green.

Quasi tutti i comandi stampano un messaggio di aiuto se si da solo l’opzione --help o -h così da ricordare le possibili varianti.

Percorsi

Spesso i comandi operano sui file e sono file loro stessi. Sarebbe molto scomodo dover digitare tutto il percorso corrispondente nell’albero del file system perciò ci sono due aiuti:

  • la directory di lavoro già incontrata prima
  • il PATH di sistema
  • le directory . e ..

Quando esegui un comando il sistema operativo cerca tra i percorsi della variabile PATH. Ciò ti permette di digitare il nome del comando senza altre informazioni.

Quando indichi un file che si trova nella directory di lavoro puoi digitarne solo il nome.

Quando hai necessità di imporre l’esecuzione di un comando il cui eseguibile si trova enlla directory di lavoro, scrivi il percorso come ./nome-del-comando.

La directory superiore a quella della directory di lavoro è rappresentata da ... Se hai necessità di spostarti un livello più su usa il comando cd che sta per change directory dando il doppio punto come percorso.

Se utilizzi il comando cd senza argomenti ti sposterai nella directory home dove sono contenuti i file di lavoro del tuo personale account.

Qualche comando utile

Creare un file di testo

Per creare file di testo con comandi da terminale esistono davvero tantissime modalità. In Linux basta dare un comando touch seguito dal nome del file:

touch mio-sorgente.tex

In Windows, se utilizziamo PowerShell si usa New-Item o la sua versione breve ni, sempre seguito dal nome del file:

ni mio-sorgente.tex

Si può usare anche la redirezione dell’output con il comando echo che stampa il testo dato come argomento. Questi dati poi, possono essere indirizzati verso un file attraverso il simbolo di maggiore >.

L’idea funziona su tutti i sistemi operativi macOS, Windows e Linux: per creare un file non vuoto ma contenente i caratteri Hello World! possiamo eseguire il comando:

echo "Hello World!" > mio-sorgente.tex

texdoc

I comandi da terminale possono essere interattivi. Per esempio l’utility texdoc inclusa in TeX Live per la ricerca di documentazione, ha l’interessante opzione -l (trattino elle). La lettera sta per list e dice al comando di stampare l’elenco numerato di tutta la documentazione disponibile su un componente e di attendere la decisione dell’utente su quale aprire.

In questa immagine puoi leggere il comando che elenca la documentazione del pacchetto babel e l’output generato:

tree

Per visualizzare la struttura dei file esiste il comando tree. È utile per stampare l’albero dei sorgenti di un nostro progetto.

Se è installato provate a eseguirlo scrivendone semplicemente il nome seguito dal tasto invio:

tree

Facendolo dalla directory home della guida si ottiene questa rappresentazione:

├───00-intro
├───00-text
│   └───images
├───01-install
│   └───images
├───02-firstdoc
│   └───images
├───03-structure
├───11-lang
│   └───images
├───21-produzione
└───91-misc
    └───images

pdfcrop

Questa utilissima utility di Heiko Oberdiek compresa in TeX Live vi farà risparmiare tantissimo tempo e fatica nel caso servisse scontornare immagini PDF.

Esempio: abbiamo realizzato un grafico a torta che presenta un ampio bordo bianco. Inserito così com’è nel nostro documento con il pacchetto graphicx è un brutto risultato: ci sono ampi spazi bianchi attorno all’immagine senza ragione.

Una soluzione è attivare l’opzione di clipping della macro \inclugraphics ma occorre dare a mano per tentativi i quattro valori sui singoli lati. Non è solo noiso da fare, diventa impossibile se le immagini con bordo da inserire sono tante.

Con un comando da terminale risolviamo tutto: pdfcrop legge l’immagine PDF, calcola il box dei contenuti e scontorna ad esso il file:

pdfcrop grafico_torta.pdf

Otterrai il file grafico_torta-crop.pdf perfettamente scontornato pronto per inserirlo nel documento principale.

Opzione utile è --margins (nota il doppio trattino) con la quale puoi aggiungere un contorno al box minimo e, ancora, puoi specificare un nome per il file ritagliato. L’opzione --help data da sola al comando stampa tutte le opzioni disponibili accompagnate da una breve spiegazione:

pdfcrop --margins 5 input.pdf output.pdf
pdfcrop --margins '5 10 5 20' --clip input.pdf output.pdf
pdfcrop --help

Warning

Non è consigliabile dare a pdfcrop come nome del file di uscita quello del file da ritagliare perché così il file originale viene sovrascritto e perso

Se poi i file da ritagliare sono tanti e sono salvati in una stessa cartella con un unico comando possiamo scontornarli tutti in una volta.