groff
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Footnote line length ratio to current line length


From: Larry McVoy
Subject: Re: Footnote line length ratio to current line length
Date: Thu, 6 Aug 2020 17:29:19 -0700
User-agent: Mutt/1.5.24 (2015-08-30)

For what it is worth, I like this idea (and the fact a patch was included).
It's always sort of bugged me that it limits it to 5/6, I'm sure there
was a reason but I think it should match line length.

On Thu, Aug 06, 2020 at 11:53:38AM -0400, T. Kurt Bond wrote:
> groff_ms(7) says that changing the number register FL is effective at
> the next footnote.  That seems to be true only for one column text.
> 
> In multicolumn text you have to change the undocumented fn:MCLL after
> calling .MC.  fn:MCLL is an alias for the number register pg@fn-colw,
> which is set when .MC is called.  (.2C calls .MC to do the work, so
> we only have to worry about .MC.)
> 
> Is fn:MCLL intended to be ms internal use only, or is intended to be
> available to users?
> 
> If you don't set either FL or fn:MCLL the groff ms macros default to
> making the footnote length 5/6 the length of the current line length.
> 
> I don't like having the line length of the footnotes only 5/6 the
> width of the columns: I like them to be the full width of the current
> line, whether that is in one column mode or multicolumn mode.  I'd
> like to be able to change that default, to avoid having to change the
> footnote line length in multicolumn mode using the undocumented
> fn:MCLL.
> 
> I propose adding a string variable, FR (footnote ratio), that defaults
> to to 5/6 for compatibility and replaces the uses of the literal 5/6
> for setting footnote line length.  You can set this at the beginning
> of your document, or before each .MC or .2C.  For my use I'd always
> set it to 1, making the footnote line length the same as the line
> length.
> 
> (I think making setting FR effective before the next footnote, like
> setting FL in one column mode, would take rewriting par@reset to
> recalculate fn:MCLL every time, instead of just after a .MC.)
> 
> Here's a patch:
> ===== footnote-ratio.patch =================================
> diff --git a/doc/groff.texi b/doc/groff.texi
> index 75b08a5f..f72bda49 100644
> --- a/doc/groff.texi
> +++ b/doc/groff.texi
> @@ -2774,6 +2774,15 @@ Effective: next footnote.
>  Default: @math{@code{@\n[PD]} / 2}.
>  @endDefmpreg
>  
> +@DefstrList {FR, ms}
> +Defines the ratio of the footnote line length to the current line
> +length.
> +
> +Effective: start of document or before each @code{.MC} or @code{.2C}.
> +
> +Default: @math{5/6}.
> +@endDefmpreg
> +
>  @unnumberedsubsubsec Miscellaneous Number Registers
>  
>  @Defmpreg {MINGW, ms}
> diff --git a/tmac/groff_ms.7.man b/tmac/groff_ms.7.man
> index 83a6cefc..858ad699 100644
> --- a/tmac/groff_ms.7.man
> +++ b/tmac/groff_ms.7.man
> @@ -235,15 +235,23 @@ cb   cb cb cb
>  lfCW l  l  l.
>  Reg. Definition      Effective       Default
>  _
> -FL   Footnote length next footnote   \[rs]n[LL]*5/6
> +FL   Footnote length T{
> +next footnote; not effective in multicolumn mode
> +T}   \[rs]n[LL]*\[rs]*[FR]
>  FI   Footnote indent next footnote   2n
>  FF   Footnote format next footnote   0
>  FPS  Point size      next footnote   \[rs]n[PS]\-2
>  FVS  Vert.\& spacing next footnote   \[rs]n[FPS]+2
>  FPD  Para.\& spacing next footnote   \[rs]n[PD]/2
> +FR   Footnote ratio  T{
> +before first paragraph, or before each .MC
> +T}   5/6
>  _
>  .TE
>  .RE
> +.LP
> +Note that \f[CW]FR\fP is a string variable and should be set with  the
> +\fBds\fP request.
>  .
>  .LP
>  .ne 6
> diff --git a/tmac/s.tmac b/tmac/s.tmac
> index 180a9f81..8f03878f 100644
> --- a/tmac/s.tmac
> +++ b/tmac/s.tmac
> @@ -514,7 +514,7 @@ along with this program.  If not, see 
> <http://www.gnu.org/licenses/>.
>  .DEVTAG ".mc \\n[pg@ncols] \\n[pg@colw] \\n[pg*gutw]"
>  .ns
>  .nr pg*col-num 0
> -.nr pg@fn-colw \\n[pg@colw]*5/6
> +.nr pg@fn-colw \\n[pg@colw]*\\*[FR]
>  .par@reset
>  .mk pg*col-top
>  ..
> @@ -1077,7 +1077,7 @@ along with this program.  If not, see 
> <http://www.gnu.org/licenses/>.
>  .\" happens when the first page begins
>  .de par@init
>  .if !rLT .nr LT \\n[LL]
> -.if !rFL .nr FL \\n[LL]*5/6
> +.if !rFL .nr FL \\n[LL]*\\*[FR]
>  .if !rVS \{\
>  .    ie (\\n[PS] >= 1000) \
>  .            nr VS (\\n[PS] + 2000)
> @@ -1419,7 +1419,9 @@ along with this program.  If not, see 
> <http://www.gnu.org/licenses/>.
>  .\" but allow ".SH n" to make heading point size match ".NH n",
>  .\" for same "n", when \n[GROWPS] and \n[PSINCR] are set.
>  .  nr sh*psincr 0
> -.  if 0\\$1>0 .nr sh*psincr (\\n[GROWPS]-0\\$1)*\\n[PSINCR]
> +.  if 0\\$1>0 \{\
> +.    nr sh*psincr (\\n[GROWPS]-0\\$1)*\\n[PSINCR]
> +.\}
>  .  SH-NO-TAG
>  .  DEVTAG-SH 1
>  .  if '\*(.T'html' .nr need_eo_h 1
> @@ -1498,6 +1500,8 @@ along with this program.  If not, see 
> <http://www.gnu.org/licenses/>.
>  .ds par@sup-end \v'-.7m\s0+.9m'
>  .als } par@sup-end
>  .\" footnote paragraphs
> +.\" FR is the footnote ratio to the line length
> +.ds FR 5/6
>  .\" FF is the footnote format
>  .nr FF 0
>  .\" This can be redefined. It gets a second argument of 'no' if the
> ============================================================
> 
> -- 
> T. Kurt Bond, tkurtbond@gmail.com

-- 
---
Larry McVoy                  lm at mcvoy.com             
http://www.mcvoy.com/lm 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]