59 lines
1.4 KiB
Bash
59 lines
1.4 KiB
Bash
|
#!/bin/sh
|
||
|
#
|
||
|
###############################################################################
|
||
|
#
|
||
|
# Wrapper for GNU groff to convert man pages to a few formats
|
||
|
#
|
||
|
# Usage: manconv.sh FORMAT [PAPER_SIZE] < in.1 > out.suffix
|
||
|
#
|
||
|
# FORMAT can be ascii, utf8, ps, or pdf. PAPER_SIZE can be anything that
|
||
|
# groff accepts, e.g. a4 or letter. See groff_font(5). PAPER_SIZE defaults
|
||
|
# to a4 and is used only when FORMAT is ps (PostScript) or pdf.
|
||
|
#
|
||
|
# Multiple man pages can be given at once e.g. to create a single PDF file
|
||
|
# with continuous page numbering.
|
||
|
#
|
||
|
###############################################################################
|
||
|
#
|
||
|
# Author: Lasse Collin
|
||
|
#
|
||
|
# This file has been put into the public domain.
|
||
|
# You can do whatever you want with this file.
|
||
|
#
|
||
|
###############################################################################
|
||
|
|
||
|
FORMAT=$1
|
||
|
PAPER=${2-a4}
|
||
|
|
||
|
# Make PostScript and PDF output more readable:
|
||
|
# - Use 11 pt font instead of the default 10 pt.
|
||
|
# - Use larger paragraph spacing than the default 0.4v (man(7) only).
|
||
|
FONT=11
|
||
|
PD=0.8
|
||
|
|
||
|
SED_PD="
|
||
|
/^\\.TH /s/\$/\\
|
||
|
.PD $PD/
|
||
|
s/^\\.PD\$/.PD $PD/"
|
||
|
|
||
|
case $FORMAT in
|
||
|
ascii)
|
||
|
groff -t -mandoc -Tascii | col -bx
|
||
|
;;
|
||
|
utf8)
|
||
|
groff -t -mandoc -Tutf8 | col -bx
|
||
|
;;
|
||
|
ps)
|
||
|
sed "$SED_PD" | groff -dpaper=$PAPER -t -mandoc \
|
||
|
-rC1 -rS$FONT -Tps -P-p$PAPER
|
||
|
;;
|
||
|
pdf)
|
||
|
sed "$SED_PD" | groff -dpaper=$PAPER -t -mandoc \
|
||
|
-rC1 -rS$FONT -Tps -P-p$PAPER | ps2pdf - -
|
||
|
;;
|
||
|
*)
|
||
|
echo 'Invalid arguments' >&2
|
||
|
exit 1
|
||
|
;;
|
||
|
esac
|