. grog - guess options for groff command . .


. .SY grog .OP -C [ groff-option\~ . . .] .OP -- [ filespec\~ . . .] . .SY grog

-h |

--help . .SY grog

-v |

--version .YS . .



grog reads the input (file names or standard input) and guesses which of the

R groff (1) options are needed to perform the input with the

groff program. . The corresponding

groff command is output. . .


. The only

grog options recognized are

-C (which is also passed on) to enable compatibility mode;

-v and

--version print information on the version number; and

-h and

--help print usage information. .

R -v ,

R --version ,

R -h , and

--help stop the program directly without printing a

groff command to standard output. . .

All other specified short options (words starting with one minus character

R - ) are interpreted as

groff options or option clusters with or without argument. . No space is allowed between options and their argument. . Except from the -m arg options, all options will be passed on, i.e. they are included unchanged in the command for the output without effecting the work of

R grog . . .

A filespec argument can either be the name of an existing file or a single minus

- to mean standard input. . If no filespec is specified standard input is read automatically. . .



grog reads all filespec parameters as a whole. . It tries to guess which of the following

groff options are required for running the input under

R groff :

R -e ,

R -man ,

R -me ,

R -mm ,

R -mom ,

R -ms ,

R -mdoc,

R -mdoc-old,

R -p ,

R -R ,

R -g ,

R -G ,

R -s , and

R -t . The guessed

groff command including those options and the found filespec parameters is put on the standard output. . .

It is possible to specify arbitrary

groff options on the command line. . These are passed on the output without change, except for the -m arg options. . .


groff program has trouble when the wrong -m arg option or several of these options are specified. . In these cases,

grog will print an error message and exit with an error code. . It is better to specify no -m arg option. . Because such an option is only accepted and passed when

grog does not find any of these options or the same option is found. . .

If several different -m arg options are found by

grog an error message is produced and the program is terminated with an error code. . But the output is written with the wrong options nevertheless. . .

Remember that it is not necessary to determine a macro package. . A roff file can also be written in the groff language without any macro package. .

grog will produce an output without an -m arg option. . .


groff also works with pure text files without any roff requests,

grog cannot be used to identify a file to be a roff file. . .


R groffer (1) program heavily depends on a working

R grog . . .


grog source contains two files written in different programming languages: . grog.pl is the Perl version, while grog.sh is a shell script using BR awk (1). During the run of

R make (1), it is determined whether the system contains a suitable version of

R perl (1). If so, grog.pl is transformed into

R grog ; otherwise grog.sh is used instead. . .



Calling .

grog meintro.me


results in .

groff -me meintro.me



grog recognized that the file meintro.me is written with the

-me macro package. . .

On the other hand, .

grog pic.ms


outputs .

groff -pte -ms pic.ms


Besides determining the macro package

R -ms ,

grog recognized that the file pic.ms additionally needs

R -pte , the combination of

-p for pic ,

-t for tbl , and

-e for eqn . . .

If both files are combined by the command .

grog meintro.me pic.ms


an error message is sent to standard error because

groff cannot work with two different macro packages: .

grog: error: there are several macro packages: -me -ms .

Additionally the corresponding output with the wrong options is printed to standard output: .

groff -pte -me -ms meintro.me pic.ms


But the program is terminated with an error code. . .

The call of .

grog -ksS -Tdvi grnexmpl.g


contains several

groff options that are just passed on the output without any interface to

R grog . These are the option cluster

-ksS consisting of

R -k ,

R -s , and

R -S ; and the option

-T with argument

R dvi . The output is .

groff -ksS -Tdvi grnexmpl.g


so no additional option was added by

R grog . As no option -m arg was found by

grog this file does not use a macro package. . .

grog can also handle files using the chem language. . The example .

grog chAh_brackets.chem


outputs .

chem chAh_brackets.chem | groff -pe



chem is run first and

groff is appended. . The option

-p for

pic is implied automatically by

R chem . Additionally, the file uses eqn with

R -e . . .



R groff (1),

R troff (1),

R tbl (1),

R pic (1),

R eqn (1),

R refer (1),

R grn (1),

R grap (1),

R soelim (1),

R groff_me (7),

R groff_ms (7),

R groff_mm (7),

R groff_mom (7),

R groff_man (7),

R groffer (1) . .


. .co . . .