On Wed, Jun 18, 2014 at 10:48:51AM +0200, Bernd Warken wrote: > > No, I am not (yet?) a groff contributer. But I could publish my script, if > > there is general interest. > > Please publish your script! The implementation in `grog' would be very easy. > But `groff.cpp' > needs C++, which is still quite hard. > > It would be useful as well, if the `tmac' name is included as well: man, > mdoc, me, mm, me, mom, etc. > For it is often hard to discover with `grog' and `groffer' which `tmac' > should be there, e.g. the > difference of `man' and `ms'. > It is attached and might need some adjustments according to individual needs.
Some comments: The default macro package is mm, man and mom are also supported. The script "addtbl" adds numerical entries of specified table colums and writes new table lines containing the respective sum. The script "squezetbl" eliminates leading and trailing blanks from table entries Have fun, ulrich
#! /bin/bash [ $# = 0 ] && { echo usage: $0 [ -f out ] file exit } PRE= OPTS= OUT= PDF= MAC=mm while [ $# != 0 ] do case "$1" in -f) shift OUT=$1 ;; -man) MAC=man ;; -l) # landscape FORM=lnd ;; -pdf) PDF=1 ;; *) FILE="$1" # check for .\" eqn tbl add lnd eng mom for i in `read x < $1; echo $x` do case $i in eqn) OPTS="$OPTS -e" ;; lnd) FORM=lnd ;; tbl) OPTS="$OPTS -t" PRE="$PRE | squezetbl " ;; add) PRE="$PRE | addtbl " ;; eng) longdash="\40-\40 \\\\(em" ;; mom) MAC=mom ;; *) : esac done ;; esac shift done case $FILE in *.mom) MAC=mom; BASE=${FILE%.mom} ;; *) BASE=$FILE esac [ "$OUT" = "" ] && OUT=${BASE}.ps case "$MAC" in mom) SO="/home/privat/bin/defines.mom" ;; mm) SO="/home/privat/bin/roffinit" if [ "$FORM" = lnd ] then OPTS="$OPTS -r L=21.12c -r W=23.95c -r O=2.8c" else OPTS="$OPTS -r L=29.00c -r W=15.75c -r O=2.5c" fi ;; *) esac OPTS="$OPTS -$MAC" if [ "$FORM" = lnd ] then OPTS="$OPTS -P-l -P-pa4" else OPTS="$OPTS -P-pa4" fi echo "{ cat $SO; cat $FILE $PRE } | groff -Tps -k $OPTS - > $OUT" eval "{ cat $SO; cat $FILE $PRE } | groff -Tps -k $OPTS - > $OUT" [ "$PDF" = 1 ] && ps2pdf $OUT $BASE.pdf echo done