| #!/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 |