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: T. Kurt Bond
Subject: Re: Footnote line length ratio to current line length
Date: Fri, 13 Nov 2020 13:59:27 -0500

Is there any chance of the footnote ratio change I discuss getting in the
upcoming groff release?  Should I add it as a bug at savannah.gnu.org?

On Thu, Aug 6, 2020 at 11:53 AM T. Kurt Bond <tkurtbond@gmail.com> 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
>


-- 
T. Kurt Bond, tkurtbond@gmail.com, https://tkurtbond.github.io


reply via email to

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