URI: 
       Avoid orphans in PDF. - tgtimes - The Gopher Times
  HTML git clone git://bitreich.org/tgtimes git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/tgtimes
   DIR Log
   DIR Files
   DIR Refs
   DIR Tags
   DIR README
       ---
   DIR commit 1002873261d2894759c9e5854cfdf7568ad8e29e
   DIR parent c09232171a4703120c1aa9af28c3ae6b3f3a6f36
  HTML Author: Troels Henriksen <athas@sigkill.dk>
       Date:   Tue,  8 Aug 2023 22:14:14 +0200
       
       Avoid orphans in PDF.
       
       Signed-off-by: Christoph Lohmann <20h@r-36.net>
       
       Diffstat:
         M Makefile                            |       2 +-
         A filters/nudge.filter                |      28 ++++++++++++++++++++++++++++
       
       2 files changed, 29 insertions(+), 1 deletion(-)
       ---
   DIR diff --git a/Makefile b/Makefile
       @@ -38,7 +38,7 @@ rawptxtfiles=${rawfiles:.raw=.ptxt}
        
        
        ${tgtimes}.txt: ${mdptxtfiles} ${txtptxtfiles} ${rawptxtfiles}
       -        cat opus${v}/?-*.ptxt > ${tgtimes}.txt
       +        cat opus${v}/?-*.ptxt | filters/nudge.filter > ${tgtimes}.txt
        
        
        ${tgtimes}.pdf: ${tgtimes}.txt
   DIR diff --git a/filters/nudge.filter b/filters/nudge.filter
       @@ -0,0 +1,28 @@
       +#!/usr/bin/env -S awk -f
       +#
       +# Insert blank lines between sections to avoid ugly orphans in PDF
       +# output.
       +
       +BEGIN {
       +    LINES_PER_PAGE=73 # Determined by observation.
       +    MAX_SPACING=5 # Max empty we wish to allow at bottom of page.
       +
       +    line=0
       +    incontent=1
       +}
       +
       +/./ {
       +    if (incontent == 0) {
       +           spaces=LINES_PER_PAGE - line % LINES_PER_PAGE + 1;
       +           if (spaces < MAX_SPACING) {
       +                  for (i = 0; i < spaces; i++) {
       +                      print "";
       +                      line++;
       +                  }
       +              }
       +           incontent = 1;
       +    }
       +}
       +/^$/ { incontent = 0; }
       +{ print $0; line++; }
       +