¿Cómo producir un pdf en formato A4 de una página de manual?

6

Sé que man -t ls | open -f -a /Applications/Preview.app produce un pdf de la página man del comando ls .

Pero el pdf producido es en tamaño Carta de los EE. UU. (21,59 cm x 27,94 cm).

La página del manual de man dice que la opción -t usa internamente /usr/bin/groff -Tps -mandoc -c .

Entonces, de acuerdo con groff man, intenté esto para obtener un tamaño A4 (21 cm x 29.7 cm) en el pdf (el tamaño A4 es ampliamente utilizado en Europa):

man -t ls | /usr/bin/groff -Tps -mandoc -c -P-pa4 | open -f -a /Applications/Preview.app .

Obtengo el tamaño A4 como se desea, pero el formato es feo (sin negrita, cursiva, caracteres dobles, subrayado) ...

¿Cómo tener un buen formato (como en el primer comando) Y el tamaño correcto (como en el comando más reciente)?

    
pregunta quark67 28.10.2017 - 00:08

2 respuestas

7

En este momento, está ejecutando groff dos veces, una vez como parte de man -t , una vez solo en el archivo PostScript generado por man .

Probar

groff -Tps -mandoc -c -P-pa4 /usr/share/man/man1/ls.1 >out.ps
ps2pdf out.ps man-ls.pdf
open man-ls.pdf

o directamente

groff -Tps -mandoc -c -P-pa4 /usr/share/man/man1/ls.1 | 
    open -f -a /Applications/Preview.app

Para que funcione para todas las páginas man accesibles para man, un pequeño script ayudará.

#!/bin/sh
page=$(man -W $1)
if [ -r "$page" ]; then
    groff -Tps -mandoc -c -P-pa4 "$page" | open -f -a Preview.app
fi

Guárdalo como manA4 , ejecuta chmod +x manA4 una vez, y luego úsalo como manA4 ls .

En caso de que esté trabajando con páginas de manual comprimidas (que macOS no no use de forma predeterminada), debe descomprimirlas sobre la marcha.

#!/bin/bash
page=$(man -W $1)
if [ -r "$page" ]; then
    if [[ "$page" =~ .*.gz$ ]]; then
        gzcat "$page" | groff -Tps -mandoc -c -P-pa4 | open -f -a Preview.app
    else
        groff -Tps -mandoc -c -P-pa4 "$page" | open -f -a Preview.app
    fi
fi
    
respondido por el nohillside 28.10.2017 - 00:49
2

Edite /private/etc/man.conf comentando la línea

TROFF       /usr/bin/groff -Tps -mandoc -c

luego agrega esta línea

TROFF       /usr/bin/groff -Tps -mandoc -c -P-pa4

Ahora man -t escribirá archivos ps en tamaño de papel A4.

man -t ls | open .......
    
respondido por el fd0 29.10.2017 - 16:04

Lea otras preguntas en las etiquetas