commit - 1e829e7fb656f9c37c9d1b0734b18fcbca36622a
commit + cbe9506ccba945b561430b5fb0c961304d0cc85c
blob - f4d2905e123cb87b779e051c66379dbf8b4107c3
blob + 329e26538442eb53f2d61c3d546a71cec7911124
--- .gitignore
+++ .gitignore
bak/
-title.ps
-dw.ps
-dw.fb.pdf
-dw.body.pdf
+dw*.fb.pdf
+dw*.body.pdf
blob - 1332bb4d4490c22c1508ca50669d061a8b556958
blob + 0313180beb1a2c1fe0cc84a36892757ef52df2dd
--- Makefile
+++ Makefile
# export TROFFONTS=$FB/Liberation:$FB/ibm-plex:$FB/misc
# export MANPATH=/usr/local/heirloom-doctools/man:
-TARGETS = title.pdf dw.pdf dw.fb.a4 dw.body.a4
-INTERMS = title.ps dw.ps dw.fb.pdf dw.body.pdf
+.MAIN: all
+.PHONY: all clean dw
-.PHONY: all clean
-all: ${TARGETS}
+.if "${W}" == ""
+DW = dw
+WL = diceware.wordlist
+.else
+DW = dw_${W}
+WL = ${W}.wordlist
+.endif
+
+TARGETS = ${DW}.pdf ${DW}.fb.a4 ${DW}.body.a4
+TOCLEAN = ${TARGETS} ${DW}.fb.pdf ${DW}.body.pdf
+
+all: title.pdf dw
+dw: ${TARGETS}
+
+.for W in beale eff dys2p
+dw = dw_${W}
+.PHONY: ${dw}
+${dw}:
+ ${MAKE} W=${W} dw
+all: ${dw}
+TOCLEAN :+= ${dw}.pdf ${dw}.fb.a4 ${dw}.body.a4 ${dw}.fb.pdf ${dw}.body.pdf
+.endfor
+
clean:
- rm -f ${TARGETS} ${INTERMS}
+ rm -f ${TOCLEAN}
-dw.ps: difficulty.eps
# dw.pdf is assumed to have 80 pages: 4 front matter, 72 body, 4 back matter
-dw.fb.pdf: dw.pdf
- psselect 1-4,77-80 dw.pdf dw.fb.pdf
-dw.body.pdf: dw.pdf
- psselect 5-76 dw.pdf dw.body.pdf
+${DW}.fb.pdf: ${DW}.pdf
+ psselect 1-4,77-80 ${DW}.pdf ${DW}.fb.pdf
+${DW}.body.pdf: ${DW}.pdf
+ psselect 5-76 ${DW}.pdf ${DW}.body.pdf
+${DW}.pdf: difficulty.eps ${WL}
+ W=${W} troff -mpictures dw.troff | dpost | ps2pdf - $@
-.SUFFIXES: .troff .ps .pdf .a4
-.troff.ps:
- troff -mpictures $< | dpost > $@
-.ps.pdf:
- ps2pdf $< $@
+.SUFFIXES: .troff .pdf .a4
+.troff.pdf:
+ troff $< | dpost | ps2pdf - $@
+
# making an a6 booklet from a4 paper:
# - sort a6 pages into 4-page (1-sheet) signatures (for short-edge duplex)
# - put the a6 pages onto a5 (2-up)
blob - 6a5de7fc444789c4b25e9088ffa6d667bd9fe62f
blob + 816e89f7cef55abed0ad604193880f2c23e950f9
--- README
+++ README
+\\\
+ \\\ Typesetting Diceware Word Lists
+ \\\
-\\\ Typesetting Diceware Word Lists
- \\\
-
The Makefile in this directory creates the following files.
Note: This stuff is written to work on my OpenBSD system. YMMV.
Body of dw.pdf on A4 sheets, for duplex printing.
PDF format (never mind the extension).
+dw_beale.*
+dw_eff.*
+dw_dys2p.*
+ Same as above using other word lists (see below).
+
title.pdf
A title page for Reinhold's original word list PDF.
Set in Liberation Sans to approximate the original's Helvetica.
/usr/local/share/fonts/Liberation to TROFFONTS.
+WORD LISTS
+
+diceware.wordlist Original word list by Arnold Reinhold
+beale.wordlist Alternative word list by Alan Beale
+eff.wordlist EFF word list (five-dice version)
+german.wordlist German word list by Benjamin Tenne
+dys2p.wordlist Mnemonic German word list by dys2p
+
+
+PRINTING
+
The .a4 files assume duplex printing where the paper is turned around
("tumbles)" along the short edge. After printing, cut each sheet in half
to make A5 sheets, then fold or cut each A5 sheet in the middle to produce
blob - ed57d12e4a21b38e4c769004837f8569eafcceb4
blob + f3522c768049c498462bf6156118273b93c11417
--- dw.troff
+++ dw.troff
.fp 2 I IBMPlexSans-Italic otf
.fp 3 B IBMPlexSans-Medium otf
.fp 0 M IBMPlexMono-Regular otf
+.sentchar \" no extra space between sentences
.
+.\" input file name
+.ie '\VW'' .ds WL diceware.wordlist
+.el .ds WL \VW.wordlist
+.
.\" --- title page ---
.sp |5c
.ps 10
.vs 14
.ce 2
-\fBdiceware.com\fP
+.ft B
+.ie '\VW'' diceware.com
+.el .ie '\VW'beale' Beale
+.el .ie '\VW'eff' EFF
+.el .ie '\VW'de-7776' de-7776
+.el
+.ft
+.sp 3p
Dice-Indexed Passphrase Word List
.ps
.bp
.nr C 0 1 \" column counter
.wh 36u*\n(.vu+\n(HDu fo
.nf
-.so diceware.wordlist
+.so "\*(WL" \" read wordlist file
.fi
.ch fo \" no more page numbers
.ll 10.5c-(2u*\n(MGu) \" line length = page width - margins
\(em Randall Munroe
.bp
.
-.\" --- fine print ---
-.sp |11c
-.nf
+.\" --- colophon ---
+.sp |10c
+.na
.ps 6
-.\" XXX get wordlist file name from environment?
-
-Word list by Arnold Reinhold, CC-BY 4.0. [\fMdiceware.wordlist\fP]
+.sp
+.ie '\VW'' \{
+.sp
+Word list by Arnold Reinhold, CC-BY 4.0.\}
+.el \{
+Based on Diceware by Arnold Reinhold, \fBdiceware.com\fP.
+.br
+.feature R +zero \" slashed zero, just for CC0
+.ie '\VW'beale' Alternative word list by Alan Beale.
+.el .ie '\VW'eff' EFF word list (five-dice version).
+.el .ie '\VW'de-7776' Mnemonic German word list by dys2p, CC0.
+.el User-provided word list.\}
+[\fM\*(WL\fP]
+.nf
+.feature R -zero
Back cover artwork from xkcd 936 by Randall Munroe, CC-BY-NC 2.5.
-A6 booklet by pesco, 2025, CC-BY-NC 4.0. Revision A.
+A6 booklet by pesco, 2025, CC-BY-NC 4.0.
+Revision B.
.\" XXX get actual version numbers via .sy or .pso?
Typeset in IBM Plex using Heirloom \fMtroff\fP release 191015 on OpenBSD 7.6.