[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Inconsistent interline space in multitable
From: |
Akim Demaille |
Subject: |
Re: Inconsistent interline space in multitable |
Date: |
Fri, 19 Jul 2019 08:02:19 +0200 |
> Le 18 juil. 2019 à 15:51, Gavin Smith <address@hidden> a écrit :
>
> On Thu, Jul 18, 2019 at 8:04 AM Akim Demaille <address@hidden> wrote:
>> Thanks for the suggestion. I have removed all the trailing @tab, and space
>> between rows is now consistent. It looks like a workaround to me, but it's
>> effective. However, the space between the title and the first row is
>> smaller than the one between rows. And, imho, it does not look very nice:
>
> Are you sure you had a blank line in the source after the @headitem
> line? I don't get the same output as you; I get a blank space after
> the @headitem row.
Ah! I finally now understand the importance of these empty lines, thanks!
You did refer to it in your previous message, but I had not fully understood
the implications.
So it appears that the real fix is to get rid of the inter-@item empty lines.
Then I can even leave all the @tab.
I'm installing the following commit in Bison. Thanks!
commit 220c593a79e4b5320350ab2f7f1b54765e091666
Author: Akim Demaille <address@hidden>
Date: Fri Jul 19 07:32:51 2019 +0200
doc: avoid spurious empty lines in the option table
In Texinfo. empty lines in multitable rows generate empty lines in the
output. Avoid them altogether.
With help from Gavin Smith.
https://lists.gnu.org/archive/html/bug-texinfo/2019-07/msg00000.html
* build-aux/cross-options.pl: Separate rows with empty lines.
So, to be more readable, generate a single line for each row.
Use Perl format to this end.
diff --git a/build-aux/cross-options.pl b/build-aux/cross-options.pl
index 3dce3407..9552c278 100755
--- a/build-aux/cross-options.pl
+++ b/build-aux/cross-options.pl
@@ -12,7 +12,7 @@ while (<STDIN>)
{
if (/^\s* # Initial spaces.
(?:(-\w),\s+)? # $1: $short: Possible short option.
- (--[-\w]+) # $2: $long: Long option.
+ (--[-\w]+) # $2: $long: Mandatory long option.
(\[?) # $3: $opt: '[' iff the argument is optional.
(?:=(\S+))? # $4: $arg: Possible argument name.
\s # Spaces.
@@ -32,7 +32,6 @@ while (<STDIN>)
# if $opt, $arg contains the closing ].
substr ($arg, -1) = ''
if $opt eq '[';
- $arg =~ s/^=//;
$arg = lc ($arg);
my $dir_arg = $arg;
# If the argument is complete (e.g., for --define[=NAME[=VALUE]]),
@@ -72,12 +71,15 @@ while (<STDIN>)
my $sep = '';
foreach my $long (sort keys %option)
{
- # Avoid trailing spaces.
- print $sep;
- $sep = "\n";
- print '@item @option{', $long, "}\n\@tab";
- print ' @option{', $option{$long}, '}' if $option{$long};
- print "\n\@tab";
- print ' @code{', $directive{$long}, '}' if $directive{$long};
- print "\n";
+ # Couldn't find a means to escape @ in the format (for @item, @tab), so
+ # pass it as a literal to print.
+format STDOUT =
+@item @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @tab
@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< @tab
@<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
+{
+ '@', '@option{' . $long . '}',
+ '@', $option{$long} ? ('@option{' . $option{$long} . '}') : '',
+ '@', $directive{$long} ? ('@code{' . $directive{$long} . '}') : ''
+}
+.
+ write;
}