drwho.tex: Include Dodo's full name.
[drwho] / drwho.tex
1 %%% -*- mode: latex; TeX-PDF-mode: t -*-
2 %%%
3 %%% Copyright (c) 2020 Mark Wooding
4 %%%
5 %%% This document is free software. You can you can redistribute it and/or
6 %%% modify it under the terms of the GNU General Public License as published
7 %%% by the Free Software Foundation; either version 3 of the License, or (at
8 %%% your option) any later version.
9 %%%
10 %%% This document is distributed in the hope that it will be useful, but
11 %%% WITHOUT ANY WARRANTY; without even the implied warranty of
12 %%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
13 %%% Public License for more details.
14 %%%
15 %%% You should have received a copy of the GNU General Public License along
16 %%% with this document. If not, see <https://www.gnu.org/licenses/>.
17 %%%
18 %%% Alternatively, you may share and adapt this document under the terms of
19 %%% the Creative Commons Attribution--ShareAlike 4.0 International License
20 %%% (CC BY-SA 4.0); see https://creativecommons.org/licenses/by-sa/4.0/
21
22 \documentclass[a4paper, 10pt]{article}
23
24 \usepackage[level]{fmtcount}
25 \usepackage[T1]{fontenc}
26 \usepackage[palatino, helvetica, courier, maths=cmr]{mdwfonts}
27
28 \hoffset=-1in \oddsidemargin=20mm \evensidemargin=\oddsidemargin
29 \textwidth=\paperwidth \advance\textwidth by -2\oddsidemargin
30
31 \voffset=-1in \topmargin=20mm \headheight=0mm \headsep=0mm
32 \textheight=\paperheight \advance\textheight by -2\topmargin
33
34 \newdimen\titlewidth
35
36 \pagestyle{empty}
37 \errorcontextlines=50
38 \showboxbreadth=\maxdimen \showboxdepth=\maxdimen
39
40 \makeatletter
41
42 \newcounter{doctor}
43 \renewcommand\thedoctor{\Ordinalstring{doctor}}
44 \setcounter{doctor}{0}
45 \newcounter{season}
46 \renewcommand\theseason{\arabic{season}}
47 \setcounter{season}{0}
48
49 \newif\iftop \toptrue
50 \def\doctor#1#2{%
51 \omit
52 \vrule \iftop\else height 24pt \fi width 0pt depth 6pt
53 \large \sffamily \bfseries
54 \stepcounter{doctor}%
55 The \thedoctor\ Doctor (#1--#2)\hfil
56 &&&&&\cr
57 }
58 \def\@@season#1{%
59 \vrule width 0pt height 14pt depth 4pt
60 \sffamily \bfseries
61 #1\hfil
62 &&&&&\cr
63 }
64 \def\seasonlike{\omit\@@season}
65 \def\@season#1{\@@season{Season \theseason#1}}
66 \def\season{%
67 \omit
68 \@ifstar
69 {\@season{ (cont.)}}%
70 {\stepcounter{season}%
71 \@ifnextchar[\season@{\@season{}}}%
72 }
73 \def\season@[#1]{\@season{: #1}}
74
75 \def\lost#1{\textit{#1}}
76
77 \newdimen\hrwd \hrwd=0.2pt
78 \def\zwd#1{\hbox to 0pt{\hss#1\hss}}
79
80 \def\nil{\nil}
81 \def\gobble#1{}
82 \def\newqueue#1{%
83 \expandafter\newtoks\csname q/#1\endcsname
84 }
85
86 \def\enqueue#1#2{%
87 \global\csname q/#1\expandafter\endcsname=
88 \expandafter{\the\csname q/#1\endcsname{#2}}%
89 }
90 \def\grabhead#1#2\endstop{\def\head{#1}}
91 \def\gethead#1{\expandafter\grabhead\the\csname q/#1\endcsname\nil\endstop}
92 \def\drophead#1{%
93 \gethead{#1}%
94 \edef\t{\global\csname q/#1\endcsname=%
95 \noexpand\expandafter{\noexpand\gobble\the\csname q/#1\endcsname}}\t
96 }
97 \def\dequeue#1#2{%
98 \gethead{#1}%
99 \ifx\head\nil\def\head{#2}%
100 \else\drophead{#1}\fi
101 \head%
102 }
103 \def\foreach#1#2{%
104 \def\next{%
105 \gethead{#1}%
106 \ifx\head\nil\let\next=\relax
107 \else\drophead{#1}#2\fi
108 \next%
109 }%
110 \next
111 }
112
113 \newqueue{t0}
114 \newqueue{t1}
115 \newqueue{t2}
116 \newqueue{t3}
117 \newqueue{name}
118
119 \def\namedef#1{\expandafter\gdef\csname#1\endcsname}
120 \def\namelet#1{\global\expandafter\let\csname#1\endcsname=}
121 \def\nameuse#1{\csname#1\endcsname}
122
123 \def\emptytrack{empty}
124 \def\fulltrack{full}
125
126 \namelet{dflt/empty}\relax
127 \namelet{dflt/full}\vrule
128
129 \namelet{dots/empty}\strut
130 \namedef{dots/full}{\strut\raisebox{-2pt}{\smash{{$\vdots$}}}}
131
132 \namedef{top/empty}#1{\strut}
133 \namedef{top/full}#1{%
134 \strut
135 \nameuse{sym/#1}%
136 \enqueue{name}{$\phantom+$ \nameuse{name/#1}}%
137 }
138
139 \namelet{trk/t0}\emptytrack
140 \namelet{trk/t1}\emptytrack
141 \namelet{trk/t2}\emptytrack
142 \namelet{trk/t3}\emptytrack
143
144 \def\track#1#2{\hfil\dequeue{#1}{\nameuse{dflt/\nameuse{trk/#1}}}\hfil}
145
146 \def\trkendmarker#1{%
147 \hfil
148 \vrule depth -2.7pt
149 \kern-\hrwd
150 \zwd{#1}%
151 \kern\hrwd
152 \hfil
153 }
154
155 \def\join#1#2#3{%
156 \enqueue{#1}{#2}%
157 \namedef{sym/#1}{#2}%
158 \namedef{name/#1}{#3}%
159 \namelet{trk/#1}\fulltrack
160 \enqueue{name}{$+$ #3}%
161 }
162 \def\depart#1{%
163 \enqueue{#1}{\trkendmarker{\vrule height 2.9pt depth -2.5pt width 4pt}}%
164 \namelet{trk/#1}\emptytrack
165 }
166 \def\die#1{%
167 \enqueue{#1}{\trkendmarker{$\times$}}%
168 \namelet{trk/#1}\emptytrack
169 }
170 \def\joindie#1#2#3{%
171 \enqueue{#1}{\zwd{#2}\zwd{\raisebox{1pt}{$\times$}}}%
172 \enqueue{name}{$+$ #3}%
173 }
174
175 \def\namelist#1{%
176 \setbox0=\vtop{\foreach{name}{\hbox{\strut\head}}}%
177 \dp0=0pt \box0
178 }
179
180 \def\pagebreak{%
181 \omit
182 &\omit\hfil\nameuse{dots/\nameuse{trk/t0}}\hfil%
183 &\omit\hfil\nameuse{dots/\nameuse{trk/t1}}\hfil%
184 &\omit\hfil\nameuse{dots/\nameuse{trk/t2}}\hfil%
185 &\omit\hfil\nameuse{dots/\nameuse{trk/t3}}\hfil%
186 \cr
187 \noalign{\newpage}%
188 \omit
189 &\omit\hfil\nameuse{top/\nameuse{trk/t0}}{t0}\hfil%
190 &\omit\hfil\nameuse{top/\nameuse{trk/t1}}{t1}\hfil%
191 &\omit\hfil\nameuse{top/\nameuse{trk/t2}}{t2}\hfil%
192 &\omit\hfil\nameuse{top/\nameuse{trk/t3}}{t3}\hfil%
193 &\cr
194 \omit
195 &\omit\hfil\nameuse{dots/\nameuse{trk/t0}}\hfil%
196 &\omit\hfil\nameuse{dots/\nameuse{trk/t1}}\hfil%
197 &\omit\hfil\nameuse{dots/\nameuse{trk/t2}}\hfil%
198 &\omit\hfil\nameuse{dots/\nameuse{trk/t3}}\hfil%
199 \global\toptrue
200 \cr
201 }
202
203 \edef\oldoutput{\the\output}
204 %%\output={\showbox255 \oldoutput}
205
206 \begin{document}
207
208 \topskip=0pt
209 \baselineskip=0pt
210 \lineskip=0pt
211 \footnotesize
212
213 \titlewidth=0.5\textwidth \advance\titlewidth by -4em
214
215 \global\def\\{&&&&&\cr}
216 \halign%
217 {\strut\hbox to \titlewidth{\qquad\ignorespaces#\unskip\hfil}%
218 &\track{t0}{#}%
219 &\track{t1}{#}%
220 &\track{t2}{#}%
221 &\track{t3}{#}%
222 &\quad\namelist{#}%
223 \global\topfalse\cr%
224 %
225 &\omit\qquad&\omit\qquad&\omit\qquad&\omit\qquad\cr\cr
226 %
227 \doctor{1963}{1966}
228 %
229 \season
230 An Unearthly Child \join{t0}{S}{Susan Foreman}
231 \join{t1}{B}{Barbara Wright}
232 \join{t2}{I}{Ian Chesterton} \\
233 The Daleks \\
234 The Edge of Destruction \\
235 \lost{Marco Polo} \\
236 The Keys of Marinus \\
237 The Aztecs \\
238 The Sensorites \\
239 The Reign of Terror \\
240 %
241 \season
242 Planet of Giants \\
243 The Dalek Invasion of Earth \depart{t0} \\
244 The Rescue \join{t3}{V}{Vicki Pallister} \\
245 The Romans \\
246 The Web Planet \\
247 \lost{The Crusade} \\
248 The Space Museum \\
249 The Chase \depart{t1} \depart{t2}
250 \join{t0}{S}{Stephen Taylor} \\
251 The Time Meddler \\
252 %
253 \season
254 Galaxy Four \\
255 \lost{Mission to the Unknown} \\
256 \lost{The Myth Makers} \depart{t3}
257 \join{t1}{K}{Katarina} \\
258 \lost{The Daleks' Master Plan}
259 \die{t1}
260 \joindie{t2}{S}{Sara Kingdom} \\
261 \lost{The Massacre of St Bartholomew's Eve}
262 \join{t3}{D}{Dorothea `Dodo' Chaplet} \\
263 The Ark \\
264 \lost{The Celestial Toymaker} \\
265 The Gunfighters \\
266 \lost{The Savages} \depart{t0} \\
267 The War Machines \depart{t3}
268 \join{t1}{P}{Polly Wright}
269 \join{t2}{B}{Ben Jackson} \\
270 %
271 \season
272 \lost{The Smugglers} \\
273 The Tenth Planet \\
274 %
275 \doctor{1966}{1969}
276 %
277 \season*
278 The Power of the Daleks \\
279 \lost{The Highlanders} \join{t0}{J}{Jamie McCrimmon} \\
280 The Underwater Menace \\
281 The Moonbase \\
282 The Macra Terror \\
283 The Faceless Ones \depart{t1} \depart{t2} \\
284 The Evil of the Daleks \join{t3}{V}{Victoria Waterfield} \\
285 %
286 \season
287 The Tomb of the Cybermen \\
288 \lost{The Abominable Snowmen} \\
289 The Ice Warriors \\
290 The Enemy of the World \\
291 The Web of Fear \\
292 Fury from the Deep \depart{t3} \\
293 \lost{The Wheel in Space} \join{t1}{Z}{Zoe Heriot} \\
294 %
295 \season
296 The Dominators \\
297 The Mind Robber \\
298 The Invasion \\
299 The Krotons \\
300 The Seeds of Death \\
301 \lost{The Space Pirates} \\
302 The War Games \depart{t0} \depart{t1} \\
303 %
304 \pagebreak
305 \doctor{1970}{1974}
306 %
307 \season
308 Spearhead from Space \join{t0}{L}{Elizabeth Shaw} \\
309 Doctor Who and the Siluarians \\
310 The Ambassadors of Death \\
311 Inferno \depart{t0} \\
312 %
313 \season
314 Terror of the Autons \join{t0}{J}{Jo Grant} \\
315 The Mind of Evil \\
316 The Claws of Axos \\
317 Colony in Space \\
318 The Daemons \\
319 %
320 \season
321 Day of the Daleks \\
322 The Curse of Peladon \\
323 The Sea Devils \\
324 The Mutants \\
325 The Time Monster \\
326 %
327 \season
328 The Three Doctors \\
329 Carnival of Monsters \\
330 Frontier in Space \\
331 Planet of the Daleks \\
332 The Green Death \depart{t0} \\
333 %
334 \season
335 The Time Warrior \join{t0}{S}{Sarah Jane Smith} \\
336 Invasion of the Dinosaurs \\
337 Death to the Daleks \\
338 The Monster of Peladon \\
339 Planet of the Spiders \\
340 %
341 \pagebreak
342 \doctor{1974}{1981}
343 %
344 \season
345 Robot \join{t1}{H}{Harry Sullivan} \\
346 The Ark in Space \\
347 The Sontaran Experiment \\
348 Genesis of the Daleks \\
349 Revenge of the Cybermen \\
350 %
351 \season
352 Terror of the Zygons \depart{t1} \\
353 Planet of Evil \\
354 Pyramids of Mars \\
355 The Android Invasion \\
356 The Brain of Morbius \\
357 The Seeds of Doom \\
358 %
359 \season
360 The Masque of Mandragora \\
361 The Hand of Fear \depart{t0} \\
362 The Deadly Assassin \\
363 The Face of Evil \join{t0}{L}{Leela} \\
364 The Robots of Death \\
365 The Talons of Weng-Chiang \\
366 %
367 \season
368 Horror of Fang Rock \\
369 The Invisible Enemy \join{t1}{K}{K--9} \\
370 Image of the Fendahl \\
371 The Sun Makers \\
372 Underworld \\
373 The Invasion of Time \depart{t0} \\
374 %
375 \season[The Key to Time]
376 The Ribos Operation \join{t0}{R}{Romanadvoratrelundar (`Romana')} \\
377 The Pirate Planet \\
378 The Stones of Blood \\
379 The Androids of Tara \\
380 The Power of Kroll \\
381 The Armageddon Factor \\
382 %
383 \season
384 Destiny of the Daleks \\
385 City of Death \\
386 The Creature from the Pit \\
387 Nightmare of Eden \\
388 The Horns of Nimon \\
389 Shada \\
390 %
391 \season
392 The Leisure Hive \\
393 Meglos \\
394 Full Circle \join{t2}{A}{Adric} \\
395 State of Decay \\
396 Warriors' Gate \depart{t0} \depart{t1} \\
397 The Keeper of Traken \join{t3}{N}{Nyssa of Traken} \\
398 Logopolis \join{t0}{T}{Tegan Jovanka} \\
399 %
400 \pagebreak
401 \doctor{1981}{1984}
402 %
403 \season
404 Castrovalva \\
405 Four to Doomsday \\
406 Kinda \\
407 The Visitation \\
408 Black Orchid \\
409 Earthshock \die{t2} \\
410 Time-Flight \\
411 %
412 \season
413 Arc of Infinity \\
414 Snakedance \\
415 Mawdryn Undead \join{t1}{T}{Vislor Turlough} \\
416 Terminus \depart{t3} \\
417 Enlightenment \\
418 The King's Demons \join{t2}{K}{Kameleon} \\
419 %
420 \seasonlike{(Special)}
421 The Five Doctors \\
422 %
423 \season
424 Warriors of the Deep \\
425 The Awakening \\
426 Frontios \\
427 Resurrection of the Daleks \depart{t0} \\
428 Planet of Fire \depart{t1}
429 \die{t2}
430 \join{t3}{P}{Perpugilliam `Peri' Brown} \\
431 The Caves of Androzani \\
432 %
433 \doctor{1984}{1986}
434 %
435 \season*
436 The Twin Dilemma \\
437 %
438 \season
439 Attack of the Cybermen \\
440 Vengeance on Varos \\
441 The Mark of the Rani \\
442 The Two Doctors \\
443 Timelash \\
444 Revelation of the Daleks \\
445 %
446 \season[The Trial of a Time Lord]
447 The Mysterious Planet \\
448 Mindwarp \die{t3} \\
449 Terror of the Vervoids \join{t0}{M}{Melanie Bush} \\
450 The Ultimate Foe \\
451 %
452 \doctor{1987}{1989}
453 %
454 \season
455 Time and the Rani \\
456 Paradise Towers \\
457 Delta and the Bannerman \\
458 Dragonfire \depart{t0}
459 \join{t1}{A}{Dorothy `Ace' McShane Gale} \\
460 %
461 \season
462 Remembrance of the Daleks \\
463 The Happiness Patrol \\
464 Silver Nemesis \\
465 The Greatest Show in the Galaxy \\
466 %
467 \season
468 Battlefield \\
469 Ghost Light \\
470 The Curse of Fenric \\
471 Survival \depart{t1} \\
472 %
473 }
474
475 \end{document}