Groff
Groff o GNU troff è un sistema per creare documenti partendo da file di testo molto più leggero di LaTeX. Su questa pagina verrà usato il pacchetto di macro ms, gli altri pacchetti sono man, mdoc, me, mm e mom. Le macro ms sono buone per scrivere reports, lettere, libri, ma anche papers. Il file su cui il documento verrà scritto ha tipicamente l'estensione .ms e inizia con la copertina:
.TL
Titolo
.AU
Autore
.AB
Abstract
Ci sono altre cose che possono essere messe nella copertina, ma potete limitarvi a titolo e autore. Come potete notare i comandi di groff occupano una riga intera che inizia con il punto, immediatamente seguito dal nome del comando.
Utilizzo di base
Sezioni, sottosezioni e paragrafi
.NH
Sezione
.NH 2
Sottosezione
.PP
paragrafo con prima riga indentata
.NH 2
Altra sottosezione
.LP
paragrafo senza indentazione
.NH
Sezione 2
.PP
fine
Il comando .NH (numbered heading) è un primo esempio di un comando che prende un argomento opzionale: il livello della sezione. Gli argomenti vengono dopo il comando separati da spazio, come un comando nella shell. Analogamente ai comandi della shell, se il comando è una stringa con spazi, è opportuno racchiuderlo tra le virgolette (").
Liste
Per fare le liste si usa il comando .IP, tipicamente con un solo argomento: il marker. Per le liste non ordinate, il marker è il pallino • (scritto \[bu], vedere i caratteri speciali nella sezione dedicata), oppure può essere qualsiasi stringa ("a)", "b)", "c)")
.NH
Liste
.PP
Lista di frutti:
.IP \[bu]
mela
.IP \[bu]
pera
.LP
Lista di opzioni
.IP a)
opzione 1
.IP b)
opzione 2
Formattazione del testo
I comandi che formattano il testo in groff sono molto simili:
.COMANDO testo [dopo] [prima]
Il comando mostrerà il testo con la formattazione scelta da COMANDO. dopo e prima sono argomenti opzionali e, se presenti, vengono mostrati con la formattazione che c'era prima di COMANDO, posizionati rispettivamente dopo e prima il testo. Ad esempio, il comando
.B ciao ) (
verrà compilato in (ciao)
COMANDO può essere
- B: grassetto
- I: corsivo
- BI: grassetto e corsivo
- R: roman
- CW: monospace
- BX: racchiudi testo in un rettangolo
- UL: sottolineatura
- LG: testo ingrandito
- SM: testo rimpicciolito
- NL: testo di dimensione normale
Compilare un file con estensione .ms
Per compilare un documento doc.ms e generare doc.pdf, il comando da utilizzare è
groff -ms doc.ms -Tpdf > doc.pdf
Questo comando funziona solo se non si usa nessun preprocessore. Per far compilare anche i documenti che usano i preprocessori, usare
groff -ms doc.ms -petTpdf > doc.pdf
- -p: è stato aggiunto per il preprocessore pic
- -e: è stato aggiunto per il preprocessore eqn
- -t: è stato aggiunto per il preprocessore tbl
cheatsheet di alcuni caratteri
| Input | Output | nome |
|---|---|---|
| \[Fo] | « | doppie virgolette a sinistra |
| \[Fc] | » | doppie virgolette a destra |
| \[fo] | ‹ | angolo sinistro |
| \[fc] | › | angolo destro |
| \[la] | ⟨ | grande angolo sinistro |
| \[ra] | ⟩ | grande angolo destro |
| \[bracketlefttp] | ⎡ | angolo alto a sinistra |
| \[bracketleftbt] | ⎣ | angolo basso a sinistra |
| \[bracketrighttp] | ⎤ | angolo alto a destra |
| \[bracketrightbt] | ⎦ | angolo basso a destra |
| \[<-] | ← | freccia sinistra |
| \[->] | → | freccia destra |
| \[<>] | ↔ | freccia sx-dx |
| \[da] | ↓ | freccia giù |
| \[ua] | ↑ | freccia sù |
| \[va] | ↕ | freccia giù-sù |
| \[lA] | ⇐ | doppia freccia sinistra |
| \[rA] | ⇒ | doppia freccia destra |
| \[hA] | ⇔ | doppia freccia sx-dx |
| \[dA] | ⇓ | doppia freccia giù |
| \[uA] | ⇑ | doppia freccia sù |
| \[vA] | ⇕ | doppia freccia giù-sù |
| \[ci] | ○ | cerchio |
| \[bu] | • | pallino |
| \[lz] | ◊ | rombo |
| \[sq] | □ | quadrato |
| \[ps] | ¶ | fine del paragrafo |
| \[sc] | § | sezione |
| \[CR] | ↵ | carriage return |
| \[OK] | ✓ | check mark |
| \[co] | © | copyright |
| \[rg] | ® | registrato |
| \[tm] | ™ | trade mark |
| \[Do] | $ | dollaro |
| \[ct] | ¢ | centesimo |
| \[eu] | € | euro |
| \[Ye] | ¥ | yen |
| \[Po] | £ | pound |
| \[Cs] | ¤ | moneta scandinava |
| \[Fn] | ƒ | florin |
| \[de] | ° | grado |
| \[%0] | ‰ | per mille |
| \[fm] | ′ | minuti |
| \[sd] | ″ | secondi |
| \[mc] | µ | micro |
| \[AN] | ∧ | congiunzione logica |
| \[OR] | ∨ | disgiunzione logica |
| \[no] | ¬ | negazione logica |
| \[te] | ∃ | quantificatore esistenziale |
| \[fa] | ∀ | quantificatore universale (per ogni) |
| \[st] | ∋ | tale che |
| \[-+] | ∓ | meno più |
| \[+-] | ± | più meno |
| \[pc] | · | punto centrato |
| \[md] | ⋅ | moltiplicazione (punto) |
| \[mu] | × | moltiplicazione (croce) |
| \[c*] | ⊗ | moltiplicazione con cerchio |
| \[c+] | ⊕ | somma con cerchio |
| \[di] | ÷ | divisione |
| \[<=] | ≤ | minore o uguale di |
| \[>=] | ≥ | maggiore o uguale di |
| \[<<] | ≪ | molto minore di |
| \[>>] | ≫ | molto maggiore di |
| \[!=] | ≠ | diverso da |
| \[==] | ≡ | equivalente a |
| \[ne] | ≢ | non equivalente a |
| \[=~] | ≅ | congruente |
| =] | ≃ | asintoticamente uguale |
| \[ap] | ∼ | simile a |
| \[~=] | ≈ | quasi uguale a |
| \[pt] | ∝ | proporzionale a |
| \[es] | ∅ | insieme vuoto |
| \[mo] | ∈ | appartiene a |
| \[nm] | ∉ | non appartiene a |
| \[sb] | ⊂ | sottoinsieme proprio |
| \[nb] | ⊄ | non sottoinsieme |
| \[sp] | ⊃ | superinsieme proprio |
| \[nc] | ⊅ | non superinsieme |
| \[ib] | ⊆ | sottoinsieme |
| \[ip] | ⊇ | superinsieme |
| \[ca] | ∩ | intersezione |
| \[cu] | ∪ | unione |
| \[pp] | ⊥ | perpendicolare |
| \[gr] | ∇ | gradiente |
| \[lc] | ⌈ | ceil sinistro |
| \[rc] | ⌉ | ceil destro |
| \[lf] | ⌊ | floor sinistro |
| \[rf] | ⌋ | floor destro |
| \[if] | ∞ | infinito |
| \[+p] | π | pi |
| \[CL] | ♣ | fiori |
| \[SP] | ♠ | picche |
| \[HE] | ♥ | quori |
| \[DI] | ♦ | diamanti |