Skip to contentSkip to conversation

PDF book improvements

DISCUSSION Alejandro Colomar 1 participant 4 messages Aug 12, 2023 – Aug 13, 2023 Man-pages: manual pages for Linux -- Sections 2, 3, 4, 5, and 7

lore
Share & tools
lore

Alejandro Colomar

author maintainer
#0 lore raw

Hi Deri,

My end goal is to be able to embed the creation of the PDF book in the Makefiles. To that end, as a first step, I'd like to reuse part of what we already have in the Makefile. Currently, we process all files with -Tpdf, which I guess we'll be able to reuse.

     $ make build-pdf -kij >/dev/null 2>&1
     $ touch man2/gettimeofday.2 
     $ make build-pdf V=1 | sed '/^[[:upper:]]/s/^/\n/'
     PRECONV	.tmp/man/man2/gettimeofday.2.tbl
     preconv   man2/gettimeofday.2 >.tmp/man/man2/gettimeofday.2.tbl

     TBL	.tmp/man/man2/gettimeofday.2.eqn
     tbl <.tmp/man/man2/gettimeofday.2.tbl >.tmp/man/man2/gettimeofday.2.eqn

     EQN	.tmp/man/man2/gettimeofday.2.pdf.troff
     ! (eqn -Tpdf   <.tmp/man/man2/gettimeofday.2.eqn 2>&1 >.tmp/man/man2/gettimeofday.2.pdf.troff) \
     | grep ^ >&2

     TROFF	.tmp/man/man2/gettimeofday.2.pdf.set
     ! (troff -Tpdf -wbreak  -man  <.tmp/man/man2/gettimeofday.2.pdf.troff 2>&1 >.tmp/man/man2/gettimeofday.2.pdf.set) \
     | grep ^ >&2

     GROPDF	.tmp/man/man2/gettimeofday.2.pdf
     gropdf   <.tmp/man/man2/gettimeofday.2.pdf.set >.tmp/man/man2/gettimeofday.2.pdf

What part of this "pipeline" can we reuse? I guess we can reuse the .pdf.troff files. The .pdf.set files probably cannot be reused for the single book, as they'll have the page numbers and so on already set, right?

So, I'm imagining that we could cat(1) your front cover with all these files, and then process with troff(1) and gropdf(1). Does that make sense?

Could we also reuse the .pdf.set files and only run gropdf(1) on the catenation of them?

Cheers,
Alex

Signature · 2 lines
<http://www.alejandro-colomar.es/>
GPG key fingerprint: A9348594CE31283A826FBDD8D57633D441E25BB5
author maintainer
#1 lore raw
Quoted 33 lines · Alejandro Colomar

Hi Deri,

My end goal is to be able to embed the creation of the PDF book in the Makefiles. To that end, as a first step, I'd like to reuse part of what we already have in the Makefile. Currently, we process all files with -Tpdf, which I guess we'll be able to reuse.

     $ make build-pdf -kij >/dev/null 2>&1
     $ touch man2/gettimeofday.2 
     $ make build-pdf V=1 | sed '/^[[:upper:]]/s/^/\n/'
     PRECONV	.tmp/man/man2/gettimeofday.2.tbl
     preconv   man2/gettimeofday.2 >.tmp/man/man2/gettimeofday.2.tbl

     TBL	.tmp/man/man2/gettimeofday.2.eqn
     tbl <.tmp/man/man2/gettimeofday.2.tbl >.tmp/man/man2/gettimeofday.2.eqn

     EQN	.tmp/man/man2/gettimeofday.2.pdf.troff
     ! (eqn -Tpdf   <.tmp/man/man2/gettimeofday.2.eqn 2>&1 >.tmp/man/man2/gettimeofday.2.pdf.troff) \
     | grep ^ >&2

     TROFF	.tmp/man/man2/gettimeofday.2.pdf.set
     ! (troff -Tpdf -wbreak  -man  <.tmp/man/man2/gettimeofday.2.pdf.troff 2>&1 >.tmp/man/man2/gettimeofday.2.pdf.set) \
     | grep ^ >&2

     GROPDF	.tmp/man/man2/gettimeofday.2.pdf
     gropdf   <.tmp/man/man2/gettimeofday.2.pdf.set >.tmp/man/man2/gettimeofday.2.pdf

What part of this "pipeline" can we reuse? I guess we can reuse the .pdf.troff files. The .pdf.set files probably cannot be reused for the single book, as they'll have the page numbers and so on already set, right?

