On Thu, Oct 07, 2021, G. Branden Robinson wrote: > At 2021-10-06T00:31:56-0400, Peter Schaffter wrote: > > I believe groff needs a dedicated request for unambiguous absolute > > spacing . > I didn't play with your demo yet, but the first thing that comes to my > mind is that a _request_ might not be the best syntactical place to > locate this extension from a language design standpoint. Might it make > more sense as a new measurement modifier?
Quite possibly. > As "|" means "absolute" (in its idiosyncratic way) maybe the > reckoning you're proposing could use a prefix of "@". At first glance, a good choice. '.sp @2i' But see below. > It doesn't need composability with "|", if I understand you, and > outside of the few places where "|" is already recognized, it > doesn't need to be exposed anywhere else. There's the problem of .rt, though, when it's called without an argument. When it has an arg, it might as well be .sp, so the proposed @ works. Without an arg, how do we signal "return unambiguously to the last .mk'd location," which, moreover, is .rt's expected behaviour, according to the info docs: "The 'rt' request returns _upwards_ to the location marked with the last 'mk' request." So we'd still need a new request. Maybe .@rt if @ is adopted for .sp? Or a new arg? '.rt @'? Or the .rt issue could be swept under the carpet with some additional documentation. The info bit, above, with "...subject to variations in vertical spacing that may be introduced by outputting diverted material whose vertical spacing differs from the one in effect when .rt is called." I'm being ironic, of course, but it does expose the scope of the problem. > The other question that troubles me, as many of you will have predicted, > is one of lexicon. Me, too. > What are we going to _call_ these "|" and "@" modifiers? We can > take over "absolute positioning" for "@" if we want, and document > our deviation from CSTR #54 in a footnote[2]. Maybe the harder > problem is what to then call the "|" modifier that we will have to > continue to support indefinitely. "Absolute positioning" is an Orwellianism. '.sp 1i' is absolute; '.sp |1i' is relative (to the top of the page). I wouldn't recommend it. Perhaps there's no need to call | and @ by different names. They (would) do the same thing, just a little differently: "The DIST arg to 'sp' accepts two modifiers, '@' and '|'. '@' positions what follow relative to the top of the page. '|' positions what follows relative to the top of the page plus one linespace." But there's still the .rt problem. -- Peter Schaffter https://www.schaffter.ca