Doc: fix remaining over-length entries in SQL keywords table.
authorTom Lane <[email protected]>
Tue, 12 May 2020 00:03:55 +0000 (20:03 -0400)
committerTom Lane <[email protected]>
Tue, 12 May 2020 00:03:55 +0000 (20:03 -0400)
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

doc/src/sgml/generate-keywords-table.pl

index 5aa1c39d2abf9e193713cee0ec9b270cba46c8b3..824b324ef78a4dc876d30f880069c3119f9f9978 100644 (file)
@@ -82,8 +82,13 @@ END
 
 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'})