On 2020-11-05 12:36, Michael Kerrisk (man-pages) wrote:
So, suppose I want to produce output as follows, where XXXXXXXXX is the start of a hanging list (.TP): [[ xxx(2) System Calls Manual xxx(2) XXXXXXXXXX Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. int main(int argc, char *argv[]) { return 0; } zzz yyy xxx(2) ]] The way I currently produce that is markup something like: [[ .TH xxx 2 yyy zzz .TP XXXXXXXXXX Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. .IP .in +4n .EX int main(int argc, char *argv[]) { return 0; } .EE .in ]] Downside: in the above, I need to know whether to use .IP or .PP, depending on whether I'm currently in an indented text block. I think you are suggesting that instead, I could do something like: [[ .TH xxx 2 yyyyy zzzzz .TP XXXXXXXXXX Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. .RS .PP .RS +4n .EX int main(int argc, char *argv[]) { return 0; } .EE .RE .RE ]] I agree that this works, and has the virtue that I can consistently use .PP .RS +4n .EX ... .EE .RE everywhere. The downside is that I have to add an extra .RS/.RE pair, and that's quite a bit of mark-up to add each time (to a construct that is already quite mark-up heavy). I don't totally object to the extra mark-up, but it would be nice if there was a way to accomplish the desired result (consistent mark-up everywhere) without requiring su much mark-up.
Hi Michael, On one hand, yes, it adds some lines of markup, i.e., a bit of noise. On the other hand, I just see .RS/.RE as {/} in C scopes: they clearly delimit logic blocks of text, and also help in greatly reducing the quantity of .IP needed, needing only .PP for most things, which simplifies logic. Choose your poison :p Cheers, Alex