jmm@skivs.UUCP (Joel M. Miller) (11/28/89)
Is there a filter? -- Joel M Miller Internet: jmm@skivs.ski.org Smith-Kettlewell Institute Usenet: uunet!skivs!jmm 2232 Webster St Bitnet: jmm%skivs.ski.org@uunet.uu.net San Francisco, CA 94115 Voice: 415/561-1703 Fax: 415/561-1610
davew@hp-ptp.HP.COM (Dave_Waller) (11/30/89)
No filter that I'm aware of for troff. However, if you are trying to take nroff output and make it printable on a dumb printer, you can use 'col' to remove overstrikes and such, and that should work. Dave Waller \ The opinions expressed are solely my own, and in no way Hewlett-Packard Co. \ represent those of my employer (but we all know dave@hpdstma.ptp.hp.com | hplabs!hpdstma!dave \ they should!)
bd@hp-ses.SDE.HP.COM (Bob Desinger) (12/04/89)
I wanted to get at the different fonts built into the Thinkjet. You can do this with escape sequences, but who can remember them all? I wanted to type a macro (as in .b to turn on bold, .c to turn on compressed, and so forth). I also wanted to occasionally be able to use an nroff-style string (as in \*B to turn on bold, \*C to turn on compressed, and so forth), so I whipped up the attached crude macro package. It turns on the appropriate fonts, sets the line length, and performs page breaks in about the most barbaric way you could imagine. That's about *all* it does. I've used it for a couple of years to create new text when all I want is to change fonts and get a new page to come out in the right spot. Sadly, you'll have to know a fair amount of nroff to modify it. I wrote it for my own use, but there are at least examples in the file as comments. Briefly: .c This turns on compressed letters and sets the margins for it. .e This turns the letters into expanded and sets the margins. .l This turns on the font I use for letters, called "expanded-compressed" (?!) in the Thinkjet manual. That's a lower-case L up there in the macro name. .r This turns on the default ("Roman") font and margins, which matches the Thinkjet at power-up. You can also set \*Bboldface\*S in any font, and \*Iitalic\*N (really just underlined). Bold (\*B) is turned off by Shy (\*S); Italic (\*I, underlined) is turned off by Normal (\*N). [I couldn't think of a cute name for un-italic.] The macro package starts nroff in no-fill mode because that's what I use for the lecture outlines that I type up. The BP macro does the Begin-Page spacing and header printing. You get an extra page with header after the final page of output---this is what I mean by barbaric---but I typically thwart that by finishing up my documents with a final command: .rm BP It's crude but it works. I'm real happy with the results on my Integral PC and its built-in Thinkjet. My typical command line is: nroff ~/lib/tmac.tj file -- bd # This is a shell archive. Remove anything before this line, # then unpack it by saving it in a file and typing "sh file". # # Wrapped by Bob Desinger <bd@hp-ses> on Mon Dec 4 00:16:32 1989 # # This archive contains: # tmac.tj (contains escape characters) rm -f /tmp/uud$$ (echo "begin 777 /tmp/uud$$\n \nend" | uudecode) >/dev/null 2>&1 if [ -f /tmp/uud$$ ] then rm -f /tmp/uud$$ unpacker=uudecode else echo Compiling unpacker for files containing escape characters pwd=`pwd`; cd /tmp cat >unpack$$.c <<-'EOF' #include <stdio.h> #define DEC(c) (((c) - ' ') & 077) main() { int n; char dest[128], a,b,c,d; scanf("begin %o ", &n); gets(dest); if (freopen(dest, "w", stdout) == NULL) { perror(dest); exit(1); } while ((n=getchar()) != EOF && (n=DEC(n))!=0) { while (n>0) { a = DEC(getchar()); b = DEC(getchar()); c = DEC(getchar()); d = DEC(getchar()); if (n-- > 0) putchar(a << 2 | b >> 4); if (n-- > 0) putchar(b << 4 | c >> 2); if (n-- > 0) putchar(c << 6 | d); } n=getchar(); } exit(0); } EOF cc -o unpack$$ unpack$$.c rm unpack$$.c cd $pwd unpacker=/tmp/unpack$$ fi echo x - tmac.tj '[contains escape characters]' $unpacker <<'@eof' begin 664 tmac.tj M+EPB(&YR;V9F("UM=&H@;6%C<F]S(&9O<B!T:&4@=&AI;FMJ970*+EPB"BY< M(B!&;VYT+7-E='1I;F<@;6%C<F]S.@HN7"()+F,@8V]M<')E<W-E9 D)+F(@ M8F]L9 HN7"()+F4@97AP86YD960)"2YI(&ET86QI8PHN7"()+G(@<F]M86X* M+EPB"2YL(&QE='1E<B H(F5X<&%N9&5D+6-O;7!R97-S960B(&EN('1H92!M M86YU86QS(3\I"BY<(B @(" @(" @(" @(" @("A)('5S92!I="!F;W(@=W)I M=&EN9R!L971T97)S+"!S;R!)(&-A;&P@:70@(FQE='1E<B(I"BY<(@HN7"(@ M1F]N="US971T:6YG(&UA8W)O<R!C86X@8F4@:6YV;VME9"!A<SH*+EPB"2YX M(&]N92UT;VME;BUI;BUX+69O<FUA="UW:71H;W5T+6)L86YK<PHN7"(@;W(* M+EPB"2YX(")S979E<F%L('%U;W1E9"!W;W)D<R!I;B!X(&9O<FUA="(*+EPB M(&]R"BY<(@DN> HN7"()5V]R9',@:6X@>"!F;W)M870L"BY<(@EA<R!M86YY M(&QI;F5S(&%S('EO=2!W86YT"BY<(@HN7"(@06QS;RP@+F(@86YD("YI(&-A M;B!T86ME(&%L=&5R;F%T:6YG(&%R9W,@;&EK92 N0B!A;F0@+DD@:6X@=&AE M("UM;2!M86-R;W,N"BY<(@HN7"(@4W1R:6YG<SH*+EPB"5PJ0R!C;VUP<F5S M<V5D"5PJ3"!L971T97()7"I"(&)O;&0)7"I3('-H>0HN7"()7"I%(&5X<&%N M9&5D"5PJ4B!R;VUA;@E<*DD@:71A;&EC"5PJ3B!N;W)M86P*+EPB"BY<(B!" M;VQD("A<*D(I(&ES('1U<FYE9"!O9F8@8GD@<VAY("A<*E,I.B @5&AI<R!I M<R!A(%PJ0F)O;&1F86-E7"I3('=O<F0N"BY<(B!)=&%L:6,@*%PJ22D@:7,@ M='5R;F5D(&]F9B!B>2!N;W)M86P@*%PJ3BD[(&ET86QI8R!R96%L;'D@:G5S M="!T=7)N<R!O;@HN7"(@=&AE('5N9&5R;&EN:6YG+"!A;F0@8&YO<FUA;"<@ M='5R;G,@:70@;V9F+@HN9',@4B ;)FLP4PHN9',@12 ;)FLQ4PHN9',@0R ; M)FLR4PHN9',@3" ;)FLS4PHN9',@0B ;*',Q0@HN9',@4R ;*',P0@HN9',@ M22 ;)F1$"BYD<R!.(!LF9$ *+EPB"0E&;VYT(&UA8W)O<PHN7"(N8R!C;VUP M<F5S<V5D(&9O;G0*+F1E(&,*+FEE(%Q<;B@N)" N9C$@7"I#(#$T,B B7%PD M,2(*+F5L("YF,"!<*D,@,30R"BXN"BY<(BYE(&5X<&%N9&5D(&9O;G0*+F1E M(&4*+FEE(%Q<;B@N)" N9C$@7"I%(#0P(")<7"0Q(@HN96P@+F8P(%PJ12 T M, HN+@HN7"(N;"!L971T97(@9F]N= HN9&4@; HN:64@7%QN*"XD("YF,2!< M*DP@-S$@(EQ<)#$B"BYE;" N9C @7"I,(#<Q"BXN"BY<(BYR(')O;6%N(&9O M;G0*+F1E('(*+FEE(%Q<;B@N)" N9C$@7"I2(#@P(")<7"0Q(@HN96P@+F8P M(%PJ4B X, HN+@HN7"(N8B!B;VQD9F%C90HN9&4@8@HN:64@7%QN*"XD(%PJ M0EQ<)#%<*E-<7"0R7"I"7%PD,UPJ4UQ<)#1<*D)<7"0U7"I37%PD-EPJ0EQ< M)#=<*E-<7"0X7"I"7%PD.5PJ4PHN96P@7"I"7&,*+BX*+EPB+FD@:71A;&EC M("AR96%L;'D@=6YD97)L:6YE9"D*+F1E(&D*+FEE(%Q<;B@N)"!<*DE<7"0Q M7"I.7%PD,EPJ25Q<)#-<*DY<7"0T7"I)7%PD-5PJ3EQ<)#9<*DE<7"0W7"I. M7%PD.%PJ25Q<)#E<*DX*+F5L(%PJ25QC"BXN"BY<(@D)0V]M;6]N(&-O9&4@ M9F]R(&%L;"!F;VYT<PHN7"(@+F8P(&ES(&EN=F]K960@9F]R(&$@9F]N="UC M:&%N9V4@=VET:&]U="!A<F=S+"!L:6ME("(N<B(@;VX@82!L:6YE(&)Y"BY< M(@EI='-E;&8N("!)="!S=&]R97,@=&AE('-P96-I9FEE9"!N97<@9F]N="!A M;F0@;&EN92UL96YG=&@L('1H96X@8VAA;F=E<PHN7"()=&\@=&AE;2X*+EPB M"55S86=E.B @+F8P(&9O;G0M<W1R:6YG(&QI;F4M;&5N9W1H"BYD92!F, HN M9',@*5 @7%PD,0HN;G(@(U @7%PD,@HN;&P@7%PD,@HN8G(*7%PD,0HN8G(* M+BX*+EPB("YF,2!I<R!I;G9O:V5D(&9O<B!A(&9O;G0M8VAA;F=E('=I=&@@ M87)G<RP@;&EK92!@+F,@(F-O;7!R97-S960@=V]R9',B)RX*+EPB"4ET('!R M:6YT<R!I=',@=&5X="UA<F=U;65N="!I;B!T:&4@<W!E8VEF:65D(&9O;G0@ M*'=I=&@@=&AE('-P96-I9FEE9 HN7"();&EN92!L96YG=&@I+"!T:&5N(')E M<W1O<F5S('1H92!O<FEG:6YA;"!F;VYT(&%N9"!L:6YE+6QE;F=T:"X*+EPB M"55S86=E.B @+F8Q(&9O;G0M<W1R:6YG(&QI;F4M;&5N9W1H('1E>'0M87)G M"BYD92!F,0HN7"(@+FQL(%Q<)#()7"(@=7-E(&-U<G)E;G0@;&EN92!L96YG M=&@*7%PD,5Q<)#-<7"HH*5 *+EPB("YL;"!<7&XH(U )7"(@=7-E(&-U<G)E M;G0@;&EN92!L96YG=&@*+BX*+EPB($1E9F%U;'0@=&\@<F]M86X@9F]N="!A M;F0@;&EN92UL96YG=&@L('=H:6-H(&UA=&-H97,@:&%R9'=A<F4@870@<&]W M97(M=7 *+F1S("E0(%PJ4@HN;G(@(U @.# *+FQL(#@P"BYN80E<(B!N;R!A M9&IU<W0*+FYF"5PB(&YO(&9I;&P*+FQT(#$T,@E<(B!T:71L92!L96YG=&@@ M:7,@,30R+"!F;W(@8V]M<')E<W-E9"!F;VYT"BY<(@E086=E+7-K:7 @8V]D M90HN7"(@5%,@/3T@5&ET;&4@4W1R:6YG("AS970@=VET:" N9',@5%,@(E1H M:7,@:7,@=&AE(%1I=&QE(%)I9VAT($AE<F4I"BYD<R!44R!086=E"BYD92!& M3PHG<W @,@HN+@HN9&4@0E *)VYR(",@7%QN)2LQ"B=&3PHG<W @-0HN=&P@ M)R=<*D-<7"HH5%,@7%QN(UQ<*B@I4"<*)W-P(#0*)VYS"BXN"BY<(B!3970@ D=&AE('1R87 @9F]R('!A9V4M8G)E86MS"BYW:" M.'8@0E * end @eof set `wc -lwc <tmac.tj` if test $1$2$3 != 1114732601 then echo ERROR: wc results of tmac.tj are $* should be 111 473 2601 fi chmod 664 tmac.tj rm -f /tmp/unpack$$ exit 0