From 4d1563717fb1860168a40b852e1d61a33ecdd62f Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 11 May 2020 20:03:55 -0400 Subject: [PATCH] Doc: fix remaining over-length entries in SQL keywords table. 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 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/doc/src/sgml/generate-keywords-table.pl b/doc/src/sgml/generate-keywords-table.pl index 5aa1c39d2a..824b324ef7 100644 --- a/doc/src/sgml/generate-keywords-table.pl +++ b/doc/src/sgml/generate-keywords-table.pl @@ -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 " \n"; - print " $word\n"; + print " $printword\n"; print " "; if ($keywords{$word}{pg}{'unreserved'})