Quoted 6 lines

So, I'm imagining that we could cat(1) your front cover with all these files, and then process with troff(1) and gropdf(1). Does that make sense?

Could we also reuse the .pdf.set files and only run gropdf(1) on the catenation of them?

Oh, and another thing. I have a branch that uses the new MR macros. It would be interesting to use them to do the hyperlinking.

If you want to check the branch, it's here:
<http://www.alejandro-colomar.es/src/alx/linux/man-pages/man-pages.git/log/?h=MR>
However, I rebase that branch against master, to update it with any new man-page references that are introduced by new patches, so please don't rely on its stability (If you need something stable, we can agree on something).

Cheers,
Alex

Quoted 4 lines

Cheers,
Alex

Signature · 2 lines
<http://www.alejandro-colomar.es/>
GPG key fingerprint: A9348594CE31283A826FBDD8D57633D441E25BB5
author maintainer
#2 lore raw
In reply to Alejandro Colomar
Quoted 33 lines · Alejandro Colomar

Hi Deri,

My end goal is to be able to embed the creation of the PDF book in the Makefiles. To that end, as a first step, I'd like to reuse part of what we already have in the Makefile. Currently, we process all files with -Tpdf, which I guess we'll be able to reuse.

     $ make build-pdf -kij >/dev/null 2>&1
     $ touch man2/gettimeofday.2 
     $ make build-pdf V=1 | sed '/^[[:upper:]]/s/^/\n/'
     PRECONV	.tmp/man/man2/gettimeofday.2.tbl
     preconv   man2/gettimeofday.2 >.tmp/man/man2/gettimeofday.2.tbl

     TBL	.tmp/man/man2/gettimeofday.2.eqn
     tbl <.tmp/man/man2/gettimeofday.2.tbl >.tmp/man/man2/gettimeofday.2.eqn

     EQN	.tmp/man/man2/gettimeofday.2.pdf.troff
     ! (eqn -Tpdf   <.tmp/man/man2/gettimeofday.2.eqn 2>&1 >.tmp/man/man2/gettimeofday.2.pdf.troff) \
     | grep ^ >&2

     TROFF	.tmp/man/man2/gettimeofday.2.pdf.set
     ! (troff -Tpdf -wbreak  -man  <.tmp/man/man2/gettimeofday.2.pdf.troff 2>&1 >.tmp/man/man2/gettimeofday.2.pdf.set) \
     | grep ^ >&2

     GROPDF	.tmp/man/man2/gettimeofday.2.pdf
     gropdf   <.tmp/man/man2/gettimeofday.2.pdf.set >.tmp/man/man2/gettimeofday.2.pdf

What part of this "pipeline" can we reuse? I guess we can reuse the .pdf.troff files. The .pdf.set files probably cannot be reused for the single book, as they'll have the page numbers and so on already set, right?

Quoted 6 lines

So, I'm imagining that we could cat(1) your front cover with all these files, and then process with troff(1) and gropdf(1). Does that make sense?

Could we also reuse the .pdf.set files and only run gropdf(1) on the catenation of them?

I added a script to sort these files, as you do with your sortman() perl function. I called it sortman too :)

$ cat scripts/sortman 
#!/bin/sh

# Copyright 2023, Alejandro Colomar <[email protected]> # SPDX-License-Identifier: GPL-3.0-or-later

export LC_COLLATE=en_US.UTF-8;

sed -E '/\/intro./ s/.*\.([1-8])$/\10\t&/' \

| sed -E '/\/intro./!s/.*\.([1-8])$/\11\t&/' \
| sed -E '/\/intro./!s/.*\.([1-8].+)/\1\t&/' \
| sort \
| cut -f2;

We'll probably need this to sort the files in the shell.

Quoted 4 lines

Cheers,
Alex

Signature · 2 lines
<http://www.alejandro-colomar.es/>
GPG key fingerprint: A9348594CE31283A826FBDD8D57633D441E25BB5
author maintainer
#3 lore raw

[linux-man book] Fonts from a library (was: PDF book improvements)

In reply to Alejandro Colomar

Hi Deri,

Is there any chance we could use a font that is installed with the system (Debian would be good)? I'd also like to be able to remove the font from our source repository, if possible.

Cheers,

Alex

Signature · 2 lines
<http://www.alejandro-colomar.es/>
GPG key fingerprint: A9348594CE31283A826FBDD8D57633D441E25BB5