leff@smu (05/17/88)
Does anybody have a set of macros to be used for the generation of theses. I. E. a set of macros that automatically generates the table of figures, table of tables, table of contents in the appropriate format. We already have written such a set, integrated with the MS package. For example, one simply writes .NH 1 "INTRODUCTION" .NH n "section heading" .NH Z "APPENDIX I" .NH Z "REFERENCES" one of these and the appropriate entry is made in the table of contents as well as the proper numbered entry is made then and there as in the conventional ms macros. For figures we do the following .fZ bc This will put in the internal troff string, bc, the next sequential number of the form n-m where n is the chapter number and m is the figure number within that chapter. When you print out the figure, include the line .fG bc "caption" bc is the same two character sequence as for the corresponding .fZ macro. In the quotes, put whatever caption you want. Again, a record of this information will be kept for the purposes of generating the LIST OF FIGURES with a record of the page number. There is one more gee-whiz feature here. Since the .fZ macro puts the figure number in a register, you can include that number in your text. That way you don't have to modify the text should the figure numbering change. You simply include in the text, the five characters \*(bc where bc is the two character name from the .fZ macro. That will expand to the appropriate figure number. The .fZ macro to generate the figure number is called before the \*(bc stuff. If you have a one page figure that needs to be pasted on a page, use .fZ in the identical way to reserve a figure number. Then put .Df bc "caption" where bc is the two character identifier used in the .fZ macro and caption is the appropriate header. Your text will continue and on the next page, will appear the appropriate page number with the caption ready for you to paste your figure onto. However, unfortunately there are some problems, particularly bad interactions between my macros and the ms macros. Here are some examples: You may find that some figures may have a page number that does not correspond to the place where the figure is. Generally, the page number on the list of figures will be one less than it should be. For each such figure, put a ".bp" before the figure starts. What is happening is as follows, When the ms macros see something in .DS .DE or .PS .PE, it puts the item in a diversion to see if it can print it on this page. If it can, it will print it on that page and the page number will be correct in the list of figures. When it cannot, it will print it on the next page. However, the page number will be that when the diversion was made, not where the picture was paged. The ultimate solution to this is to write an integrated set of macros that does thesis plus the stuff now done by MS that will solve these problems. We have reached the end of the line with what can be done with this solution. You do not need a .bp if the figure is already on the same page as when invoked (i. e. MS is not skipping a page to make room). You also do not need one for Df type figures as those are handled a different way and will have the right page number. Note that there is a template at the end of the file which calls the appropriate macros (generated by Df, fG, NH, etc.) where needed to put the table of contents, table of figures, etc. DOES ANYONE HAVE ANYTHING BETTER? We are going to write a set of integrated macros where we write all the macros and everything works together.
fmr@mcvax.UUCP (05/20/88)
> Nf-ID: #N:smu:250100002:000:3623 > Nf-From: smu!leff May 16 21:30:00 1988 > Does anybody have a set of macros to be used for the generation > of theses. I. E. a set of macros that automatically generates > the table of figures, table of tables, table of contents in the > appropriate format. > DOES ANYONE HAVE ANYTHING BETTER? We are going to write a set of > integrated macros where we write all the macros and everything works > together. I don't know if this helps, but it does adress your problem. In 'Software Praxis and Experience'(a monthly magazine) Vol.18(1), January 1988 authors Alfred V. Aho and Ravi Sethi describe a suite of shell scripts which they call a reference assembler.It works with any formatter. You should really loke into it. By the way the mag is published by J.Wiley & Sons. Hope this helps. fmr@cwi.nl -- It is better never to have been born. But who among us has such luck? -------------------------------------------------------------------------- These opinions are solely mine and in no way reflect those of my employer.
ring@cg-atla.UUCP (Steve Ring) (05/23/88)
I have a comprehensive set of -ms macros that do automatic TOC generation. We have been using here at CG for over 3 years in our internal specification documents and other Engineering documentation. Is comp.text the right place to submit these [nt]roff command set. Here is my man page CGWRITER(7) PUBLIC CGWRITER(7) Last Changed: December 14, 1987 1 CG Writer Release 2.0 Compugraphic ______________________________________________________________________ NAME CG Writers ToolKit - text formatting utilities & [nt]roff command macros DESCRIPTION The "Cg Writers ToolKit:" is an integrated set of Bourne shell utilities combined with [nt]roff -ms enhancements and extensions, all designed to assist and simplify the preparation of Compu- graphic Engineering documents, memos, and employee performance reviews, meeting notices, and any other type of typeset documen- tation. This ToolKit cannot do your writing, of course, but with the tools and services provided you will be able to minimize time and effort in text command programming so concentration can be placed on composing the document text. SETUP 1) Place the path /part3/epsfs/bin into your .profile/.login, usually right after your own $HOME/bin path 2) Establish a directory called /_Tmp in your home directory. Various temporary files created during document processing are stored there. You will need to remove these files at various times (usually from a .logout file for whenever you log off). 3) Set the environmental variable EDITOR in your .profile/.login to either tve, vi, emacs to cause one of them to be automati- cally invoked as your editor of choice. The default is to invoke vi. 4) Optionally, you can set the environmental variable VIEW to less if that is the previewer of your choice. The default is more. 5) To make viewing of nroffed documents more readable on your terminal screen, I recommend that you set the environmental variable MORE in your .cshrc_or_.login to the options -cs. Then whenever you use more, or less, your document will scroll from the top of the screen down - squeezing multiple blank lines into one as it scrolls. 6) Include one of the .so/part3/epsfs/lib/INIT* lines at the front of your text file. Several INIT* files exist - each spe- cially designed for different CG documents File Document Type ____________________________________________________ INIT Report Style Documents INIT.memo Memos INIT.man Manual Pages INIT.vugraph VuGraphs INIT.meet Meeting Notices INIT.perf_hour Hourly Employee Performance Review INIT.perf_sal Salary Employee Performance Review INIT.self_asses Employee Self Assessment FILES /part3/epsfs/lib/INIT* SEE_ALSO eqn(1), tbl(1), troff(1), pic(1), epx(1) AUTHOR Steve Ring NOTE: The following pages can be xeroxed 2-sided and used as refer- ences. TOOLKIT_UTILITIES memo [file] dww [file] pww [file] ______________________________________________________________________ nrf [*Pntr*] [*Host*] [-man|-me|-mm] [-noinit] [-col] [-nodate] [-noquote] [-notoc] file[.n|.nrf|.nro|.txt] where: usage: nrf [*Pntr*] [*Host*] [-man|-me|-mm] [-noinit] [-col] [-nodate] [-noquote] [-notoc] [-sc] file[.n|.nrf|.nro|.txt] or: nrf [-Q] = Nroff queues on Vaxes or: nrf [-k] = Kill Nroff job on Vaxes or: nrf [-BB] = Bulletin Board Info, Last Update `mm/dd/yy' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *Prntr*: = -[a|b|z|c|cz|CZ|ep1|Ep1|ep2|Ep2|5|5x|7|7x|p|pr|P|d|dp|D|q ] *Host*: = -[stymie|garth|oracle|moon|surf|opus|liberty] -man/-me/-mm = use if UR using "man/me/mm" macros -sc = enable short screen format (.SC) -noinit = use if U don't want "../lib/INIT" provided for U -nodate = don't insert current date/time stamp -nopath = don't insert file path name -noquote= just print warning message for lines beginning with ' -notoc = don't print the Table of Contents -col: = pipe output thru 'col' for .B1/.x1 usages (i.e. 'nroff|col') Note: -Q gives the Vax Nroff job queue, -k kills Vax nroff jobs ______________________________________________________________________ trf [*Pntr*] [*Host*] [-man|-me|-mm] [-noinit] [-nodate] [-nopath] [-noquote] [-notoc] file[.n|.nrf|.nro|.txt] where: usage: trf [*Pntr*] [*Host*] [-man|-me|-mm] [-noinit] [-nodate] [-nopath] [-noquote] [-notoc] file[.n|.nrf|.nro|.txt] or: trf [-BB] = Read Bulletin Board, Last Update `mm/dd/yy' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - *Prntr*: = [-im] *Host*: = [-ep1|-ep2| -stymie|-garth|-oracle|-moon|-surf|-opus|-liberty] -man/-me/-mm = use if UR using "man/me/mm" macros -noinit = use if U don't want "../lib/INIT" provided for U -nodate = disable inserting current date/time stamp -nopath = disable inserting file path name -noquote = only print warning message for lines beginning with ' -notoc = disable printing of a Document's Table of Contents " ______________________________________________________________________ INSERTED_DATA .so _Date \" Insert Current Date/Time stamp .so _FileDate \" Insert File Date/Time Stamp .so _Path \" Insert full file path name CUSTOMIZED_DEFAULT_STRING_VALUES Note: !A, !C only apply to Report type documents. They do not exist for other type documents (memos, etc.). On the other hand, !P, !N, !E, !H, !F are common string variables defined for all types of documents. ----------------------- .\" REPORT DOCUMENTS .ds !A new-page-ah1-on .ds !C toc-on .\" COMMON VARIABLES .ds !P new-page-nh1-on .ds !N para-indent-on .ds !E even-odd-page-off .ds !H hanging-indent-on .ds !F dashed ----------------------- ----------------------- .\" MEMOS .\" .\" COMMON VARIABLES .ds !P new-page-nh1-OFF .ds !N para-indent-on .ds !E even-odd-page-off .ds !H hanging-indent-on .ds !F number ----------------------- ----------------------- .\" REVIEWS .\" .\" COMMON VARIABLES .ds !P new-page-nh1-OFF .ds !N para-indent-on .ds !E even-odd-page-off .ds !H hanging-indent-OFF .ds !F number ----------------------- ----------------------- .\" VUGRAPHS .\" .\" COMMON VARIABLES .ds !P new-page-nh1-OFF .ds !N para-indent-on .ds !E even-odd-page-off .ds !H hanging-indent-OFF .ds !F number ----------------------- ----------------------- .\" MEETING NOTICES .\" .\" COMMON VARIABLES .ds !P new-page-nh1-OFF .ds !N para-indent-on .ds !E even-odd-page-off .ds !H hanging-indent-on .ds !F number ----------------------- TOOLKIT_COMMAND_LIBRARY Table 1. ToolKit Command Library Name Options Explanations .B> - Indented paragraph: => .BA/ba word indent Indented paragraph: Word .BH/bh - Indented Paragraph: - .BI/bi word indent Indented paragraph: Word .BK - Indented Paragraph: .BN/bn style num format Indented paragraph: #'s .BS/bs - Indented Paragraph: * .BU/bu - Indented Paragraph: o+ .CI - Indented Paragraph: O .DS [I|B|L|C] title Start no-fill display keep .Fo Pts Vert Local Font Changes .Fz Pts - Global Font Change .G9 [I|B|L|C] title Start 9 pt no-fill display keep .GE - End no-fill display keep .GS [I|B|L|C] title Start no-fill display keep .IB word - Italics Bold Word .LG [I|B] word Large word .Qb word punct "Word" .Qe - End special paragraphing .Qi word punct "Word" .Qo word punct "Word" .Qp [I|B] Offset Paragraphing .Rv - Revision History .SM [I|B] word Smaller word .SC width Short screen presentation format .TE - End Tables .TS [-9] [H|H9] [NK|NK9] [title] Start Tables .UC [-l|word] Translate lower <=> uppercase .Wi width Set page line width .Wz width Set default page line width .ah 0|level title - Appendices .ej level EJECT|NOEJECT page eject .ep [0|word] Skip to next even page .fg title Figure captions .hl char Draw horizontal line .i - Convenience: .IP .ip - Indented Paragraph, no space .ke - End no-fill keep .kl - Start wide no-fill keep, .kp - Start floating no-fill keep .ks - Start no-fill keep .l - Convenience: .LP .nh level title - Numbered (sub)Sections .op [0|word] Skip to next odd page .p - Convenience: .PP .sb title - o+ title, .PP .sc title - title, Underline .IP .sg title - title, .PP .sh title - title, .LP .si title - title, .IP .sk [0|word] Skip blank page .sq title - Left to User, .IP, No Space .su title - title, .IP .sv title - title, .IP, No Space .tb title - Captioned Tables .uc title - Continuous Underline .un number Undent margin .us title - Underline title .x1 C [-9|-10] Start no-fill Boxed keep (.) .x2 - End no-fill Boxed keep .y1 C [-9|-10] Start no-fill Boxed keep (.) .y2 - End no-fill Boxed keep .z1 - Start Block text region .z2 - End Block text region STRING/NUMBER_REFERENCES_&_VARIABLES Table 2. Number References{|-} Reference Description B# most recent Table number B+ next Table number F# most recent Figure number F+ next Figure number D# most recent Display number D+ next Figure Display number yr Current year dy Current day date {|-} Note: Number references preceded by \n( Table 3. String References{|=} Reference Description Bb 'Table xx' portion of the next Table Bh title portion of the Table heading Bt 'Table xx' portion of the Table heading Ff 'Figure xx' portion of the next Figure Fh title portion of the Figure heading Ft 'Figure xx' portion of the Figure heading Df 'Display xx' portion of the next Display Dh title portion of the Display heading Dt 'Display xx' portion of the Display heading Cf Center text, first bottom line DY Current Date LF Eng. Number(or left bottom text) LH Document Title MO current month DW current day Rf first bottom line, right corner text RF Author's Organization (right bottom text) SN current section number Sh current Top level section number st current section title PN current page number {|=} Note: String references preceded by \*( Table 4. Common String Variables String Value Description !P new-page-nh1-on Do Page break @ .nh1 (anything else) Don't page break @ .nh1 !N para-indent-on Do Indent (.PP) after .nh/ah (anything else) Don't indent (.LP) after .nh/ah !F dashed Set captions as "Figure S-n Text" number Set captions as "Figure n. Text" no-number Set captions as "Text" !E even-odd-page-off page title lines same on all pages (anything else) Even/odd page Title lines !H hanging-indent-on Hanging symbol - indent (1.0i) (anything else) Hanging symbol - indent (0.5i) Table 5. Document Specific String Variables String Value Description !A new-page-ah1-on Do Page break @ .ah A,B.. (anything else) Don't page break @ .ah A/B.. !C toc-on Print Table of Contents (anything else) Don't print Table of Contents -- ...!{decvax,ima,ism780c,ulowell,laidbak,cgeuro,cg-f}!cg-atla!ring Steve Ring CompuGraphic Corp. Wilmington, Mass., 01887, (617) 658-5600, x5092