summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/frankenstein/attrib.sty
blob: e840265b166cad8a13df688309227d1a97601bec (plain)
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
%^^A* legal notices
% \iffalse
%
%   This program is part of the Frankenstein bundle for LaTeX.  
%
%   Copyright 1995-2001 Matt Swift <swift@alum.mit.edu>.
%
%   This file contains both the code and documentation for the
%   attrib LaTeX package.  It will work ONLY if it is placed in a
%   proper directory.  Files called README, INSTALL, attrib.tex
%   and attrib.ins should have also been distributed to you
%   with this file.  See them for more information on how to typeset
%   the documentation with LaTeX and how to generate a version of this
%   file that will work faster than this one.
%
%   This program is free software; you may redistribute it and/or
%   modify it under the conditions of the LaTeX Project Public
%   License, either version 1.2 or (at your option) any later version.
%   The latest version of this license is in
%   http://www.latex-project.org/lppl.txt, and version 1.2 or later is
%   part of all distributions of LaTeX version 1999/12/01 or later.
%
%   This program is distributed in the hope that it will be useful,
%   but without any warranty; without even the implied warranty of
%   merchantability or fitness for a particular purpose.  See the
%   LaTeX Project Public License for more details.
%
% \fi  
%
%^^A* checks
%
%^^A NOTE:  The character table, with two %'s, will get written to all files.
%% \CharacterTable
%%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%%   Digits        \0\1\2\3\4\5\6\7\8\9
%%   Exclamation   \!     Double quote  \"     Hash (number) \#
%%   Dollar        \$     Percent       \%     Ampersand     \&
%%   Acute accent  \'     Left paren    \(     Right paren   \)
%%   Asterisk      \*     Plus          \+     Comma         \,
%%   Minus         \-     Point         \.     Solidus       \/
%%   Colon         \:     Semicolon     \;     Less than     \<
%%   Equals        \=     Greater than  \>     Question mark \?
%%   Commercial at \@     Left bracket  \[     Backslash     \\
%%   Right bracket \]     Circumflex    \^     Underscore    \_
%%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%%   Right brace   \}     Tilde         \~}
%
% \CheckSum{89}
%
% \begin{abstract}
%   The \cs\attrib macro attributes block elements, for example when citing a
%   reference after a block quotation.
% \end{abstract}
% \tableofcontents
%
% \part{Discussion}
%
% \section{Attributions}
%
% FIX: maybe \cs\attrib when not in a block environment should do this, with
% appropriate hooks added, etc.: use the blkcntrl hooks. and Pre stuff.
% \begin{codeexample}
%  \def\attrib [1] {%
%    (\begingroup
%    \attribcitations
%    #1%
%    \endgroup
%    )%
%  }
% \end{codeexample}
% Here's an example of the kind that inspires the question: \code{({\attribcitations
% \citework{3}{unnam}, and see page~\pageref{q:aporia}})}.  This way
% \cs\attribcitations and \cs\normalcitations could still be defined only
% within \cs\attrib, which seems the most sensible.
%
% \DescribeMacro\attrib
%   I wrote \cs\attrib in order to have an abstract way to attribute the source
%   of quotations of prose or verse in an academic style.  The formatting is
%   that recommended by the \manual, except that attributions of block
%   quotations of prose are given flush right, to allow the reader to locate a
%   quotation more quickly when returning to the text.
%
%   Use \cs\attrib\marg{attribution} at the end of any block of text,
%   such as the \env{quote}, \env{quotation}, \env{verse}, and \env{dialogue}
%   environments (the last is defined in the \package{dialogue} package, also
%   part of the \Frankenstein bundle).
%
%   For \env{verse}, you ought to use either a blank line or a final \cs{\\}
%   before your attribution.  For \env{quote}, \env{quotation}, and
%   \env{dialgoue}, don't leave a blank line.
%
%   \cs\attrib will place the attribution flush right to the margins of the
%   block.  If there is enough room on the last line, the attribution will be
%   given on the last line, otherwise it moves down to a line of its own.
%
%   You can put pretty much anything as the text of the attribution, including
%   citations and footnotes.  
%
%   For those using the \package{achicago} and \package{abbrevs} packages (also
%   in the \Frankenstein bundle), \cs\citework works very well.  If you're
%   using regular \cs\cite or another package, I recommend using the FIX hook
%   below to remove the usual parens or braces around citations that occur
%   within the \cs\attrib argument.  It makes more sense to me that way.
% 
% \DescribeMacro\normalcitations
%   If parens are normally around citations, they are removed when citations
%   occur within attributions.  The idea is that you can simply write
%   \code{\attrib{\cite{key}}} and what normally surrounds the citation will be
%   replaced with \cs\PreTrib and \cs\PostTrib (which of course could be the
%   same thing, but doing it this way allows attributions to contain things
%   \emph{other} than just a citation and still everything will look right).
%
%   Whenever within an attribution you want the normal behavior of citations
%   back, write \cs\normalcitations.  \cs\normalcitations is automatically used
%   within footnotes within attributions; it's used in the \package{epigraph}
%   package; and occasionally a user will want to invoke it, when the
%   attribution is unusual.  I find that most attributions are either just a
%   citation, or they do not have a citation at all.  Sometimes I've wanted an
%   attribution consisting of a citation plus some other text, for which cases
%   I provided \cs\normalcitations as a user command.
%
%   \todo{Right now the only time there is any concept of ``normal'' or
%   altered behavior of \cs\cite commands is with the \package{achicago}
%   package.  I should make it so that \cs\attrib by default leaves off braces,
%   brackets, etc, around citations, for the standard definition of \cs\cite also.}
%
% \DescribeMacro\attribcitations
%
%   FIX: dox, example.
%
% \section{Examples}
%   Following are several examples that use \cs\attrib.  They should be
%   self-explanatory.
%
% \begin{bothexample}
%   \begin{quotation}
%     [My plays] deal with distress.  Some people object to this in my writing.
%
%     At a party an English intellectual---so called---asked me why I write always
%     about distress.  As if it were perverse to do so!  He wanted to know if my
%     father had beaten me or my mother had run away from home to give me an
%     unhappy childhood.  I told him no, that I had had a very happy childhood.
%     Then he thought me more perverse than ever.  I left the party as soon as
%     possible and got into a taxi.  On the glass partition between me and the
%     driver were three signs: one asked for help for the blind, another help for
%     orphans, and the third for relief for the war refugees.  One does not have to
%     look for distress.  It is screaming at you even in the taxis of London.
%     \attrib{\cite[24]{driver:beckett:madeleine}}
%   \end{quotation}
% \end{bothexample}
%
% \begin{bothexample}
%   \providelength\mtslen
%   \newcommand\makethisspace [1] {%
%     \settowidth{\mtslen}{#1}%
%     \hspace*{\mtslen}%
%   }
%   \begin{verse}
%     \makethisspace{Where Joy for ever dwells:} Hail horrours, hail \\
%     Infernal World, and thou profoundest Hell \\
%     Receive thy new Possessor: One who brings \\
%     A mind not to be chang'd by Place or Time. \\
%     The mind is its own place, and in it self \\
%     Can make a Heav'n of Hell, a Hell of Heav'n. \\
%     What matter where, if I be still the same, \\
%     And what I should be, all but less then he \\
%     Whom Thunder hath made greater?  Here at least \\
%     We shall be free; th' Almighty hath not built \\
%     Here for his envy, will not drive us hence: \\
%     Here we may reign secure, and in my choyce \\
%     To reign is worth ambition though in Hell: \\
%     Better to reign in Hell, then serve in Heav'n.
%
%     \attrib{\book{Paradise Lost} 1.250--63,
%             \cite{milton:riverside:paralost}}
%   \end{verse}
% \end{bothexample}
%
% You can have a footnote inside the attribution.  The boxed example below is
% meant to approximate a whole page (that is, the footnote appears at the
% bottom of the page, not directly underneath the quotation).
% \begin{bothexample}
%   \begin{verse}
%     Jacke boy, ho boy newes,\\
%     \quad the cat is in the well,\\
%     let us ring now for her Knell,\\
%     \quad ding dong ding dong Bell.
%
%     \attrib{\cite[149]{opie:nursery}\footnote {%
%   Perhaps more familiar is the nursery rhyme that begins ``Ding,
%   dong, bell, / Pussy's in the well,'' which Opie and Opie also cite.  It does
%   not seem clear in that rhyme, however, without contextual knowledge, that the
%   cat has died and the bell rings its knell.}}
%   \end{verse}
% \end{bothexample}
%
% Here is a quotation from \citeNP{beckett:watt}:
% \begin{bothexample}
%   \newwork\watt{Watt}
%   \begin{quote}
%     One day Watt, coming out from behind a bush, almost ran into Mr~Knott,
%     which for an instant troubled Watt greatly, for he had not quite finished
%     adjusting his dress.  But he need not have been troubled.  For Mr~Knott's
%     hands were behind his back, and his head bowed down, towards the ground.
%     Then Watt in his turn looking down at first saw nothing but the short green
%     grass, but when he had looked a little longer he saw a little blue flower
%     and close by a fat worm burrowing into the earth.  So this was what had
%     attracted Mr~Knott's attention, perhaps.  So there for a short time they
%     stood together, the master and the servant, the bowed heads almost touching
%     \lips, until the worm was gone and only the flower remained.  One day the
%     flower would be gone and only the worm remain, but on this particular day
%     it was the flower that remained, and the worm that went.  And then Watt,
%     looking up, saw that Mr~Knott's eyes were closed, and heard his breathing,
%     soft and shallow, like the breathing of a child asleep.
%     \attrib{\citework{145--46}{watt}}
%   \end{quote}
% \end{bothexample}
%
% Finally, here's a very simple example from the same book.  When the context
% is clear, you might just want page numbers in the attribution.
% \begin{bothexample}
%   \begin{quote}
%     For Watt now found himself in the midst of things which, if they
%     consented to be named, did so as it were with reluctance.\lips Looking at
%     a pot, for example, \lips it was in vain that Watt said, Pot, pot.  Well,
%     perhaps not quite in vain, but very nearly. \lips It resembled a pot, it
%     was almost a pot, but it was not a pot of which one could say, Pot, pot,
%     and be comforted.  It was in vain that it answered, with unexceptionable
%     adequacy, all the purposes, and performed all the offices, of a pot, it
%     was not a pot.  And it was just this hairbreadth departure from the
%     nature of a true pot that so excruciated Watt\lips.  For he could always
%     hope, of a thing of which he had never known the name, that he would
%     learn the name, some day, and so be tranquillized.
%
%     \attrib{81--82}
%   \end{quote}
% \end{bothexample}
%
% Here's an example of use with the \env{dialogue} environment.  Not much
% different than the others, but the quotes are nice, and I'll demonstrate a
% use of \cs\normalcitations.  \refer{b}'s speeches are interspersed through
% the play with \refer{a}'s and \refer{c}'s, but it's interesting to read them
% consecutively.
%\begin{bothexample}
%   \begin{dialogue}
%     \speak{b} on the stone together in the sun on the stone at the edge of the
%       little wood and as far as eye could see the wheat turning yellow vowing every
%       now and then you loved each other just a murmur not touching or anything of
%       that nature you one end of the stone she the other long low stone like
%       millstone no looks just there on the stone in the sun with the little wood
%       behind gazing at the wheat or eyes closed all still no sign of life not a
%       soul abroad no sound
%   
%     \speak{b} all still just leaves and ears and you too still on the stone in a
%       daze no sound not a word only every now and then to vow you loved each other
%       just a murmur one thing could ever bring tears till they dried up altogether
%       that thought when it came up among the others floated up that scene
%   
%     \speak{b} on the stone in the sun gazing at the wheat or the sky or the eyes
%       closed nothing to be seen but the wheat turning yellow and the blue sky
%       vowing every now and then you loved each other just a murmur tears without
%       fail till they dried up altogether suddenly there in whatever thoughts you
%       might be having whatever scenes perhaps way back in childhood or the womb
%       worst of all or that old Chinaman long before Christ born with long white
%       hair
%   
%     \speak{b} no sight of the face or any other part never turned to her nor she to
%       you always parallel like on an axle-tree never turned to each other just
%       blurs on the fringes of the field no touching or anything of that nature
%       always space between if only an inch no pawing in the manner of flesh and
%       blood no better than shades no worse if it wasn't for the vows
%   
%     \speak{b} \lips on the fringe of the field and every now and then in the great
%       peace like a whisper so faint she loved you
%
%     \attrib{\play{That Time}{} \normalcitations\cite{beckett:csp:that}}
% \end{dialogue}
% \end{bothexample}
%
% \section{Programmer's Interface}
%
% You might want to use \cs\attrib as part of some other command you define.
% For example, I wrote a command for epigraphs,
% \cs\epigraph\marg{text}{attribution}, which used \cs\attrib internally.  For
% this type of thing, and also in general I suppose, you might want to change
% the behavior of \cs\attrib.
%
% \DescribeMacro\AttribMinSkip
%   \cs\AttribMinSkip is a length, the minimum amount of horizontal space that
%   must come after any previous text and before the attribution.  The default
%   value is \code{2em}.
%
% \DescribeMacro\PreTrib
% \DescribeMacro\PostTrib
%   When you write \cs\attrib{attribution}, \cs\PreTrib will immediately
%   precede \meta{attribution} and \cs\PostTrib will immediately follow it.
%   Notice how the attributions in the examples above were in parentheses, but
%   we didn't have to write them.  The default value of \cs\PreTrib is a left
%   parenthesis and the default value of \cs\PostTrib is a right parenthesis.
%   \cs\PreTrib and \meta{attribution} are executed inside a group that doesn't
%   include \PostTrib, and \cs\PostTrib is executed in a group all by itself,
%   like this:  \code{{\PreTrib\relax#1}{\PostTrib}}.  Honestly I can't tell
%   you right now why it's done this way, but I'm sure I have some good reason
%   for it!
%
% \DescribeMacro\AttribInit
%   \cs\AttribInit is an hook, empty by default, that gets executed after some
%   standard setup but before the core of the \cs\attrib macro.  It is executed
%   within a group that includes \cs\PreTrib, \meta{attribution}, and
%   \cs\PostTrib, so perhaps it is appropriate for a font style change or
%   something (I haven't made use of it myself).
%
% \StopEventually{}
%
% \part{Implementation}
%
% \section{Version control}
%
%  \begin{macro}{\fileinfo}
%  \begin{macro}{\DoXUsepackagE}
%  \begin{macro}{\HaveECitationS}
%  \begin{macro}{\fileversion}
%  \begin{macro}{\filedate}
%  \begin{macro}{\docdate}
%  \begin{macro}{\PPOptArg}
% These definitions must be the first ones in the file.
%    \begin{macrocode}
\def\fileinfo{attribution of block elements (Frankenstein's hat)}
\def\DoXPackageS {attrib,dialogue}
\def\initelyHavECitationS {}
\def\fileversion{v1.3}
\def\filedate{2001/08/31}
\def\docdate{2001/08/31}
\edef\PPOptArg {%
  \filedate\space \fileversion\space \fileinfo
}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%  \end{macro}
%
% If we're loading this file from a \cs\ProcessDTXFile command (see the
% \package{compsci} package), then \cs\JusTLoaDInformatioN will be defined;
% othewise we assume it is not (that's why the FunkY NamE).
% 
% If we're loading from \cs\ProcessDTXFile, we want to load the packages listed
% in \cs\DoXPackageS (needed to typeset the documentation for this file) and
% then bail out.  Otherwise, we're using this file in a normal way as a
% package, so do nothing.  \cs\DoXPackageS, if there are any, are declared in
% the \ext{dtx} file, and, if you're reading the typeset documentation of this
% package, would appear just above.  (It's OK to call \cs\usepackage with an
% empty argument or \cs\relax, by the way.)
%    \begin{macrocode}
\makeatletter% A special comment to help create bst files.  Don't change!
\@ifundefined{JusTLoaDInformatioN} {%
  }{% ELSE (we know the compsci package is already loaded, too)
  \UndefineCS\JusTLoaDInformatioN
  \SaveDoXVarS
  \eExpand\csname DoXPackageS\endcsname\In {%use \csname in case it's undefined
    \usepackage{#1}%
  }%
  \RestoreDoXVarS
  \makeatother
  \endinput
}% A special comment to help create bst files.  Don't change!
%    \end{macrocode}
%
% Now we check for \LaTeX2e and declare the LaTeX package.
%    \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{attrib}[\PPOptArg]
%    \end{macrocode}^^A special comment to help create bst files.  Don't change!
%
% ^^A NOTE: We have to compensate for the above backslashes, which are not
% ^^A       actually in the .dtx file the author works on, by adding to the
% ^^A       CheckSum.
%%
% \AddToCheckSum{17}^^A `dtx-update-checksum' automatically handles this.
% \AddToCheckSum{7}^^A The half a macrocode env. at the top is missed, however...
% \AddToCheckSum{10}^^A ... and so are the 5 \defs from the .dtx file 
%                   ^^A     that precede it.
% \IfCitations {%
%   \AddToCheckSum{2}^^A When \initelyHavECitationS is defined in
% }                  ^^A the .dtx file, we need 2 more in the CheckSum.
%
%
%    \begin{macrocode}
\RequirePackage{moredefs}
%    \end{macrocode}
%
% \section{Macros}
%
% \begin{macro}{\AttribMinSkip}
% \begin{macro}{\PreTrib}
% \begin{macro}{\PostTrib}
%   \mbox{}
%    \begin{macrocode}
\newlength{\AttribMinSkip}
  \setlength{\AttribMinSkip}{2em}
\newcommand\PreTrib {%
  (%
}
\newcommand\PostTrib {%
  )%
}
%    \end{macrocode}
% \end{macro}
% \end{macro}
% \end{macro}
%
% \begin{macro}{\AttribInit}
% \begin{macro}{\at@init}
%   This heart of this code is from the \TeX book \cite[106]{knuth:texbook}.
%   If you contribute anything to the horizontal or vertical list before the
%   \cs\unskip, it will cancel the effect of the \cs\unskip.  You probably
%   don't want to do that.
%    \begin{macrocode}
\ReserveCS\AttribInit
\newcommand\at@init {%
  \SaveCS\footnote
  \def\footnote {%
    \normalcitations\MDSavedfootnote
  }%
  \attribcitations
%    \end{macrocode}
% If there's a blank line before the \cs\attrib, we want to leave \cs\parskip
% extra space above.
%    \begin{macrocode}
  \ifhmode
    \unskip
  \fi
  \AttribInit
}
%    \end{macrocode}
%  \end{macro}
%  \end{macro}
%
% \begin{macro}{\attribcitations}
%    Sets up citations for within an attrib-like environment.  Should probably
%    be called within a group.
%    \begin{macrocode}
\newcommand\attribcitations {%
  \SaveCS\PreCiteWork
  \SaveCS\PostCiteWork
  \def\PreCiteWork {%
    \csname
  }%
  \def\PostCiteWork {%
    \relax\end{lrbox}\usebox{\sc@box@a}%
  }%
  \SaveCS\PreCite
  \SaveCS\PostCite
  \let\PreCite\ShortEmpty
  \let\PostCite\ShortEmpty
}
%    \end{macrocode}
%  \end{macro}
%
% \begin{macro}{\normalcitations}
%% FIX
% Would you ever want this and \cs\attribcitations defined outside of the scope
% of an \cs\attrib?  Perhaps \cs\let it to a warning outside of \cs\attrib.
%    \begin{macrocode}
\newcommand* \normalcitations {%
  \RestoreCS\PreCite
  \RestoreCS\PostCite
  \RestoreCS\PreCiteWork
  \RestoreCS\PostCiteWork
}
%    \end{macrocode}
%  \end{macro}
%
% \begin{macro}{\attrib}
%   Knuth says that \cs\vadjust is more efficient here than \cs\hbox, but I
%   don't understand why: I guess it's simply a trivial non-discardable item on
%   the horizontal list \cite[316]{knuth:texbook}.
% FIX: I can get a page break after the text and before the attribution; it's
%   happening with attribstar and when the attribution is dropped to the next
%   line, but not sure if that's the only case (first quote in ``impotence''
%   section of library copy of dissertation).  Also pages 53, 57 of same.
%    \begin{macrocode}
\newcommand\attrib [1] {%
  \begingroup
    \at@init
    \nobreak\hfil\penalty50%
    \hskip\AttribMinSkip
    \vadjust{}\nobreak\hfil
    {\PreTrib\relax#1}{\PostTrib}%
    \parfillskip\z@
    \nobreak
    \finalhyphendemerits0%
    \par
  \endgroup
}
%    \end{macrocode}
% \end{macro}
%
% \part{Something you can't use}
%
% \begin{macro}{\attribstar}
%   There is one macro, \cs\attribstar, in this package that you can't use
%   because you don't have a package that I haven't released yet.  I don't want
%   to release it because it still has a couple of small but significant
%   problems that can lead to mistakes.  If I took \cs\attribstar out of this
%   package, however, I'd have to maintain two different versions of
%   \package{attrib}.  So here is a glimpse of a future bright star.
%
% \code{\DescribeMacro\attribstar}\par
%   Use this instead of a standard footnote in an attribution when you want the
%   note to appear on the page of the quotation.  That is, it is not a 
%   substantive note, but something like ``italics mine'' or ``ellipses in 
%   original'' which belongs there on the page, not in endnotes, in case
%   footnotes are ever moved there.
% \begin{comment}
% \begin{bothexample}
%   \begin{quote}
%     My mother was deeply religious.  So was my brother.  He knelt down at his
%     bed as long as he could kneel\lips.  [They] got no value from their
%     religion when they died.  At the moment of crisis it had no more depth
%     than an old-school tie\lips.  When you pass a church on an Irish bus, all
%     the hands flurry in the sign of the cross.  One day the dogs of Ireland
%     will do that too and perhaps also the pigs.
%   
%     \attribstar{\cite[25]{driver:beckett:madeleine}}{Driver ``reconstructs''
%     Beckett's words ``from notes made immediately after'' their conversation
%     \cite[22]{driver:beckett:madeleine}.}
%   \end{quote}
% \end{bothexample}
% \end{comment}
%
%    \begin{macrocode}
\newcommand\attribstar [2] {%
  \begingroup
    \addto@macro\PostTrib {%
      \normalcitations
      \starnote{#2}%
    }%
    \attrib{#1}%
  \endgroup
}
%    \end{macrocode}
% \end{macro}
%
% \Finale