Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
PolyglotMan(1)		    General Commands Manual		PolyglotMan(1)

       PolyglotMan,  rman - reverse compile man	pages from formatted form to a
       number of source	formats

       rman [ options ]	[ file ]

       Up-to-date instructions	can  be	 found	at  http://polyglotman.source-

       PolyglotMan   takes  man	pages from most	of the popular flavors of UNIX
       and transforms them into	any of a number	of text	source formats.	 Poly-
       glotMan	was  formerly  known  as RosettaMan. The name of the binary is
       still called rman , for scripts that depend on that name; mnemonically,
       just  think "reverse man". Previously PolyglotMan  required pages to be
       formatted by nroff prior	 to  its  processing.  With  version  3.0,  it
       prefers	[tn]roff  source  and usually produces results that are	better
       yet. And	source processing is the only way to translate tables.	Source
       format  translation is not as mature as formatted, however, so try for-
       matted translation as a backup.

       In parsing [tn]roff source, one could implement	an  arbitrarily	 large
       subset of [tn]roff, which I did not and will not	do, so the results can
       be off. I did implement a significant subset of those use in man	pages,
       however,	including tbl (but not eqn), if	tests, and general macro defi-
       nitions,	so usually the results look great. If they don't,  format  the
       page  with  nroff  before  sending  it  to  PolyglotMan.	If PolyglotMan
       doesn't recognize a key macro used by a large class of pages,  however,
       e-mail  me the source and a uuencoded nroff-formatted page and I'll see
       what I can do. When running  PolyglotMan	 with  man  page  source  that
       includes	or redirects to	other [tn]roff source using the	.so (source or
       inclusion) macro, you should be in the parent directory	of  the	 page,
       since  pages  are written with this assumption. For example, if you are
       translating /usr/man/man1/ls.1, first cd	into /usr/man.

       PolyglotMan  accepts man	 pages	from:  SunOS,  Sun  Solaris,  Hewlett-
       Packard	HP-UX,	AT&T System V, OSF/1 aka Digital UNIX, DEC Ultrix, SGI
       IRIX, Linux, FreeBSD, SCO. Source  processing  works  for:  SunOS,  Sun
       Solaris,	 Hewlett-Packard HP-UX,	AT&T System V, OSF/1 aka Digital UNIX,
       DEC Ultrix. It can produce  printable  ASCII-only  (control  characters
       stripped),  section  headers-only, Tk, TkMan, [tn]roff (traditional man
       page source), SGML, HTML, MIME, LaTeX, LaTeX2e, RTF, Perl 5 POD.	A mod-
       ular architecture permits easy addition of additional output formats.

       The  latest  version  of	PolyglotMan is available from http://polyglot- .

       The following options should not	be used	with any others	and exit Poly-
       glotMan without processing any input.

       -h|--help      Show list	of command line	options	and exit.

       -v|--version   Show version number and exit.

       You  should  specify the	filter first, as this sets a number of parame-
       ters, and then specify other options.

       -f|--filter				     _ASCII|roff|TkMan|Tk|Sec-
		      Set the output filter. Defaults to ASCII.

       -S|--source    PolyglotMan tries	to automatically determine whether its
		      input is source or formatted; use	this option to declare
		      source input.

		      PolyglotMan tries	to automatically determine whether its
		      input is source or formatted; use	this option to declare
		      formatted	input.

       -l|--title printf-string
		      In  HTML	mode  this  sets the <TITLE> of	the man	pages,
		      given the	same parameters	as -r .

       -r|--reference|--manref printf-string
		      In HTML and SGML modes this sets the URL form  by	 which
		      to retrieve other	man pages. The string can use two sup-
		      plied parameters:	the man	page  name  and	 its  section.
		      (See  the	 Examples section.)  If	the string is null (as
		      if set from a shell by "-r ''"), `-' or `off', then  man
		      page  references will not	be HREFs, just set in italics.
		      If your printf supports XPG3 positions  specifier,  this
		      can be quite flexible.

       -V|--volumes _colon-separated list_
		      Set  the	list  of  valid	 volumes to check against when
		      looking  for  cross-references  to  other	  man	pages.
		      Defaults	to 1:2:3:4:5:6:7:8:9:o:l:n:p (volume names can
		      be multicharacter). If an	non-whitespace string  in  the
		      page is immediately followed by a	left parenthesis, then
		      one of the valid volumes,	and ends with  optional	 other
		      characters  and  then  a	right  parenthesis--then  that
		      string is	reported as  a	reference  to  another	manual
		      page. If this -V string starts with an equals sign, then
		      no optional characters are allowed between the match  to
		      the  list	 of  valids  and  the right parenthesis. (This
		      option is	needed for SCO UNIX.)

       The following options apply only	when  formatted	 pages	are  given  as
       input.  They  do	 not  apply  or	 are always handled correctly with the

		      Try to recognize subsection titles in addition  to  sec-
		      tion  titles.  This can cause problems on	some UNIX fla-

       -K|--nobreak   Indicate manual pages don't have page breaks,  so	 don't
		      look  for	 footers and headers around them. (Older nroff
		      -man macros always put in	page breaks, but  lately  some
		      vendors  have  realized  that  printout are made through
		      troff, whereas nroff -man	is used	to  format  pages  for
		      reading  on screen, and so have eliminated page breaks.)
		      PolyglotMan  usually gets	this right even	 without  this

       -k|--keep      Keep  headers  and footers, as a canonical report	at the
		      end of the page. changeleft  Move	 changebars,  such  as
		      those found in the Tcl/Tk	manual pages, to the left. -->
		      notaggressive  Disable   aggressive  man	page  parsing.
		      Aggressive  manual, which	is on by default, page parsing
		      elides headers  and  footers,  identifies	 sections  and
		      more. -->

       -n|--name name Set name of man page (used in roff format). If the file-
		      name is given in the form	" name . section ",  the  name
		      and section are automatically determined.	If the page is
		      being parsed from	[tn]roff source	and it has a .TH line,
		      this information is extracted from that line.

       -p|--paragraph paragraph	 mode  toggle.	The  filter determines whether
		      lines should be linebroken as they  were	by  nroff,  or
		      whether lines should be flowed together into paragraphs.
		      Mainly for internal use.

       -s|section #   Set volume (aka section) number of  man  page  (used  in
		      roff  format).  tables Turn on aggressive	table parsing.

       -t|--tabstops #
		      For those	macros sets that use tabs in place  of	spaces
		      where  possible in order to reduce the number of charac-
		      ters used, set tabstops every #  columns.	Defaults to 8.

       Some flavors of UNIX ship man  page  without  [tn]roff  source,	making
       one's laser printer little more than a laser-powered daisy wheel.  This
       filer tries to intuit the original [tn]roff directives, which can  then
       be recompiled by	[tn]roff.

       TkMan, a	hypertext man page browser, uses PolyglotMan to	show man pages
       without the (usually) useless headers and footers  on  each  pages.  It
       also  collects  section	and  (optionally)  subsection heads for	direct
       access from a pulldown menu. TkMan and Tcl/Tk,  the  toolkit  in	 which
       it's    written,	   are	  available    via    anonymous	   ftp	  from

       This option outputs the text in a series	of  Tcl	 lists	consisting  of
       text-tags pairs,	where tag names	roughly	correspond to HTML.  This out-
       put can be inserted into	a Tk text widget by doing an eval _textwidget_
       insert end _text_ . This	format should be relatively easily parsible by
       other programs that want	both the text and the tags. Also see ASCII.

       When printed on a line printer, man pages try to	produce	 special  text
       effects	by  overstriking  characters with themselves (to produce bold)
       and underscores (underlining). Other text processing software, such  as
       text  editors, searchers, and indexers, must counteract this. The ASCII
       filter strips away this formatting. Piping nroff	output through col  -b
       also  strips  away this formatting, but it leaves behind	unsightly page
       headers and footers. Also see Tk.

       Dumps section and (optionally) subsection titles. This might be	useful
       for another program that	processes man pages.

       With  a	simple	extention  to an HTTP server for Mosaic	or other World
       Wide Web	browser, PolyglotMan  can produce high	quality	 HTML  on  the
       fly.  Several  such  extensions	and  pointers  to  several  others are
       included	in PolyglotMan 's contrib  directory.

       This is appoaching the Docbook DTD, but I'm hoping  that	 someone  that
       someone	with  a	 real interest in this will polish the tags generated.
       Try it to see how close the tags	are now.

       MIME (Multipurpose Internet Mail	Extensions) as defined	by  RFC	 1563,
       good  for  consumption  by  MIME-aware  e-mailers or as Emacs (>=19.29)
       enriched	documents.

   LaTeX and LaTeX2e
       Why not?

       Use output on Mac or NeXT or whatever. Maybe take random	man pages  and
       integrate  with NeXT's documentation system better.  Maybe NeXT has own
       man page	macros that do this.

   PostScript and FrameMaker
       To produce PostScript, use groff	 or psroff  .  To  produce  FrameMaker
       MIF,  use  FrameMaker's builtin filter. In both cases you need [tn]roff
       source, so if you only have a formatted version of the manual page, use
       PolyglotMan 's roff filter first.

       To  convert  the	 formatted   man  page	named ls.1  back into [tn]roff
       source form:

       rman -f roff /usr/local/man/cat1/ls.1 _ /usr/local/man/man1/ls.1

       Long man	pages are often	compressed to conserve space  (compression  is
       especially  effective  on formatted man pages as	many of	the characters
       are spaces). As it is a long man	page,  it  probably  has  subsections,
       which we	try to separate	out (some macro	sets don't distinguish subsec-
       tions well enough for PolyglotMan to detect them). Let's	 convert  this
       to LaTeX	format:

       pcat  /usr/catman/a_man/cat1/automount.z	| rman -b -n automount -s 1 -f
       latex _

       Alternatively, man 1 automount |	rman -b	-n automount -s	1 -f  latex  _

       For  HTML/Mosaic	 users,	 PolyglotMan  can, without modification	of the
       source code, produce HTML links that point  to  other  HTML  man	 pages
       either pregenerated or generated	on the fly. First let's	assume pregen-
       erated HTML versions of man pages stored	in /usr/man/html  .   Generate
       these one-by-one	with the following form:
       rman  -f	 html  -r 'http:/usr/man/html/%s.%s.html' /usr/man/cat1/ls.1 _

       If you've extended your HTML client to generate HTML  on	 the  fly  you
       should use something like:
       rman -f html -r 'http:~/bin/man2html?%s:%s' /usr/man/cat1/ls.1
       when generating HTML.

       PolyglotMan   is	 not  perfect in all cases, but	it usually does	a good
       job, and	in any case reduces the	problem	of  converting	man  pages  to
       light editing.

       Tables  in formatted pages, especially H-P's, aren't handled very well.
       Be sure to pass in source for the page to recognize tables.

       The man pager woman  applies its	own idea of formatting for man	pages,
       which  can confuse PolyglotMan .	Bypass woman  by passing the formatted
       manual page text	directly into PolyglotMan .

       The [tn]roff output format uses fB to turn on boldface. If  your	 macro
       set requires .B,	you'll have to a postprocess the PolyglotMan output.

       tkman(1)	 , xman(1) , man(1) , man(7) or	man(5)	depending on your fla-
       vor of UNIX

       by Thomas A. Phelps ( )
       developed at the
       University of California, Berkeley
       Computer	Science	Division

       Manual page last	updated	on $Date: 1998/07/13 09:47:28 $



Want to link to this manual page? Use this URL:

home | help