root@cca.ucsf.edu (Systems Staff) (09/15/89)
While we're on the subject of nroff style formatters let's not overlook the public domain _proff_ (portable roff) which was posted to net.sources nearly four years ago. There are two attachments to this posting. The first is the author's message stating the public domain status and a little history of the program. The second is the appendix to the manual (yes, there is a manual -- formatted by proff) which lists the implemented commands. There are also implementations of subsets of the mm and ms macro packages available. Available means I have copies of all this in my current directory. Thos Sumner Internet: thos@cca.ucsf.edu (The I.G.) UUCP: ...ucbvax!ucsfcgl!cca.ucsf!thos BITNET: thos@ucsfcca U.S. Mail: Thos Sumner, Computer Center, Rm U-76, UCSF San Francisco, CA 94143-0704 USA I hear nothing in life is certain but death and taxes -- and they're working on death. #include <disclaimer.std> ==================================================================== Newsgroups: net.sources Subject: Status of PROFF (in case it is confusing) Date: 19 Jan 86 01:07:52 GMT Reply-To: oz@yetti.UUCP (Ozan Yigit) Organization: York University Computer Science I received several messages about the status of PROFF. Perhaps my initial note was somewhat confusing: o PROFF is written by myself, year-and-a-half ago, by first translating Software TOols FORMAT from RATFOR to C. It was written specifically to supplement the microcomputer environment established in the Faculty of Administrative Studies, York U. o Upon some discussion with the Admin. Studies, we decided to release it to the world, without a copyright notice. This would make PROFF Public Domain. o At the same time, sources were handed over to them, for their own maintenance. They are likely to make some changes, improve it, and hack it to suit their needs. o Future revisions of PROFF, as generated by The Faculty of Administrative Studies may contain York University COPYRIGHT. [that is a big MAYBE]. I do not think that would mean much, since we would distribute it in source level anyway. o If you want to make money out of PROFF, go right ahead. [I think, by the time you are finished, you would have done a major re-write anyway. So you perhaps deserve to make some money out of it :-)]. I hope that this note clerifies PROFF's status, in case you are not sure. Oz -- Usenet: [decvax|allegra|linus|ihnp4]!utzoo!yetti!oz Bitnet: oz@[yusol|yuyetti] In the beginning, there was Word all right, except it wasn't fixed number of bits. =================================================================== Here is the appendix listing the implemented commands (formatted 60 lines per page for our printers which have built-in page break space): 1.0 Appendix A 30 Appendix A Summary of Commands ---------------------------------------------------------- .fi | .f | .fill default: initial: yes break: yes begin filling output lines ---------------------------------------------------------- .nf | .nofill default: initial: no break: yes stop filling ---------------------------------------------------------- .ju | .j | .justify default: initial: yes break: yes begin justifying filled lines ---------------------------------------------------------- .nj | .nojustify default: initial: no break: yes stop justifying ---------------------------------------------------------- .br | .break default: initial: break: yes cause a break and output current line ---------------------------------------------------------- .in | .lm | .leftmargin [+|-][n] default: 0 inital: 0 break: yes set left margin to column n+1 ---------------------------------------------------------- .ti | .i | .left [+|-][n] default: 0 initial: break: yes temporarily indent next output n spaces ---------------------------------------------------------- .st | .spaceto [-][n] default: 0 initial: break: yes space to line +n from top space to line -n from bottom ---------------------------------------------------------- .sp | .s | .skip [n] default: 1 initial: break: yes space n lines except at top of page ---------------------------------------------------------- .ce | .center [n | on | off] default: 1 initial break: yes center next n lines center until turned off ---------------------------------------------------------- .ul | .underline [n | on | off] default: 1 initial break: no underline next n lines underline until turned off ---------------------------------------------------------- 1.0 Appendix A 31 ---------------------------------------------------------- .ul | .underline [all | words] default: words initial: words break: no set mode for underline - words or all ---------------------------------------------------------- .bd | .bold [n | on | off] default: 1 initial: break: no boldface (overstrike) next n lines boldface until turned off ---------------------------------------------------------- .db | .dbo | .disablebolding default: initial: no break: no disable bolding ---------------------------------------------------------- .eb | .ebo | .enablebolding default: initial: yes break: no enable bolding ---------------------------------------------------------- .ls | .spc | .spacing [n] default: 1 initial: 1 break: no set line spacing to n ---------------------------------------------------------- .bp | .pg | .page [n] default: +1 initial: 1 break: yes begin a new page and number it n ---------------------------------------------------------- .pn | .pagenumber {roman} | {arabic} default: initial: arabic break: no set page numbering to arabic or roman ---------------------------------------------------------- .np | .nopaging default: initial: no break: yes disable paging ---------------------------------------------------------- .pa | .paging default: initial: yes break: yes enable paging ---------------------------------------------------------- .ne | .need | .tp | .testpage [n] default: 0 initial: break: yes/no need n lines. Break and generate a new page if not available ---------------------------------------------------------- .he | .header <text> default: null initial: null break: no set header to text (/left/center/right/) ---------------------------------------------------------- .fo | .footer <text> default: null initial: null break: no set footer to text (/lef/center/right/) ---------------------------------------------------------- 1.0 Appendix A 32 ---------------------------------------------------------- .oh <text> default: null initial: null break: no set header on odd pages to text ---------------------------------------------------------- .eh <text> default: null initial: null break: no set header on even pages to text ---------------------------------------------------------- .of <text> default: null initial: null break: no set footer on odd pages to text ---------------------------------------------------------- .ef <text> default: null initial: null break: no set footer on odd pages to text ---------------------------------------------------------- .po | .offset [+|-][n] default: 0 initial: 0 break: yes set page offset to n spaces ---------------------------------------------------------- .rm | .rightmargin [+|-][n] default: 65 initial: 65 break: no set right margin to column n ---------------------------------------------------------- .pl | .ps | .pagesize [n] default: 66 initial: 66 break: no set page length to n lines ---------------------------------------------------------- .m1 [n] default: 3 initial: 3 break: no lines between top of page and header ---------------------------------------------------------- .m2 [n] default: 2 initial: 2 break: no lines between header and text ---------------------------------------------------------- .m3 [n] default: 2 initial: 2 break: no lines between text and footer ---------------------------------------------------------- .m4 [n] default: 3 initial: 3 break: no lines between footer and bottom ---------------------------------------------------------- .cl | .contline [<n> <text>] default: initial: break: yes enter text into table of contents at level n ---------------------------------------------------------- 1.0 Appendix A 33 ---------------------------------------------------------- .pc | .printcont [n] default: 3 initial: 3 break: yes print table of contents, indent each level n spaces ---------------------------------------------------------- .vs | .set <variable> [definition] default: initial: break: no set variable to text ---------------------------------------------------------- .vg | .get <variable> <prompt> default: initial: break: no set variable interactively, using text as prompt ---------------------------------------------------------- .nr <a-z> [+|-][n] default: 0 initial: 0 break: no set number register (a-z) to n ---------------------------------------------------------- .cc | .cchar [char] default: "." initial: "." break: no set command control character to char ---------------------------------------------------------- .ec | .echar [char] default: "_" initial: "_" break: no set universal escape character to char ---------------------------------------------------------- .so | .source | .include | .require [filename] default: initial: input break: no switch input to file ---------------------------------------------------------- .sv | .save default: initial: break: yes save the current formatter context on context stack ---------------------------------------------------------- .rs | .restore default: initial: break: yes restore the formatter context from context stack ---------------------------------------------------------- .lx | .lex <command> [equate] default: initial: break: no rename a command ---------------------------------------------------------- .ap | .autoparagraph default: initial: no break: no enable auto-paragraphing ---------------------------------------------------------- 1.0 Appendix A 34 ---------------------------------------------------------- .na | nap | .noautoparagraph default: initial: yes break: no disable auto-paragraphing ---------------------------------------------------------- .wr | .write <string> default: initial: break: no write a special string to output. line counter does not change ---------------------------------------------------------- .de | .define <macro name> default: initial: break: no define a macro command - ends at ".en" ---------------------------------------------------------- .en default: initial: break: no end the macro definition ----------------------------------------------------------