Even after the tweaking I did in commit
5545b69ae, some of the
longer keywords mentioned in the SQL standard don't fit the
available space in PDF output.
I experimented with various solutions like putting such keywords
on their own table lines, but everything looked ugly or confusing
or both; worse, the weirdness also appeared in the HTML version,
which (normally) doesn't need it.
The best answer seems to be to insert &zwsp; into long keywords
so that they can be broken into two lines when, and only when,
needed. It doesn't look too awful if the break happens after
an underscore --- and fortunately, all the problematic keywords
have underscores.
Discussion: https://postgr.es/m/6916.
1589146280@sss.pgh.pa.us
foreach my $word (sort keys %keywords)
{
+ # Insert zwsp's into very long keywords, so that they can be broken
+ # into multiple lines in PDF format (or narrow HTML windows).
+ my $printword = $word;
+ $printword =~ s/_/_&zwsp;/g if (length($printword) > 20);
+
print " <row>\n";
- print " <entry><token>$word</token></entry>\n";
+ print " <entry><token>$printword</token></entry>\n";
print " <entry>";
if ($keywords{$word}{pg}{'unreserved'})