Uwe Lück – “TeX Macro Writer”

My TeX package projects

1. What TeX packages are (skip if you know): TeX is a very powerful multi-platform typesetting program. “Power” includes:

TeX’s power on the other hand means:
  • The TeX program almost cannot be handled without user interfaces consisting of packages of macros (those introducible “commands”).
  • The behaviour of these macros and the TeX program is typically so complex that even experts sometimes must work very hard to figure out what is going on.
Thus a macro package usually is a user interface for special purposes; yet there are also macro packages that don't introduce special commands but just change settings. LaTeX is the mostly used general purpose macro package.

2. Packages I maintain on CTAN, the internet repository of TeX-related software:

  • ednotes.sty  for typesetting critical editions in the classical manner. (My main work, initial idea of implementation Christian Tapp’s; see works that used ednotes.sty.)
  • lineno.sty  numbers lines of text and allows referring to them by their numbers. This is essential for ednotes.sty; but the package is also used for the revision process of submissions, cf. Elsevier’s recommendations. (Mainly Stephan I. Böttcher’s work, extension to tables based on his and Christian's ideas, my extension on capacity for large editions with many notes per page.)
  • The nicetext bundle   txt-to-latex and filtering functionality especially for easy package documentation with “minimal” markup (presentation needs to be improved).
  • versions.sty  allows switching between “versions” of a document, typeset from the same source, by changing settings in one or two lines, maybe brief vs. extended, English vs. Spanish, or exercises with/without answers. (Reimplementation of old version.sty.)
  • tamefloats.sty  LaTeX's output routine likes to misplace footnotes in presence of figures or margin notes. TeX 3 provided a remedy \holdinginserts which LaTeX however hasn't used so far. tamefloats.sty is a patch doing so. The package seems to be an improvement (I received one assertion), yet not the entire solution.
  • ltabptch.sty  a patch to longtable to repair uneven vertical spacing.
  • autoarea.sty  a tool for PiCTeX which is a package for drawing figures.

3. Pending work: There are some compatibility-related issues probably needing much work; I have also made a number of new features working fine at my workplaces—while needing additional efforts to prepare public releases of them. I am listing these issues here in hope for support without which I am unable to master them.

  • lineno.stycan be used together with the following packages (in the sense that all the text of a document can be compiled), yet sometimes not with the desired outcomes. lineno.sty may, e.g., occasionally disable features of other packages. Such issues have even been discussed in internet forums (without telling the maintainers).
    • amsmath.sty (American Mathematical Society) — almost inevitable standard in scientific publishing, but lineno.sty doesn't number its equation arrays properly.
    • multicol.sty especially for switching between one- and two-column-mode in mid page with line numbers in the page margins.
    • hyperref.sty (hypertext support) marking anchors by colours or frames seems not to work properly.
    • lineno.sty documentation as well as its CTAN directory need some actualization and transparent reorganization (cf. below).
    • Journal classes:
      • American Physical Society: revtex4 —  compatibility issues, worked out privately.
      • Elsevier: on the one hand, there seems to be elsarcticle.cls on CTAN; on the other, there seems to be a new class elsart.cls available from Elsevier’s pages only, being not as cooperative with lineno.sty as elsarticle once was. One of them seems to be active now, not the other — I am unable to find out which …
  • Around lineno.sty:
    • wrapfig functionality:  This at present is part of a private version of lineno.sty that was used in Volume III/3 of the German Nicolaus-Copernicus-Gesamtausgabe to let text flow around redrawings of the figures in Copernicus’ De revolutionibus. Because of changing page breaks, the figures had to be repositioned within paragraphs several times, they were some 140. With wrapfig.sty, such a change needs knowing and respecting the line breaks. With lineno’s enhancement, one just enters the number of the line where the figure should be inserted into a paragraph. It would be quite simple to place it automatically at the top of the next page if it doesn't fit on the present page (this may not work in all cases). In a later future, there might be a reduced version of lineno.sty that just provides this functionality, without numbering lines and referring to them.
    • Documentation and package management:  I am working at macros for producing high-quality documentation from “old-style”, simple almost ASCII documentations of TeX packages without the heavy doc.sty machinery, to be applied to those maintained by myself in the first instance. The present state of this is the nicetext bundle, documenting itself this way. lineno.pdf should become another application. So far, it has been made with AWK. I am replacing AWK (as well as Perl for more general applications) with something following the philosophy of docstrip.tex
    • \includeonly bug fix:  It seems that each change of \includeonly crashes.
    • Long lemmas:  (Apparently related to previous problem) ednotes.sty doesn't properly support referring to text that spans paragraphs or more (e.g., entire chapter) is missing; my tries in own work were not stable enough to be released, it is a matter of choosing a nice syntax as well. (A preliminary, privately distributed parlemma.sty as of 2009-03-04 seems to solve this.)
    • Margin notes to tables (just a release is missing, mainly for critical editions):  edtable.sty so far has been an enhancement of lineno.sty (in the latter’s CTAN directory) for dealing with tables and as such an enhancement of ednotes.sty for critical editions as well; my private version of it now is a standalone enhancing Markus Kohm’s marginnote.sty.
    • parallel.sty functionality or compatability (translations or synopses, parallel text passages facing each other on left/right pages or left/right columns).
    • Line numbers in index:  Some users have a private version of this, to be released.
I may already have spent unreasonably much time with some of these projects without having been paid. If single jobs listed above can be carried out in a few hours, the major task remains that they at present should not be released one by one, rather there should be one new release of lineno.sty and ednotes.sty at once.

4. Abilities as a consultant: My TeX- and typography-related knowledge and abilities include:

  • typographical principles;
  • markup commands;
  • obtaining special symbols (have you noticed I am using typographical versions of dashes, apostrophes, quotation marks, spaces here?);
  • shaping tables;
  • internal processes of TeX and LaTeX (I have studied the TeXbook, which is the main TeX manual, and the LaTeX code);
  • finding existing special packages for special purposes;
  • years of practice with math and other sciences formulas as well as with critical text editions;
  • Engagement on the texhax mailing list, to answer or discuss ‘how-to’ or ‘why’ questions on TeX and LaTeX. texhax also keeps me in touch with new developments and technologies that I haven't tried myself so far.
  • for languages, cf. my German Wikipedia homepage (mainly German, English, Latin).
Mixed abilities:  My knowledge of internals of platforms may be limited, although worked on [CPM,] DOS, Atari, Apple MacIntosh stages, MS Windows stages, UNIX/Linux or of other programs than TeX (did some BASIC, Assembler, PASCAL programming, some office applications, some importing and reworking of graphics). My programming tools and environments are rather primitive. (However, I work with Alexander Gröpl’s outline editor xEDIT which provides powerful shorthand mechanisms!)

Until I have finished certain projects, I will only take part-time or freelance jobs. I hope to resume scientific work (mathematics, philosophy) instead of mainly working on TeX.

To top of page

This page as of Sep 22, 2009

Webmaster: Rainer Lück, Gernsbach
Supported by: A la Siesta Hängematten und Kunsthandwerk, Berlin/Wismar/Helgoland.