Wed 05 Oct 2016 03:31:47 PM UTC, original submission:
If an mdoc(7) .Bl -tag macro lacks the -width argument, the body indentation is calculated separately for each child .It macro. Neither the Heirloom nor the mandoc(1) implementation of the mdoc(7) language show such behaviour; both use a constant default width for the whole list in that case.
Apart from doubts whether lists with variable indentation are typographically sound in the first place, support for variable widths in groff is so restricted that it's practically useless. For each .It, the width will be the default width of whatever happens to be the leading macro after the .It, or of .No if .It is not followed by a macro. Besides, Carsten Kunze looked for real-world manuals actually using the feature and doesn't remember to find any.
I suggest removing this obscure quirk from groff rather than adding it to Heirloom and mandoc, avoiding complication of Heirloom and mandoc code and simplifying both the groff code and the groff_mdoc(7) user manual.
The attached patch was tested by doing ./bootstrap, ./configure, make, make dist, building an OpenBSD port, doing a complete formatting run over the whole corpus of all OpenBSD manuals, verifying that the output changes for none of them, as well as regenerating all target files of the mandoc test suite, which uses groff as the reference mdoc(7) implementation, verifying that none of the target files changes, plus some manual testing.
|