4. Come è possibile documentare più programmi/funzioni all'interno di un'unica pagina man?

Un gruppo di programmi (grep, egrep) o di funzioni (printf, fprintf, ...) possono essere documentati in un'unica pagina di manuale. Tuttavia, queste pagine man sarebbero del tutto inservibili se fossero accessibili soltanto attraverso uno dei nomi. Non potremo pretendere che un utente si ricordi che la pagina man di egrep è in realtà la stessa di grep. Perciò si farà in modo di rendere disponibile la stessa pagina man sotto diversi nomi; ci sono svariate possibilità per ottenere questo risultato:

  1. fare copie identiche per ogni nome.

  2. collegare tutte le pagine man utilizzando i link fisici (o hard link).

  3. utilizzare link simbolici che puntano tutti alla pagina man effettiva.

  4. utilizzare il meccanismo del `sorgente' di groff messo a disposizione dalla macro .so.

La prima strada, ovviamente, comporta lo spreco di spazio su disco. La seconda non è raccomandabile perché alcune versioni intelligenti del programma catman consentono di risparmiare molto lavoro inutile, scandagliando il tipo di file o i suoi contenuti. I link fisici impediscono a catman di fare queste preziose operazioni (si noti che catman preformatta tutte le pagine man al fine di mostrarle più rapidamente). La terza alternativa presenta un piccolo inconveniente: poiché alcuni file system non gestiscono i link simbolici, questa soluzione sarebbe poco flessibile. Se ne conclude che la miglior soluzione consiste nell'utilizzare il meccanismo del sorgente di groff. Ecco come si fa: se volete che la vostra pagina man sia disponibile nella sezione 1 attraverso i nomi `foo' e `zac', collocate la pagina man in foo.1 e realizzate la pagina zac.1 in modo che appaia così:

.so man1/foo.1

È importante indicare esplicitamente sia il nome del file `foo.1' sia la parte man1/ della directory; infatti, quando groff verrà eseguito dal visualizzatore delle pagine man, avrà come directory di lavoro quella dei manuali e groff interpreterà gli argomenti di .so come nomi di percorso relativi a tale directory.