TUGBOAT
Volume 28, Number 1 / 2007 Practical TEX 2006 Conference Proceedings
General Delivery 3 Karl Berry / From the president 4 Barbara Beeton / Editorial comments Erratum: TUGboat 27:1 (EuroTEX proceedings); A new Korean TEX Society; LATEX goes to the movies; Some TUGboat staff changes Warnings 4 Donald E. Knuth / TEX’s infinite glue is projective Software & Tools 5 Oleg Parashchenko / TEXML: Resurrecting TEX in the XML world 11 Barbara Beeton and Idris Hamid / Oriental TEX: A new direction in scholarly complex-script typesetting Hints & Tricks 12 Peter Wilson / Glisterings: stringing along; loops 15 Mark LaPlante / The treasure chest A L TEX 20 Ignacio Llopis Tortosa and Mar´ıa Jos´eCastro Bleda / paperTEX: Creating newspapers using LATEX2ε 24 LATEX Project Team / LATEX news, issue 17
Practical TEX 2006 26 Conference program, delegates, and sponsors Keynote 29 Barbara Beeton / How to create a TEX journal: A personal journey Publishing 49 David Walden / A lifetime as an amateur compositor 61 Elizabeth Dearborn / TEX and medicine Teaching & Training 65 Jon Breitenbucher / LATEX at a liberal arts college 70 Boris Veytsman / Design of presentations: Notes on principles and LATEX implementation Software & Tools 77 Boris Veytsman and Maria Shmilevich / Automatic report generation with Web, TEX and SQL 80 Bob Neveln and Bob Alps / Writing and checking complete proofs in TEX Graphics 84 Troy Henderson / A beginner’s guide to MetaPost for creating high-quality graphics 91 Andrew Mertz and William Slough / Graphics with PGF and TikZ 100 Boris Veytsman and Leila Akhmadeeva / Drawing medical pedigree trees with TEX and PSTricks Tutorials 110 Peter Flynn / Rolling your own Document Class: Using LATEX to keep away from the Dark Side A L TEX 124 Jim Hefferon / LATEX resources 126 Peter Flom / LATEX for academics and researchers who (think they) don’t need it 129 Federico Garcia / Hypertext capabilities with pdf LATEX 133 Kaveh Bazargan and CV Radhakrishnan / Removing vertical stretch — mimicking traditional typesetting with TEX Abstracts 137 Abstracts (Adams, Garcia, H¨oppner, Hummel, Moye, Peter, Wetmore)
News 138 Calendar 139 TUG 2007 announcement 140 EuroBachoTEX 2007 announcement TUG Business 141 Steve Peter / TUG 2007 election report 145 David Walden / Financial statements for 2006 146 Institutional members 147 TUG membership form Advertisements 148 TEX consulting and production services TEX Users Group Board of Directors TUGboat (ISSN 0896-3207) is published by the Donald Knuth, Grand Wizard of TEX-arcana † ∗ TEX Users Group. Karl Berry, President Kaja Christiansen∗, Vice President Memberships and Subscriptions David Walden∗, Treasurer 2007 dues for individual members are as follows: Susan DeMeritt∗, Secretary Ordinary members: $85. Barbara Beeton Students/Seniors: $45. Jon Breitenbucher The discounted rate of $45 is also available to Steve Grathwohl citizens of countries with modest economies, as Jim Hefferon detailed on our web site. Klaus H¨oppner Membership in the TEX Users Group is for the Ross Moore calendar year, and includes all issues of TUGboat Arthur Ogawa for the year in which membership begins or is Steve Peter renewed, as well as software distributions and other Cheryl Ponchin benefits. Individual membership is open only to Samuel Rhoads named individuals, and carries with it such rights Philip Taylor and responsibilities as voting in TUG elections. For Raymond Goucher, Founding Executive Director † membership information, visit the TUG web site. Hermann Zapf, Wizard of Fonts † Also, (non-voting) TUGboat subscriptions are ∗member of executive committee available to organizations and others wishing to †honorary receive TUGboat in a name other than that of an See http://tug.org/board.html for past board individual. The subscription rate is $95 per year, members. including air mail delivery. Addresses Electronic Mail Institutional Membership General correspondence, (Internet) Institutional membership is a means of showing payments, etc. General correspondence, continuing interest in and support for both T X E TEX Users Group membership, subscriptions: and the TEX Users Group, as well as providing P. O. Box 2311 [email protected] a discounted group rate and other benefits. For Portland, OR 97208-2311 further information, contact the TUG office or see U.S.A. Submissions to TUGboat, our web site. Delivery services, letters to the Editor: parcels, visitors [email protected] TEX is a trademark of the American Mathematical TEX Users Group Society. 1466 NW Naito Parkway Technical support for Suite 3141 TEX users: Copyright c 2007 TEX Users Group. Portland, OR 97209-2820 [email protected] Copyright to individual articles within this publication U.S.A. remains with their authors, so the articles may not be Contact the Board reproduced, distributed or translated without the authors’ Telephone permission. of Directors: For the editorial and other material not ascribed to +1 503 223-9994 [email protected] a particular author, permission is granted to make and Fax distribute verbatim copies without royalty, in any medium, +1 206 203-3960 provided the copyright notice and this permission notice are preserved. World Wide Web Permission is also granted to make, copy and distribute translations of such editorial material into another language, http://www.tug.org/ except that the TEX Users Group must approve translations http://www.tug.org/TUGboat/ of this permission notice itself. Lacking such approval, the original English permission notice must be included. Have a suggestion? Problems not resolved? TUG Printed in U.S.A. The Board wants to hear from you: Please email [email protected].
[printing date: March 2007] The Communications of the TEX Users Group
Volume 28, Number 1, 2007 Practical TEX 2006 Conference Proceedings TEX Users Group Board of Directors TUGboat (ISSN 0896-3207) is published by the Donald Knuth, Grand Wizard of TEX-arcana † TEX Users Group. Karl Berry, President ∗ Kaja Christiansen∗, Vice President Memberships and Subscriptions David Walden∗, Treasurer 2007 dues for individual members are as follows: Susan DeMeritt∗, Secretary Ordinary members: $85. Barbara Beeton Students/Seniors: $45. Jon Breitenbucher The discounted rate of $45 is also available to Steve Grathwohl citizens of countries with modest economies, as Jim Hefferon detailed on our web site. Klaus H¨oppner Membership in the TEX Users Group is for the Ross Moore calendar year, and includes all issues of TUGboat Arthur Ogawa for the year in which membership begins or is Steve Peter renewed, as well as software distributions and other Cheryl Ponchin benefits. Individual membership is open only to Samuel Rhoads named individuals, and carries with it such rights Philip Taylor and responsibilities as voting in TUG elections. For Raymond Goucher, Founding Executive Director † membership information, visit the TUG web site. Hermann Zapf, Wizard of Fonts † Also, (non-voting) TUGboat subscriptions are ∗member of executive committee available to organizations and others wishing to †honorary receive TUGboat in a name other than that of an See http://tug.org/board.html for past board individual. The subscription rate is $95 per year, members. including air mail delivery. Addresses Electronic Mail Institutional Membership General correspondence, (Internet) Institutional membership is a means of showing payments, etc. General correspondence, continuing interest in and support for both T X E TEX Users Group membership, subscriptions: and the TEX Users Group, as well as providing P. O. Box 2311 [email protected] a discounted group rate and other benefits. For Portland, OR 97208-2311 further information, contact the TUG office or see U.S.A. Submissions to TUGboat, our web site. Delivery services, letters to the Editor: parcels, visitors [email protected] TEX is a trademark of the American Mathematical TEX Users Group Society. 1466 NW Naito Parkway Technical support for Suite 3141 TEX users: Copyright c 2007 TEX Users Group. Portland, OR 97209-2820 [email protected] Copyright to individual articles within this publication U.S.A. remains with their authors, so the articles may not be Contact the Board reproduced, distributed or translated without the authors’ Telephone of Directors: permission. For the editorial and other material not ascribed to +1 503 223-9994 [email protected] a particular author, permission is granted to make and Fax distribute verbatim copies without royalty, in any medium, +1 206 203-3960 provided the copyright notice and this permission notice are preserved. World Wide Web Permission is also granted to make, copy and distribute translations of such editorial material into another language, http://www.tug.org/ except that the TEX Users Group must approve translations http://www.tug.org/TUGboat/ of this permission notice itself. Lacking such approval, the original English permission notice must be included. Have a suggestion? Problems not resolved? The TUG Board wants to hear from you: Printed in U.S.A. Please email [email protected].
[printing date: March 2007] Practical TEX 2006 Proceedings Rutgers, the State University of New Jersey Piscataway, NJ, USA July 30–August 1, 2006
COMMUNICATIONS OF THE TEX USERS GROUP TUGBOAT EDITOR BARBARA BEETON PROCEEDINGS EDITOR KARL BERRY
VOLUME 28, NUMBER 1 • 2007 PORTLAND • OREGON • U.S.A. TUGboat TUGboat Editorial Board This issue (Vol. 28, No. 1) is the first issue of the Barbara Beeton, Editor-in-Chief 2007 volume year. It combines the Practical TEX Robin Laakso, Managing Editor 2006 conference proceedings with regular material. Karl Berry, Production Manager Vol. 28, No. 2 is expected to be a regular issue, Christina Thiele, Associate Editor, and No. 3 will contain the TUG 2007 (San Diego) Topics in the Humanities proceedings. Production Team TUGboat is distributed as a benefit of member- Barbara Beeton, Karl Berry (Manager), ship to all current TUG members. It is also available Kaja Christiansen, Robin Fairbairns, Steve Peter, to non-members in printed form through the TUG Michael Sofka, Christina Thiele store (http://tug.org/store), and online at the TUGboat web site, http://tug.org/TUGboat. On- line publication to non-members is delayed up to Other TUG Publications one year after an issue’s print publication, to give TUG is interested in considering additional man- members the benefit of early access. uscripts for publication. These might include Submissions to TUGboat are reviewed by vol- manuals, instructional materials, documentation, or unteers and checked by the Editor before publica- works on any other topic that might be useful to tion. However, the authors are still assumed to be the T X community in general. Provision can be the experts. Questions regarding content or accu- E made for including macro packages or software in racy should therefore be directed to the authors, computer-readable form. with an information copy to the Editor. If you have any such items or know of any that you would like considered for publication, send Submitting Items for Publication the information to the attention of the Publications TUGboat will be publishing one issue of conference Committee at [email protected]. proceedings in 2007. Deadlines for presentation proposals (send to the conference committee) and TUGboat Advertising the final papers: For information about advertising rates and options, TUG 2007: abstracts April 23, 2007; including consultant listings, write or call the TUG preprints June 22, 2007; office, or see our web page: papers August 17, 2007. http://tug.org/TUGboat/advertising.html Links, locations, and more information about all conferences are available at Trademarks http://tug.org/meetings.html. As always, suggestions and proposals for TUG- Many trademarked names appear in the pages of boat articles are gratefully accepted and processed TUGboat. If there is any question about whether as received. We encourage submitting contributions a name is or is not a trademark, prudence dictates by electronic mail to [email protected]. that it should be treated as if it is. The following The TUGboat “style files”, for use with either list of trademarks which appear in this issue should plain TEX or LATEX, are available from CTAN and not be considered complete. the TUGboat web site. We also accept submissions METAFONT is a trademark of Addison-Wesley Inc. using ConTEXt. PostScript is a trademark of Adobe Systems, Inc. Effective with the 2005 volume year, submission TEX and -TEX are trademarks of the American of a new manuscript implies permission to publish MathematicalAMS Society. the article, if accepted, on the TUGboat web site, as well as in print. If you have any reservations about posting online, please notify the editors at the time of submission. TUGboat, Volume 28 (2007), No. 1 3
published, but please see the web site for registra- General Delivery tion and information: http://www.gust.org.pl/ conferences/EuroBachoTeX2007. Second, TUG 2007 in San Diego, California, From the President from July 17–20. The deadline for presentation pro- Karl Berry posals is April 23. The conference theme is Practic- ing TEX, and I’d like to especially invite “ordinary” TEX Collection 2007 users and authors to attend and/or speak. The mix This issue of TUGboat should reach members’ mail- of attendees and presentations at the Practical TEX boxes at about the same time as the TEX Collection conferences in recent years has been gratifying and, 2007 software on DVD and CD. The 2007 software I believe, fruitful for all, and I hope that that will consists of the same major components as the last continue at this annual TUG meeting. release. For those who may not be familiar with it, I am very happy that Peter Wilson of his own here is a rundown of what’s on the DVD: Herries Press has accepted our invitation to be the keynote speaker at TUG 2007. Over the many years • T X Live, a cross-platform distribution includ- E of his involvement with T X, Peter has created the ing precompiled binaries for many systems; E major memoir package, the archaic and bookhands • OS X MacTEX, which adds a native Mac in- font collections, the Glisterings column for TUG- staller, the TeXShop front end, and other fea- boat, and much more. He talks about his back- tures to the base TEX Live; ground and interests in his interview at http:// • proTEXt, based on the MiKTEX Windows dis- tug.org/interviews. tribution with a guided installation; For registration and accommodation informa- • a snapshot of the CTAN archive. tion (inexpensive on-campus housing is available), A compressed variant of TEX Live, named inst, the call for papers, and more, please visit the confer- will be shipped on CD. This reduced version in- ence web site at http://tug.org/tug2007. I hope cludes the same set of packages, but has precom- to see you in sunny San Diego. piled binaries for only three systems: i386-linux, powerpc-darwin, and win32. It is provided for those who cannot read a DVD. Editorial comments Since the software is being released in early 2007 Barbara Beeton rather than 2006, we will be sending it to both 2006 and 2007 members of TUG (except for those who Here we are in a new year, with a lot to catch explicitly opted not to receive it). up. Almost all material published last year was For more information and project web pages, from conferences: EuroTEX 2005 (compiled jointly please see http://tug.org/texcollection. by DANTE and GUTenberg, both of whom were cel- As we reach the end of another release cycle, I’d ebrating their 16th year, and sent to TUG members TUGboat like to reiterate that the TEX Collection is a massive in lieu of one issue of ), EuroTEX 2006 (an effort, done entirely by volunteers. We are grateful issue that did contain some “regular” material), and to the hundreds of people involved, from all parts TUG 2006. That didn’t leave room for the proceed- of the TEX world: the contributors uploading new ings of Practical TEX 2006, so we have included them packages to CTAN, the CTAN maintainers for pro- in the present issue. Once again, we have an issue viding a central repository to draw from, the people that combines papers presented at a meeting and building the binaries on a wide variety of platforms, ordinary articles. those helping test the results, the developers main- As Karl has said, there won’t be a separate taining and enhancing the software upon which it all Practical TEX meeting this year, so we expect that rests, and the user group members keeping the in- there will be one regular issue this year. frastructure provided by TUG and all the TEX user Erratum: TUGboat 27:1 (EuroT X groups viable through their support. Thanks to all. E proceedings) 2007 TEX conferences An old version of an article by Siep Kroonenberg 2007 will see two major TEX conferences. First, (“Managing a network TEX installation under Win- a combined EuroTEX and BachoTEX in Bachotek, dows”) was printed inadvertently in issue 27:1 (pp. Poland, from April 28 to May 2. The call for pa- 22–27) last year. The correct version is on line at pers deadline will have passed by the time this is http://tug.org/tugboat. 4 TUGboat, Volume 28 (2007), No. 1
The more significant changes are: Board. She is missed, and we wish her well in her • Credits: the paper originally appeared in slightly new life in Uganda. Karl Berry, in addition to all his different form in NTG MAPS no. 33 (2005). other efforts as TUG President and chief cook and bottle washer for the TEX Live effort, has taken over • Converters: the to-be-written GUI converter is as Production Editor. Thanks, Karl. now available and can be downloaded at http: Two long-time Associate Editors have also gone //tex.aanhet.net/epspdf/ on to other pursuits: Victor Eijkhout (Macros) and • Disappearing filetypes: for this problem, a good Alan Hoenig (Fonts). During their tenure, their workaround has been found. knowledge and expertise were responsible for main- We regret the error. taining the high standards of their respective col- umns, and we are grateful for their contributions. A new Korean TEX Society ⋄ In January of this year, the on-line Korean T X Barbara Beeton E American Mathematical Society community (the Korean T X Users Group) founded E 201 Charles Street a new “off-line” community called the Korean TEX Providence, RI 02904 USA Society (KTS). KTS has members and will hold an bnb (at) ams dot org annual meeting and conference. The Society will also publish a new journal, The Asian Journal of TEX; the first issue is expected to appear around the end of April 2007. The edito- rial board consists of several well-known TEXnicians, Prof. Haruhiko Okumura (Japan), H`anThˆe´ Th`anh (Vietnam), CV Radhakrishnan (India), Werner Lem- Warnings berg, and Jin-Hwan Cho (Korea).
A LTEX goes to the movies TEX’s infinite glue is projective In the 2005 movie Stealth, an artificial intelligence Donald Knuth system goes awry. The trivia listing for the film includes this tidbit: TEX wizards might be interested in a phenomenon that could be considered an anomaly, but I choose When Keith Orbit is looking at the code for to declare it a “feature.” Consider the two boxes the AI, we can see that the code is written in \hbox to 100pt{\hskip 0pt plus -100pt} LaTeX, which is a language for typesetting \hbox to 100pt{\hskip 0pt plus -1fil} mathematics much as HTML is used on the The first box is considered underfull, with a badness Internet for typesetting web pages. www.imdb.com/title/tt0382992/trivia of 10000, because the total stretchability is negative. But the second box is perfectly fine, with a badness Incidentally, the movie was one of the biggest fail- of 0, because the total stretchability is infinite. If ures ever at the box office. Seems about par with you are tracing, the boxes are A their understanding that LTEX, while the code may \hbox(0.0+0.0)x100.0, glue set -1.0 be pleasing to look at, is totally unsuitable for the .\glue 0.0 plus -100.0 basis of an AI system. Yes, we’re aware that at least 1 \hbox(0.0+0.0)x100.0, glue set -100.0fil one interpreter (for Basic ) has been written in TEX, .\glue 0.0 plus -1.0fil but really! within T X’s gullet. (Thanks to Elizabeth Dearborn for unearthing E this trivium and sending it to texhax.) References Some TUGboat staff changes [1] The TEXbook, page 97, although the case If you pay attention to the TUGboat masthead, you r< 0 isn’t explicitly mentioned there. will notice some changes. The most significant has [2] TEX: The Program, sections 186, 646, 658, been noted previously: Mimi Burbank, our Produc- 659, 664, 665, 673, 676, 796, 852, 1007. tion Editor until November 2005, retired from her TUGboat position at Florida State, and from the ⋄ Donald Knuth 1 Stanford University Andrew Marc Greene, “BASIX: An interpreter written in TEX”, TUGboat 11:3, pp. 381-392 TUGboat, Volume 28 (2007), No. 1 5
On the other side, the ideal XML world isn’t Software & Tools ideal. How to get PDF from XML? Theory says that you would write an XSLT (W3C, 1999) program which converts XML to XSL-FO (W3C, 2001), and TEXML: Resurrecting TEX in the XML world use an XSL-FO formatter which generates PDF from Oleg Parashchenko XSL-FO. XML+XSLT XSL-FO PDF. There are two 1 Foreword issues: first, tools,→ which is→ hopefully temporary; A and second, too much automation, which is fatal. TEXML is an XML syntax for TEX, LTEX and Con- XSL-FO TEXt. This definition is extremely correct, but I Only a few tools implement in full, and dislike its formality. Instead, I prefer the following. all these tools are commercial, without open source alternatives (the best one is FOP, which is under Thanks to TEXML, you can reuse your TEX W3 skills in the XML world. With TEXML, XML pub- development), and the Consortium has started XSL-FO lishing becomes a case of TEX publishing. work on 2.0. ‘automatically’ TEXML is a very simple thing. You can learn But the worst is that the joke it in a minute by looking at the examples in the means you can’t fix it if something goes wrong ap- XSL-FO section ‘TEXML tour’. But knowing the syntax isn’t plies perfectly to the way. When you need enough. to tune a generated layout, you’ll find that XSL-FO XSL-FO To feel TEXML, you need to know its past and level is too low, and editing isn’t much bet- future, the ideas behind it, and understand the au- ter than editing PDF. Also you’ll find that XML and thor’s intentions. That’s why the technical stuff is XSLT levels are too high and editing here smells bad. A wrapped by the sections with my very subjective The broken layout isn’t a showstopper in LTEX. view on the topic of XML publishing. Your writings are marked up logically, and when you In the most cases, the words ‘TEX’ and ‘LATEX’ need typographical tunings, you just use low-level are interchangeable, and they mean also any other primitives. TEX format. Time for a short summary: XML is good as a markup language, The author is from the XML world. The TEXML • TEX is good for publishing documents. home page is http://getfo.org/texml/. • Why not take the best from both worlds? That XML XML 2 Why , not TEX, why TEX, not is, have sources in XML and publish the documents The best thing about XML is that everyone knows through TEX. But how? what it is. XML is ubiquitious now, and especially 3 XML to T X — how in the area of technical documentation. Indeed, its E parent, SGML, was created to support authoring of When converting XML, there is no better alternative technical manuals. than XSLT. This language is specially designed to TEX users have different opinions on XML. But convert XML, is based on experiences with the Lisp- nobody rejects the idea of logical markup is very like DSSSL language, has a large user and expert obvious and essential. From the high level point of base, and has decent support by many tools on many view, all the markup methods are the same. platforms. What in XML looks like Why not Java, or Perl, or Python, or something
The knowledgeable reader can say that XSLT is XSLT; therefore you need only basic knowledge of a language to convert from XML to XML, not from XSLT to convert XML to TEX. XML to TEX, and ask if XSLT is still so great to 4 TEXML tour generate TEX. No, I have to answer, converting XML directly The TEXML markup language is minimalistic. Most to TEX is nightmare. XSLT is very weak and unbe- of the time, you use only three elements: cmd, env lievably verbose in working with strings, but that’s and group (the other elements are pdf, math, dmath, what is required when generating TEX code. ctrl, spec and TeXML). What is expected from a TEX code generator: To get accustomed to TEXML, it’s enough to escaping special TEX characters (for example ‘<’ learn the examples presented in this section. The • to ‘\<’ or, better, to ‘\textless{}’); original paper by Douglas Lovell (Lovell, 1999) is disjoining ligatures (‘---’ isn’t the long dash in also a good introduction, but it’s out of date. For • XML, the long dash is the symbol ‘—’); a detailed description of contemporary TEXML, con- A sult the T XML specification (Parashchenko, 2006b). mapping from Unicode characters to LTEX se- E • quences; Installation and usage instructions are on the avoiding empty lines, which start a new para- TEXML home page: http://getfo.org/texml/. A • pleasant feature is that it’s enough to unpack the graph in TEX. distribution package to use TEXML. The installation And there are common errors when generat- procedure isn’t required, it’s for convenience only. ing TEX code. (See bug databases for such projects as db2latex (Casellas and Devenish, 2004), dblatex 4.1 Simple TEXML file (Guillon, 2006) and others.) An example of a simple TEXML document: Opening or closing brace is forgotten. •
Disabling escaping is not recommended. Usu- .... ally it’s a misuse of TEXML. But to keep examples
4.5 Encodings FrameMaker+SGML to a pure XML publishing us- ing XSL-FO. At the same time, I joined a documen- Consider TEXML with the Russian letters: tation team for a large open source project. In both
(Parashchenko, 2006c) (XSLT+Scheme), one of the I’d prefer to automatically avoid dummy groups: Google Summer of Code 2005 projects, presented at \command\\ the XTech 2006 conference. Yet another benefit of using automata is that T XML popularity grew, and I started to get E TEXML could be ported to other languages. The contributions. One of the T XML users, Paul Trem- E non-trivial TEXML logic, were it written as automata blay, used ConTEXt for publishing. He added Con- in some well-known format, such as S-expressions or TEXt support to TEXML, reworked bits of TEXML XML, could be automatically translated to a code in code and wrote extensive documentation (Tremblay, any language. 2005) on how to imitate XSL-FO constructions in Unfortunately, all these wonderful perspectives ConTEXt. That’s a must-read for those who are in- are for the far far future. I’m satisfied with the cur- teresed in the topic. rent state of TEXML and prefer to concentrate on In June 2006, I collected all the improvements, other projects. rewrote documentation, packed the whole as a usual Creating automata for TEXML could be a good Python package and released version 2.0. No bugs master thesis or even a PhD work. If you know reported till now (March 2007). someone who might be interested in this task, don’t 6 The TEXML processor: present hesitate to mention TEXML. and future 7 Nice layouts, diff and patch At the moment, the only TEXML processor imple- Probably you’ve noticed how much attention I de- mentation is written by me in Python. It uses only vote to the nice layout of the generated code. But few standard modules and therefore is portable and what’s the benefit except aesthetic? can be used anywhere if Python is installed. Before answering, I’d like to note that aesthetic The core of the TEXML processor is a stand- appearance is indeed a benefit. You know the say- alone Python library, therefore TEXML functional- ing, ugly things can’t fly. I believe in it. And defi- ity is available to any Python application. It might nitely, nobody is interested in working with the in- be that TEXML is available to Java programs using termediate ugly code which appears in many other JPython and to .NET programs using IronPython, A XML-to-PDF-through-LTEX projects. but checking this has low priority on my long-term Automatically generated PDFs can’t be ideal. TODO list. From time to time, there are layout faults that you’d TEXML follows the three-step approach to soft- like to fix. To tune these places, you need to edit the ware development: make it work, make it correct, A LTEX code. When this code is ugly and bad, you make it fast. TEXML is currently on the second level, might prefer to tolerate the faults instead of fixing ‘work correct’, so now it’s time to improve perfor- them. On the contrary, when the code is human- mance. The processor works much faster than XSLT, friendly, you are likely to look into the code and fix but it can be made an order of magnitude faster yet. the problems. The approach is to use finite automata. The But the main benefit of human-friendly code is current code escapes the output stream character that such code is also diff- and patch-friendly. by character. The set of loops, flags and nested con- Imagine that you’ve fixed all the layout faults ditions adds an overhead to the processing time. By A in the LTEX code. Unexpectedly, a proofreader has comparison, with automata the only flags are the updated the source XML. How to generate a new current state, the current character, and the table PDF, both with your and the proofreader’s changes? of state changes. Overhead per character is mini- The naive user has two alternatives: mized. detect what’s changed in XML and repeat the The second main benefit of automata is that it • changes in the LAT X code, or would make explicit all the rules how to generate E re-generate PDF and re-apply layout corrections correct TEX code with nice layout. At the moment, • A this knowledge is hidden inside the spaghetti code, in the LTEX code. that is hard to maintain and modify. Both options are miserable, boring and error- And I’d like to improve some things. For exam- prone. Open source software developers would pre- ple, the TEXML fer a better way using diff and patch. A
Apply the patch-file to the new LATEX file and I expect this union — TEXML, beauty memory • re-generate the PDF. and DocBook TEXML stylesheets — will have a big impact on XML publishing, causing restoration of In most cases, everything goes smoothly and all the T X technologies in the modern XML world. the changes, from both you and the proofreader, are E Join the TEXML movement! applied. Thanks to the good LATEX code formatting, as References produced by T XML, this way is indeed possible. E W3C. “XSL Transformations (XSLT). Version Instead of saying ‘patch-file’, I prefer to say ‘beauty 1.0. W3C Recommendation 16 November memory’. It sounds more appealing and descriptive. 1999”. See http://www.w3.org/TR/1999/ To automate this procedure, I developed Conso- REC-xslt-19991116, 1999. doc (Parashchenko, 2006a), an XML to PDF pub- W3C. “Extensible Stylesheet Language (XSL). lishing tool on top of TEXML. The user’s guide for Version 1.0. W3C Recommendation 15 October Consodoc is generated by Consodoc itself. Here is 2001”. See http://www.w3.org/TR/2001/ an example of the project file: REC-xsl-20011015/, 2001. import Consodoc Casellas, Ramon, and J. Devenish. “Welcome env = Consodoc.default_process( to the DB2LATEX XSL Stylesheets”. See in_file = ’in/guide.xml’, http://db2latex.sourceforge.net/, 2004. in_xslt = ’support/guide.xsl’ Guillon, Benoît. “DocBook to LAT X/ConT Xt ) E E Depends(’tmp/guide.pdf’, ’support/guide.cls’) Publishing”. See http://dblatex. sourceforge.net/, 2006. The project file defines that the source XML file Houser, Chris. “TEXMLapis”. Available from http: is in/guide.xml, TEXML is generated by the XSLT //bluweb.com/us/chouser/proj/texmlapis/, program support/guide.xsl, and implicitly defines 2001. that the patch file is in/guide.patch. It also spec- Lovell, Douglas. “TEXML: Typesetting XML with ifies, explicitly and implicitly, the dependencies of TEX”. TUGboat 20(3), 176–183, 1999. the files: if a file is changed, than all the dependent Parashchenko, Oleg. “sTEXme”. See http: files should be re-generated. To build PDF, just say //stexme.sourceforge.net/, 2004a. on the command line: cdoc. Parashchenko, Oleg. “TEXML: an XML vocabulary Consodoc is a very new product, but it is al- for TEX”. See http://getfo.org/texml/ ready usable and successfully passed unit and func- thesis.html, 2004b. Thesis for the First tional testing. I recommend Consodoc for use in the International Conference of Open-Source production environment by early adopters. Developers, Obninsk, Russia. 8 Final words Parashchenko, Oleg. “Consodoc publishing server: XML to beautiful documents”. See Publishing XML is still a practical problem, even http://consodoc.com/, 2006a. when the quality of the result isn’t very important. T XML Different approaches are suggested, from using the Parashchenko, Oleg. “ E specification”. See http://getfo.org/texml/spec.html, 2006b. XSL-FO standard to developing a custom solution, but the Right Thing is still to appear. Parashchenko, Oleg. “XSieve: extending XSLT with the roots of XSLT”. See http: The TEXML approach is one of the candidates. Instead of inventing something new, it smoothly in- //xmlhack.ru/protva/xtech2006-paper.pdf, tegrates existing successful technologies and experi- 2006c. XTech 2006: Building Web 2.0, 16-19 May 2006, Amsterdam, The Netherlands. ence. First, it uses TEX as the typesetting engine. Second, it uses XSLT as the conversion language. Tremblay, Paul. “Welcome to context-xml”. See Third, with the help of the diff and patch http://getfo.org/context_xml/, 2005. tools, the beauty memory maintains layout correc- Oleg Parashchenko tions of the PDF documents. I’m not aware of any ⋄ other XML-to-PDF solution with this feature. Saint-Petersburg State University, 7-9, Universitetskaya nab, The only TEXML problem is the lack of sam- Saint-Petersburg, Russia ple conversion scripts. But I’ve started work on olpa (at) uucode dot com T XML XML the E stylesheets for DocBook, a popular http://uucode.com/ standard for technical books, therefore this problem will be fixed in the near future. TUGboat, Volume 28 (2007), No. 1 11
Oriental TEX: A new direction in scholarly dialects; this will be based on concepts already complex-script typesetting present in Aleph; Creating control languages to handle conversion Project by Idris Samawi Hamid • from the input stream to internal character rep- Preservation of much ancient scholarship of non- resentation, and to manage the context-driven Western civilization exists only through unedited glyph selection; again, many of the basic con- manuscripts. The manuscripts themselves are often cepts are present in Aleph, but require adapta- not readily accessible, and the ability to make avail- tion to separate the two distinct processes; Developing OpenType font support, enabling able accurate and culturally authentic typeset copies • is restricted. Particularly for documents in Arabic use of fonts larger than 256 characters, and pro- script, typesetting is hampered by the lack of com- viding the mechanism to use such fonts; Adding extensions for critical editions, includ- plete sets of vowel markings and diacritics, crucial • for understanding the meaning of these texts. ing a line-numbering engine and improved foot- For scholars working on critical editions of doc- note handling; Quality control, involving extensive testing to uments in Latin script, TEX is the tool of choice. Dr. • Idris Samawi Hamid of the Colorado State Univer- assure that the goals of the development have sity Department of Philosophy has received a grant been met; Documentation, a basic reference that is good to provide a comparable tool for Arabic scholars. • Dr. Hamid’s own fields of specialty include Is- enough for a skilled macro package programmer lamic philosophy, metaphysics, and cosmology. He to learn how to take advantage of the special has prepared critical editions of two major works of features provided by Oriental TEX; the goal is Arabic scholarship: to provide user-interface macros that are easy to use, and suitable for typesetting of critical Shaykh Ahmad Ahs¯a֓¯ı’s Observations in . . editions. • Wisdom: Critical Edition, Translation, Notes, and Glossary At TUG 2006, Taco presented a report on the status of the project. (This was particularly ap- The Mystical Theology of Muh. ammad ֒Al¯ı • propriate to the venue of the conference, in Mar- Shah. ֓¯ab¯ad¯ı: A Critical Edition of Rashah. atu rakesh, Morocco, where other scholars and students ˜al-Bih. ar, with Notes and Glossary reported on their own projects in Arabic typeset- Both works have been accepted for publication; what ting.) As of early November 2006, the first stage remains is to prepare proper typeset copy ready for was complete; this included support for full Unicode printing. This is the impetus for the project and the input, and merging of Aleph and pdfTEX. proposal. The second stage, comprising support of Open- In February 2006, Dr. Hamid submitted a pro- Type fonts and PDF output from Aleph, is essen- posal to CSU’s Integrated Research Projects Pro- tially complete as of this writing. gram, requesting a grant to develop and implement The third stage, expected by the time of Bacho- extensions to T X to provide such software. The re- E TEX, includes completion of hypenation patterns, sult of this work will be called Oriental TEX. The character (case-mapping) tables, end-of-sentence dis- proposal was accepted by the program, and work be- covery, handling of minimal word size, line justifi- gan in May 2006. Taco Hoekwater is the principal cation, and the ligature table. Also in the third programmer for the project. phase are the decoupling of characters and glyphs, Development includes a number of components: with separate nodes for Unicode characters, fonts, Extending the data structures of LuaTEX and • and glyphs in fonts, as well as revamped paragraph Aleph to handle non-Latin languages and UTF- breaking routines and a dynamic font interpolation 8 input files; engine. Implementing two levels of right-to-left machin- The fourth and final phase of the T X exten- • E ery: a global component for handling page el- sions, expected by the time of the TUG San Diego ements, and a local component for switching meeting, will see two-dimensional line typesetting direction in text without disrupting the type- of Arabic script and improved font handling, com- setting process; pletion of the line-numbering engine, and improved Implementing dynamic ligaturing to accom- footnote handling. • modate the multiple, contextually-dependent The generous support of the CSU Integrated shapes of Arabic letters, and the vertical shift- Research Projects Program is gratefully acknowl- ing characteristic of particular written Arabic edged.
Reported by Barbara Beeton ⋄ 12 TUGboat, Volume 28 (2007), No. 1
some examples of \allchars are: Hints & Tricks \allchars{allchars} -> allchars \allchars{{\oe}rstead’s} -> œrstead’s \allchars{} -> Glisterings \allchars{with spaces} -> withspaces Peter Wilson The special case of an empty argument is handled in the \allchars macro itself, while everything else ’Tis better to be lowly born is dealt with by \@llchars. This keeps calling it- And range with humble livers in content self, grabbing one character from the initial string Than to be perked up in a glist’ring grief each time until all are used up, via a process called And wear a golden sorrow. tail recursion, meaning that the last thing that it Henry VIII, William Shakespeare does is call itself (or effectively do nothing if all the characters have been processed). The aim of this column is to provide odd hints or Remember that with LATEX, if you put any code small pieces of code that might help in solving a that includes macros with @ in their names it either problem or two while hopefully not making things has to go in a package file (a .sty file) or be sur- worse through any errors of mine. rounded by the \makeatletter and \makeatother Corrections, suggestions, and contributions will pair of commands. always be welcome. One unfortunate property of \allchars is that it discards all spaces in the original string. Spaces To no one but the Son of Heaven does can be handled by a two-part process. The first it belong to order ceremonies, to fix the part goes through the string word by word, where a measures, and to determine the written word is a set of characters followed by a space. The characters. second part then goes through each word character The Analects, Confucius by character. First some preliminaries and the main user com- 1 Stringing along mand \Upeach. In an earlier column [3] I mentioned that I might \newif\if@newword continue looking at character strings. Here is some \def\checkrelax{\relax} basic code that can be used for examining each char- \catcode‘\^^G=12 acter in a simple string: \newcommand*{\Upeach}[1]{% \catcode‘\^^G=12 \@upeach#1^^G} \newcommand*{\allchars}[1]{% \def\@upeach#1^^G{% \def\stuff{#1}\ifx\stuff\@empty\else \def\stuff{#1 }% \@llchars#1^^G\fi} \expandafter\getaword\stuff ^^G} \def\@llchars#1#2^^G{% The \getaword macro extracts the next word \def\letter{#1}\def\others{#2}% from the string (note the argument delimited by a \ifx\letter\@empty\let\next\@gobble space). It then calls \getachar with the word as its \else \doachar{#1}% argument. \ifx\others\@empty \let\next\@gobble \long\def\getaword#1 {% \else \let\next\@llchars \fi \@newwordtrue \fi \expandafter\getachar#1\relax} \next#2^^G} \getachar gets the next ‘letter’ in the word. If \catcode‘\^^G=15 it is ^^G then the string is finished. If the letter is Here I have used the special character ^^G as a the same as \relax then it is a space and the macro marker for the end of the string. This is normally must call \getaword to repeat the cycle. Otherwise an invalid character but I temporarily changed its it has a letter, calls \doUpeach to do something with catcode to make it an ‘other’ character (like @ nor- it, and calls itself again to get the following letter. mally is). The \@gobble macro is part of the LAT X E \def\getachar#1{% kernel; it takes one argument and does nothing with \def\letter{#1}% it. Buried inside the code \allchars calls a macro \if\letter^^G\let\next\relax \doachar char for each character in the string. {h i} \else With this definition \ifx\letter\checkrelax \newcommand*{\doachar}[1]{\textit{#1}} \let\next\getaword TUGboat, Volume 28 (2007), No. 1 13
\else \do{% The macro \doUpeach checks if a new word has
uppercase and sets \@newwordfalse. If its argu- is a comma-separated list. It takes each element of ment is not the first letter in a word it typesets it in the list in turn, defines \scratch as that element a bold font. Of course this is not a realistic thing to and then does whatever you tell it to do with it. do — it’s merely to demonstrate that all the charac- This continues until the list is exhausted. ters in the string have been examined. It is easier to see how these work with a real ex- \newcommand*{\doUpeach}[1]{% ample. The following is a very stripped down version \if@newword of some code from the memoir class [2]. It provides a \space\textit{\MakeUppercase{#1}}% \@newwordfalse means of putting a list of things into a tabular form \else \textbf{#1}\fi} without having to worry about signifying the end of each row. The command is: Here are a couple of examples: \fillrows width numcols comma separated \Upeach{string with spaces} -> list {h i}{h i}{h String W ith Spaces whichi} will create a centered tabular form of over- \Upeach{{\oe}rstead’s rule} -> all width width and numcols columns, with the Œrstead’s Rule elements fromh commai h separatedi list filling up the tabular row by rowh (i.e., left to right, topi to bottom). These macros work for simple strings but are I got the initial idea from T X for the Impatient [1] likely to fail if there are accents or anything else to E which gave a T X version, filling top to bottom and disturb the even tenor of simple characters. The E left to right. earlier column [3] gave an indication of how such First some counters and lengths, etc., that we problems might be resolved. On the other hand, need. Be warned, much of the code below you won’t it could be a lot simpler and quicker to change the want to know about and I’m not going to try and strings by hand using your normal text editor. explain it. In LATEX this is the kind of stuff that is hidden within the tabular environment. Here we go loop de loop. Here we go loop de li. \newcount\CT@cols % number of cols Here we go loop de loop \newcount\@cellstogo % columns left On a Saturday night. \newdimen\CT@col@width % column width \newtoks\crtok Loop de loop, Johnny Thunder? \crtok = {\cr}% \fillrows 2 Loops Now we can start on itself, which takes three arguments — the overall width, the num- There are occasions when you need to perform a ber of columns, and the list of entries. The first part repetitive action that does not involve string pro- sets up counters based on the number of columns. cessing. T X provides a \loop ... \repeat which E \newcommand{\fillrows}[3]{\par\begingroup can be useful in some circumstances. The general \CT@cols=#2\relax scheme is like this: \@cellstogo=\CT@cols \loop The next bit defines code that will be called after
\else The entries are added to the tabular, using a \@for & loop to extract each entry from the comma-sepa- \fi}% rated list. Calculate the column widths and start off the tab- \@for\@tempa:=#3\do{% ular by defining the preamble (the general layout of \@tempa\unskip\space\@endcolactions}% the tabular). All the entries have been dealt with, so wrap every- \CT@col@width=#1 thing up. \divide\CT@col@width \CT@cols \the\crtok \egroup \endgroup \par} \penalty 10000\relax As a simple example, the code below creates the \noindent \vskip -\z@ following tabular: \def\@preamble{}% \fillrows{0.7\textwidth}{3}{ one, two, \begingroup three, four, five, six, seven} \let\@sharp\relax one two three Now comes a \loop...\repeat going over all but four five six one of the columns, and for each column extending seven the \@preamble by adding some spacing and a &. And here is the result of another \fillrows, this time with five columns set to their natural width. \ifnum\CT@cols>\@ne \loop \g@addto@macro{\@preamble}{% That’s all folks! Until we \hb@xt@ \CT@col@width meet again . . . {\strut\relax\@sharp\hfil} &}% References \advance\CT@cols\m@ne \ifnum\CT@cols>\@ne [1] Paul W. Abrahams, Karl Berry, and Kathryn A. \repeat Hargreaves. TEX for the Impatient. Addison- \fi Wesley, 1990. (Available on CTAN in info/ The & is not required for the last column. impatient). \g@addto@macro{\@preamble}{% [2] Peter Wilson. The memoir class for config- \hb@xt@ \CT@col@width urable typesetting, 2004. (Available on CTAN {\strut\relax\@sharp\hfil}}% in latex/macros/contrib/memoir). \endgroup [3] Peter Wilson. Glisterings. TUGboat, 26(3):253– (The above code sets each column to a fixed width 255, 2005. (\CT@col@width). Commenting out the two lines that start with \hb@xt@ will result in each column Peter Wilson ⋄ being set to its natural width, just wide enough for 18912 8th Ave. SW the widest entry in the column.) Now finish up the Normandy Park, WA 98166 preliminaries. USA herries dot press (at) \let\@sharp ## earthlink dot net \tabskip\fill \halign to\hsize \bgroup \tabskip\z@ \@preamble \tabskip\fill\cr TUGboat, Volume 28 (2007), No. 1 15
classico in fonts/urw The Treasure Chest URW Classico, a clone of Hermann Zapf’s Optima. cmll in fonts Linear logic symbols for Computer Modern. emerald in fonts Editor’s note: This is Mark’s final column. The Support for Emerald City Fontwerks fonts. editorial board would like to thank Mark for moni- enpassant in fonts/chess toring the CTAN announcements and compiling this Use free chess fonts from www.enpassant.dk. collection since 2004. foekfont in fonts A This is a large but still incomplete list of the Fonts and LTEX macros to use the title font of the Mads Foek magazine, http://madsfoek.dk. new packages posted to CTAN (http://www.ctan. org) in 2006, with descriptions either taken from the fonetika in fonts Fonts for the Danish phonetic system Dania, based announcement or researched, then edited for brevity. on URW Palladio and Iwona Condensed. Entries are listed alphabetically within CTAN indic in fonts/ps-type1 directories. A few entries which the editors subjec- Indic Type 1 fonts for TEX converted from public tively believed to be of especially wide interest or METAFONT sources. otherwise notable are starred; of course, this is not JustFontItTE in fonts/utilities intended to slight the other contributions! Windows program with the functionality of stan- Hopefully this column and its companions will dard TEX utilities such as pltotf and vftovp. Can help to make CTAN a more accessible resource to the create TFM files from PFB, TTF, OTF, and more. TEX community. Comments are welcome, as always. linearA in fonts LinearA script. Mark LaPlante ⋄ * otfinst in fonts/utilities 166 3rd Avenue West Installs OpenType fonts for use in (LA)TEX systems. Grant, AL 35747 sarabian in fonts/archaic laplante (at) mac dot com Type 1 fonts for the South Arabian script in use from roughly 1000 to 600 BC. biblio starfont in fonts/ps-type1 Support for the StarFont Sans astrological font. alphabib in biblio/bibtex/utils * tex-gyre in fonts A Bash script allowing addition of alphabetical head- Extensions of the well-known URW and other free ers into BibTEX bibliographies. fonts, much as Latin Modern is an extension of ijqc in biblio/bibtex/contrib Computer Modern. BibT X style for the International Journal of Quan- E thaifonts-scalable in fonts/thai tum Chemistry. A collection of Thai scalable fonts. jneurosci in biblio/bibtex/contrib winfonts in fonts BibT X style for the Journal of Neuroscience. E Support for the Windows core fonts. mad2bib in biblio/bibtex/utils xq in fonts Scripts to convert MAD to BibT X and UTF-8 to E Fonts and macros for xiangqi (Chinese chess). LATEX ASCII. mrcheckbib in biblio/bibtex/utils BibTEX verification using the AMS MRef database. graphics munich in biblio/bibtex/contrib AddTeX2Eps in graphics The Munich ‘name (year)’ style. Use LATEX syntax on EPS figures from Mathemat- rsc.bst in biblio/bibtex/contrib/misc ica. Bib TEX styles for RSC journals. blockdraw mp in graphics/metapost/contrib/macros sort-by-letters in biblio/bibtex/contrib Block diagrams and bond graphs. Some BibTEX styles for sorting by initial letters. cmarrows in graphics/metapost/contrib/macros Synapsen in biblio/bibtex/utils MetaPost arrows and braces in CM style. Java program for managing references. gapfill in graphics Generate LATEX picture environments by parsing PostScript files. fonts gastex in graphics arial in fonts/urw LATEX macros to draw automata, networks, etc., in An Arial clone in Type 1 format. the LATEX picture environment.
graphics/gastex 16 TUGboat, Volume 28 (2007), No. 1
m3D in graphics/metapost/contrib/macros Three-dimensional drawing with METAPOST. language MPStoEPS in graphics/metapost/contrib/misc * arabi in language/arabic METAPOST to EPS converter. Arabic and Farsi support in standard LATEX via Ba- pedigree-perl in graphics/pstricks/contrib bel, using several input encodings, including UTF-8. Generate pedigrees in TEX from CSV files. Includes good-quality free fonts. prerex in graphics bghyph in language/hyphenation Produce charts of course nodes linked by arrows Bulgarian hyphenation patterns. representing pre- and co-requisites. glhyph in language/hyphenation pst-asr in graphics/pstricks/contrib Galician hyphenation patterns. Autosegmental representations, used by linguists. pst-code in graphics/pstricks/doc/code hrlatex in language/croatian Original code documentation of PSTricks from Tim- Typical setup for Croatian users. othy Van Zandt. mkbangtex in language/bengali pst-coil in graphics/pstricks/contrib Preprocessor for BangTEX. Coils and zigzags as lines or node connections. magyar in language/hungarian/babel pst-dbicons in graphics/pstricks/contrib Much improved Hungarian definitions for Babel. Typesetting ER diagrams in declarative style, using mexican in language standard database terminology. Modifications to Spanish for Mexican typography. pst-eps in graphics/pstricks/contrib mkpattern in language/hyphenation/utils Exporting pspicture environments. TEX program for generating hyphenation patterns. pst-fill in graphics/pstricks/contrib staves in language Filling and tiling of areas and characters. Fonts and macros for the “magical” Icelandic staves pst-grad in graphics/pstricks/contrib as well as the runic letters used in Iceland. Colored gradients. thailatex in language/thai pst-ob3d in graphics/pstricks/contrib Babel-based Thai support with fonts. Support for basic 3-dimensional objects. pst-pdgr in graphics/pstricks/contrib/pedigree Draw medical pedigrees with PSTricks and LATEX. macros/generic pst-spectra in graphics/pstricks/contrib dirtree in macros/generic/ Draw continuum, emission and absorption spectra. Display directory trees. * pst-text in graphics/pstricks/contrib Typeset text on a path. splines in graphics/metapost/contrib/macros macros/latex/contrib MetaPost/METAFONT macros for drawing graphs abc in macros/latex/contrib of cubic splines. Support ABC Plus (abcplus.sourceforge.net) mu- * textpath in graphics/metapost/contrib/macros sic notation in LATEX. Typeset text along a path with the help of LATEX, so kerns are preserved and 8-bit input is supported. active-conf in macros/latex/contrib/conferences uml in graphics/pstricks/contrib Class for typesetting papers at the ACTIVE confer- ence on noise and vibration control. Writing UML diagrams in LATEX. akktex in macros/latex/contrib Collection of new document classes and packages, info easing creation of math documents in particular. * Free Math Font Survey in info arabicfront in macros/latex/contrib/bezos A survey of the free math fonts available for use Number pages in Arabic numerals starting with the front matter. with (LA)TEX. Vietnamese translation in the vn sub- directory. authoraftertitle in macros/latex/contrib MemoirChapStyles in info Make title, author and date available after \maketitle. Memoir chapter style showcase. auto-pst-pdf in macros/latex/contrib MFwL in info Wrapper for pst-pdf with some psfrag features. Making Friends with LATEX, a LATEX introduction. boxhandler in macros/latex/contrib l2picfaq in info/l2picfaq/german Managing boxed objects such as tables and figures, Questions about LATEX and pictures, and answers with caption customization. in the form of sample code. bussproofs in macros/latex/contrib * visualFAQ in info Construction of proof trees in the style of the se- A visual interface to the UK TEX FAQ. quent calculus and other systems.
graphics/metapost/contrib/macros/m3D TUGboat, Volume 28 (2007), No. 1 17
* cellspace in macros/latex/contrib gmdoc in macros/latex/contrib Minimal spacing of table cells to avoid touching Documenting packages with minimal markup and \hline s. hyperlinks. Needs the other new packages gmiflink, centernot in macros/latex/contrib/oberdiek gmverb, and gmutils from the same author. Horizontally center a \not symbol on its argument. gnuplottex in macros/latex/contrib chessboard in macros/latex/contrib Generate and include Gnuplot (http://gnuplot. Typeset chessboards. info) graphs in LATEX. classicthesis in macros/latex/contrib gu in macros/latex/contrib Thesis style in homage to The Elements of Typo- Typeset crystallographic group-subgroup-schemes in graphic Style. B¨arnighausen formalism. cool in macros/latex/contrib hyperxmp in macros/latex/contrib COntent Oriented LATEX, retaining mathematical Embed XMP metadata within a LATEX document. meaning in addition to the typesetting instructions. icsv in macros/latex/contrib/conferences coollist in macros/latex/contrib Class for typesetting papers at the ICSV conference. Manipulation of lists. isodoc in macros/latex/contrib coolstr in macros/latex/contrib Producing customizable letters, invoices, etc. Manipulation of strings (sequences of characters, labelcas in macros/latex/contrib not tokens). Tests and branches depending on label existence. cooltooltips in macros/latex/contrib lewis in macros/latex/contrib Associate a pop-up window and tooltip with a PDF Rudimentary support for drawing Lewis Structures. hyperlink. lingtrees in macros/latex/contrib coverpage in macros/latex/contrib Linguistic tree macros and preprocessor. Supplement scientific papers with a cover page. lsc in macros/latex/contrib dateiliste in macros/latex/contrib Typesetting Live Sequence Charts, similar to msc. Typeset the file list (like \listfiles), and more. marginnote in macros/latex/contrib digiconfigs in macros/latex/contrib Marginal notes where \marginpar fails. Small package for easily writing ‘configurations’, minipage-marginpar in macros/latex/contrib i.e., special + matrices. ◦ • Allow \marginpar commands outside minipages; an disser in macros/latex/contrib alternative approach to marginnote. Document class and templates for dissertations in moderncv in macros/latex/contrib Russian. Typesetting modern curriculum vitae, in classic and draftwatermark in macros/latex/contrib casual styles. Typeset a light gray watermark of user-defined text nih in macros/latex/contrib on the first page or every page of a document. Class for grant applications to the US government duerer-latex in macros/latex/contrib National Institutes of Health. LATEX support for the duerer fonts. noitcrul in macros/latex/contrib dvdcoll in macros/latex/contrib Underlining with italic correction (in math). Typeset DVD (or similar) collection overviews. opteng in macros/latex/contrib dyntree in macros/latex/contrib Manuscript template for SPIE Optical Engineering Typeset Dynkin Tree Diagrams from group theory. and OE Letters, including page length estimates. eskdx in macros/latex/contrib pandora-latex in macros/latex/contrib Implement Russian standards for designers. LATEX support for the pandora fonts. everypage in macros/latex/contrib papercdcase in macros/latex/contrib Provides hooks to be run on each page of a docu- Origami-style folding paper CD cases. ment. pauldoc in macros/latex/contrib exceltex in macros/latex/contrib Helpers for German-language LATEX package docu- Access Excel files from LATEX. mentation. extpfeil in macros/latex/contrib pax in macros/latex/contrib Extensible arrows and commands to create new ones. Avoid pdfTEX’s stripping of PDF annotations in in- faktor in macros/latex/contrib cluded PDF files, via an external Java program. Typeset quotient structures. pinlabel in macros/latex/contrib flippdf in macros/latex/contrib Attach formatted TEX labels to new or existing fig- Produce a “mirrored” version of the document, for ures and diagrams. typesetting on transparent film. * pracjourn in macros/latex/contrib forloop in macros/latex/contrib Document class for The PracTEX Journal, Provides the command \forloop. http://tug.org/pracjourn.
macros/latex/contrib/*pracjourn 18 TUGboat, Volume 28 (2007), No. 1
punk-latex in macros/latex/contrib telprint in macros/latex/contrib/oberdiek LATEX support for the punk fonts. Formatting German telephone numbers. qtree in macros/latex/contrib tengwarscript in macros/latex/contrib Typeset tree diagrams, especially for linguistics. Mid-level access to the tengwar fonts with good randbild in macros/latex/contrib default output. Put small plots of curves in the margin. thesis-titlepage-fhAC in macros/latex/contrib * randtext in macros/latex/contrib Title page for Fachschule Aachen theses. Typeset obfuscated text to foil spam email address thuthesis in macros/latex/contrib harvesters. Supersedes switcheml. Thesis template for Tsinghua University. ratex in macros/latex/contrib titlepage-uni-dortmund in macros/latex/contrib Producing German legal documents, e.g., lawsuits. Title page layout for the University of Dortmund. recipecard in macros/latex/contrib toptesi in macros/latex/contrib Typesets recipes into note card sized boxes. Bundle for thesis typesetting in Italy, supporting any language. robustcommand in macros/latex/contrib wordlike in macros/latex/contrib Variant of \DeclareRobustCommand which checks if Simulates standard word processor layout and fonts. the command has already been defined. xifthen in macros/latex/contrib screenplay in macros/latex/contrib Extended if–then features. Screenplay formatting as recommended by the Acad- xyling in macros/latex/contrib emy of Motion Picture Arts and Sciences. Draw syntactic trees and other linguistic constructs, seqsplit in macros/latex/contrib based on XY-pic. Splitting long sequences of letters without spaces, xytree in macros/latex/contrib such as DNA, RNA, proteins, etc. Tree drawing package using XY-pic. showexpl in macros/latex/contrib Show LATEX code and typeset result from one source. sikumna in macros/latex/contrib/lyx macros/latex/exptl Extended LyX layout style for use in Sikumna, * biblatex in macros/latex/exptl http://www.sikumuna.co.il. Reimplementation of the bibliographic facilities pro- simplewick in macros/latex/contrib vided by LATEX in conjunction with BibTEX: BibTEX Drawing Wick contractions above and below ex- is used only for sorting and producing labels, and pressions in math mode. bibliography formatting is controlled entirely by TEX spotcolor in macros/latex/contrib macros, not BibTEX style files. Still experimental. Include spot colors in pdfLATEX output. xbase in macros/latex/exptl stackel in macros/latex/contrib/oberdiek Provides LATEX3 packages xparse and template. Adds optional argument to \stackrel for including something below the relation, and defines \stackbin for binary symbols. macros/omega stellenbosch in macros/latex/contrib fontch in macros/omega/latex/contrib Typesetting dissertations, theses and reports of the Typeset Malayalam using Omega. University of Stellenbosch, South Africa. * sudokubundle in macros/latex/contrib Typesetting, solving, and creating Sudoku puzzles; macros/xetex over 50 puzzles are included. euenc in macros/xelatex/latex sugconf macros/latex/contrib/conferences in Unicode font encoding definitions for X TE EX. Document class for SAS user group proceedings. grchyph in macros/xetex/hyphenation susy in macros/latex/contrib Unicode hyphenation patterns for ancient Greek. Support for supersymmetry-related documents. ifxetex in macros/xetex/latex svn-multi in macros/latex/contrib Provides the \ifxetex conditional. Typesetting Subversion keywords, including docu- sanhyph in macros/xetex/hyphenation ments with multiple source files. Unicode hyphenation patterns for Prakrit and San- syntrace in macros/latex/contrib skrit in Devanagari, Bengali, Kannada, Malayalam Support for tracing trees created with the synttree and Telugu scripts. package. xetex-greek in macros/xetex/hyphenation tabto in macros/latex/contrib Standard Greek hyphenation patterns adapted for Tabbing to fixed positions in a paragraph. X TE EX. technica in macros/latex/contrib * xlxtra in macros/xetex/latex A suite of packages for typesetting literary texts. Additional LATEX features for X TE EX.
macros/latex/contrib/punk-latex TUGboat, Volume 28 (2007), No. 1 19
pkfix in support support Replaces resolution-dependent bitmapped fonts in a dvips-produced PostScript file with the corre- cms4talks in support sponding resolution-independent vector fonts. A Java-based content management system for talks rfil in support written in LATEX. The Ruby font installer library (RFIL) attempts to dinbrief-gui in support manage installation of TEX fonts. Graphical interface for the dinbrief TEX package. word-to-latex in support * escapeTeXt in support Windows program to convert Microsoft Word doc- Modular Python program to massage plain text so uments to LATEX or XML. it can likely pass through LATEX. gentabtex in support Table rendering engine written in Python. systems orderer in support visualtex in systems/win32 Reorder references in a LAT X document by order E Visual T X text editor. of citation. E
We end this installment of Treasure Chest with the covers from the newly released TEX Collection 2007, now being mailed to user group members. See http://tug.org/texcollection for more information.
DVD February 2007 TEX Collection proT Xt MacTEX TEX for MSE Windows TEX for MacOSX based on MiKTEX based on gwTEX
DANTE e.V. Postfach 10 18 40 69008 Heidelberg [email protected] www.dante.de
CTAN TEX Live www.tug.org Comprehensive TEX TEX for GNU/Linux, Unix, Archive Network Mac OS X, and MS Windows
Editors: Thomas Feuerstack (proTEXt) • Herbert Schulz (MacTEX) Manfred Lotz (CTAN) • Karl Berry (TEX Live)
CD CD February 2007 T X Live 2007 E February 2007 proTEXt
DANTE e.V. DANTE e.V. Postfach 10 18 40 Postfach 10 18 40 69008 Heidelberg 69008 Heidelberg [email protected] [email protected] www.dante.de www.dante.de
TEX for MS Windows based on MiKTEX with www.tug.org TEX for GNU/Linux, MacOSX, and MSWindows www.tug.org TEXnicCenter and Ghostscript/GSView
Editor: Thomas Feuerstack, FernUniversität in Hagen Editor: Karl Berry http://www.tug.org/texlive • http://www.tug.org/protext 20 TUGboat, Volume 28 (2007), No. 1
You can see a comparison between the newspa- LAT X per web site and the output generated automatically E by the Perl script in Figure 1. The main news items are the same as the ones in the web site and their paperTEX: Creating newspapers using contents appear in the inner pages of the PDF news- LATEX 2ε paper. Ignacio Llopis Tortosa and 2 WhyLATEX? Mar´ıa Jos´eCastro Bleda When creating newspapers it is well known you have Abstract many high specific applications which do the work. The first author has been working in an Internet Most of these applications let you create a news- newspaper office for a year. He was asked to create paper and publish it in several ways at the same a special printable edition of an on-line newspaper. time: print version, HTML version, etc. Protec has The idea was to get an easy-to-print newspaper con- three different publishing systems called Millenium, 2 taining the main daily news. The solution involved Edicomp and Arcano. Unisys has a system called 3 two things: a new LATEX class, that we called paper- Hermes. Of course there is also Adobe InDesign TEX, and a Perl-based system that gets all the in- and Quark Express but this system does something formation from the database and composes a new different than designing layouts. A A LATEX document. Why use LTEX? First of all, as LTEX users, we wanted to use it for handling this big project. Se- 1 Overall condly, LATEX is a tag based language which lets you The final system consists of a Perl script which con- create documents without taking care of design — trols the entire process, from the data collection quite the opposite of Quark Express and InDesign. through the document compilation using PDFLAT X. The idea was for the system to take care of the de- E A There is also a web wizard that lets the user set up sign, from simple text input. Thirdly, LTEX is a free the news and the information that he or she would and open source application and a huge number of like to show at the newspaper. The configuration packages have been written for it. file stores the SQL queries which take the informa- Once the system was proposed, we had to prove tion from the database, thus it can be kept for a that it was a good option and it could be used long time. for creating newspapers. We created several doc- Together with this Perl script, there is a new uments using the multicol package, and we added A 1 lettrine LTEX 2ε class called paperTEX, specially created images and capital letters using the and for this purpose. This class provides many macros graphics packages. We also designed documents to create a document in a newspaper style. It has a using the textpos package, placing items in any de- A front page and the inside part that contains all the sired spot. By this time, it was clear that LTEX news we would like to include. Every piece of news could do the job. appears just below the one before. Headings use 3 paperTEX: A new class for the entire page width and the text can be split into creating newspapers several columns. paperTEX also provides commands for adding outstanding titles, images, timestamps, The first idea was to look for something similar. Has etc. anyone tried this before? We posted the question in Our last page includes an automatically gener- some forums and mailing lists with disappointing re- ated Sudoku, a cultural agenda and a humor draw- sults. But someone told us about the newsltr class ing. Finally, the system is scheduled to run several and the TEX capability to handle newsletters. This times a day creating the PDF version of the news- class was a good starting point but we had some paper so that users can easily download it. Neither problems. The class was created for plain TEX and A manual design help nor computer programming help that was a problem for including LTEX packages, are needed. The system determines where images and other matters such as embedding Spanish char- can be placed, if there is enough place for a new acters directly or correct hyphenation. A piece of text and so on. So we decided to develop a new LTEX class for creating newspapers. This class provides commands
1 Freely available from CTAN in http://www.ctan.org/ 2 http://www.protecmedia.com/ tex-archive/macros/latex/contrib/papertex 3 http://www.unisys.com/ TUGboat, Volume 28 (2007), No. 1 21
Figure 1: The newspaper web site and the self-generated PDF using paperTEX and Perl. to create a new paperTEX journal: from the front news inside the newspaper which allows paperTEX page until the last. to calculate the exact page. To set up a new document, you have to load the The weather forecast block has three different class as usual and use its own commands to define positions to specify three different weather condi- the contents. paperTEX also includes many style tions. Each weather item has an image, maximum macros which the user can customize as desired: font and minimum temperatures and a short description. sizes and styles, colors, headings, etc. Finally, the editor block includes the usual contact names, email, logo, etc. 3.1 The front page As mentioned above, paperTEX includes a set The front page is quite individualized since it was of macros that you can redefine to change default designed using the textpos package that has the ca- format and layout. For example, redefining the front pability to place things at absolute positions on the page logo is as simple as this: page. We did this because the front page needed to \renewcommand{\logo}{ have a different style from the rest of the newspaper, \mylogo{\includegraphics[width=\textwidth]{img}} being the first thing a reader sees. It includes a main } image or photo, three news blocks, an index which The \mylogo command removes the paperTEX links to the inner news, the weather forecast for a lo- default logo and changes heading elements’ positions cality and some information about the editor. It has to make your new logo fit well. Other style aspects also a banner heading like every newspaper does. are even easier to redefine. You can find all of them Just after the \begin{document}, you can start in the paperTEX manual [1]. filling the front page inside its own environment. The main image and each of the main news items 3.2 The news pages have their own commands which get all the informa- Once you have introduced all the front page infor- tion: image path and caption, heading, subheading, mation, the next thing to do is to include all the opening paragraph, section and time stamp. The news in your new paperTEX. News items are easy table of contents has its own environment and the to include and they can have different shapes: news, only thing we have to do is to add entries using the editorial and short news. Each one of these types \indexitem macro. This command requires two pa- has its own environment definition. rameters: a short text and a reference to a piece of To include a normal news item you use the news environment, which needs five parameters: number 22 TUGboat, Volume 28 (2007), No. 1
\begin{news}{3} {...NEWS HEADING...} {...News subheading...} {SPORTS} {1} \authorandplace{Name Surname}{Place} \image{img}{Image caption} \noindent\timestamp{08:25} Lorem ipsum dolor sit amet, ...... platea dictumst. \end{news}
Figure 2: Example of a compilation of news items. of columns, heading, subheading, section name and bookmarks inside each section. In order to generate reference id. The main news text must appear inside a new group of items we can use the \newsection the environment and we can also use the following command which takes the section name as a param- commands within the text in order to add other use- eter. From this point, all news PDF bookmarks will ful information: be grouped under this section name. Another use- \authorandplace: inserts the name of the ed- ful and simple command is \newsep, which draws a • itor and where the news happened. To be used thin line between two items as a separator. at the beginning of the text. 4 The core system \timestamp: inserts the time and a separator When the paperT X class was finished, we imple- • just before the text. It should be used at the E mented a new system to carry out the entire news- beginning of the text. paper creation process. We decided to use Perl as \image: inserts an image within the text. Since • programming language because we are familiar with the multicol package does not support floating it, and because Perl has a lot of modules freely avail- elements, this macro inserts the image only if able on CPAN.5 there is enough space, otherwise you can get Before coding, it was very important to select images outside the page boundaries. which news items have to be included each time that \columntitle: inserts a single column title or paperT X is run. The idea was to define these items • E heading, using one of five different shapes via using the SQL queries which get all the information 4 the fancybox package: shadowbox, doublebox, from the database; thus, paperTEX would not need ovalbox, Ovalbox and lines. to be configured each time. The only time when it \expandedtitle: similar to \columntitle ex- is necessary to modify something is if the editor of • cept the text extends across the entire page, the newspaper wants to change the source of a piece above all the news columns. of news or add or remove particular content. Using all these commands a news source code First of all, a configuration file was created for and its respective result would look like the example the Perl script to get all SQL queries, execute them, in Figure 2. and extract the useful information from all fields. It Editorial news and short news require fewer pa- worked well enough, but was not very user-friendly. rameters but are generally similar to the news envi- Therefore we decided to create a web wizard which gets all the information from the user. This appli- ronment. The paperTEX manual [1] has more infor- mation. cation also lets the users change any parameter or Once the news items are included, when com- SQL instruction. After this, we asked the editor of the newspaper to give us the list of news he wanted piling paperTEX will create the corresponding PDF
4 You can find more information in the fancybox package 5 The Comprehensive Perl Archive Network (http://www. manual available on CTAN. cpan.org/). TUGboat, Volume 28 (2007), No. 1 23 to appear in the paperTEX newspaper; then we ran file. This system works off-line and does not need the web wizard and filled in all SQL queries and any human assistance in order to generate the pub- database information. This config file has not been lication several times a day. It is also worth empha- changed in more than six months and is working sizing that this system is working today with the well. same configuration as in August 2006. The final ap- The news items are stored in HTML format, plication is running for a Spanish on-line newspaper so we created a script to get all the items included called Panorama-Actual.es and it creates a publi- in the config file, convert them to LATEX, create a cation which name is papelDigital. You can freely ac- new paperTEX document and, in the end, compile cess them through http://www.panorama-actual. it using PDFLATEX. We also decided to add a fi- es/pdigital/. nal page including an events list, an automatically Finally, there is another system in Spain which generated Sudoku and a humour drawing. To de- does something similar to the application described velop this script some Perl modules were used. For in this document. It appeared at the beginning of example: this project but, as far as we know, it does not use A 6 HTML::Latex by Peter Thatcher, which con- LTEX at all. The publication is called 24 Horas • A and it is used by EL PAIS, one of the most widely- verts any HTML text to LTEX in every way you like. This module was very important for circulated newspapers in Spain. us because all the news items were stored in Acknowledgments HTML format just as they were published on the website. We would like to gratefully acknowledge the support of Robert Fuster, from the Polytechnic University Weather::Com by Thomas Schnuecker, which of Valencia (Spain). Thanks for reading the various • retrieves the weather forecast included on the drafts and making useful suggestions. paperT X front page. E We would also especially like to thank the mem- Games::Sudoku::Component by Kenichi Ishi- bers and regular participants on the Spanish T X • E gaki, which creates and solves a new Sudoku user list es-tex list. They have contributed with each time paperTEX is created. This module comments during the whole development process. was very useful (after few modifications) with Finally, the first author would like to thank Mar the sudoku LATEX package by Paul Abraham. for always being there. When executing the final script, we had some References problems composing the newspaper front page, be- cause the database contained texts that could be [1] Ignacio Llopis Tortosa. paperTEX class: Crea- longer than the space available. To prevent text ting newspapers using LATEX. Technical Re- overflow, a function to trim texts at certain posi- port DSIC-II/03/07, Department Sistemas In- tion (always after a period) was implemented. Some form´aticos y Computaci´on, Polytechnic Univer- tests in order to get the right threshold were made. sity of Valencia, 2006. Although the perfect solution would have been to Ignacio Llopis Tortosa have short texts, the system is working quite well ⋄ as it stands. Another problem was that, at first, Department Sistemas Inform´aticos the editor of the newspaper office did not want to y Computaci´on hyphenate headings in the front page. So we tried Univ. Polit´ecnica de Valencia Camino de Vera s/n to avoid hyphenation, but we got very bad results 46071 Valencia, Spain when there were long words which ran off the page. lloptor (at) gmail dot com Finally, we installed LATEX and the script on the Mar´ıa Jos´eCastro Bleda company server and use a cron-based application to ⋄ schedule execution three times a day. We also linked Department Sistemas Inform´aticos y Computaci´on the PDF output in the newspaper web site. Univ. Polit´ecnica de Valencia 5 Conclusions Camino de Vera s/n 46071 Valencia, Spain The goal of this project was to create a special print- mcastro (at) dsic dot upv dot es able edition of an on-line Spanish newspaper. The solution involved a new LATEX class, that we called paperTEX, and a Perl-based system that automat- 6 24 Horas is free to download through ically extracts, composes and creates a final PDF http://www.elpais.com/24horas/ 24 TUGboat, Volume 28 (2007), No. 1 LATEX News Issue 17, December 2005
Project licence news Updates of required packages Several of the packages in the tools bundle have been The LATEX Project Public License has been updated slightly so that it is now version 1.3c. In the warranty updated for this release. section the phrase “unless required by applicable law” The xspace package has some new features. One is an has been reinstated, having got lost at some point. Also, interface for adding and removing the exceptions it it now contains three clarifications: of the difference knows about and another is that it works with active between “maintained” and “author-maintained”; of the characters. These remove problems of incompatibility term “Base Interpreter”; and when clause 6b and 6d with the babel system. shall not apply. In LATEX News 16 we announced that some packages ε Following requests, we now also provide the text of might begin to take advantage of -TEX extensions on systems where these are available: and the latest the licence as a LATEX document (in the file lppl.tex). This file can be processed either as a stand-alone version of xspace does just that. Note also that fixltx2e ε document or it can be included (without any will make use of the facilities in -TEX whenever these are present (see below). modification) into another LATEX document, e.g., as an appendix, using \input or \include. The calc package has also been given an update with a few extra commands. The commands \maxof and \minof, each with two brace-delimited arguments, New guide on font encodings provide the usual numeric max and min operations. The commands \settototalheight and Way back in 1995 work was started on a guide to \totalheightof work like \settoheight and document the officially allocated LATEX font encoding \heightof. There are also some internal improvements names. However, for one reason or another this guide to make calc work with some more primitive TEX (named LATEX font encodings) was, until now, not added constructs, such as \ifcase. to the distribution. It describes the major 7-bit and 8-bit The varioref package has acquired a few more default font encodings used in the LATEX world and explains the strings but there are still a number of languages for restrictions required of conforming text font encodings. which good strings are still missing. It also lists all the ‘encoding specific commands’ (the The showkeys package has also been updated slightly LICR or LATEX Internal Character Representation) for to work with more recent developments in varioref. characters supported by the encodings OT1 and T1. Also, it now provides an easy way to define the look When the file encguide.tex is processed by LATEX, it of the printed labels with the command will attempt to typeset an encoding table for each \showkeyslabelformat. encoding it describes. For this to be possible, LATEX must be able to find .tfm files for a representative Work on LATEX fixes example font for each encoding. If LATEX cannot find such a file then a warning is issued and the The package known as fixltx2e has three new additions. corresponding table is omitted. A new command \textsubscript has been added as a complement to the command \textsuperscript in the kernel. Secondly, a new form of \DeclareMathSizes Robust commands in math that allows all of its arguments to have a dimension suffix. This means you can now use expressions such as The font changing commands in text-mode have been \DeclareMathSizes{9.5dd}{9.5dd}{7.4dd}{6.6dd}. robust commands for years, but the same has not been The third new addition is the robust command true for the math versions such as \mathbf. While the \TextOrMath which takes two arguments and executes math-mode commands worked correctly in section one of them when typesetting in text or math mode heads, they could cause problems in other places such respectively. This command also takes advantage of as index entries. With this release, these math-mode ε-TEX extensions if available; more specifically, when commands are now robust in the same way as their the ε-TEX extensions are available, it does not destroy text-mode counterparts. kerning between previous letters and the text to be
LATEX News, and the LATEX software, are brought to you by the LATEX3 Project Team; Copyright 2005, all rights reserved. TUGboat, Volume 28 (2007), No. 1 25 typeset. The command is also used internally in fixltx2e Future development \fnsymbol to resolve a problem with . The title of this section is a little misleading as it Also, further work has been done on reimplementing actually describes current development. In 1998 the \addpenalty the command , which is used internally in expl3 bundle of packages was put on CTAN to several places: we hope it is an improvement! demonstrate a possible LATEX3 programming The graphics bundle environment. These packages have been lying dormant for some time while the LATEX Project Team were The graphics bundle now supports the dvipdfmx preoccupied by other things such as developing the post-processor and Jonathan Kew’s XETEX program. By experimental packages xor, template, etc., (and also support we mean that the graphics packages recognize writing that indispensable and encyclopaedic volume, the new options xetex and dvipdfmx but we do not The LATEX Companion – 2nd edition). distribute the respective driver files. In October 2004 work on this code base was resumed This leads elegantly to a description of the new with the goal of some day turning it into a kernel for policy concerning such driver files in the graphics LATEX3. This work can now also make full use of the bundle. Most driver files for our graphics packages are widely accepted ε-TEX extensions. Currently two areas maintained by the developers of the associated are central to this work. post-processor or TEX programs. The teams developing these packages are working very hard: their rapid • Extending the kernel code of LATEX3. development offers a stark contrast to the current • Converting the experimental packages such as xor, A schedule of L TEX releases. It is therefore no longer template to use the new syntax internally. practical for the LATEX Team to be responsible for distributing the latest versions of these driver files. Beware! Development of expl3 is happening so fast Therefore the installation files for graphics have been that the descriptions above might be out of date when split: there is now graphics.ins to install the package you read this! If you wish to see what’s going on then files and graphics-drivers.ins for the driver files go to http://www.latex-project.org/code.html (located in drivers.dtx). There is no need to install all where you can download fully working code (we those provided in the file drivers.dtx. hope!). Please also note that, as requested by the maintainers of PStricks, we have removed the package pstcol as current versions of PSTricks make it obsolete. Practical TEX 2006 LATEX workshop: July 25–28, 2006 Conference: July 30–August 1, 2006 Rutgers, the State University of New Jersey (Busch Campus) Piscataway, New Jersey, USA Sponsors TEX Users Group Rutgers DANTE e.V. Carleton Production Centre Design Science O’Reilly Media, Inc. PCTEX, Inc. River Valley Technologies Thanks also to all the speakers, teachers, and participants, without whom there would be no conference. Special thanks to Barbara Mastrian and Steve Peter for all their help with local coordination, and Gerree Pecht, for providing additional local information. Also to Wendy McKay for organizing the Mac OS X gatherings and Duane Bibby for the (as always) excellent drawing. Conference committee Barbara Mastrian Cheryl Ponchin Karl Berry Robin Laakso Steve Peter Sue DeMeritt Workshop participants Abbes Bahri, Rutgers Ira Polans, IEEE Yael Goldberg, Rutgers Sam Roze, Princeton University Alice Leonhardt, Rutgers Chirag Shah, IEEE Barbara Mastrian, Rutgers Caroline Sheedy, Carnegie-Mellon University Jaime Moore, Decision & Sensor Analytics David Starbuck, IEEE Gerree Pecht, Princeton University Leszita Townsend, Rutgers Christina Polans, IEEE Michele Turansick, Institute of Advanced Study Conference participants William Adams, Mechanicsburg, PA Richard Koch, University of Oregon Leila Akhmadeeva, Bashkir Medical Univ., Russia Martha Kummerer, University of Notre Dame Bob Alps, Towers Perrin, Chicago, IL Robin Laakso, TEX Users Group Tim Arnold, SAS Jenny Levine, Duke University Press Kaveh Bazargan, Focal Image Ltd Wendy McKay, Caltech Barbara Beeton, American Mathematical Society Andrew Mertz, Eastern Illinois University Karl Berry, TEX Users Group Stephen Moye, American Mathematical Society Jon Breitenbucher, College of Wooster Bob Neveln, Widener University Elizabeth Dearborn, Buffalo, NY Don Pellegrino, DuPont Sue DeMeritt, Center for Communications Steve Peter, Beech Stave Press Research, La Jolla, CA Christina Polans, IEEE Ron Fehd, Centers for Disease Control and Ira Polans, IEEE Prevention Cheryl Ponchin, Center for Communications Frances Felluca, INFORMS Research, Princeton, NJ Peter Flom, National Development and Research John Rorem, Duke University Press Institutes Sam Roze, Princeton University Peter Flynn, Silmaril Consultants Herbert Schulz, Naperville, Illinois Federico Garcia, University of Pittsburgh Heidi Sestrich, Carnegie-Mellon University Steve Grathwohl, Duke University Press Chirag Shah, IEEE Barbara Hamilton, Center for Communications William Slough, Eastern Illinois University Research, Princeton, NJ David Starbuck, IEEE Jim Hefferon, St. Michael’s College David Tellet, Alexandria, VA Troy Henderson, US Military Academy Larry Thomas, Saint Peter’s College Klaus H¨oppner, DANTE e.V. Boris Veytsman, George Mason University & Ned Hummel, University of Nebraska AES ITT Industries Mirko Janc, INFORMS David Walden, E. Sandwich, MA Jonathan Kew, SIL International Alan Wetmore, US Army TUGboat, Volume 28 (2007), No. 1 27
A general report on Practical TEX 2006 appeared in The PracTEX Journal, issue 2006-3: http://tug.org/pracjourn/2006-3/practex06/ Here we include a few photos from the conference. More photos appear in the report and at http://tug.org/practicaltex2006/photos/
Seated: William Slough, Martha Kummerer, Barbara Hamilton, Cheryl Ponchin, Kaveh Bazargan (sprawled), Wendy McKay, Frances Fellucca, John Rorem. Middle row: Leila Akhmadeeva, Boris Veytsman, Jenny Levine, Heidi Sestrich, Alan Wetmore, Sue DeMeritt, Steve Peter, Jonathan Kew, Peter Flom, Larry Thomas, David Walden, Jim Hefferon, Stephen Moye. Back row: Bob Neveln, Elizabeth Dearborn, Barbara Beeton, Dick Koch, Andrew Mertz, Herb Schultz, Ron Fehd, Ned Hummel, Jon Breitenbucher, Karl Berry, Klaus H¨oppner, Steve Grathwohl, Don Pellegrino, Peter Flynn, Mirko Janc.
Barbara Mastrian, local coordinator Boris Veytsman, Kaveh Bazargan, Leila Akhmadeeva, extraordinare. Robin Laakso, and Karl Berry.
Pigeons at the top of the Empire State Building. Practical TEX 2006 — schedule A Tuesday 9 am–5 pm L TEX workshop July 25– led by Sue DeMeritt&Cheryl Ponchin Friday 8–9 am registration (on Tuesday, at Rutgers) July 28 10:15–10:30 am break 12–1 pm lunch 3–3:15 pm break Saturday 5–7 pm registration & reception (at the Clarion hotel, Windsor Ballroom) July 29 8–9 am registration (at Rutgers) 9 am Karl Berry, T X Users Group Welcome & introductions Sunday E How to create a T X journal: July 30 9:20 am Barbara Beeton, AMS & TUG keynote address: E A personal journey 10:20 am break 10:30 am Peter Flom, NDRI LATEX for social scientists and other people who think they don’t need it 11:10 am Jim Hefferon, St. Michael’s College LATEX resources 11:50 am Boris Veytsman, George Mason Design of presentations: Notes on principles and TEX Univ. & AES ITT Industries implementation 12:30 pm lunch 1:40 pm Alan Wetmore, US Army TEX and after dinner speaking 2:20 pm Steve Peter, Beech Stave Press Fonts, typefaces, glyphs & sorts 3 pm break 3:10 pm Klaus H¨oppner, DANTE e.V. & TUG Creation of a PostScript Type 1 logo font with MetaType1 3:50 pm William Adams, Mechanicsburg, PA TypeSpec v2: Typesetting font specimens 4:30 pm q & a, Birds of a Feather Monday 9 am Ned Hummel, University of Nebraska Common macro pitfalls and how to avoid them
July 31 9:40 am Jonathan Kew, SIL X TE EX font installation and usage 10:20 am break 10:30 am Federico Garcia, Univ. of Pittsburgh Capabilities of PDF interactivity 11:10 am Boris Veytsman, GMU & AES ITT Automatic report generation with Web, TEX and SQL 11:50 am Kaveh Bazargan, River Valley Removing vertical stretch: Mimicking traditional Technologies typesetting with TEX 12:30 pm lunch 1:40 pm David Walden, E. Sandwich, MA A lifetime as an amateur compositor 2:20 pm Troy Henderson, US Military Academy Creating high-quality technical graphics with MetaPost 3 pm break 3:10 pm Andrew Mertz & William Slough, Graphics with PGF and TikZ Eastern Illinois University 3:50 pm Jon Breitenbucher, College of Wooster LATEX at a liberal arts college 4:30 pm q & a, TUG meeting Tuesday 9 am Peter Flynn, Silmaril Consultants Rolling your own document class August 1 9:40 am Federico Garcia, Univ. of Pittsburgh LATEX and the different bibliography styles 10:20 am break 10:30 am Boris Veytsman, GMU & AES ITT Drawing medical pedigree trees with TEX and PStricks 11:10 am Elizabeth Dearborn, Buffalo, NY TEX and medicine 11:50 am Bob Neveln & Bob Alps, Widener Univ. Writing and checking complete proofs in TEX 12:30 pm lunch 1:40 pm Stephen Moye, AMS A wayward wayfarer’s way to TEX 2:20 pm Steve Peter, Beech Stave Press Introduction to memoir 3 pm break 3:10 pm panel: Barbara Beeton, Peter Flynn, moderator: David Walden Mirko Janc, Jonathan Kew 4 pm end ≈ 7 pm banquet (at the Clarion hotel, Garden Room) How to Create a TEX Journal: A Personal Journey
Barbara Beeton American Mathematical Society 201 Charles Street Providence, RI 02904 USA bnb (at) ams dot org
Abstract When TUG was first formed, the Internet wasn’t generally available; the logical channel for communication with and among TUG’s members was on paper. So TUGboat came into being. As TEX has matured, the needs of the community have evolved, but paper is still a logical medium for showcasing a typesetting tool. This talk will introduce high- and low-lights in the history of TUGboat, some reasons for choosing its particular format and mode of presentation, several experiments, and lots of my personal experiences as editor.
Editor: A person employed on a newspaper did, and the AMS had just undertaken projects to whose business it is to separate the wheat use T X to prepare its administrative publications from the chaff, and to see that the chaff is E and to develop an input system (AMS-T X) that printed. E would allow mathematicians (or their secretaries) to Elbert Hubbard prepare manuscripts that could be used directly in Although this epithet was directed at newspaper edi- the composition of AMS journals. This meant that tors, we’ve all read material in print that would have someone was needed in-house at AMS to prepare files been better off left unpublished. As long-time ed- and shepherd the production. I was volunteered. itor of TUGboat, I’m sure I’ve let some chaff slip through, however much I’ve tried to keep the wheat content high. I’ve mostly enjoyed my tenure as editor. How- ever, without the help of a lot of people along the way, we never would have had such a long and in- teresting voyage. I’ll try to give credit where credit is due along the way. Let’s start at the beginning, and proceed from the outside in. How I got involved in this madness TUG came into existence in February 1980 at a meet- ing held at Stanford University. About 50 people at- tended. One of the decisions taken at that meeting was to “organize a newsletter”. From the minutes of the first steering committee meeting:1 Robert Welland agreed to edit the newsletter. The first newsletter will have a report of the meeting and will be distributed free by the AMS upon inquiry about TEX. Subsequent newsletters will be by subscription only. Bob Welland, a math professor at Northeastern Uni- versity, had no production facilities—but the AMS Figure 1: The very first issue — the cover
1 TUGboat, 1:1 (1980), p. 15.
TUGboat, Volume 28 (2007), No. 1 — Proceedings of the Practical TEX 2006 Conference 29 Barbara Beeton
Figure 2: The very first issue — the back cover Figure 4: TUGboat 4:1 — the back cover
Figure 3: The very first issue — the title page Figure 5: TUGboat 4:1 — the cover
30 TUGboat, Volume 28 (2007), No. 1 — Proceedings of the Practical TEX 2006 Conference How to Create a TEX Journal: A Personal Journey
The perpetrator of this assignment was Sam Bob Welland “retired” from the editor’s post as • Whidden, head of the AMS Information Systems De- of the end of the 1983 academic year, and, with velopment department, and the founding treasurer no obvious candidates clamoring to take over, of TEX Users Group. He was also my boss. I didn’t I became editor with issue 4:2. (I had been have a chance. doing most of the production work, after all.) I Sam was also responsible for the name TUG- celebrated this occasion by omitting the name boat — the vessel that would convey the organiza- of the publication from the title page (Fig. 6). tion, TUG, through twisty little passages. Sigh. The covers and title page The first issue of TUGboat appeared in October 1980. Bob Welland found an old press that was al- legedly a reproduction of the one used by Gutenberg. He made a pen-and-ink drawing that has graced the cover ever since, going through various adaptations: For the first issue, a photograph was made of • the background, and an overlay was prepared on clear film using rub-on type for the text (Fig. 1). The contents list was placed on cover 4 (Fig. 2), a practice that has continued with only one exception. The title page used the same pasted-up “TUG- • boat”, but everything else was set with TEX, including an epigraph (Fig. 3), a practice mod- eled on use of quotes in The TEXbook. Finding suitable quotes has provided me considerable amusement, as well as occasional panic attacks when a deadline was approaching, and noth- ing had turned up. (I cheerfully accept sugges- tions for quotes, and must thank Don Knuth in particular for his many contributions.) I be- lieve I’ve received more comments about the epigraphs than about almost anything else; I’m not sure what this is supposed to imply, but it does show that people at least open the cover Figure 6: TUGboat 4:2 — the title page and look at the title page. In the summer of 1982, I attended a workshop By 1984, sentiment had been expressed that • • at RISD (the Rhode Island School of Design) TUGboat should be a representative example on the topic “Design with type”. For one of of high quality TEX composition. Dave Keller- my projects, I decided to redesign the table of man and Barry Smith volunteered to guest-edit contents — I really don’t like the dotty effect. and produce an issue demonstrating this capa- I had two goals (in addition to improving the bility. They commissioned a designer and a appearance): to strengthen the association be- special cover drawing for this issue, which ap- tween page number and what appears on the peared as the first issue of 1986 (Fig. 7). Along page, and to subdivide the contents into logical with the change in format, the subtitle was up- subject areas. The new cover 4 design debuted graded from “The TEX Users Group Newslet- with the first issue of 1983 (Fig. 4). This issue ter” to “The Communications of the TEX Users was also the first to have all the cover text (ex- Group”. The content of the issue was set to a cept for the name TUGboat) prepared in TEX grid, which may be apparent in the layout of (Fig. 5), with a “pseudo-spine” — rotated text the title page (Fig. 8). To avoid the appearance identifying the issue running from top to bot- of clutter, the contents list was omitted from tom near the stapled edge. (Later, when issues cover 4. (Although I understand and sympa- were large enough to have a real spine, this text thize with the goal, I’ve found the lack of a was moved there.) T-of-C inconvenient, and have taped one to the
TUGboat, Volume 28 (2007), No. 1 — Proceedings of the Practical TEX 2006 Conference 31 Barbara Beeton
Figure 7 TUGboat 7 : :1 — the cover of the guest-edited Figure 9: TUGboat 9:1 — a new look for the cover issue
Figure 8: TUGboat 7:1 — the title page Figure 10: TUGboat 15:3 — and a new look for pro- ceedings issues
32 TUGboat, Volume 28 (2007), No. 1 — Proceedings of the Practical TEX 2006 Conference How to Create a TEX Journal: A Personal Journey
Figure 11: TUGboat 15:3 — a proceedings issue title Figure 12: TUGboat 1:1, an item reproduced directly page from author copy identifying the proceedings editors who are re- sponsible for the production while I get to rest. issue for ease of reference.) More about the con- This practice continues to the present day. tent of this issue later. The covers and contents reverted to the pre- General format and layout • vious layout with the next issue, and nothing TUGboat is formatted for US letter-size paper, 8.5 much changed until the first issue of 1988, when ′′ × Alan Wittbecker, an employee at the newly- 11 , although it is sometimes trimmed a bit smaller. (The guest-edited issue and several that followed relocated TUG office, hired to assist with TUG- were 8 10.5′′.) This was established at the first boat production (among other things), refor- × matted the front cover (Fig. 9), reducing the issue. size of the press drawing and boxing all the There were several reasons for this decision. other cover elements. Note, however, that the First, in the US, authors are used to preparing man- cover drawing and the TUGboat name were still uscripts on the paper that is easiest to obtain, and pasted up manually for each issue. that’s letter size. We were hoping to encourage au- thors to prepare submissions that would be ready With the first issue of 1989, TUGboat perma- • to use, and indeed, the first issue contains some nently got a real spine! No more guessing which items reproduced directly from author-submitted one to pull out from a growing run of anony- copy (Fig. 12). mous grayish covers. The capacity of the press was also a consider- It gradually became a tradition for annual meet- ation, as was the size of shelves and files. A final • ings to have a drawing representing the meet- product formatted to letter size is readily accommo- ing location. Beginning with the proceedings dated by the presses in the AMS print shop; printing of the 1994 meeting in Santa Barbara, Cali- is actually done on larger sheets that are then folded fornia, this drawing replaced the press on the and gathered. Anything smaller must be trimmed, cover (Fig. 10). The title page of a proceedings which can result in considerable waste. issue is also modified (Fig.11), substituting the The material that we expected to publish ini- location of the meeting for the epigraph, and tially included reports on TEX development, news
TUGboat, Volume 28 (2007), No. 1 — Proceedings of the Practical TEX 2006 Conference 33 Barbara Beeton
Figure 15: TUGboat 5:2, full-width code in the style Figure 13: TUGboat 5:2, a single-column page of The METAFONTbook
TUGboat, Volume 16 (1995), No. 2 134
ETheISO-Latin1 Entity Set To have an idea of how character entity sets are defined in practice, below is shown the file corresponding to Latin1 (standard ISO/IEC 8859-1), available as SGML public entity set ISOlat1 with ISO 8879. 1 6 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
Figure 14: TUGboat 11:4, a doc style page Figure 16: TUGboat 16:2 — code takes up space
34 TUGboat, Volume 28 (2007), No. 1 — Proceedings of the Practical TEX 2006 Conference How to Create a TEX Journal: A Personal Journey
about the Users Group and about what users were doing, “sales pitches” (why TEX is a Good Thing), examples of things that can be done with TEX, and solutions to problems. While blocks of small type on large pages is not easy to read (most AMS books and journals have a text width of 30pc, about 5in), the letter-size page is wide enough to hold two columns of type that are narrow enough to be read easily, but (almost) wide enough to avoid most formatting problems. So a two-column style was adopted as the basic layout. Variations on the theme But some material simply can’t be shoe-horned into two columns. We’ve already seen one example printed directly from an author submission (Fig. 12). Macros are often difficult to disassemble into • the narrow measure, so a “medium-width” for- mat was defined, with a 30pc measure, cen- tered horizontally on the page (Fig. 13). This would be used only sparingly, when the density of macro code makes it impossible to reformat to the two-column style. Another single-column format, with text nar- • Figure 17: TUGboat 19:1 — we tried to format the rower than full page width, that is used occa- A TEX Live contents listing to be readable sionally is the LTEX doc format, where macro code is interspersed with commentary, and a wide left margin is used to place macro names TUGboat, Volume 21 (2000), No. 1 17 as labels (Fig. 14).
a0poster Provides fonts in sizes of 12pt up to 107pt. Provides fonts in sizes of 12pt up to 107pt and also latex3 makes sure that in math formulas the symbols appear in the right size. Can also create a PostScript Other material sometimes calls for use of the header file for dvips which ensures that the poster will be printed in the right size. Supported sizes are DIN A0, DIN A1, DIN A2 and DIN A3. • Author: unknown; CTAN location: macros/latex/contrib/supported/a0poster full page width, as with the presentation of code a2ac AFM to AFM plus Composites. Enables the use of PostScript fonts while typesetting texts in languages where accented letters are used. The font doesn’t need to contain the complete alphabet of METAFONT a given language; the presence of mere accents themselves (no whole accented characters) is sufficient. emulating, for example, The book The configuration files of the a2ac program are independent of the PostScript font encoding and of the typesetting system encoding. The program may be used to prepare a font for any typesetting system, especially TEX. (Fig. 15). Author: Petr Olˇs´ak; CTAN location: fonts/utilities/a2ac a4 Support for A4 paper sizes. Provides support for A4 paper sizes, however it is mostly superseded by the a4paper option of LATEX and by the geometry package. It does, however also define the extra Extended code listings have been poured into option of widemargins. Author: Nico Poppelier and Johannes Braams; CTAN location: macros/latex/contrib/supported/ • ntgclass a full-width page container (Fig. 16) for lack of a4wide Increases width of printed area of an a4 page. This package provides an option to increase the width of the a4 page. Note however that it is superseded by geometry. Author: unknown; CTAN location: macros/latex/contrib/other/misc any better ideas. a5 Support for a5 paper size. This package provides support for a5 paper sizes. Note however that it is superseded by geometry. Author: Mario Wolczko; CTAN location: macros/latex/contrib/other/misc And several iterations of all or part of the Cata- a5comb Support for a5 paper sizes. Superseded by geometry. Author: Mario Wolczko; CTAN location: macros/latex/contrib/other/misc • aaai AAAI style. logue accompanying a TEX Live disk have used latex3 Author: unknown; CTAN location: macros/latex209/contrib/aaai aastex American Astronomical Society format. a specially formatted full-width presentation to latex3 Author: American Astronomical Society; CTAN location: macros/latex/contrib/supported/aastex abbrevs Text abbreviations in LATEX. A LATEX package defining abbreviation macros, which expand to latex3 defined text and insert following space intelligently, based on context. They can also expand to one pack as much information as possible onto the thing the first time they are used and another thing on subsequent invocations. Thus they can be abbreviations in two senses, in the source and in the document. Also includes a facility for suffixes like 1900BC and 6:00PM which correctly handles following periods. page with (Fig. 17) or without (Fig. 18) rules or Author: Matt Swift; CTAN location: macros/latex/contrib/supported/frankenstein abc2mtex Notate tunes stored in abc notation. A package to notate tunes stored in an ASCII format (abc notation). One of the most important aims of abc notation, and perhaps one that distinguishes it from shading to help guide the eye. most, if not all, computer-readable musical languages is that it can be easily read by humans. The package produces files that can be processed with MusicTEX. Author: Chris Walshaw; CTAN location: support/abc2mtex A The initial macros to implement these layouts abstbook Books of abstracts. A LTEX2ε class file for making “books of abstracts”, commonly used for conferences. It is based on report class, however \chapter has been redefined and shouldn’t be used. Author: Havlik Denis; CTAN location: macros/latex/contrib/other/misc were based on a plain-T X multi-column macro sys- abstract Control the typesetting of the abstract environment. The abstract package gives you control over E latex2 the typesetting of the abstract environment, and in particular provides for a one column abstract in a two column paper. tem developed for in-house use at AMS. The original Author: Peter R. Wilson; CTAN location: macros/latex/contrib/supported/abstract abstyles No description available. bibtex3 Author: unknown requirements for this system included some interest- accents Multiple accents. A package for multiple accents with nice features concerning creation of accents and placement of scripts. Author: Javier Bezos; CTAN location: macros/latex/contrib/supported/bezos ing features: accfonts Includes mkt1font, vpl2vpl, CSX.def, and Norman.def. fonts3 Author: John Smith; CTAN location: fonts/utilities/accfonts achemso LATEXandBibTEX style for American Chemical Society. the ability to have as many columns as the data latex3 Author: Mats Dahlgren; CTAN location: macros/latex/contrib/supported/achemso • would allow (we’ve used up to 12); full-width “banners” can float across the page • at top or bottom or anywhere in between; Figure 18: TUGboat 21:1, but finally just packed it in partial width insertions can float across just as tightly as we could • some columns;
TUGboat, Volume 28 (2007), No. 1 — Proceedings of the Practical TEX 2006 Conference 35 Barbara Beeton
TUGboat, Volume 25 (2004), No. 2 221
Calendar
2005 Jun 6 – 9 Seybold Seminars, Amsterdam, Netherlands. For information, visit th Apr 30 – BachoTEX 2005, 13 annual meeting of http://www.seybold365.com/2005/. May 3 the Polish TEX Users’ Group (GUST), Jun 6 – Rare Book School, University of “The Art of TEX Programming”, Jul 29 Virginia, Charlottesville, Virginia. Bachotek, Brodnica Lake District, Many one-week courses on topics Poland. For information, visit http:// concerning typography, bookbinding, www.gust.org.pl/BachoTeX/2005/. calligraphy, printing, electronic texts, May 10 – In Flight: A traveling juried exhibition and more. For information, visit Jul 17 of books by members of the Guild http://www.virginia.edu/oldbooks. of Book Workers. University Jun 8 – 70 Years of Penguin Design: Exhibition, of Texas, Austin, Texas. Sites Nov 13 Room 74, Twentieth Century and dates are listed at http:// Gallery, Victoria & Albert Museum, palimpsest.stanford.edu/byorg/gbw. London, England. May 11 – From chisel to pen: inscriptional Jun 16 letterforms from early Christian Wales. Practical T X 2005 An exhibition at the St. Bride E Friday Center for Continuing Education, Printing Library, London, England. Chapel Hill, North Carolina. For information, visit http:// www.stbride.org/events.html. Jun 14 – 17 Workshops and presentations on LAT X, T X, ConT Xt, and May 22 – 27 Book History at A&M: The Fourth E E E more. For information, visit Annual Texas A&M Workshop on the http://www.tug.org/practicaltex2005/. History of Books and Printing. Texas A&M University, College Station, Texas. For information, visit Jun 15 – 18 ALLC/ACH-2005, Joint International http://lib-oldweb.tamu.edu/cushing/ Conference of the Association for bookhistory/2005.html. Computers and the Humanities, and Association for Literary and Linguistic May 24 – 27 XTech Conference, “XML, the Web and Computing, “The International Beyond”, Amsterdam RAI Centre, Conference on Humanities Computing Netherlands. For information, visit and Digital Scholarship”, University http://www.xtech-conference.org/. of Victoria, British Columbia. May 25 – 28 CIDE.8, Conf´erence Internationale For information, visit sur le Document Electronique, http://web.uvic.ca/hrd/achallc2005/ “Multilingualism”, Beirut, or the organization web site at Lebanon. For information, visit http://www.ach.org. http://www.certic.unicaen.fr/cide8/. th Jun 24 – 26 NTG 35 meeting, Terschelling, Jun 1 – 3 Society for Scholarly Publishing, th Netherlands. For information, visit 27 annual meeting, “Expanding the http://www.ntg.nl/bijeen/bijeen35.html. World of Scholarly Publishing”, Boston, Massachusetts. For information, visit http://www.sspnet.org.
Status as of 1 June 2005
For additional information on TUG-sponsored events listed here, contact the TUG office (+1 503 223-9994, fax: +1 503 223-3960, e-mail: [email protected]). For events sponsored by other organizations, please use the contact address provided. An updated version of this calendar is online at http://www.tug.org/calendar/. Additional type-related events are listed in the Typophile calendar, at http://www.icalx.com/html/typophile/month.php?cal=Typophile.
Figure 19: TUGboat 26:2 — TUG’s institutional mem- Figure 21: TUGboat 25:2 — the calendar heading bers, in three columns crosses the whole page; so does the footer
TUGboat, Volume 23 (2002), No. 3 243
Susan DeMeritt D. Men’shikov Addresses IDA/CCR La Jolla MicroPress, Inc. 4320 Westerra Court 68-30 Harrow Street San Diego, CA 92121, USA Forest Hills, New York 11375, USA +1 619 622-5455 [email protected] [email protected] http://www.micropress-inc.com TEX Users Group Office Robin Laakso Robin Fairbairns Ross Moore 1466 NW Naito Parkway, Suite 3141 University of Cambridge Computer Macquarie University Portland, OR 97209-2820, USA Laboratory NSW 2109, Australia phone: +1 503 223-9994 William Gates Building [email protected] fax: +1 503 223-3960 JJ Thomson Avenue Christian Obrecht [email protected] Cambridge CB3 0FD, UK Le Monsard [email protected] William Adams 71960 Bussieres, France 75 Utley Drive, Ste. 110 Thomas Feuerstack [email protected] Mechanicsburg, PA 17055, USA FernUniversit¨at in Hagen http://perso.wanadoo.fr/obrecht/ [email protected] 58084 Hagen, Germany Arthur Ogawa [email protected] Thomas H. Barton 40453 Cherokee Oaks Drive Emeritus Professor of Electrical Norman Gray Three Rivers, CA 93271, USA Engineering Dept. of Physics and Astronomy phone: +1 209 561-4585 University of Calgary, Canada University of Glasgow fax: +1 209 561-4584 [email protected] Glasgow, UK [email protected] [email protected] Claudio Beccari Palash B. Pal http://www.astro.gla.ac.uk/ Politecnico di Torino Theory Group users/norman/ Turin, Italy Saha Institute of Nuclear Physics [email protected] Harald Harders 1/AF Bidhan-Nagar Barbara Beeton Nußbergstraße 48 Calcutta 700064, India 38102 Braunschweig, Germany [email protected] American Mathematical Society [email protected] 201 Charles Street Steve Peter Providence, RI 02940 USA Stephanie Hogue 310 Hana Rd. +1 401 455-4014 AlphaSimplex Group Edison, NJ 08817, USA [email protected], [email protected] One Cambridge Center [email protected] 9th Floor Karl Berry Cheryl Ponchin Cambridge, MA 01242, USA 685 Larry Ave. N Center for Communications Research [email protected] Keizer, OR 97303, USA Institute for Defense Analyses [email protected] Mimi Jett 29 Thanet Road http://freefriends.org/~karl/ (use TUG Office address) Princeton NJ 08540-3699, USA [email protected] Mimi R. Burbank Judy Johnson CSIT, 408 Dirac Science Library [email protected] Stefan A. Revets Florida State University Thijssenlaan 22 Donald E. Knuth Tallahassee, FL 32306-4130, USA B1780 Wemmel, Belgium Department of Computer Science +1 850 644-2440 [email protected] Stanford University [email protected] Stanford, CA 94305, USA Kristoffer Høgsbro Rose Ram´on Casares IBM A. Kostin Telef´onica de Espa˜na T.J. Watson Research Center MicroPress, Inc. [email protected] 30 Saw Mill River Road 68-30 Harrow Street Hawthorne, NY 10532, USA Kaja Christiansen Forest Hills, New York 11375, USA [email protected] Department of Computer Science [email protected] University of Aarhus http://www.micropress-inc.com Prasenjit Saha Aabogade 34 Astronomy Unit Jonathan Kuhn DK-8200 Aarhus N, Denmark Queen Mary and Westfield College Purdue University North Central [email protected] University of London Westville, Indiana 46391–4197, USA London E1 4NS, UK Don DeLand [email protected] [email protected] Integre Technical Publishing Co. http://www.pnc.edu/faculty/jkuhn 4015 Carlisle NE, Suite A Walter Schmidt Mark LaPlante Albuquerque, NM 87107, USA N¨urnberger Straße 76 109 Turnbrook Drive [email protected] Erlangen, Germany Huntsville, AL 35824, USA [email protected] [email protected] http://home.vr-web.de/was
Figure 20: TUGboat 23:3 — author address list, also Figure 22: TUGboat 13:2 was accompanied by a mem- three columns bership list in alphabetical order
36 TUGboat, Volume 28 (2007), No. 1 — Proceedings of the Practical TEX 2006 Conference How to Create a TEX Journal: A Personal Journey
Figure 23: TUGboat 13:2 — and also arranged geo- Figure 24: TUGboat 5:2 — a full-width illustration at graphically the bottom of the page
insertions can be delayed until a specified page; • which has capabilities that aren’t easily available a message can be dropped into a footer at reg- (yet) with LAT X. • E ular intervals; The full multi-column system was used for the TUG membership list (Figs. 22 and 23) which was specified pages can be shortened or lengthened, published annually until 1993; however, no features • in particular to even off the multiple columns are used there that are not now available in the of the final page of a document. LATEX multicols package. The very first implementation of this system was de- Some pages in the main content have used the veloped for TEX 78, but it was one of the first things “extended” plain features: converted to TEX 82. Major credit to Ron Whit- ney for implementing the delaying stack mechanism Figures at the bottom of the page (Fig. 24); • and many other features of the system. (No. These macros aren’t available for distribution. There are Don Knuth’s “Answers to Exercises for TEX: some intractable bugs that we’ve learned to live with, • The Program” (Fig. 25), where single- and two- haven’t managed to fix, and don’t have the time or column material were intermixed to provide a staff to field questions from outside users who would reasonably natural flow; this too was imple- surely run into the same or new bugs. Sorry.) mented by Ron Whitney. Only some of these features made it into the stripped-down document style for TUGboat. The Ron’s contribution to TUG encompassed not only institutional members list (Fig. 19) and (until 2002) major work on the plain TEX TUGboat document the list of contributors’ addresses (Fig. 20) are for- style, but also hard work in the TUG office during matted in three columns; the two-column calendar several turbulent years. Ron is no longer working (Fig. 21) also has a full-width bottom insertion. The in the TEX world, but he still helps out by coordi- issue front matter and “boiler plate” are still — in nating the annual renewal of TUG’s Rhode Island 2006 — prepared with the plain TEX document style, incorporation.
TUGboat, Volume 28 (2007), No. 1 — Proceedings of the Practical TEX 2006 Conference 37 Barbara Beeton
Figure 25: TUGboat 11:4 — the flow of this page Figure 27: TUGboat 5:2, with a new font for the sec- doesn’t follow the usual path tion headings
TUGboat, Volume 22 (2001), No. 1/2 93
LATEX
The trace package∗ Frank Mittelbach
Introduction When writing new macros one often finds that they do not work as expected (at least I do :-). If this happens and one can’t immediately figure out why there is a problem one has to start doing some serious debugging. TEX offers a lot of bells and whistles to control what is being traced but often enough I find myself applying the crude command \tracingall which essentially means “give me whatever tracing information is available”. In fact I normally use ε-TEX in such a case, since that TEX extension offers me a number of additional tracing possibilities which I find extremely helpful. The most important ones are \tracingassigns, which will show you changes to register values and changes to control sequences when they happen, and \tracinggroups, which will tell you what groups are entered or left (very useful if your grouping got out of sync). So what I really write is \tracingassigns=1\tracinggroups=1\tracingall That in itself is already a nuisance (since it is a mouthful) but there is a worse catch: when using \tracingall you do get a awful lot of information and some of it is really useless. For example, if LATEX has to load a new font it enters some internal routines of NFSS which scan font definition tables etc. And 99.9% of the time you are not at all interested in that part of the processing but in the two lines before and the five lines after. However, you have to scan through a few hundred lines of output to find the lines you need. Another example is the calc package. A simple statement like \setlength \linewidth {1cm} inside your macro will result in \setlength ->\protect \setlength {\relax}
\setlength ->\calc@assign@skip
\calc@assign@skip ->\calc@assign@generic \calc@Askip \calc@Bskip
\calc@assign@generic #1#2#3#4->\let \calc@A #1\let \calc@B #2\expandafter \calc @open \expandafter (#4!\global \calc@A \calc@B \endgroup #3\calc@B #1<-\calc@Askip #2<-\calc@Bskip #3<-\linewidth #4<-1cm {\let} {\let} {\expandafter} {\expandafter}
\calc@open (->\begingroup \aftergroup \calc@initB \begingroup \aftergroup \calc @initB \calc@pre@scan {\begingroup} {\aftergroup} {\begingroup} {\aftergroup}
∗This file has version number 1.0a trace LaTeX code, last revised 2000/02/16.
Figure 28: TUGboat 22:1 — the subject heading covers Figure 26: TUGboat 5:1 — starry section headings only the text of a doc-style article
38 TUGboat, Volume 28 (2007), No. 1 — Proceedings of the Practical TEX 2006 Conference How to Create a TEX Journal: A Personal Journey
Subject arrangement Within the basic format, the content was divided into logical subject areas (General Delivery, etc.), introduced by distinctive headings. I no longer re- member whose ideas were used in creating the style of these headings, but, like the covers, they have undergone some major changes through the years. For the first few years, the subject heads were • set in a rather spindly sans-serif, centered, with rows of asterisks strung out above and below (Fig. 26). Similar rows of asterisks were used to separate articles within subject areas. Beginning with issue 5:2, a much nicer demi- • bold sans was adopted, with the subject text centered in a column-wide box (Fig. 27). For items like the calendar that fill a dedicated • page (Fig. 21), the subject head can span the full page, and if an article using the LATEX doc style starts a section, the box is set to the width of the text (Fig. 28). With the change to boxed subject heads, arti- • cles in a subject area were separated only by vertical space. Owing to confusion in identify- Figure 29: TUGboat 10:1 — now we make the top of ing the end of one article and the beginning of every article stand out another, in 1989 a rule was added above the title of each succeeding article (Fig. 29). Subject areas managed by an associate editor • sometimes have a more distinctive subject head. This has been particularly true for early install- ments of the Font Forum (Fig. 30) and for the Treasure Chest since 1998 (Fig. 31). For the guest-edited issue, the arrangement was • entirely different. Short items were run together on pages of three columns, and articles of a page or more each began on a new page. This is best appreciated in context: Go to the TUG- boat web site to examine this issue. While we’re on the subject of subject headings, we originally tried to follow the nautical theme im- plied by the name TUGboat, hence “General Deliv- ery” and “Dreamboat” (wishes for the future), but we clearly ran out of inspiration. So the names of most subjects are far more prosaic.
The transition from plain TEX to LATEX The first issues of TUGboat — the parts that were actually prepared using the TUGboat style — were constructed in TEX 78. This language was rather different from the TEX we know now: only 32 fonts could be used at once, the syntax for boxes and Figure 30: TUGboat 10:1 — some section heads are alignments was different, etc., etc. In other words, more decorative than others a file created for TEX 78 probably won’t run under
TUGboat, Volume 28 (2007), No. 1 — Proceedings of the Practical TEX 2006 Conference 39 Barbara Beeton
428 TUGboat, Volume 19 (1998), No. 4
Compatible with: plain, LATEX (old and new). The Treasure Chest Note: the documentation describes some re- strictions when the soul package is not used with LATEX2ε. A package tour from CTAN — soul.sty Location on CTAN: When the Treasure Chest is CTAN, there’s so much /macros/latex/contrib/supported/soul to choose from. But even worse . . . there are so Files to fetch: soul.dtx and example.cfg.2 many packages that keep being added! And how to How to install: Put files with your other class and even find out about them, if you don’t keep up with style files on your system. Read the top por- notices posted to the newsgroups? This column is tion of soul.dtx (or the file soul.txt) for in- one way to try to bring some of these treasures to structions on processing the files (you will need TUGboat readers, with a quick introduction to the A LTEX2ε). Notice that the soul.sty package is package and some examples of what it can do. not actually on CTAN;itusesthe.dtx method This is the first such column; let me know what of documentation, a wonderful feature in aspects are most useful and which ones less so, what A LTEX2ε. If you’re unfamiliar with how this additional facets should be examined, what other works, see footnote 1 for a general overview. packages cover some of the same issues; which pack- Files generated: soul.ins, soul.dvi (documen- ages do you prefer. tation), soul.toc, soul.sty, changes.tex,(as 1 Quick tour well as the usual soul.aux and .log files). Package: soul.sty 2 Documentation This is version 1.2, dated 11 Jan. 1999. Upon The documentation is so extensive (26 pages long), processing, the file changes.tex is generated, with explanations, examples of basic use and varia- and describes the differences (the file is also in- 1 tions, that little needs to be said here! side the .dtx file ). The opening pages are a pleasant introduction Explanation of the name: “[it] is only a combi- to the general notions of emphasis, however it is \so space out nation of the two macro names ( ) achieved, and the various opinions which exist on the \ul underline and ( )— nothing poetic at all. . . ” suitability of their use. There is a pragmatism ex- Keywords: spacing out, letterspacing, underlining, pressed here, offering the user the choice of options, striking out leaving the reasons for such choices to the user. Purpose: The user portion of the documentation provides soul.sty provides hyphenate-able letterspac- extensive examples and explanations for creating the ing, underlining, and some variations on each. various effects (underlining, overstriking, letterspac- All features are based upon a common mech- ing). anism for typesetting text syllable-by-syllable, Chapter 7 (pp. 14–25) provides a detailed ex- using TEX’s excellent hyphenation algorithm to planation of the macros themselves, along with some find the proper hyphenation points. As well, additional points and tips, so do glance through it. two examples are presented to show how to use One nice addition from the author (in collabo- the interface provided to address such issues as ration with Stefan Ulrich) is a sample configuration ‘an-a-lyz-ing syl-la-bles’. Although the package file, example.cfg, which shows how to select specific is optimized for LATEX2ε, it works under plain spacing values for different fonts automatically, and TEXandLATEX2.09, and is compatible with store them for local use. As well, the local file (call it other packages, too. soul.cfg and hooks exist to read it in automatically Author: Melchior Franz via soul.sty) can be used to store other changes to [email protected] the package default settings, thus avoiding making changes in either the style file or inserting the cus- 1 Documented source (.dtx) files are a combination of tomizations into individual source files. macros and documentation, an evolution of Frank Mittel- bach’s original DocStrip utility. There are usually two steps: 2.1 Table of Contents run LATEX over the .dtx file to get the documentation, and run LATEX over its matching .ins file to generate the style 1. Introduction files, which are extracted from the .dtx file (sometimes the .ins file is itself generated by the first step, which means you 2 Note: CTAN also has the file soul.txt (description of only have to pick up the one .dtx file— even more compact package + processing instructions), and soul.ins,whichcan packaging). either be fetched, or generated by processing the .dtx file.
Figure 31: TUGboat 19:4 — and some try to be self- Figure 33: TUGboat 7:1 — the coming of LATEX had explanatory been foretold
Figure 32: TUGboat 7:3, the first article produced Figure 34: TUGboat 15:3 — the 1994 Proceedings is- with LATEX (2.09) sue was produced at CERN
40 TUGboat, Volume 28 (2007), No. 1 — Proceedings of the Practical TEX 2006 Conference How to Create a TEX Journal: A Personal Journey
TEX 82 without a lot of work, regardless of how clev- erly one recodes the underlying macros. Because au- TUGboat, Volume 18 (1997), No. 1 17 finally able) to impose new standards of simplified thors always want to do things their own way, and Philology typesetting,2 most of the time covering only the fun- damental properties of Arabic script, without any typographical enhancement. Was it the computers, TUGboat authors were trying to show what they The Traditional Arabic Typecase, Unicode, which have simplified Arabic printed script, or was TEXand ✂✁☎✄✝✆✟✞✡✠☞☛✌✄ it a deeper change in Arabic society and mental- Yannis Haralambous∗ ity? This is hard to say; nevertheless, even today, could do with this wonderful new tool. commercial computer typesetting systems are — a 1 Introduction few isolated exceptions apart— unable to reach the ˙
TUGboat The first Arabic book, a 5 × 11 cm volume titled typographic quality of ’Almat¯ab‘ al’am¯arya.In
✒
✕
✔ ✔
In any event, by 1984, the transi- ✍ ✎
✓
✘
✏
✑
✗ ✖ ✙ (Book of the prayer of hours), fig. 2, one can see different samples of printed Arabic was printed in 1514 by Grégoire de Grégoire in material, showing the evolution and simplification tion was made to TEX 82, new fonts, new every- Venice and Fano, under the protection of Pope Leo of Arabic script; these examples are extreme cases: the 10th [1, p. 18 – 19]. It took about two cen- the first one is taken from a scholarly book printed turies for Arabic book printing to move to the East: in Lebanon (it contains almost all ligatures of the ˙ thing, with no more fuss than accompanied the si- in 1727 the Ottoman printing agency was founded ’Almat¯ab‘ al’am¯arya typecase), the second from a in Constantinople and started printing using Dutch technical book printed in East Germany (a fewer multaneous transition of AMS projects. (The one types and technology [8, p. 156]. A similar institu- number of ligatures), and the third from a daily tion was founded in Cairo in 1821. newspaper printed in the U.K. (almost no ligatures).
This paper describes the author’s solution to
✥ ✔
Undoubtedly a script like the Arabic one, hav- ✩ often performed as a test bed for the other.) But ing deep roots in calligraphy, was rather difficult this problem: ✦ (Al-Amal), a typesetting system to adapt to typography, a technique where strict based on TEX (actually TEX--XET), emulating the ˙ A standardization and repetition of forms is neces- ’Almat¯ab‘ al’am¯arya typecase. This system (already a growing number of authors wanted to use LTEX, sary. When Aldus Manutius created the first italic presented in [6] and [7]), has been recently extended font in 1501, out of manuscript calligraphic forms, to the complete set of Unicode Arabic alphabet he made a certain number of choices — and these characters; problems and open questions arising which is a very different beast. The first article writ- choices became a standard for occidental typogra- from this extension are discussed at the end of the A phy. Similar choices had to be made for Arabic: paper. calligraphy had to be “tamed”, so that the results 2 The Cairo typecase ten with LTEX was published in 7:3 (Fig. 32), al- would be homogeneous, reproducible, and flexible enough to be pleasant to the eye. Arabic letters have contextual forms, depending on
A surrounding letters in the same word: a typical three ✚
This standardization took✚ place in 1906, in
✥
✢ ✢
✜
✛ ✔
though LT X had certainly been mentioned earlier ✔
★
✣
✦ ✤ E Cairo, when the ✧ (’Almat¯˙ab‘ al’am¯arya) letter word will start with a letter in initial form, typecase is defined. This typecase (see fig. 1), followed by a letter in medial form and, finally, by a divided in four parts (as opposed to “upper” and letter in final form (the hypothetical word consisting
(Fig. 33); note Leslie Lamport’s comment regarding ✫✬ “lower” case of the Occident), uses a total of 470 of three times the letter ‘gha’ is written ✪ ). A characters. Astonishing as it may seem, this typeset- fourth form is used for isolated letters (this is also the Local Guide, an item always honored more in ting system has been kept in use until today: books the form used in crosswords or Scrabble-like games, typeset in a traditional way, all around the Arabic where letters have to placed in boxes, indepedently world, are still using the same set of characters, and of their context). Some letters appear only in iso- theory than in practice. the same conventions and rules.1 In fig. 1, the reader lated and final form (and sometimes even only in A can see the four parts of this typecase. isolated form), so that the letters immediately fol- By 1991, the volume of LT X material had in- The reader knowing the technical limitations lowing them must be written in initial (or isolated) E of computerized typesetting can already imagine form, although they are located inside the word. the effect of computers on the Arabic script: not These are the basic contextual rules of the creased to the point where the production notes for being able to cope with the complexity of the Cairo Arabic script: they are independent of style and typecase, the computer industry has tried (and was medium, and are applied in all cases, without ex- ception; they are as basic as the dot on the Latin 12:2 reported a nearly 50/50 split between plain ∗ lowercase ‘i’, or the horizontal bar of the ‘t’. The author would like to thank Michel Goossens, for — ˙ among other things — having given him access to [11], an But besides these contextual forms, ’Almat¯ab‘ A extremely exciting book which has motivated this and forth- al’am¯arya also combines letters into ligatures,not T X and LT X. This made grouping of articles in coming developments. E E 1 In [4, p. 102 – 103], a book published in 1880 (!) the reader can find 30 rules for typesetting Arabic, which are still 2 For more information on the Arabic script and the subject areas more difficult for a couple of reasons: strictly applied today by traditional typographers. computer see also [3] and [10]. “Plain” articles can usually be processed in a • single run, using a driver file, unless the com- plement of articles contains a lot of mutually Figure 35: TUGboat 18:1 — the first article produced incompatible author macros — a not infrequent with Ω occurrence. LATEX requires that packages be loaded only in • the preamble; this is true for both 2.09 and of highly-accented material and non-Western scripts LATEX 2ε; nearly any package use by an author (that is, scripts other than Latin, Greek and Cyril- precludes combining files in a single run. lic). The first article actually produced with Ω In TUGboat, if an article ends with more than • (Fig. 35) was set by the author to specs provided by a half-column empty, the next article may be the TUGboat production crew. Ω has unfortunately started on that page; other than using physi- not proved sufficiently stable to be included perma- cal paste-up or post-processing, the only way nently in the TUGboat toolbox, but work continues. to achieve the desired continuity is to process At the 1998 annual meeting, H`anThˆe´ Th`anh both articles in the same T X run. E introduced pdfTEX (Fig. 36). This extension to TEX Needless to say, all known methods of “splicing” permits the use of existing LATEX or plain TEX input, disparate items have been used to get camera copy along with direct output to PDF. Th`anh’s disser- ready for the printer. tation (Fig. 37) was published in TUGboat several The next big leap toward LATEX occurred with years later. the proceedings of the Santa Barbara meeting in For a totally different approach to composi- 1994. Michel Goossens, then TUG’s vice president, tion, ConTEXt is directed largely toward creating co-edited the proceedings with Sebastian Rahtz. attractive presentations on-line as well as in print, Both were ardent supporters of LATEX, and eager and requires pdfTEX. ConTEXt made its appear- to take advantage of the new features of LATEX 2ε. ance in several talks by Hans Hagen at the 1998 Together they created the first TUGboat document annual meeting. One of the resulting articles in class file, and handled all the production as well the proceedings describes an interactive calculator as the editorial duties at CERN (Fig. 34). (Mainte- (Fig. 38); sadly, the on-line version of this article nance of the TUGboat document class is now in the is not interactive, but the figures are very color- care of Robin Fairbairns, to whom many thanks.) ful. Hans has created a ConTEXt style for TUGboat At the same meeting, there was a report on which has been used for several other articles, but Ω, a new approach to the composition requirements so far always with his assistance.
TUGboat, Volume 28 (2007), No. 1 — Proceedings of the Practical TEX 2006 Conference 41 Barbara Beeton
Improving TEX’s Typeset Layout The Calculator Demo
´ H`an Thˆe Th`anh Hans Hagen Faculty of Informatics [email protected] Masaryk University Brno, Czech Republic Abstract
Due to its open character, TEX can act as an authoring tool. This article demon- METAPOST PDF Abstract strates that by integrating TEX, ,JavaScriptand , one can build pretty advanced documents. More and more documents will get the characteristics of pro- This paper describes an attempt to improve TEX’s typeset layout in PdfTEX, based grams, and TEX will be our main tool for producing them. The example described here on the adjustment of interword spacing after the paragraphs have been broken can be produced with PDFTEX as well as traditional TEX. into lines. Instead of changing only the interword spacing in order to justify text was (and is) used in the production chain: lines, we also slightly expand the fonts on the line as well in order to minimise Introduction excessive stretching of the interword spaces. This font expansion is implemented When Acrobat Forms were discussed at the PDFT X → → → using horizontal scaling in PDF. When such expansion is used conservatively, and E ASCII TEX DVI whatever mailing list, Phillip Taylor confessed: “. . . they’re by employing appropriate settings for TEX’s line-breaking and spacing parame- one of the nicest features of PDF”. Sebastian Ratz The most versatile process probably is: ters, this method can improve the appearance of TEX’s typeset layout. told us that he was “... convinced that people are waiting for forms.”. A few mails later he reported: ASCII → TEX → DVI → POSTSCRIPT Motivation in a rather different way: instead of using font scal- “I just found I can embed JavaScript in forms, I can ing to improve only some “really bad” lines, we try There exist many techniques which can be used to see the world is my oyster” after which in a personal or even: instead to produce a “relatively good” paragraph, produce high quality typeset layout. Most of these mail he challenged me to pick up the Acrobat Forms which does not contain any lines where the inter- are already implemented in T X, such as ligatures, plugin and wishing me “Happy JavaScripting”. ASCII → T X → DVI → POSTSCRIPT → PDF E word spacing is too bad. Then we apply font scaling E kerning, automatic hyphenation, and very impor- to each line to reduce the difference between the in- tantly the algorithm for breaking paragraphs into All functionality that TEX lacks, is to be taken care terword spaces in lines. The limit of font scaling sin cos tan max exp ceil x2 x! xy rad lines in an optimal way, generally known as “opti- of by the DVI postprocessing program, and that’s must, of course, be strictly controlled: in fact, the asin acos atan min ln floor sqrt round 1/x deg mum fit”. why TEX can do color and graphic inclusion. Espe- n sum of the spaces between the words on a line is 7 8 9 / del However, it is still a very difficult task to ob- min cially when producing huge files or files with huge often very small in comparison to the sum of the max → 4 5 6 * E graphics, the POSTSCRIPT PDF steps can become tain a uniform level of grayness of the typeset lay- total
character widths on the same line, so very slightly mean 1 2 3 – pop a nuisance, if only in terms of time and disk space. out, even with the help of these techniques. The sdev expanding the fonts may help considerably in im- With PDF becoming more and more popular, it primary reason is that it is not possible to ensure 0 . - + push proving the interword spacing. that all the interword spaces in different lines are the will be no surprise that Han The Thanh’s PDFTEX This idea can easily be integrated with T Xbe- new new +n –n same. The “optimum fit” algorithm can break the E becomes more and more popular too among the TEX cause of the biggest strength of T X– the “optimum –x random pi e dup exit info paragraph into lines in the best way, but the amount E users. With PDFTEX we can reduce the chain to: fit” algorithm which is implemented in a very flexi- new +m –m mem grow of interword space depends strongly on many other ble manner, in order to handle restrictions on many parameters, such as the paragraph width, the tol- ASCII → T X → PDF various parameters in an optimal way. In particular, E erance of glue stretching/shrinking, the amount of Figure 1 The calculator demo. we perform the implementation in P T X, where the interword glue, etc. Considerable effort is often re- df E The lack of the postprocessing stage, forces PDFTEX font expansion is currently carried out by horizontal quired in order to adjust these parameters to achieve At the moment that these opinions were shared, I al- (i.e. TEX) to take care of font inclusion, graphic in- scaling in PDF as a first attempt. Other approaches the appropriate break points and to reduce the con- ready had form support ready in CONTEXT, so pick- serts, color and more. One can imagine that this may be attempted in the future as time allows. trast between the interword spaces in lines. The ing up the challenge was a sort of natural behaviour. leads to lively discussions on the PDFTEX mailing purpose of our experiment is an attempt to perform Implementation In this article I’ll describe some of the experiences list and thereby puts an extra burden on the devel- this task better by stretching or shrinking the fonts I had when building a demo document that shows oper(s). Take only the fact that PDFTEX is already used in each line within reasonable limits. The idea PdfTEX is based on the original source of TEX, and how forms and JavaScript can be used from within used in real life situations while PDF is not stable is not really new, as it represents a quite common employs the changefile mechanism which allows easy TEX. I also take the opportunity to introduce some yet. technique using electronic font scaling in order to ex- access to TEX’s internal data structures and simple of the potentials of PDFTEX, so let’s start with in- To those who know PDF, it will be no surprise pand text lines that do not fit the paragraph width. modification of the relevant program code. Gen- troducing this extension to TEX. that PDFTEX also supports all kind of hyper refer- 1 However this technique is also often regarded as a erating PDF output directly from TEXisalsoan encing. The version Iused when writing this article advantage for our task, as we can control the spac- bad thing, since it is frequently (ab)used in order Wheredowestand supports: to rescue “impossible” cases, which often leads to ing much better than would have been the case had overdoing the scaling and produces really ugly re- we attempted it via DVI. The process of adjusting While ε-TEX extends TEX’s programming and typo- 1. link annotations sults. In our approach, we try to use this technique interword spacing is as follows: graphic capabilities, PDFTEX primarily acts at the back end of the TEX processor. Traditionally, TEX 1 Currently I’m using β--version 1.12g.
284 TUGboat,Volume 19 (1998), No. 3 — Proceedings of the 1998 Annual Meeting 304 TUGboat,Volume 19 (1998), No. 3— Proceedings of the 1998 Annual Meeting
Figure 36: TUGboat 19:3 — the first article with Figure 38: TUGboat 19:3 — the first article with Con- pdfTEX TEXt
TUGBoat, Volume 21 (2000), No. 4 317
Micro-typographic extensions to the TEX typesetting system
Han` Theˆ´ Thanh` Dissertation
Masaryk University Brno Faculty of Informatics October 2000
Micro-typographic extensions to the TEX typesetting system 1
Figure 37: TUGboat 21:4, Th`anh’s pdfTEX disserta- tion Figure 39: TUGboat 26:2—X TE EX
42 TUGboat, Volume 28 (2007), No. 1 — Proceedings of the Practical TEX 2006 Conference How to Create a TEX Journal: A Personal Journey
Figure 40: TUGboat 2:1 — 200 dpi output is pretty Figure 41: TUGboat 3:1 — our first statement of edi- grainy, even reduced from 130% torial policy
The most recent addition to the TEX zoo is guidelines. (Most authors did; some, I’ve learned, X TE EX, by Jonathan Kew (Fig. 39). This Unicode- never read instructions.) based extension of TEX can use system fonts directly. I didn’t record when production of camera copy Jonathan produced the camera copy for this article was shifted from the Alphatype to an Autologic APS- on his Mac, but he is diligently working on imple- 5, but 1984 sounds about right. That machine, with mentations for Unix and Windows that can be in- a resolution of 1200 dpi, used photographic paper in cluded on the next edition of TEX Live. roll form, and was much less labor-intensive. Since TUGboat is printed on non-glossy paper, the dif- Production and distribution ference in quality was not really noticeable, except Early issues of TUGboat were produced from a mis- perhaps for very tiny print. cellany of sources and output devices. Material pre- In 1988, TUG applied for a second class postal pared “in-house” at AMS was processed using TEX permit, in an attempt to control expenses. One of on a DECsystem-20. For the first two issues, this the requirements for this permit is that at least four output was magnified to 130% on a 200 dpi Benson- issues of the periodical must be published annually. Varian electrostatic printer, and photographically Since the volume of material being submitted was reduced for the press (Fig. 40). Quite a bit of mate- sufficient for about three issues, the board decided rial was submitted as camera-ready copy prepared that the proceedings of the annual meeting would on a variety of other output devices, with running become the fourth issue. The proceedings of the heads and page numbers pasted on. 1987 and 1988 meetings had already been published The quality of copy prepared “in-house” im- as issues of TEXniques, but this had only a limited proved radically with issue 2:2, when AMS installed distibution; inclusion in TUGboat would make the an Alphatype CRS. This machine had the astound- information available to all members. However, the ing resolution of 5333 dpi, with output on large time commitment was greater than I could handle, sheets of resin-coated photographic paper. A great so the meeting program committee became respon- deal of material was still arriving as camera-ready sible not only for the acceptance of papers for the copy, however, and a statement of editorial policy meeting, but also for the editing of the proceedings. (Fig. 41) encouraged authors to pay attention to the A member of the committee was designated to be
TUGboat, Volume 28 (2007), No. 1 — Proceedings of the Practical TEX 2006 Conference 43 Barbara Beeton
Figure 42: TUGboat 10:4 — the first TUGboat pro- Figure 44: TUGboat 11:3, but we learned before the ceedings issue next proceedings issue
Typesetting the Byzantine Cappelli
Philip Taylor The Computer Centre, Royal Holloway, University of London, TW20 0EX, United Kingdom mailto :[email protected]
Abstract An overview of the author’s rˆole in the preparation of the forthcoming Lexicon of Abbreviations & Ligatures in Greek Minuscule Hands, with particular emphasis on two challenges : sorting TEX markup for polytonic Greek using multiple con- current keys, and deriving statistical data which could be used to provide input to the book design.
Introduction deciphering these, although for Latin scholars Cap- pelli’s Dizionario provides an invaluable tool. One of the greatest pleasures that I get from my po- Only too aware of the difficulties that their stu- sition as Webmaster at Royal Holloway, University dents were experiencing in attempting to decipher of London, is the only-too-rare opportunity to work Byzantine manuscripts, Julian & Charalambos de- with truly gifted and dedicated scholars. For the cided to compile a Byzantine dictionary that would last few years, I have been truly privileged to be able provide their students, and future scholars, with a to work with Miss Julian Chrysostomides, Director key to those scribal notations which were most likely of our Hellenic Institute, and with Dr Charalambos to cause problems in interpretation. For over five Dendrinos, a Research Fellow within the same In- years, these two scholars have been painstakingly re- stitute. These two extraordinary scholars have both searching and deciphering hundreds if not thousands devoted a considerable portion of their lives to the of individual manuscripts and recording the results collection, collation and preparation of material for of their work, initially using fairly primitive technol- a Lexicon of Abbreviations & Ligatures in Greek Mi- ogy such as Windows 3.1’s Cardfile and Eberhard nuscule Hands which is intended to do for Byzan- Mattes’ emT X but more recently using spread- tine scholarship what Adriano Cappelli’s Dizionario E sheet technology (Microsoft’s Excel) and the T X di Abbreviature latine ed italiane has been doing for E Live Windows implementation of H`an Thˆe´ Th`anh’s Latin scholarship for the past 100 years. Pdf(LA)TEX by Fabrice Popineau. The Work of the Scholars Although locating and obtaining copies of the man- uscripts requires a not-insignificant amount of time, I will concentrate here on the tasks which the schol- ars undertake once the copies have been received. Each scribal notation that is potentially of inter- est is identified and scanned, and any artifacts that might serve to confuse are eliminated using a light Figure 1:A fragment from Cappelli’s Dizionario pen and suitable software (JASC’s Paintshop PRO). The resulting “clean” image is then stored as a PDF For both Latin and Byzantine scholars, the task of file using a fixed naming convention, and a corre- deciphering manuscripts which may be more than sponding entry made in an Excel spreadsheet : this a thousand years old is not simply one of reading entry contains the filename, the transcription, an a long-dead scribe’s handwriting : far more difficult explanation (if the notation is an abbreviation or is the task of identifying and correctly interpreting similar) and the provenance (typically the date, but the various abbreviations, ligatures and other scribal occasionally a more detailed provenance where this shorthand notations that he or she may have used. is felt to be important). Lest this create the impres- Even a skilled palæographer may have difficulty in sion that the rˆole of the scholars is trivial, let me
142 TUGboat,Volume 26 (2005), No. 2 — Proceedings of the 2005 Annual Meeting
Figure 43: TUGboat 10:4, it hadn’t fully sunk in that Figure 45: TUGboat 26:2, and we try to keep improv- wide pages are hard to read ing
44 TUGboat, Volume 28 (2007), No. 1 — Proceedings of the Practical TEX 2006 Conference How to Create a TEX Journal: A Personal Journey
70 TUGboat, Volume 20 (1999), No. 1
gle issue of TUGboat! The contents are archived Late-Breaking News in special files which may be run to produce the Contents pages for each volume (or more infor- mation see http://ctan.tug.org/tex-archive/ Production Notes usergrps/tug/tugboat/t-of-c/). During the pro- Mimi Burbank cess, several comments were made about attempt- ing to standardise the “naming” of the TUGboat It is April, and the trees and flowers are blooming, directories on the TUG web server, so I also had and thoughts turn to new life — and the new TEX to go in and rename every directory, and then edit Live CD, which is included in this issue. Many each contents file, globally substituting one string thoughts fly through my feeble mind as I think for another. This took approximately three full about production of this issue — the first being that days, and though the contents files are not as “nice” I am using the TEXLive4setup for production. for the older issues, they at least are present and I wanted to use each set of binaries available on may be viewed at http://www.tug.org/TUGboat/ the CD plus some extras, with the exception of the contents.html. Any errors are my own; please send win32.I even managed to build a set of binaries comments to [email protected] and I’ll make on my own! The following binaries were used for changes as quickly as I have time to do so. production of this issue: My primary reason for mentioning the above alpha-osf3.2 mips-sgi-irix5.3 is to encourage you to look at the early contents alphaev5-osf4.0d rs6000-aix4.1.4.0 files. I have been a member of TUG since 1986, and, hppa1.1-hpux10.10 rs6000-aix4.2.1.0 having attended nine annual meetings between 1986 i686-linux-gnulibc1 sparc-solaris2.5.1 and 1996, I must admit to taking a nostalgic trip mips-irix6.2 sparc-solaris2.7 down “memory lane” as I opened and closed each of the contents files. For those who are longstanding I tend to “play” (more proficient users would call members of TUG, there is quite a bit of history this “beta testing”) with the binaries until they are simply in the contents pages, and I enjoyed meeting complete. I like to think I represent the “novice” “old friends” there. I only hope that we will not when it comes to setting up a T Xsystem–and E have to wait too much longer to be able to actually always tell the TL4 team members that, “If I can convert some of the earlier .tex files to a readable do it, anyone can!” I encourage all of you to read format on the web. This of course will require more the T XLivedocumentation, and become familiar E volunteers who have time to convert some of the with just what is on your system. There is a world older files into a format which can be processed of documentation available with all of the packages either using the original software or recoding files on the CD – all ready for your use and enjoyment. to run with the current version of (LA)TEX! Output. The final camera copy was prepared at This will also require permission of every author SCRI on multiple workstations, using the TEXLive4 who ever published in TUGboat!And not only for setup, which is based on the Web2c TEX imple- the TUG web pages. Discussion has begun with mentation version 7.3 by Karl Berry and Olaf We- regard to making a CD of TUGboat articles. More ber. PostScript output, using outline fonts, was information on this will appear on the web pages produced using Radical Eye Software’s dvips(k) 5.85, at http://www.tug.org/TUGboat, aswellasfuture and printed on an HP LaserJet 4000 TN printer at issues of TUGboat. 1200dpi. Coming In Future Issues Thenextissuewill This issue also marks a new trend in the pro- contain an article entitled “A short introduction to duction of TUGboat — we will also be transferring font characteristics” by Maarten Gelderman (reprinted several PostScript files to the printer. with permission from the editors of the Dutch TUGboat Web Pages MAPS). Also scheduled for publication in the next issue is an article describing the latest Ω system. I have been working to update and complete the TUGboat web pages for inclusion in the TL4 CD. ⋄ Mimi Burbank During this process, I was overcome by guilt feel- SCRI, Florida State University, ings — because we promised to begin this process Tallahassee, FL 32306 – 4130 some time in 1996 — and somewhere toward the [email protected] end of March, I decided that we really needed to put up all of the contents files for every sin-
Figure 46: TUGboat 15:4 — the transition to produc- Figure 47: TUGboat 20:1 — TUGboat goes electronic, tion at SCRI both delivering copy to the printer, and posting on-line
fort could work as effectively across the Internet as the responsible Proceedings Editor. The first per- they could “at home”. Printing and distribution was son to take on this challenge was Christina Thiele contracted to Cadmus, a long-established printer of (Fig. 42). Many of the decisions on the style of the technical journals on the Eastern Shore of Maryland. proceedings issues grew out of Christina’s ideas and At first, physical camera copy was sent to Cad- opinions, and Christina remains to this day a valu- mus, but when they offered the capability of receiv- able member of the TUGboat editorial team. ing copy in the form of PostScript files, we tried it Articles in the first TUGboat proceedings issue out, and found that it worked (Fig. 47). TUG had were presented as a single, wide column (Fig. 43). a stable web site by this time, and TUGboat tables This validated the original contention that text of of contents had been posted regularly upon publi- such great width was difficult to read, and a modi- cation of each issue. With the routine processing of fied two-column format was introduced for the 1990 files to PostScript, and the ability to convert these proceedings (Fig. 44). With minor modifications — to a form readable with a browser, it was decided the abstract is now wider, though still less than to try to post the entire TUGboat archive on the 5 inches — this format is still in use today (Fig. 45). web site. Since some decisions regarding copyright Not only was the editorial job getting to be meant that TUG didn’t have clear title to the mate- more than I could handle and keep TUGboat on rial, this in turn meant that permission would have schedule, but the workload at the AMS print shop to be obtained from every author who had ever pub- was growing, and it was necessary to look for an- lished in TUGboat. other printer. With the help and encouragement Unfortunately, TUGboat suffered a drought of of the group that had done such a fine job with submissions, and that, along with delays in receiv- the 1994 proceedings, a production team was estab- ing files from meeting presentations, snowballed into lished. Mimi Burbank, with the support of her em- a serious production delay. The mailing permit was ployer, the Florida State University Supercomputer terminated after the 2002 volume, allowing a cut- Computations Research Institute (SCRI), provided back to three issues per year. a new production home (Fig. 46). With remote log- By 2003, PostScript files sent to the printer had ins at SCRI, everyone involved in the production ef- been supplanted by PDF files; PDF files were already
TUGboat, Volume 28 (2007), No. 1 — Proceedings of the Practical TEX 2006 Conference 45 Barbara Beeton
Figure 48: TUGboat 3:2 — macros, macros, macros Figure 49: TUGboat 13:4 — DEK and a friendly spider being posted to the TUG web site. With Mimi’s im- pending retirement (which occurred at the end of the 2005 academic year), the files archived at FSU were transferred to the TUG box hosted at Aarhus University (thanks to Kaja Christiansen), and pro- duction was transferred there. There were a few glitches — the source files for one issue were lost ow- ing to a tape backup failure — but in general, there was very little disruption, since by then everyone was used to working remotely. Karl Berry has taken over as the contact with the printer. And with his hard work, and the substitution of an issue of pro- ceedings for EuroTEX (distributed to members of most of the European groups as well as TUG), we are back on schedule. Thanks, Karl. Some random notes on content The first few issues were devoted almost entirely to reports on who was doing what, where. Macros were still relatively rare, and the ones submitted for publication were indexed for easy reference (Fig. 48). This treatment has been superseded by articles on packages, occasional analyses of interesting macro code, and “The Treasure Chest”, a list of recent ad- ditions to CTAN. METAFONT Errata listings for TEX and were Figure 50: TUGboat 3:2 — just a few output devices provided regularly in supplements, a practice that so far
46 TUGboat, Volume 28 (2007), No. 1 — Proceedings of the Practical TEX 2006 Conference How to Create a TEX Journal: A Personal Journey
ceased when it became practicable to obtain the er- TUGboat, Volume 25 (2004), No. 2 145
The command \sb{expr} or _expr gives expr as an Name Example Result rata files via a network connection. (Remember — index. The index expr should be given within braces Sine $\sin c$ Ag. unless it consists of a single token. The command _ Cosine $\cos c$ AJk. does not change the direction of expr. It can there- the Internet didn’t exist when T X was launched.) Tangent $\tan c$ A£ E fore be used only for a single token. $b{{}\sb{{17}}}+5 ; b{{}\sb{2}}+5*s{{}_b}$ Cotangent $\cot c$ AJ£ ∗ 5+ H; 5+ H Of course, major upgrades to the software and CM H 2 17 Secant $\sec s$ A¯ The empty braces {} are necessary to get the Cosecant $\csc c$ AJ¯ exponent or the index closer to the basic symbol. fonts have always been announced in TUGboat, and Arc cine $\arcsin c$ Ag. P 4.10 Common functions Arc cosine $\arccos c$ AJk. P There are symbols for the usual abbreviations rep- Don Knuth has been a significant contributor of Arc tangent $\arctan c$ A£P resenting elementary functions in use in mathemat- ics. Table 3 shows the predefined names assigned Arc cotangent $\arccot c$ AJ£P according to typographical conventions other material as well, if only in the form of tran- Arc secant $\arcsec c$ A¯P Generally, the abbreviations representing ele- Arc cosecant $\arccsc c$ AJ¯P mentary functions are used with dots. Sometimes, scribed question and answer sessions (Fig. 49). they are noted without dots. Hyperbolic sine $\sinh c$ PAg. \funwithdots + Hyperbolic cosine $\cosh c$ PA Jk $\sin c + \tan s$ A£ Ag. . The topic of output devices was very “hot” in Hyperbolic tangent $\tanh c$ \funwithoutdots PA£ A£ + Ag $\sin c + \tan s$ Hyperbolic cotangent $\coth c$ PA J£ the early days of TEX, and a recurring section con- 4.11 New function Hyperbolic secant $\sech s$ PA ¯ The command \newfunc{fname} defines a function Hyperbolic cosecant $\csch c$ PA J¯ tained reports on the devices that users had man- named fname. Arc hyperbolic sine $\arcsinh s$ PAg. P ${\newfunc{SGr}}(c) = \cos(c{{}\sp 2}) - 6$ Arc hyperbolic cosine $\arccosh c$ PAJk. P 6 − (2) = () aged to implement, and examples of output from AJk. Qª Arc hyperbolic tangent $\arctanh c$ PA £P Arc hyperbolic cotangent $\arccoth c$ PA J£P 4.12 Function defined with cases the devices. (One of my favorites was a Diablo array Arc hyperbolic secant $\arcsech c$ PA ¯P The command \cases{ } generates a function defined with different cases presented in array. Arc hyperbolic cosecant $\arccsch c$ PA J¯P $d(c) = {\cases{ daisy-wheel printer, with a driver cobbled together Logarithm $\lg c$ ñË {-4c} & {{\arhbox{ AYZa kan }} c<0} \cr { 4c} & {{\arhbox{ AYZa kan }} c>0} \cr Exponent $\exp c$ ê¯ by Timothy Murphy, although no sample was pub- {-2} & {{\arhbox{ Gyr Zlk }} } \cr }}$ Table 3: Usual functions
0 > à A¿ @X@ 4− lished.) Beginning with issue 3:2 (Fig. 50) a chart 0 < àA¿ @X@ 4 = ()X ½ËX Q « 2− The command \root{expr1 } \of {expr2 } gives the appeared in most issues; the run ended in 11:4, when expr1 root of expr2.
Mathematical Arabic symbols that stretch or ✁ shrink according to the context are provided by the $ {\root{3b} \of ∗ 3 9 H + 2 H device drivers and laser printers were no longer a system as well. {2+{\frac{b*9}{c}}}}$ 4.13 Root novelty. The command \sqrt{expr} gives the square root of expr. 4.14 Integral ${\sqrt{{{ {b*9} \over {lc} }}}} -
A decision that didn’t have a visual effect on {\sqrt{c{{}\sp 2}}} + {\sqrt{5a}}$ The command \lint_{expr1 }^{expr2 } gives the ✁