8

Setting \topskip to 0pt confuses LaTeX's \clearpage command and results in an extra blank page. This has been known since forever. Apparently some think that

there's no reason to set \topskip to 0pt, so this is not considered a bug.

Yet there's no shortage of ugly workarounds, challenging this claim, like in the very linked page

The lesson is: Don't set \topskip = 0pt, rather set it to, say, 0.01pt. Nobody will be the wiser but LaTeX.

Apparently people do need this setting from time to time for reasons the author of the first quote simply swiped off the table and the issue keeps popping up surprising users. I myself discovered this when I wished to reach the edges of the page with pixel accuracy. As soon as \topskip is nonzero it will mess with such things, because even though it is fixed (even though negligible), nontrivial content-dependent calculations will take place (The TeXBook p. 114):

... TeX inserts special glue just before the first box on each page. This special glue is equal to \topskip, except that the natural space has been decreased by the height of the first box, or it has been set to zero in lieu of a negative value.

Should zero topskip indeed be considered a taboo? If so, why? (The TeXBook gives no reason why it shouldn't be any possible dimen, except that negative does not make much sense.)

Update

OK, my premise is wrong. Because of the old newsgroup post and another answer on this very site, I thought that this was well-known behaviour. The answers here confirm that

  • it is a bug,
  • it is not being tracked.

The reason indeed was curiosity, not in the least emotions like anger. I'm voting to delete this because in these circumstances it does not function as a question it was meant to be. I hope this won't cost people earned points. Sorry for the inappropriate form.

9
  • 6
    In certain circumstances you have to set \topskip more than the default value. If you're writing in Vietnamese, for example, \topskip should be set to at least 11.36pt (this is font dependent though). Without seeing your specific problem, this seems more like a rant than a question.
    – egreg
    Jun 21 '20 at 10:23
  • I wonder if this has anything to do with tex.stackexchange.com/questions/435361/… Jun 21 '20 at 16:22
  • What happens if you do \setlength{\topskip}{1sp} ? Jun 21 '20 at 16:33
  • 1
    Why did you post this on TeX.SE? The vast majority of users of this site are not LaTeX developers and have no connection to anyone in the LaTeX development team. A quick Google search with the keywords "latex", "bug" and "reporting" immediately leads to the Bugs in LaTeX software webpage of the LaTeX3 project. While you're at it reporting the bug, by all means make sure to ask indignantly, Why [insert expletive of choice] has the “zero topskip” bug in LaTeX not been fixed over 30 years? Who knows, somebody on the team might actually know the answer...
    – Mico
    Jun 21 '20 at 21:07
  • 1
    So, did you report the bug :-)
    – Aditya
    Jun 23 '20 at 14:31
13

It has not been fixed because it has never been reported. I found in the bug database a few hits about problems with \topskip in twocolumn mode (for which a check has then been added) but nothing about your example.

It is a common problem that people prefer to complain about a bug instead of doing something to try to resolve it - in this case: to look for the LaTeX bug tracker and to add an issue.

Beside this there is a comment in classes.dtx about topskip:

The \topskip is the \baselineskip for the first line on a page; LaTeX's output routine will not work properly if it has the value 0pt, so do not do that!

1
  • 7
    The first link in the question states that this is (was) on a bug list of Leslie Lamport.
    – The Vee
    Jun 21 '20 at 17:15
6

(This is in some ways a supplement to Ulrike Fischer’s answer, but too substantial to be a comment.)

The development of LaTeX is not an opaque mystery that we can only investigate by asking initiates. It happens openly on Github and you can look at that in much detail as you like. In particular, the procedure for reporting bugs is quite straightforward, and the databases of previously reported bugs are quite easy to search.

As in Ulrike Fischer’s answer, it looks to me like the answer to your first question is this bug hasn’t been fixed because it hasn’t been reported. So I suggest you report the bug, following the instructions at the links above. Hopefully, once the developers have time to respond to your report, you will then either get a fix for the bug, or a more detailed explanation of why the developers think this isn’t a bug (or otherwise shouldn’t be fixed). In either case, you can then post that response here as a full answer to this question.

0

Not the answer you're looking for? Browse other questions tagged or ask your own question.