TeXhax Digest Wednesday, March 23, 1988 Volume 88 : Issue 27 [SCORE.STANFORD.EDU]TEXHAX27.88 Editor: Malcolm Brown Today's Topics: BITNET miseries Reply: Single and Double Spacing in Figures (v88 n23) 1. enumerate 2. script fonts OH NO!!! ANOTHER tex-to-c!!! (TeXhax Digest V88 #23) Vanishing pixels (or write-white fonts) TeXhax Digest V88 #23 Makeindex VAX/VMS TeX on DECNET/SPAN Superscripted citation format Style files for bib ---------------------------------------------------------------------- Date: 21 March 88 From: Malcolm Subject: BITNET miseries %%% Yes, I'm quite aware of the repeats of digest #26 over BITNET. %%% Cause is being investigated. I'm hoping that whatever caused %%% it might have have been a temporary haunting of the mailers. %%% So I'm sending this out, since there's a backlog of submissions %%% building. %%% %%% Once again, my thanks to those on BITNET who have migrated over %%% to the list server system. To those who haven't: please do so! %%% I have wanted to keep the request cordial and the migration %%% voluntary, but I can't continue to do so indefinitely. %%% The end is nigh! %%% %%% subscribe, simply send a one line mail message to LISTSERV@TAMVM1 %%% that reads: %%% SUBSCRIBE TEX-L %%% thanks Malcolm ------------------------------ Date: Fri, 11 Mar 88 22:13 EST From: NAME "Stephen Azuma" Subject: Reply: Single and Double Spacing in Figures (v88 n23) Tom Schneider notes that it is difficult (if not impossible) to obtain double spacing in the body of his text and single spacing in the figure captions by doing this: \renewcommand{\baselinestretch}{1.8}. A simple (read crude) way around this, avoiding \baselinestretch altogther: \documentstyle[12pt]{article} \newcommand{\ssp}{\setlength{\baselineskip}{15pt}} % for single spacing \newcommand{\dsp}{\setlength{\baselineskip}{22pt}} % for double spacing \begin{document} \dsp Here is where Tom wants to begin double spacing his text. All of the remaining text will be double spaced except for the environments. \begin{figure}[h] \caption{Some environments will automatically revert to single spacing, for example, figure, table, within footnotes, etc.} \end{figure} \begin{quote} \ssp ``Other environments will appear double spaced but may be forced to single spacing with the $\backslash$ssp command above, for example, quote, quotation, titlepage, abstract, etc.'' \end{quote} I would appreciate it if a \TeX nician could explain why this is. Also, if any reader has the energy to test all the environments, please submit the results to TeXHaX. \end{document} Reader Beware: I am not a \TeXnician. You have no guarantee that this method will work reliably in all situations. If you have a superior solution to Tom's problem, please submit it. I will then gladly return to the obscurity from whence I came. If you experiment with this method and find limitations and/or other applications, please submit those as well. Steve Azuma CPU cycles courtesy: Mineral Exploration Department of Physics Faculty of Engineering and the System People University of Toronto CANADA Sazuma@UtorPhys.BitNet ------------------------------ Date: Sat, 12 Mar 88 00:11 EST From: Subject: 1. enumerate 2. script fonts I'm using version 2.09 of Latex, released 18 December 1985. 1. I've attempted to obtain a classically labelled outline from ``enumerate'' by a couple of different means. First, at the suggestion of Dr. Lamport's book (fifth printing, Sept. '86), page 92, I tried \renewcommand{\theenumi}{\Roman{enumi}}, and similarly for the deeper nestings. The result was the same old default labels, but the value of \theenumi, when called by name, was the appropriate one. Second, I noticed a suggestion in texhax Digest, V88 #22, to try \renewcommand{\labelitemi}{\Roman{itemi}}. I tried this with no better effect. What on earth is going on here? 2. In mathematical writing, there is a long tradition of the use of script capital letters for certain symbols. Once upon a time, these were handwritten into a typescript. Then, when IBM produced its marvelous ``typing balls,'' we finally had access to the real thing. Now, in the computer age, we have gone backwards. For one bloody symbol, we have to search high and low for the privilege of paying through the nose to add a font. Is there a script font in the public domain with a driver for an HP LaserJet+? Sincerely, Mark Steinberger Department of Math. and Stat. SUNY at Albany Albany, NY 12222 ms361@uacsc1.albany.edu ------------------------------ Date: Fri, 11 Mar 88 22:32:42 PST From: mackay@june.cs.washington.edu (Pierre MacKay) Subject: OH NO!!! ANOTHER tex-to-c!!! (TeXhax Digest V88 #23) A response to some of Per Bergsten's comments. First, a little background. As the TUG site-coordinator for Unix flavored TeX, I have watched the proliferation of LARGE system-dependent change files and faced the problem of upgrading an ever increasing number of them whenever a new version of TeX appears. Since I can only check on Suns and Vaxen, I often have to do this blind. Moreover, there has never been a public-domain pascal generally available for systemV, and until Lou Salkind provided the change files for the 3B2 we had to tell SystemV sites (including sites in the AT&T family) that TeX was essentially out of their reach. We could suggest that other commercial pascal compilers might work, but we could not provide change files for them. Pascal has always been rather an orphan in the Unix environment. System V pascals are slightly, but only slightly more common than hens' teeth, and even BSD pc, though it comes with the Berkeley license, is rather an oddity. Despite the concession to upper-and-lower case source code, it is quaintly loyal to the old CDC 6400 conventions that were imposed on the initial design of pascal. Under BSD4.1, we had to ship out modifications of the compiler source code (remember when we used to ask for the Berkeley license?) and even now, we have to steer people to the still undocumented feature in pxp that so cleverly wraps up case statements in a set-inclusion statement. Our instructions for the 3B2 say "beg, borrow or steal the source for pxp, modify it, and compile it before you try to compile TeX." The real problem however is in the basic statement about Berkeley pc arrays. I quote: "The calculations involving array subscripts and set elements are done with 16-bit arithmetic." When your TeX boxes hit that boundary, you can pound on your systems programmer all you like, there is not much can be done about it. And that boundary is being hit all the time nowadays. TeX-to-C gets around both of the above problems. In the Unix environment, and often outside it as well, well-coded C is more portable than well-coded pascal, largely because of the simpler and more efficient I/O, but also because C allows you to bank on your knowledge of the binary word-length of your target system in ways that pascal was specifically designed to prohibit. A bit dangerous, perhaps, but power-of-2 word-lengths are rather common these days. If you have Unix, you have C, (there seem to have been exceptions to that rule in the past, but few, if any, survive). It is not true, however, that if you have Unix you have pascal. Moreover, there is a free public-domain C compiler now, which has been outperforming commercial compilers pretty consistently (at least in TeX compilations) for several months. (NOTE: I refer, of course to the Free Software Foundation's gcc) > you should treat the Pascal-to-C conversion simply as another pass of the > Pascal compiler and never be aware of the fact that C is involved at all. A nice idea, but not practical at present. Maybe in 2 years, when we are sure that absolutely no interpreter-related bugs can possibly remain, it should be reconsidered. Till then, it is very important to know that "better" "worse" or simply "strange" behaviour is characteristic of a specific style of compilation. > I specifically don't agree with changing the banner to say 'TeX in C' !!! The reason for this is outlined above. TeX-in-C IS different. On any given system, the object code produced by a direct compilation of the pascal brick will be quite different from the object code produced after interpretation into C. We hope the user will not need to know that, but the information should be made available for cases when something strange appears to be happening. > (which I think should be reserved for the one written entirely in C from > scratch.) Absolutely not. TeX-in-C is compiled from the WEB, mediated by one extra step. The basic WEB structure is still there, and can still be of use. When I put together a change file for TeX-XeT, using Don Knuth's WAITS change file, I was able to refer continuously to Computers and Typesetting Volume B, even though the ultimate source fed into the compiler was not what appears in the WEB source. C-TeX, or Common-TeX is another animal altogether. It may be a very good animal, but it no longer bears the same close relation to the WEB that TeX-in-C does. Purists may, if they wish, consider the name TeX-in-C as an elliptical pronunciation of TeX-in[terpreted-into]-C Tim Morgan's lex and yacc code may be somewhat TeX-specific. He has been trying for the maximum efficiency in the specific subset of C that is relevant to TeX, METAFONT, TeXware and MFware. That may not be the right balance for a generic, all-purpose interpreter. Does it matter? His programs don't take up all that much space, and they need not be left resident on the system after succesful compilation. I certainly wouldn't turn down the offer of another, more generic pascal-to-C interpreter, assuming that it too is free software, but the development of TeX-to-C is moving along very nicely, and I would not want to tell all the eager people waiting for its release that we were about add another two or three months to development while working on fine-tuning another approach. TeX-to-C does not, at the moment, claim to be a solution to generic coding problems; It claims only to offer a faster, tighter and more widely usable TeX. Pierre A. MacKay TUG Site Coordinator for Unix-flavored TeX ------------------------------ Date: Fri, 11 Mar 88 22:50:56 PST From: mackay@june.cs.washington.edu (Pierre MacKay) Subject: Vanishing pixels (or write-white fonts) TeXhax Digest V88 #23 I hope TeXhax will have room for this, which is a shar of a mode-def and the write-white adjustment to font-def. put these into your MFINPUTS path, make up a cmplain.base with U_Wash.mf as your mode_def file, and rerun all needed fonts (save, or remove the write-black versions) Pierre A. MacKay TUG Site Coordinator for Unix-flavored TeX # This is a shell archive. # Remove everything above and including the cut line. # Then run the rest of the file through sh. #-----cut here-----cut here-----cut here-----cut here----- #!/bin/sh # shar: Shell Archiver # Run the following text with /bin/sh to create: # white_setup.mf # U_Wash.mf # This archive created: Fri Mar 11 22:45:24 1988 cat << \SHAR_EOF > white_setup.mf % The basic correction for write-white fonts occurs in the definition % font_setup. This can be used to overwrite the write-black % definition in cmbase.mf % def white_setup = if monospace: let adjust_fit=mono_adjust_fit; def mfudged=fudged enddef; mono_charic#:=body_height#*slant; if mono_charic#<0: mono_charic#:=0; fi mono_charwd#:=9u#; define_whole_pixels(mono_charwd); else: let adjust_fit=normal_adjust_fit; def mfudged= enddef; fi if math_fitting: let math_fit=do_math_fit else: let math_fit=ignore_math_fit fi; define_pixels(u,width_adj,serif_fit,cap_serif_fit,jut,cap_jut,beak, bar_height,dish,bracket,beak_jut,stem_corr,vair_corr,apex_corr); define_blacker_pixels(notch_cut,cap_notch_cut); forsuffixes $=notch_cut,cap_notch_cut: if $<3: $:=3; fi endfor define_whole_pixels(letter_fit,fine,crisp,tiny); define_whole_vertical_pixels(body_height,asc_height, cap_height,fig_height,x_height,comma_depth,desc_depth,serif_drop); define_whole_blacker_pixels(thin_join,hair,stem,curve,flare, dot_size,cap_hair,cap_stem,cap_curve); define_whole_vertical_blacker_pixels(vair,bar,slab,cap_bar,cap_band); define_corrected_pixels(o,apex_o); forsuffixes $=hair,stem,cap_stem: fudged$.#:=fudge*$.#; fudged$:=hround(fudged$.#*hppp+blacker); forever: exitif fudged$>.9fudge*$; fudged$:=fudged$+1; endfor endfor rule_thickness:=ceiling(rule_thickness#*hppp); heavy_rule_thickness:=ceiling(3rule_thickness#*hppp); oo:=vround(.5o#*hppp*o_correction)+eps; apex_oo:=vround(.5apex_o#*hppp*o_correction)+eps; lowres_fix(stem,curve,flare) 1.3; lowres_fix(stem,curve) 1.2; lowres_fix(cap_stem,cap_curve) 1.2; lowres_fix(hair,cap_hair) 1.2; lowres_fix(cap_band,cap_bar,bar,slab) 1.2; stem':=hround(stem-stem_corr); cap_stem':=hround(cap_stem-stem_corr); vair':=vround(vair+vair_corr); vstem:=vround .8[vair,stem]; cap_vstem:=vround .8[vair,cap_stem]; ess:=(ess#/stem#)*stem; cap_ess:=(cap_ess#/cap_stem#)*cap_stem; dw:=(curve#-stem#)*hppp; bold:=curve#*hppp+blacker; dh#:=.6designsize; stem_shift#:=if serifs: 2stem_corr# else: 0 fi; more_super:=max(superness,sqrt .77superness); hein_super:=max(superness,sqrt .81225258superness); % that's $2^{-.3}$ clear_pen_memory; if fine=0: fine:=1; fi forsuffixes $=fine,crisp,tiny: %%% fine $ %%%% temporary formatting convention for MFT if $>fudged.hair: $:=fudged.hair; fi $.breadth:=$; pickup if $=0: nullpen else: pencircle scaled $; $:=$-eps fi; $.nib:=savepen; breadth_[$.nib]:=$; forsuffixes $$=lft,rt,top,bot: shiftdef($.$$,$$ 0); endfor endfor %%% @ $ %%%% restore ordinary formatting for $ min_Vround:=max(fine.breadth,crisp.breadth,tiny.breadth,2); % "WRITE WHITE" ONLY! if min_Vround U_Wash.mf % This is the University of Washington collection of mode_defs, and some % other things as well. This file was created on 24 January, 1988 % by Pierre MacKay, mackay@june.cs.washington.edu % Some of the modes have never actually been tested base_version:=base_version&"/U_Wash"; input white_setup % if a mode_def includes the statement: let font_setup = white_setup, % it will replace the cmbase.mf font_setup with this corrected version mode_def help = % What modes exist in this preload? for i=1 upto number_of_modes: message mode_name[i]; endfor; save ?; % only use this once. it doesn't make sense to repeat enddef; let ? = help_; % Canon CX mode: for the Laser-writer (same as WAITS.MF Imagen) mode_def CanonCX = proofing:=0; % no, we're not making proofs fontmaking:=1; % yes, we are making a font tracingtitles:=0; % no, don't show titles at all pixels_per_inch:=300; % the new Canon engine at 300/inch blacker:=0; % Canon engine is black enough fillin:=.2; % very small compensation for diagonal fillin o_correction:=.6; % but don't overshoot as much enddef; % Ricoh 4080: for the TI Omnilaser (Stan Osborne's values TUGboat 8,2,134) mode_def RicohFortyEighty = let font_setup=white_setup; % use the write-white font_setup proofing:=0; % no, we're not making proofs fontmaking:=1; % yes, we are making a font tracingtitles:=0; % no, don't show titles at all pixels_per_inch:=300; % Ricoh write-white engine. blacker:=.2; % Don't overblack the small fonts fillin:=-.2; % reverse compensation for diagonal fillin o_correction:=.5; % but don't overshoot as much enddef; localfont:=RicohFortyEighty; % the mode most commonly used to make fonts % It is customary to input another file to supplement the PLAIN base. % This supplementary file adds analogous modes, corresponding to % local output devices, and it redefines `localfont' as appropriate. % The values of screen_rows and screen_cols should also be updated. % The auxiliary file should set base_version:=base_version&"/localname". % Remember that the present file PLAIN.MF should not be changed; % all local changes should be confined to a separate file. % Macros to add mode information specials to fonts. def mode_special(suffix $) = string s,d; s:=str$; d:=decimal scantokens s; special s&":="&d&";" enddef; def font_mode_specials = p_p_i=pixels_per_inch/mag; if fontmaking > 0: begingroup; save d,s,p; save pixels_per_inch; string p; pixels_per_inch:=p_p_i; special jobname; mode_special(mag); p:=substring(0,length(mode_name[mode])-1) of mode_name[mode]; special "mode:="&p&";"; mode_special(pixels_per_inch); mode_special(blacker); mode_special(fillin); mode_special(o_correction); endgroup; fi enddef; inner end; def bye= if fontmaking > 0: font_mode_specials; fi end enddef; outer bye,end;SHAR_EOF # End of shell archive exit 0 ------------------------------ Date: Sat, 12 Mar 88 09:33 N From: Subject: Makeindex I am also interested in getting Makeindex. Does anybody know if there is one for vax/vms and how to get it? Thanks Max Calvani Decnet/span: 39003::fisica Bitnet: fisica%astrpd.infnet@iboinfn.bitnet ------------------------------ Date: Sat, 12 Mar 88 10:05 N From: Subject: VAX/VMS TeX on DECNET/SPAN Here is a list of what is at present available. All following material is for Vax/Vms. For information please send a decnet/span message to: 39937::luvisetto or 39003::fisica Marisa Luvisetto and Massimo Calvani AA_NEWS.DIR Change files to produce TeX2.9 AMSFONTS.DIR The Ams, Cyrillic and Eu* fonts AMSTEX.DIR The Amstex package BASES.DIR Basic PLAIN files for Tex and Metafont BEEBE.DIR Beebe's driver family (thanks Beebe) BIBTEX.DIR The Bibtex package CLARK.DIR Clark's program for halftone output CLD.DIR *.cld files to install TeX in DCL tables CM.DIR CM fonts definitions DOC.DIR *.Tex files for Tex and Metafont manuals DVIDIS.DIR Preview for Vaxstation DVITOVDU.DIR Preview by Andrew Trevorrow (thanks Andrew) EXE.DIR All *.exe files FONTS.DIR All *.TFM files FORMATS.DIR Basic *.fmt files INPUTS.DIR *.sty files for Latex LATEX.DIR The Latex package LATEXSTYLE.DIR The Latexstyle collection of Ken Yap (thanks Ken) LN03.DIR Driver for DEC LN03 laserprinter by F. Rose LN_FONTS.DIR Fonts for Ln03 in PK format LN_FONTS_GF.DIR Fonts for LN03 in GF format (thanks John Sauter) LSEDIT.DIR Lse module for Latex MF.DIR Metafont MFWARE.DIR Metafont MLLCNAF.DIR Drivers for VT125-240-241-330-340, GPX, mVAX 2000 PIXEL.DIR *.pxl files at \magstep 1 --> 6 PSFIGTEX.DIR Package to include Postscript files in TeX docs PSPRINT.DIR Driver for Postscript Laserprinters by A. Trevorrow QMS.DIR Driver for Qms/quick laserprinter QMS_FONTS.DIR Fonts for Qms Laserprinter in GF format SAMPLES.DIR Sample files for Tex and Latex SPELL.DIR English speller utility SVI.DIR Modules to produce 'save image' of exec. file TEX.DIR .EXE files for Tex and Virtex TEXHAX.DIR The TexHax magazine (thanks Malcolm Brown) TEXMAG.DIR The Texmag magazine (thanks Don Hosek) TEXSIS.DIR The TeXsis macros by E. Myers and F. Paige TEXTYL.DIR Curve drawing postprocessor TEXUK.DIR The Uktex magazine (thanks Peter Abbott) TEXWARE.DIR Tex related software as DViTYPE, TFTOPL, PLTOTF TIB.DIR Reference formatting program TRAP.DIR Metafont torture test TRIP.DIR Tex torture test WEB.DIR Source for WEB programs, WEAVE and Tangle ------------------------------ Date: Sat, 12 Mar 88 13:19:35 EST From: crl@maxwell.physics.purdue.edu (Charles R. LaBrec) Subject: Superscripted citation format Here is a \documentstyle option to perform superscripted citations. It also defines a \cite* macro to give an unsuperscripted citation for cases like "See reference~\cite*{foo}" Charles LaBrec crl @ maxwell.physics.purdue.edu % SUPERCITE DOCUMENT-STYLE OPTION FOR ANY STYLE % RELEASED 6 December 1987 -- for LaTeX version 2.09 % Written by C. LaBrec @ newton.physics.purdue.edu % % This redefines the \@cite macro to perhaps produce raised citations % while keeping the spacefactor unchanged. This is so that a citation % can properly follow a sentence-ending punctuation mark. A kluge is % involved since the macro that calls this puts the citation in an \hbox % which causes it not to be made smaller in math mode % \newif\if@raisedcite \def\@cite#1#2{\if@raisedcite\leavevmode\penalty10000 \ifhmode \edef\@x@sf{\spacefactor\the\spacefactor}\else\let\@x@sf\relax\fi \hbox{\let\hbox\relax $^{\rm #1\if@tempswa, #2\fi}$}\@x@sf{}\else #1\if@tempswa , #2\fi\fi{}} % % this redefines \cite to have a *-option. This option uses \if@raisedcite % to produce either an unadorned citation, i.e., just the number, or a % raised citation % \def\cite{\@ifstar{\@raisedcitefalse\@@citex}{\@raisedcitetrue\@@citex}} \def\@@citex{\@ifnextchar [{\@tempswatrue\@citex}{\@tempswafalse\@citex[]}} ------------------------------ Date: Sat, 12 Mar 88 13:27:42 EST From: uglevine@cs.Buffalo.EDU (Jeremy Levine) Subject: Style files for bib The only ones available heree are plain --> [1] .... alpha --> [Sha87] ... and some variations on sorting... However, if one wanted [Shapiro 1987] ..... then the labels have to be changed. One can do this easily in \thebibliography, however if one is using .bib files one needs to define a style. Anybody tried this? Any and all *.bst fil;es that allow us to do the above would be welcome Jeremy D. Levine SUNY/Buffalo Computer Science (716-636-3181) csnet: uglevine@buffalo.CSNET uucp: ..!{nike|watmath,alegra,decvax}!sunybcs!uglevine BITNET: uglevine@sunybcs.BITNET , v107gysk@ubvmsa.BITNET ------------------------------ %%% %%% subscriptions, address changes to: texhax-request@score.stanford.edu %%% please send a valid arpanet address!! %%% %%% BITNET distribution: subscribe by sending the following %%% line to LISTSERV@TAMVM1.BITNET: %%% SUBSCRIBE TEX-L %%% %%% submissions to: texhax@score.stanford.edu %%% %%%\bye %%% ------------------------------ End of TeXhax Digest ************************** -------