|
1 | | -# software archæology |
| 1 | +# pwebmac – Consolidated WEB macros for DVI and PDF output |
2 | 2 |
|
3 | | -this 'project' serves as a playground for [web](https://ctan.org/pkg/web), the |
4 | | -urmother of all things 'literate programming'. |
| 3 | +The original [WEB](https://ctan.org/pkg/web) system by Donald Knuth has the |
| 4 | +macros `webmac.tex` that produce DVI output only; for historic reasons, it |
| 5 | +will never be modified (apart from catastrophic errors). |
| 6 | +Hàn Thế Thành has modified these macros in his `pdfwebmac.tex` for PDF output |
| 7 | +(only) with [pdfTeX](https://ctan.org/pkg/pdftex). |
| 8 | +Jonathan Kew's [XeTeX](https://ctan.org/pkg/xetex) has similar macros |
| 9 | +`xewebmac.tex` by Khaled Hosny that _modify_ `webmac.tex` for PDF output; |
| 10 | +these macros can only be used with a specific “TeX engine” each. |
5 | 11 |
|
6 | | -the main goal is to integrate canonical `webmac.tex` with the extended PDF |
7 | | -macros `pdfwebmac.tex` and `xewebmac.tex`, along the lines of `cwebmac.tex`. |
8 | | -the result is called `pwebmac.tex` and will probably be used to format the |
9 | | -next (and final?) versions of all main WEB programs for publication in |
10 | | -TeX Live 2021. |
| 12 | +The present `pwebmac` package integrates these three WEB macro files similar |
| 13 | +to `cwebmac.tex` in Silvio Levy's and Don Knuth's |
| 14 | +[CWEB](https://ctan.org/pkg/cweb) system, so `pwebmac.tex` can be used with |
| 15 | +“plain TeX,” “pdfTeX,” and “XeTeX” alike. |
| 16 | + |
| 17 | +Its initial application is the production of PDF files for all major WEB |
| 18 | +programs for “TeX and friends” as distributed in |
| 19 | +[TeX Live](https://www.tug.org/texlive). For this purpose, the shell script |
| 20 | +`makeall` was whipped together; it provides various commandline options and |
| 21 | +works around several “quirks” in the WEB sources. |
| 22 | + |
| 23 | +WEB programmers who want to use `pwebmac.tex` instead of the default |
| 24 | +`webmac.tex` in their programs have to change the first line in the TeX file |
| 25 | +created by `weave`. From there, all depends on the “TeX engine” you use: |
| 26 | +“plain TeX” by default creates DVI output, “plain TeX” with the invocation |
| 27 | +`tex "\let\pdf+\input…"`, `pdftex`, and `xetex` create PDF output with |
| 28 | +clickable links and bookmarks (depending on your PDF viewer). |
11 | 29 |
|
12 | | -| TeX macros | TeX engine | Notes about resulting PDF | |
13 | | -| --------------- | ------------------------------ | ------------------------------------------------- | |
14 | | -| `pwebmac.tex` | plain TeX | without clickable links, without outlines | |
15 | | -| | `tex "\let\pdf+"`, `xdvipdfmx` | with clickable links, with outlines | |
16 | | -| | pdfTeX | with clickable links, with outlines | |
17 | | -| | XeTeX | with clickable links, with outlines | |
18 | | -| `pdfwebmac.tex` | plain TeX | **Undefined control sequence `\pdfoutput`** | |
19 | | -| | pdfTeX | with clickable links, with outlines | |
20 | | -| | XeTeX | **Undefined control sequence `\pdfoutput`** | |
21 | | -| `xewebmac.tex` | plain TeX | **Undefined control sequence `\ifdefined`** | |
22 | | -| | pdfTeX | **without** clickable links, **without** outlines<br/>**Non-PDF special ignored** | |
23 | | -| | XeTeX | with clickable links, with outlines | |
|
0 commit comments