-
Notifications
You must be signed in to change notification settings - Fork 0
/
Xerrorlog.tex
31 lines (28 loc) · 1.48 KB
/
Xerrorlog.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
\let\goodbye=\bye % we replace \bye with another command
\def\endofpapermacros{% output some lines after the \bye in errorlog.tex
% 1. step: skip the motto by Turing; DRF=<initials> of the first name
\long\def\skipmotto##1DRF{% ##1: ignored text
\smallskip\line{\bf List of abbreviated names:\hss}% a title line
\simpleline DRF}% see step 2a)
% 2. step: two kind of input lines
% a) <initials> <first names> <surname> coded as \simpleline
% b) <initials> <first names> <surname> (<info>) coded as \parensline
% Note: step 1 starts with type a) and <initials>=DRF
% if <initials>=CET switch to b); last line has <initials>=MDS
\def\next{\simpleline}\def\withparens{CET}\def\lastline{MDS}%
\def\simpleline##1 ##2 ##3 {\processtext!##1!##2 ##3!}% the default for \next
\def\parensline##1 ##2 ##3 (##4) {\processtext!##1!##2 ##3!}% <info> isn't needed
% 3. step: output name, test for switch to 2b), and test for last line
\def\processtext!##1!##2!{% ##1: <initials>; ##2: <first names> <surname>
\line{\hbox to 50pt{\hss##1:}\quad##2\hss}% output
\def\nxt{##1}% store <initials>
\ifx\nxt\withparens % true: switch from 2a) to 2b)
\def\next{\parensline}%
\else\ifx\nxt\lastline % true: it's the last line
\def\next{\csname goodbye\endcsname}% \next=\bye
\fi\fi
\next}%
% 4. step: activate this chain of macros
\skipmotto}
\let\bye=\endofpapermacros
\input errorlog