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
terminalepoi 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
PATHdi 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.