TeXhax Digest Wednesday, 21 Apr 1993 Volume 93 : Issue 007 % The TeXhax Digest is brought to you as a service of the TeX Users Group % % and UK TeX Users Group in cooperation with the UK TeX Archive group % Today's Topics: Re: heading and footnote in LaTeX Concatenating token strings Support for Kannada (Indian) language in TeX? GhostScript LaTeX page headers and footers Some problems with \verb LaTeX Tree Drawer? LaTeX3 sauter fonts 2.0 available xdvik 0.29 available dvipsk 5.515b available fontname scheme 1.4 available AdjKerns: announcing a new utility Spidery WEB copyright restrictions lifted Administrivia: Moderators: David Osborne and Peter Abbott Contributions: TeXhax@tex.ac.uk Administration, subscription and unsubscription requests: TeXhax-request@tex.ac.uk ---------------------------------------------------------------------- Date: Tue, 13 Apr 1993 11:58:27 +0200 From: Piet van Oostrum Subject: Re: heading and footnote in LaTeX This can be done with fancyheadings. How to get fancyheadings.doc and fancyheadings.sty from the archive at Dept. of Computer Science, Utrecht University: NOTE: In the following I have assumed your mail address is john@highbrow.edu. Of course you must substitute your own address for this. This should be a valid internet or uucp address. For bitnet users name@host.BITNET usually works. by FTP: (please restrict access to weekends or evening/night (i.e. between about 20.00 and 0900 UTC). ftp ftp.cs.ruu.nl [131.211.80.17] user name: anonymous or ftp password: your own email address (e.g. john@highbrow.edu) Don't forget to set binary mode if the file is a tar/arc/zoo archive, compressed or in any other way contains binary data. get pub/TEX/latexstyle/fancyheadings.doc get pub/TEX/latexstyle/fancyheadings.sty (or first cd to the directory, and then get the local filename part, to avoid "permission denied" on your system) by mail-server: send the following message to mail-server@cs.ruu.nl (or uunet!mcsun!sun4nl!ruuinf!mail-server): begin path john@highbrow.edu (PLEASE SUBSTITUTE *YOUR* ADDRESS) send TEX/latexstyle/fancyheadings.doc send TEX/latexstyle/fancyheadings.sty end NOTE: *** PLEASE USE VALID INTERNET ADDRESSES IF POSSIBLE. DO NOT USE ADDRESSES WITH ! and @ MIXED !!!! BITNETTERS USE USER@HOST.BITNET *** The path command can be deleted if we receive a valid from address in your message. If this is the first time you use our mail server, we suggest you first issue the request: send HELP Piet* van Oostrum, Dept of Computer Science, Utrecht University, Padualaan 14, P.O. Box 80.089, 3508 TB Utrecht, The Netherlands. Telephone: +31 30 531806 Uucp: uunet!mcsun!ruuinf!piet Telefax: +31 30 513791 Internet: piet@cs.ruu.nl (*`Pete') ------------------------------ Date: Tue, 13 Apr 1993 22:45:55 -0700 From: wagman%muse.hepnet@LBL.EARN Subject: Concatenating token strings In the draft of Stephan von Bechtolsheim's new books, I found some clever (and incomprehensible) code that appends tokens to an existing token string, so I wrote the following: \newtoks\PhoneItems \PhoneItems = {} \def\CollectInfo#1% {% \expandafter\expandafter\expandafter% \PhoneItems\expandafter{\the\PhoneItems#1}% } \newcount\Pointer \Pointer = 0 \advance\Pointer by 1 \CollectInfo{\number\Pointer} \advance\Pointer by 1 \CollectInfo{\number\Pointer} \advance\Pointer by 1 \CollectInfo{\number\Pointer} \the\PhoneItems \end which prints "333" rather than "123" I know that if I put the \advance\Pointer by 1 into the argument to \CollectInfo, I will get the correct sequencing, but because of my actual needs, I want to increment outside of the argument. So my question is how do I force the expansion of \number\Pointer before \CollectInfo grabs the tokens? Thanks, Gary Wagman wagman@lbl.gov (510)486-6610 USA P.S. E-mail to Stephan (svb@cs.purdue.edu) was returned, so I cannot ask him my question directly. Does anyone know where he is? ------------------------------ Date: Thu, 15 Apr 1993 14:52:12 -0500 From: "T.N.K.Raju, MD 6-4183" Subject: Support for Kannada (Indian) language in TeX? I want to know if there is TeX program for writing in Kannada, a South Indian language spoken by some 35 mil people! I understand that someone in U of C has done this. Please help! Dr.Raju ------------------------------ Date: Fri, 16 Apr 1993 14:47:24 -0600 From: Brett Perkes Subject: GhostScript I pretty new to the TeX world along with the typesetting industry so please bear with my if I use the wrong terms. Some news about GhostScript has been floating around my office. I have never heard of it, but many people say that it is a great tool. I was wondering if anyone that has some information on Ghost Script would please send it to me or let me know where I can get some info. If you would please reply directly to me. Thankyou, Brett Perkes bperkes@cases.cs.usu.edu ------------------------------ Date: 17 Apr 1993 01:19:51 -0400 From: Bill Denning Subject: LaTeX page headers and footers In V93 #006 Wei Zheng writes: >>I am trying to use LaTeX to underline a whole heading >>and to center the running head, e.g. to make a heading >>like >>" >> Time series analysis 3 >>- ------------------------------------------------------- >>" >>where "Time series analysis" is the running head and >>"3" the page number. I have found that the commands >>\pagestyle{myheadings} and \markright cannot work >>desirably in this case. Is there any other way to make >>a heading as above? Further, is it possible to use >>LaTeX to overline a whole footnote, e.g. like >>" >>- ------------------------------------------------------- >>Time series analysis 3 >>" I sent him a solution via Internet, and confirmed that he meant "page footer" rather than "footnote". He verified that the solution below solves his needs. - -------------------------beginning of discussion----------------------------- It is fairly easy to accomplish what you want for the page header as well as for the page footer. There is a public domain style file, headerfooter.sty, which is available from the DECUS Library (Digital Equipment Computer Users Society) as part of the DECUS TeX Collection. It is probably also available from various archives via anonymous ftp, but I don't know where it is stored. Following this message are the following files: headerfooter.sty -- I made a modification to include footer overlines, which the original author didn't implement. hf-example.sty -- A small style file containing a few margin settings, macros, etc. hf.tex -- A LaTeX source code file that illustrates the use of headers and footers, with and without underlines and overlines. These files should have enough comments to be self explanatory, and there is also some discussion in the output text of hf.tex. - ----------------------------end of discussion-------------------------------- - ------headerfooter.sty---------BEGINNING---------------clip here------------- % headerfooter.sty 10 Apr 93 \typeout{} \typeout{Optional document style 'headerfooter' 10 Apr 93>.} \typeout{} % Use with LaTeX version 2.09: % \documentstyle[headerfooter]{article} % Copyright (c) 1987 by Stephen Gildea % Permission to copy all or part of this work is granted, provided % that the copies are not made or distributed for resale, and that % the copyright notice and this notice are retained. % % THIS WORK IS PROVIDED ON AN "AS IS" BASIS. THE AUTHOR PROVIDES NO % WARRANTY WHATSOEVER, EITHER EXPRESS OR IMPLIED, REGARDING THE WORK, % INCLUDING WARRANTIES WITH RESPECT TO ITS MERCHANTABILITY OR FITNESS % FOR ANY PARTICULAR PURPOSE. % If you make any improvements, I'd like to hear about them. % Stephen Gildea % MIT Earth Resources Lab % Cambridge, Mass. 02139 % mit-erl!gildea % gildea@erl.mit.edu % Modified 10-April-1993 by % Bill Denning % South Coast Consulting Service % 315 West 34th Street % Houston, Texas 77018 % denning@decus.org % \pageheader{LEFT}{CENTER}{RIGHT} % \pagefooter{LEFT}{CENTER}{RIGHT} % There is no reason why these commands should not be available % to the user. Of course, I did fancy up the interface a bit. % By mit-erl!gildea 11 October 1986 % minor changes 14 Oct 87 gildea % added \pageheaderlinetrue feature 9 Dec 88 gildea % added \pagefooterlinetrue feature 10 Apr 93 denning % All of these commands take three arguments, which are printed at % the left, center, and right of each page. All three args must be % provided even if some of them are empty. The odd and even % variations are only useful if you are using the twoside option. % Example: \pagefooter{}{\thepage}{} % Say \pageheaderlinetrue if you want the header underlined. % Say \pagefooterlinetrue if you want the footer overlined. \newif\ifpageheaderline \pageheaderlinefalse \newif\ifpagefooterline \pagefooterlinefalse \newdimen\pageheaderlineskip \pageheaderlineskip=1.5pt \newdimen\pagefooterlineskip \pagefooterlineskip=1.5pt \def\@headerline#1#2#3{% \ifpageheaderline \vbox{\hbox to \textwidth{\rlap{#1}\hss{#2}\hss\llap{#3}}% \vskip\pageheaderlineskip \hrule}% \else{\rlap{#1}\hss{#2}\hss\llap{#3}}\fi} \def\@footerline#1#2#3{% \ifpagefooterline \vbox{\hrule \vskip\pagefooterlineskip% \hbox to \textwidth{\rlap{#1}\hss{#2}\hss\llap{#3}}}% \else{\rlap{#1}\hss{#2}\hss\llap{#3}}\fi} \newcommand\oddpageheader[3]{\def\@oddhead{\@headerline{#1}{#2}{#3}}} \newcommand\evenpageheader[3]{\def\@evenhead{\@headerline{#1}{#2}{#3}}} %%%\newcommand\oddpagefooter[3]{\def\@oddfoot{\rlap{#1}\hss{#2}\hss\llap{#3}}} \newcommand\oddpagefooter[3]{\def\@oddfoot{\@footerline{#1}{#2}{#3}}} %%%\newcommand\evenpagefooter[3]{\def\@evenfoot{\rlap{#1}\hss{#2}\hss\llap{#3}} } \newcommand\evenpagefooter[3]{\def\@evenfoot{\@footerline{#1}{#2}{#3}}} \newcommand\pageheader[3]{% \oddpageheader{#1}{#2}{#3}\evenpageheader{#1}{#2}{#3}} \newcommand\pagefooter[3]{% \oddpagefooter{#1}{#2}{#3}\evenpagefooter{#1}{#2}{#3}} - ------headerfooter.sty------------END------------------clip here------------- - ------hf-example.sty-----------BEGINNING---------------clip here------------- % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % hf-example.sty modified 10-Apr-93 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \typeout{} \typeout{Optional document style `Example for TeXhax' <10 Apr 93>.} \typeout{} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Suppress paragraph indentation %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \parindent=0pt % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Prevent widows & orphans %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \clubpenalty=10000 \widowpenalty=10000 % %%%%%%%%%%%%%%%%%%%%%%%%%% % Establish Margins %%%%%%%%%%%%%%%%%%%%%%%%%% % \setlength{\oddsidemargin}{0.525in} % inner page margin is 1.525 inches \setlength{\evensidemargin}{0.225in} % outer page margin is 1.225 inches \setlength{\textwidth}{5.75in} \setlength{\topmargin}{-0.50in} \setlength{\headsep}{0.30in} \setlength{\textheight}{8.50in} \raggedbottom % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Limit diagnostic output %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \showboxbreadth=0 \showboxdepth=0 \hbadness=10000 \vbadness=10000 % %%%%%%%%%%%%%%%%%%%%%% % Simple macros %%%%%%%%%%%%%%%%%%%%%% % \newcommand{\blankpage}{\newpage \ \newpage} \newcommand{\forceodd}{\ifodd\arabic{page}\else\blankpage\fi} \def\push{\noindent\hspace{4ex}} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Define new commands containing text % to be inserted later in the document. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \newcommand{\lefttext}[1]{\def\theleft{#1}} \newcommand{\righttext}[1]{\def\theright{#1}} - ------hf-example.sty--------------END------------------clip here------------- - ------hf.tex-------------------BEGINNING---------------clip here------------- \documentstyle[twoside,headerfooter,hf-example]{article} \begin{document} \begin{large} \pagenumbering{roman} \setcounter{page}{1} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Establish initial page footers. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \evenpagefooter{}{\thepage}{} \oddpagefooter{}{\thepage}{} This is a dummy first page that illustrates the use of centered roman page numbers in the footer, and no page header. You might use this technique for a table of contents, preface, etc. \newpage This is a dummy second page that illustrates the use of centered roman page numbers in the footer, and no page header. \newpage \pagenumbering{arabic} \setcounter{page}{1} % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Establish page headers and footers for text of document. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \evenpageheader{\thepage}{Time Series Analysis}{} \oddpageheader{}{Time Series Analysis}{\thepage} \evenpagefooter{\thepage}{Time Series Analysis}{} \oddpagefooter{}{Time Series Analysis}{\thepage} \pageheaderlinetrue % page header is underlined \pagefooterlinefalse % page footer is plain This is a sample first text page that illustrates the use of arabic page numbers and centered underlined normalsize Roman `Time Series Analysis' text in the page header, and centered normalsize Roman `Time Series Analysis' text as well as arabic page numbers in the page footer. Page numbers appear on the right side of odd numbered pages. \\ You can specify different fonts within the headers and footers by including standard \LaTeX{} type style directives such as \verb+\+sl or \verb+\+sc, as well as different type sizes. Note that the type style and size directives that are in effect for the document as a whole do not apply to the header and footer. You can also adjust the horizontal spacing of text using commands such as \verb+\+hspace. \newpage % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Change page headers to \large, and page footers to Small Caps. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \evenpageheader{\large\thepage}{\large Time Series Analysis}{} \oddpageheader{}{\large Time Series Analysis}{\large\thepage} \evenpagefooter{\thepage}{\sc Time Series Analysis}{} \oddpagefooter{}{\sc Time Series Analysis}{\thepage} \pagefooterlinetrue % page footer is overlined This is a sample second text page that illustrates the use of arabic page numbers and centered underlined large Roman `Time Series Analysis' text in the page header, and centered overlined normalsize Small Caps `Time Series Analysis' text as well as arabic page numbers in the page footer. Page numbers appear on the left side of even numbered pages. \\ \newpage % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Change page headers to Bold Faced Roman, and page footers to Slanted. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \evenpageheader{}{\bf\large Time Series Analysis}{} \oddpageheader{}{\bf\large Time Series Analysis}{} \evenpagefooter{\thepage}{\sl Time Series Analysis}{} \oddpagefooter{}{\sl Time Series Analysis}{\thepage} \pageheaderlinefalse % page header is plain This is a sample third text page that illustrates the use of centered large Bold Faced Roman `Time Series Analysis' text in the page header without page numbers, and centered overlined normalsize Slanted `Time Series Analysis' text as well as arabic page numbers in the page footer. \\ \newpage % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Change page headers to \Large Bold Faced Roman. Change page % footers to Slanted text contained in \theleft and \theright % with page numbers justified to the outer page margin. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % \evenpageheader{}{\Large\bf Time Series Analysis}{} \oddpageheader{}{\Large\bf Time Series Analysis}{} \evenpagefooter{\sl \thepage\push\theleft}{}{} \oddpagefooter{}{}{\sl \theright\push\thepage} \pageheaderlinetrue % page header is underlined \pagefooterlinefalse % page footer is plain \lefttext{Sample verso (left, even numbered page)} \righttext{Sample recto (right, odd numbered page)} This is a sample fourth text page that illustrates the use of centered underlined Large Bold Faced Roman `Time Series Analysis' text without page numbers in the page header, and left justified arabic page numbers and normalsize Slanted text represented by \verb+\+theleft in the page footer. The \verb+\+push macro is used to adjust the horizontal spacing between the page number and the text of the footer. \newpage This is a sample fifth text page that illustrates the use of centered underlined Large Bold Faced Roman `Time Series Analysis' text without page numbers in the page header, and right justified arabic page numbers and normalsize Slanted text represented by \verb+\+theright in the page footer. The \verb+\+push macro is used to adjust the horizontal spacing between the text of the footer and the page number. \newpage \lefttext{Illustration for \TeX{}hax} \righttext{Illustration for \TeX{}hax} As can be seen below, when the definitions of \verb+\+theleft and \verb+\+theright are changed, the new text automatically appears in the footer without having to change the values of \verb+\+evenpagefooter and \verb+\+oddpagefooter. This can be very useful when you want to include text such as chapter or subject titles in page headers or footers. \\ For example, you might want to implement a scheme such as the one shown below. The section title is initially defined to be the null string so that if a page break occurs before a section no error will occur because of a non--existent definition. \\ \begin{verbatim} \evenpagefooter{\sl \thepage\push\uppercase{\chaptertitle}}{}{} \oddpagefooter{}{}{\sl \sectiontitle\push\thepage} % [...] \def\chaptertitle{Title of Chapter} \def\sectiontitle{} \chapter{\chaptertitle} % [...] \def\sectiontitle{Title of Section} \section{\sectiontitle} % [...] \end{verbatim} Note that the page headers and footers will not appear correctly on the last page of the document unless you include a ``dummy" blank page at the end. To do this, I use a simple macro \verb+\+blankpage, which is included in the file {\em hf--example.sty}. Otherwise the last page returns to the default page numbering scheme, which in this instance is \verb+\+pagestyle\{plain\}. \\ A \verb+\+newpage command at the end of the document will also ensure that the headers and footers appear correctly. I also use \verb+\+blankpage for other purposes, such as forcing a portion of a document to begin on a recto (odd numbered page) using the \verb+\+forceodd macro.\\ The margin settings used in the style file mentioned above assume that you are printing on U.S. standard 8$\frac{1}{2}${\tt "} x 11{\tt "} paper. If you are using the European standard A--4 or some other size paper, you will likely want to change these settings. \blankpage \end{large} \end{document} - ------hf.tex----------------------END------------------clip here------------- ------------------------------ Date: Sat, 17 Apr 1993 14:41:58 +0100 From: lhol@gmdzi.gmd.de (Leszek Holenderski) Subject: Some problems with \verb Dear TeXperts, Can anybody explain me why the following input: \documentstyle{article} \catcode`\"=\active \def"{\verb"} \begin{document} Just a test of "verb". \end{document} gives the following error: This is TeX, C Version 3.14t3 (test.tex format file: LaTeX with English hyphenation (/vol/tex/lib/inputs/article.sty Document Style `article' <5 Feb 88> - GMD. (/vol/tex/lib/inputs/art10.sty)) (test.aux)) Runaway argument? verb". \end{document} ! File ended while scanning use of \@tempa. ??? Leszek (lhol@gmdzi.gmd.de) ------------------------------ Date: Tue, 20 Apr 1993 20:28:52 From: anoop@parcom.ernet.in (Anoop Sarkar) Subject: LaTeX Tree Drawer? Can anyone help me find where the implementation of the following work is available. Information on any other ways to draw trees in LaTeX directly (without using 'xfig', etc.) is also welcome. @Article{Swonk:TB12-2-286-289, author = "Glenn L. Swonk", title = "{{\LaTeX tree drawer}}", journal = j-TUGboat, year = "1991", volume = "12", number = "2", pages = "286--289", month = Jun, } Access to the above via a mail-server is preferred to a connection via ftp. Anoop Sarkar Centre for Development of Advanced Computing Pune University Campus, Pune 411 007, India ------------------------------ Date: Wed, 21 Apr 1993 13:39:38 +0000 From: Jeremy Henty Subject: LaTeX3 I keep seeing vague references to LaTeX3, but I have no idea what it's about. Does anyone have answers (however brief) to these questions? * When is it coming? * How can I get it when it does? * (Most importantly) What are the authors of LaTeX3 trying to do? (in other words, what will be the significant changes?) Thanks in advance, Jeremy ------------------------------ Date: Mon, 12 Apr 1993 11:27:16 -0400 From: karl%edu.umb.cs@uk.ac.nsfnet-relay Subject: sauter fonts 2.0 available I've updated my distribution of John Sauter's Metafont files to make Computer Modern fonts at any point size. You can get version 2.0 by ftp from ftp.cs.umb.edu:pub/tex/sauter.tar.z Please notice the `.z' instead `.Z' -- I am now using gzip instead of compress. See below for a blurb about gzip. This release makes the sauter fonts match the AMS ``extracm'' fonts (cmbsy5-9, cmcsc8-9, cmex7-9, cmmib5-9). Thus, the TFM files do not match those of previous release, hence the incremented major version number. For all of the standard Computer Modern fonts, these files produce the same TFM files as Knuth's sources. So it is ok to call the output from these `cm...'. Besides the Computer Modern and the Glonti/Samarin Cyrillic, the distribution also includes Sauter parameter files for the LaTeX symbol fonts, contributed by Friedrich Haubensak. The distribution includes an lfonts.tex for LaTeX and a MakeTeXPK for dvips which take advantage of these fonts, as well as an NFSS fontdef.sau. Let me know if you have questions or suggestions. karl@cs.umb.edu Member of the League for Programming Freedom---write to lpf@uunet.uu.net. Distribution information: You can get LaTeX from rusmv1.rus.uni-stuttgart.de and dvips from labrea.stanford.edu:pub/dvips*. (Alternatively, you can get ftp.cs.umb.edu:pub/tex/dvipsk.tar.z, which is a version of dvips I have modified to use the same font searching code as TeX, the GNU font utilities, and my modified xdvi.) Information about gzip: gzip is faster and compresses better than compress. In addition to its technical virtues, it is not subject (so far) to any (alleged) software patents. Here is an extract from the README file: > gzip is free software, you can redistribute it and/or modify it under > the terms of the GNU General Public License, a copy of which is > provided under the name COPYING. The latest version of the gzip > sources can always be found in prep.ai.mit.edu:/pub/gnu/gzip-*.tar* > or any of the prep mirror sites. An MSDOS lha self-extracting exe is in > hal.gnu.ai.mit.edu:/tmp/gzip*.exe. Instead of prep, I suggest you get gzip from one of the following less heavily loaded servers: Asia: ftp.cs.titech.ac.jp, utsun.s.u-tokyo.ac.jp:/ftpsync/prep, cair.kaist.ac.kr:/pub/gnu Australia: archie.oz.au:/gnu (archie.oz or archie.oz.au for ACSnet) Europe: src.doc.ic.ac.uk:/gnu, ftp.informatik.tu-muenchen.de, ftp.informatik.rwth-aachen.de:/pub/gnu, nic.funet.fi:/pub/gnu, ugle.unit.no, isy.liu.se, ftp.stacken.kth.se, ftp.win.tue.nl, ftp.denet.dk, ftp.eunet.ch, nic.switch.ch:/mirror/gnu, archive.eu.net, irisa.irisa.fr:/pub/gnu United States: wuarchive.wustl.edu, ftp.cs.widener.edu, uxc.cso.uiuc.edu, col.hp.com:/mirrors/gnu, gatekeeper.dec.com:/pub/GNU, ftp.uu.net:/systems/gnu For more information about software patents, please email me or lpf@uunet.uu.net. ------------------------------ Date: Mon, 12 Apr 1993 11:26:28 -0400 From: karl%edu.umb.cs@uk.ac.nsfnet-relay Subject: xdvik 0.29 available I have released version 0.29 of xdvik, my modified version of Paul Vojta's xdvi, a DVI previewer for the X window system. It is available by ftp from ftp.cs.umb.edu:pub/tex/xdvik.tar.z Please notice the `.z' instead `.Z' -- I am now using gzip instead of compress. My major modification is to use the same path searching algorithms as Unix TeX (i.e., web2c), the GNU font utilities, and my modified dvips. In addition, the configuration process is (more or less) automatic, in the GNU style. The Makefile uses the standard variable names and targets in GNU makefiles. xdvik is based on patchlevel 11 of xdvi, i.e., the virtual support and MakeTeXPK support is not present. I haven't updated it because I personally don't need those features (I just generated bitmaps for the PostScript fonts in the dvips encoding in the first place), and haven't had time to update the distribution. This particular version has no major changes (see NEWS and ChangeLog in the distribution for the minor ones); I am sending out this announcement because of my switch from compress to gzip. karl@cs.umb.edu Member of the League for Programming Freedom---write to lpf@uunet.uu.net. ------------------------------ Date: Mon, 12 Apr 1993 11:26:51 -0400 From: karl%edu.umb.cs@uk.ac.nsfnet-relay Subject: dvipsk 5.515b available I have released version 5.515b of dvipsk, my modified version of Tom Rokicki's dvips, a DVI-to-PostScript translator. It is available by ftp from ftp.cs.umb.edu:pub/tex/dvipsk.tar.z Please notice the `.z' instead `.Z' -- I am now using gzip instead of compress. My major modification is to use the same path searching algorithms as Unix TeX (i.e., web2c), the GNU font utilities, and my modified xdvi. In addition, the configuration process is (more or less) automatic, in the GNU style. The Makefile uses the standard variable names and targets in GNU makefiles. The documentation is included in the GNU texinfo format (thanks to zoo@cygnus.com for doing the initial conversion). This particular version has no major changes (see NEWS and ChangeLog in the distribution for the minor ones); I am sending out this announcement because of my switch from compress to gzip. karl@cs.umb.edu Member of the League for Programming Freedom---write to lpf@uunet.uu.net. ------------------------------ Date: Mon, 12 Apr 1993 11:27:51 -0400 From: karl%edu.umb.cs@uk.ac.nsfnet-relay Subject: fontname scheme 1.4 available I have released version 1.4 of ``my'' font naming scheme for TeX fonts. You can get it by anonymous ftp from ftp.cs.umb.edu:pub/tex/fontname.tar.z I will also send it to you by email if you cannot ftp. Please notice the `.z' instead `.Z' -- I am now using gzip instead of compress. The fontname document is in Texinfo format, so you will need the TeX macros in the file texinfo.tex (available with most GNU programs) to be able to print it; the directory pub/tex/fontname on the above machine has a texinfo.tex, as well as a number of other files with name lists. The rest of that directory contains files showing the naming scheme applied to Adobe, Monotype, Computer Modern, and other sources' fonts. The changes since version 1.3 are minimal: a couple of additional typefaces, variants, and sources. I am happy to receive additions, criticisms, or other comments. karl@cs.umb.edu Member of the League for Programming Freedom -- write lpf@uunet.uu.net. ------------------------------ Date: Thu, 15 Apr 1993 03:06:56 +0200 From: yannis@gat.citilille.fr (Yannis Haralambous) Subject: AdjKerns: announcing a new utility %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % % % % The Birth of a Virtual Font -- The AdjKerns Utility % % % % % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \documentstyle{article} \title{The Birth of a Virtual Font\\ The {\tt AdjKerns} Utility} \author{Yannis Haralambous} \date{} \begin{document} \section{Introduction} Making a baby can be a difficult process: you need at least two people (with the adequate tools) you need some favorable circumstances, and you need motivation. What about virtual fonts? well, we have motivation enough: several languages are not covered by DC fonts, in particular Welsh, Esperanto, Maltese, many African languages (the glyphs for the latter are included in Joerg Knappens FC fonts) etc. These languages need virtual fonts to be typeset. The circumstances are favorable enough. Up to now, though, we were missing one tool. Here is the problem: you want to substitute a character in the DC font by some special character you need in your target language. OK. How to construct the virtual representation for this character? well, for that we have Eberhard Mattes' {\tt QDTeXVPL}. It will give us the description of all characters we need. Now suppose you replace an `A' with some accent, by an `E' with some other accent. What about all the kerning pairs involving that `A' you took away? And what all those new kerning pairs you need for the `E'? Do you want to replace the old kerning pairs by new ones, by hand?? well, you can try; but if you ever attempt to take a coffee break, then you will never be able to recognize again what you have changed, and what remains to be changed. Not to mention the nasty habit of PL files of having kerning pairs applying to more than one characters. This optimizes parsing speed, but surely makes it more difficult to make manual changes. The utility I'm presenting does all this automatically. It will read a {\tt [V]PL} file and will \begin{itemize} \item remove all kerning pairs involving removed characters; \item introduce kernng pairs for new characters; \item add or remove ligatures. \end{itemize} To illustrate the use of this program, I provide a real-world example, namely a virtual font for Esperanto. You will follow the whole process of giving birth to this font, starting by its mother: the common {\tt dcr10} font. \section{How it works} {\tt AdjKerns} has been written in ANSI~C\footnote{Be aware! its author is a lousy C programmer, so {\em don't} trust the program as you trust \TeX. Keep a critical eye for possible bugs, and report them!}. It should run everywhere; it has been tested on a Macintosh (MPW~3.2 and Think C~5.0). The command line should look like this: \begin{verbatim} AdjKerns [-c foo.kcf] [-o ] \end{verbatim} The input file is a {\tt PL} or a {\tt VPL} file\footnote{If you look closer you'll see that there is no big difference; the latter has a few more possibilities, otherwise the syntax is the same.}. Out of this file {\tt AdjKerns} will read only the {\tt LIGTABLE}, the rest will remain untouched. The rules on how to modify the {\tt LIGTABLE} are read from the configuration file {\tt foo.kcf}. This file is optional; if you don't include any rules, then {\tt AdjKerns} will just rewrite your {\tt [V]PL} file, by ignoring any optimization attempts of the {\tt LIGTABLE}. The file will be bigger, but the result will be the same; it will be easier to modify, though. The {\tt-o} option specifies the output file. If no such is specified, then the input file is overwritten (you don't need that file anyway\ldots). Let's see now the syntax of the {\tt KCF} file. The following lines are allowed: \verb=KERN LIKE = \verb=KERN LEFT LIKE = \verb=KERN RIGHT LIKE = \verb=KERN LEFT LIKE RIGHT LIKE = \verb=UNKERN = \verb=ADD -> = \verb=ADD BOUNDARYCHAR -> = \verb=REMOVE -> = \verb=REMOVE BOUNDARYCHAR -> = \verb=% comments, like in TeX= where {\tt } means (like in a {\tt[V]PL} file, either \verb=C= followed by a character, or \verb=D= followed by a decimal number, or \verb=O= followed by an octal number, or \verb=H= followed by a hexadecimal number. {\tt} means one of the following: \verb=LIG=, \verb=/LIG=, \verb=LIG/=, \verb=/LIG/=, \verb=/LIG>=, \verb=LIG/>=, \verb=/LIG/>=, \verb=/LIG/>>=. Everytime you kern some letter, all previous kerning pairs and ligatures are erased. By the {\tt UNKERN} command you can erase these, without inserting a new character. Commands are executed sequentially, and there is no consistence test; so you can ask something and then the opposite: nobody will complain. \section{An Example: Esperanto} Esperanto needs the following characters which are not provided in the DC font: \^c, \^s, \^\j, \^g, \^h, \u u (and the corresponding uppercase letters). Dirk Everdeen which is an Esperanto guru (and has prepared a $\beta$ version of Esperanto hyphenation patterns) asked me to use the following input mechanism: these letters should be accessed by ligatures {\tt cx}, {\tt sx}, {\tt jx}, {\tt gx}, {\tt hx}, {\tt ux}, because the letter `x' is not used in Esperanto. Since the ``phantom'' letter `x' comes {\em after} the real letter, there is no problem with kerning (like in the case of the input ligature {\tt ts} of the {\tt wncyr} fonts). So this method could eventually be adopted as a standard transliteration of Esperanto. But this is another issue\footnote{To be solved by the Esperanto subgroup of the Technical Working Group on Multiple Language Coordination.}. Our problem now is to create a virtual font with these letters, the right kerning pairs and the right ligatures. I have chosen positions which would harm the least amount of languages: only Turkish and Slovakian are excluded when using this virtual font. How to call it? well, of course {\tt eocr10} since {\tt eo} is the two-letter code for Esperanto. \subsection{First step: character description} How do we describe the accented characters? Let's use Eberhard Mattes' {\tt QDTeXVPL}. For this we need a configuration file, which will specify the positions of new characters, and their descriptions in the form of \TeX\ macros. Here is this file (let's call it {\tt esperanto-wannabe.tex}): \begin{verbatim} \font\f=dcr10 \input qdtexvpl \texvpl{^^ad}{\f\^s} \texvpl{^^8d}{\f\^S} \texvpl{^^a0}{\f\^c} \texvpl{^^80}{\f\^C} \texvpl{^^a8}{\f\^h} \texvpl{^^88}{\f\^H} \texvpl{^^a9}{\f\^\j} \texvpl{^^89}{\f\^J} \texvpl{^^a7}{\f\^g} \texvpl{^^87}{\f\^G} \texvpl{^^b8}{\f\u u} \texvpl{^^98}{\f\u U} \bye \end{verbatim} The good thing is that we can quickly describe the characters using \TeX\ macros, like \verb=\^=, \verb=\u=, \verb=\j=. The bad thing is that this is all we can do. Fine tuning must be done by hand. You run this file through \TeX\ and get file {\tt espernato-wannabe.dvi}. Then you run {\tt QDTeXVPL} with the followint command line: \begin{verbatim} QDTeXVPL -d10.0 esperanto-wannabe.dvi esperanto-wannabe.vpl \end{verbatim} Here is an extract of what we get: \begin{verbatim} (MAPFONT D 16 (FONTNAME dcr10) (FONTCHECKSUM O 30523766474) (FONTDSIZE R 10.000000)) (CHARACTER O 255 (CHARWD R 0.394347) (CHARHT R 0.694275) (CHARDP R 0.000000) (MAP (MOVERIGHT R -0.052765) (SELECTFONT D 16) (SETCHAR O 2) (MOVERIGHT R -0.447113) (SETCHAR C s))) (CHARACTER O 215 (CHARWD R 0.555420) (CHARHT R 0.939255) (CHARDP R 0.000000) (MAP (PUSH) (MOVERIGHT R 0.027771) (MOVEDOWN R -0.244980) (SELECTFONT D 16) (SETCHAR O 2) (POP) (SETCHAR C S))) ... \end{verbatim} Now we have to replace these characters inside {\tt dcr10.pl} and name the new file {\tt eocr10.vpl} (hopefully someday somebody will find the time to write some utility to do this automatically). \subsection{Second step: adjusting kerning pairs and ligatures} As you saw, we have modified character descriptions, but neither kerning pairs, nor ligatures. This will be done by {\tt AdjKerns}. Here is the necessary configuration file {\tt eo.kcf}: \begin{verbatim} % Kerning and ligature configuration for % Esperanto virtual fonts, based on DC % Semi-official (not yet aproved by TWGMLC) KERN H AD LIKE C s KERN H 8D LIKE C S KERN H A0 LIKE C c KERN H 80 LIKE C C KERN H A8 LIKE C h KERN H 88 LIKE C H KERN H A9 LIKE C j KERN H 89 LIKE C J KERN H A7 LIKE C g KERN H 87 LIKE C G KERN H B8 LIKE C u KERN H 98 LIKE C U ADD LIG C s C x -> H AD ADD LIG C S C x -> H 8D ADD LIG C S C X -> H 8D ADD LIG C c C x -> H A0 ADD LIG C C C x -> H 80 ADD LIG C C C X -> H 80 ADD LIG C h C x -> H A8 ADD LIG C H C x -> H 88 ADD LIG C H C X -> H 88 ADD LIG C j C x -> H A9 ADD LIG C J C x -> H 89 ADD LIG C J C X -> H 89 ADD LIG C g C x -> H A7 ADD LIG C G C x -> H 87 ADD LIG C G C X -> H 87 ADD LIG C u C x -> H B8 ADD LIG C U C x -> H 98 ADD LIG C U C X -> H 98 \end{verbatim} Note that we have included ligatures both for `Cx' and `CX' etc.: the former will be used in text, the latter in titles. Now we run {\tt AdjKerns}, with the following command line: \begin{verbatim} AdjKerns -c eo.kcf eocr10.vpl \end{verbatim} After some lines: \begin{verbatim} ************************************************************** This is program AdjKerns (= Adjust Kerning Pairs) Version beta-1 written for you by a lousy C programmer (Yannis Haralambous, 1993) It shall help you make efficient virtual fonts This software belongs to the public domain ************************************************************** Loading input file preamble... Reading kern and ligature data... Reading lines from configuration file and executing them... .............................. Finished reading the configuration file Writing down new lig/kern data... Writing input file remaining data... \end{verbatim} we get the expected result (our file {\tt eocr10.vpl} is overwritten. \subsection{Final step: using the font} Once we have the {\tt VPL} file, we are done. Run {\tt VFtoVP} and use the font. Here is a small text file to test the font (file {\tt eotest.tex}): \begin{verbatim} \magnification=1200 \font\myfont=eocr10 \myfont Berto staras antaux la vendejo. Sxi estas rigardanta la montran fenestregon. Si vidas multajn obiektojn. En la montra fenestrego trovigxas skatoloj kai faruno. Sub klosxo kusxas fromagxo, kiu havas multajn truojn. Ankaux botelojn sxi estas vidanta. La boteloj, kiujn sxi estas rigardanta, estas egale grandaj. En la mezo de la fenestrego pendas afisxo, sur kiu estas skribita la frazo: ,,Cxi tie oni parolas Esperanton``. La pordo de la vendejo estas malfermita. En la vendejo en angulo oni vidas barelon kun haringoj. Haringoj estas fisxoj. La fromagxa klosxo estas farita el vitro. La posedanto de la vendejo nun estas vendanta fumajxojn kaj cindrujon al sinjoro. Berto demandas la vendistinon, cxu cxokolado kaj dolcxajxoj estas haveblaj. La vendistino neas tion. Ankaux teo, kafo kaj rizo ne plu estas haveblaj. Vino estas trinkajxo. Berto volas acxeti unue fromagxon kaj due haringojn. La acxetita fromagxo kostas unu marko. Nun sxi estas portanta la acxetitan hejmen. \end \end{verbatim} taken from a Esperanto reader my mother had at school (nice brown and thin ,,Nachkriegspapier``). \section{Go forth, etc. etc.} I am tempted to say ``Go forth and make masterpieces of virtual fonts'', but I have a small request: if you wish to make fonts for languages (Welsh, Maltese, etc.) please contact the Technical Working Group on Multiple Language Coordination first; it might very well be that somebody is already preparing this language; and if not, you may be that person. But in any case, we can share our experiences to make {\em consistent} and {\em compatible} \TeX\ Language Packages. \section{Availability} You will find all the mentionned files, as well as the sources (and Macintosh-executables) of {\tt AdjKerns} on {\tt spi.ens.fr}, directories {\tt/pub/tex/yannis/adjkerns} and {\tt/pub/tex/yannis/adjkerns/examples}. {\tt QDTeXVPL} can be found in Stuttgart, directory {\tt/soft/tex/fonts/utilities/qdtexvpl}. A \TeX\ Language Package for Esperanto is prepared by the TWGMLC (Technical Working Group on Multiple Language Coordination). \end{document} ------------------------------ Date: Mon, 19 Apr 1993 16:07:37 -0400 From: norman@bellcore.com (Norman Ramsey) Subject: Spidery WEB copyright restrictions lifted I am pleased to announce that at long last the restrictive copyright on Spidery WEB has been eased. Spidery WEB may now be used freely for any purpose, including writing software for profit. I am also pleased to announce that I am no longer supporting Spidery WEB. (True de facto for some time, but now true de jure.) Bug fixes and bug reports should be sent to the copyright holders, ORA Corporation, E-mail address spider-bugs@oracorp.com. The location at which Spidery WEB is stored has also changed. Spidery WEB is available by anonymous ftp from pip.shsu.edu:tex-archive/web/spiderweb. This location is mirrored at other sites as part of the Comprehensive Tex Archive Network. Norman Ramsey ------------------------------ Further information about the TeXhax Digest, the TeX Users Group, and the latest software versions is available in every tenth issue of the TeXhax Digest. Please send contributions to: TeXhax@tex.ac.uk Administration, subscription and unsubscription requests: On Internet: send a one line mail message to TeXhax-request@tex.ac.uk SUBSCRIBE TEX-L UNSUBSCRIBE TEX-L On BITNET: send a similar one-line mail message to LISTSERV@xxx On JANET: send a similar one line mail message to TeXhax-request@uk.ac.tex Back issues of the digest are available for anonymous ftp from the UK TeX Archive, tex.ac.uk (134.151.40.18) in [tex-archive.digests.texhax.YY]texhax.NN and from ftp.tex.ac.uk (134.151.44.19) in /pub/archive/digests/texhax/YY/texhax.NN where YY = last two digits of year, NN = issue number \bye End of TeXhax Digest [Volume 93 Issue 7] ****************************************