bpm@ucsbcsl.UUCP (Bertrand Meyer) (11/06/84)
Could someone help me with the following troff (under -ms) problem, whose solution I have been unable to find in the manuals? I want a macro which will accumulate some text from the input, so that I can later use this text twice, with different attributes each time (in particular with different fonts: once in roman, once in boldface). I have tried a solution along the lines of the following: .de aS \"macro to start accumulating .di xX \"start diversion .. .de aE \"macro to end accumulating .di \"end diversion .. The idea is to use the macro in the following way: .aS \"start accumulating Here comes the text .aE \"end accumulating Then when I need the accumulated text for the first time, say in roman and centered, I would write: .R .ce 100 .xX .ce 0 The second time around, I want it, say, in boldface, indented: .B .in +5n .xX .in -5n .R However, this does not work; there is no way I can get different attributes each time. I have tried different tricks (using environments, etc.), but to no avail. Let me mention why I tried this: I wanted a macro which would combine the effects of .NH and .XS-.XE by collecting the title automatically for the table of contents. I have a temporary solution (it uses a macro instead of a diversion, where one of the macro arguments is the section title to be collected). This works more or less but: - it restricts titles to be at most one line long (is there any way to have longer macro arguments?) - I still have a problem in that .ce will center the macro argument differently from anything else, which is rather ugly for a chapter heading where the the chapter title is not well centered below the word "CHAPTER" ! (I am writing books and want to submit camera-ready manuscripts) - It is intellectually irritating not to be able to use diversions properly. Thus I would greatly appreciate it if some troff wizard could help me. Please send me mail. Unless the solution is trivial and I have overlooked some elementary feature of troff, I will make it public as well as any useful macro I devise. Please no flame, I am still a fairly novice user of troff (although I feel I am becoming an expert rapidly, which seems to be the only way one can use this system at all). -- ----------------------------------------------------------------------------- Bertrand Meyer UUCP: ...!ucbvax!ucsbcsl!bpm Visiting Professor CSNET: bpm@ucsb.CSnet-relay Department of Computer Science ARPANET:ucsbcsl!bpm@BERKELEY or University of California bpm%ucsb@csnet-relay (usually slower) Santa Barbara, Ca. 93106 Telephone (805) 961-4385 or 961-4321 -----------------------------------------------------------------------------