1 | % mangletex (24 Nov 1995) run at 14:58 BST Wednesday 11 May 2011 |
---|
2 | \message{==================================================================}% |
---|
3 | \message{<Paul Taylor's commutative diagrams - version 3.94, April 2011>}%% |
---|
4 | %% |
---|
5 | %% This code runs the LaTeX \ProvidesPackage command iff it is defined. |
---|
6 | %% included at the request of Michael Downes <mjd@ams.org> March 2002. |
---|
7 | %% Put \listfiles in your LaTeX preamble to see what this is for. |
---|
8 | \expandafter\ifx\csname ProvidesPackage\endcsname\relax\toks0=\expandafter{% |
---|
9 | \fi\ProvidesPackage{diagrams}[2011/04/19 v3.94 Paul Taylor's commutative |
---|
10 | diagrams]%% |
---|
11 | \toks0=\bgroup}%% |
---|
12 | %%======================================================================% |
---|
13 | %% TeX macros for drawing category-theoretic diagrams % |
---|
14 | %% % |
---|
15 | %% Paul Taylor % |
---|
16 | %% % |
---|
17 | %% www.PaulTaylor.EU/diagrams % |
---|
18 | %% www.ctan.org/tex-archive/macros/generic/diagrams/taylor/ % |
---|
19 | %% diagrams@PaulTaylor.EU % |
---|
20 | %% % |
---|
21 | %% PLEASE READ THE MANUAL! % |
---|
22 | %% % |
---|
23 | %% Please ensure that you are registered with me as a user so that % |
---|
24 | %% you can be informed of future releases. Any electronic mail % |
---|
25 | %% message with "commutative" or "diagram" in the subject line % |
---|
26 | %% (such as your request for the package, a question about it, or % |
---|
27 | %% even an otherwise blank message) automatically registers you. % |
---|
28 | %% % |
---|
29 | %% % |
---|
30 | %% CONTENTS: % |
---|
31 | %% (O) corruption-sensitive hacks (to approx line 331) % |
---|
32 | %% Arrow components & commands - starts approx line 1247 % |
---|
33 | %% (22) auxillary macros for adjustment of components % |
---|
34 | %% (23) bits of arrows (\rhvee etc) % |
---|
35 | %% (24) arrow commands (\rTo etc) % |
---|
36 | %% (25) miscellaneous % |
---|
37 | %% Apart from these five sections, the rest is intended to be totally % |
---|
38 | %% meaningless in the undocumented version, which is approximately % |
---|
39 | %% 1922 lines long. Please do not waste trees by printing it out. % |
---|
40 | %% % |
---|
41 | %% COPYRIGHT NOTICE: % |
---|
42 | %% This package may be copied and used freely for any academic % |
---|
43 | %% (not commercial or military) purpose, on condition that it % |
---|
44 | %% is not altered in any way, and that an acknowledgement is % |
---|
45 | %% included in any published work making substantial use of it. % |
---|
46 | %% % |
---|
47 | %% IT IS SUPPLIED "AS IS", WITHOUT WARRANTY, EXPRESS OR IMPLIED. % |
---|
48 | %% % |
---|
49 | %% If you are doing something where mistakes cost money (or where % |
---|
50 | %% success brings financial profit) then you must use commercial % |
---|
51 | %% software, not this package. In any case, please remember to % |
---|
52 | %% keep several backup copies of all files, and check everything % |
---|
53 | %% visually before sending final copy to the publishers. % |
---|
54 | %% % |
---|
55 | %% You may use this package as a (substantial) aid to writing an % |
---|
56 | %% academic research or text book on condition that % |
---|
57 | %% (i) you contact me at a suitable time to ensure that you have % |
---|
58 | %% an up-to-date version (and any infelicities can be fixed), % |
---|
59 | %% (ii) you send me a copy of the book when it's published. % |
---|
60 | %% % |
---|
61 | %% HISTORY % |
---|
62 | %% 3.94 Released 11 May 2011 % |
---|
63 | %% defined <= tail % |
---|
64 | %% 3.93 Released 9 June 2009 % |
---|
65 | %% Added support for XeTeX, with help from Apostolos Syropoulos. % |
---|
66 | %% 3.92 Released 31 December 2007 % |
---|
67 | %% 3.91 Released 31 August 2006 % |
---|
68 | %% Renamed "noPostScript" option as "UglyObsolete". % |
---|
69 | %% 3.90 Released 11 April 2004 % |
---|
70 | %% use PostScript=Rokicki not pure DVI by default % |
---|
71 | %% 3.89 Released 7 July 2002 % |
---|
72 | %% Added support for pdftex, which is recognised automatically. % |
---|
73 | %% 3.88 Released 1 September 2000 % |
---|
74 | %% Square hook tail: \newarrow{SquareInto}{sqhook}---> % |
---|
75 | %% 3.87 Released 1 September 1999 % |
---|
76 | %% This version was used for the final 1200dpi PS copy of my book % |
---|
77 | %% ``Practical Foundations of Mathematics'' (Cambridge Univ Press) % |
---|
78 | %% see http://www.PaulTaylor.EU/Practical_Foundations % |
---|
79 | %% 3.86 Released 1 September 1998 % |
---|
80 | %% New options hug and nohug in PostScript mode: [PS,nohug] uses % |
---|
81 | %% PS for the arrows without rotating the labels, but the way of % |
---|
82 | %% calculating the actual position of these horizontal labels on % |
---|
83 | %% will remain subject to alteration for some period of time --- % |
---|
84 | %% please send me examples if you feel that adjustment is needed. % |
---|
85 | %% % |
---|
86 | %% midvshaft and snake for vertical arrows % |
---|
87 | %% New option [gap=width] (default=shortfall) to use instead of % |
---|
88 | %% ~{\;} on horizontals and PS diagonals, as this caused ^ and _ % |
---|
89 | %% labels to be moved too far away from the shaft. % |
---|
90 | %% Added >-> and <-< heads and tails, same as >> and << but the % |
---|
91 | %% shaft goes *through* the extra arrowhead. % |
---|
92 | %% 3.85 Released 20 August 1997 % |
---|
93 | %% New option [crab=distance] shifts horizontals and PS diagonals % |
---|
94 | %% transversally by the specified distance (positive=upward). % |
---|
95 | %% New option [snake=distance] shifts midshaft horizontals and % |
---|
96 | %% PS diagonals longitudinally by the specified distance. % |
---|
97 | %% New option [leftflush], like [flushleft] but reckons alignment % |
---|
98 | %% from multiple verticals, or from text if there's no vertical. % |
---|
99 | %% Most of the history has been suppressed from the user version. % |
---|
100 | %% 3.83 Released 18 May 1995 % |
---|
101 | %% "dotted" option (set dot filler on maps) % |
---|
102 | %% Parallel maps (\pile) outside diagrams stretch correctly. % |
---|
103 | %% Option "LaTeXeqno" uses LaTeX's equation number and style % |
---|
104 | %% for "eqno"; LaTeX's \label command picks this up. % |
---|
105 | %% Suppress warnings & 2nd pass errors with "silent" option. % |
---|
106 | %% 3.81 Second alpha release 18 July 1994 % |
---|
107 | %% \overprint{text} sets text in maths and overprints it in the % |
---|
108 | %% current cell, centered in the column irrespective of other stuff% |
---|
109 | %% "repositionpullbacks" option uses this for \SEpbk etc % |
---|
110 | %% \newdiagramgrid declaration, grid option and pentagon grid. % |
---|
111 | %% 3.80 Alpha release for adjusted diagonals 15 July 1994. % |
---|
112 | %% Introduced landscape and portrait options. % |
---|
113 | %% Diagonals adjusted to meet their endpoints, at last!!!! % |
---|
114 | %% 3.28 Released 30 November 1993 % |
---|
115 | %% Peter Freyd's \puncture symbol provided. % |
---|
116 | %% 3.25 Released 30 January 1993 % |
---|
117 | %% LaTeX heads made default (unless \tenln undefined, when vee) % |
---|
118 | %% Circle, cross, little vee, little black triangle heads. % |
---|
119 | %% First-use warning when defaulted diagonal components are used. % |
---|
120 | %% AMSTEX emulation - works at least when amstex not present. % |
---|
121 | %% 3.24 Release 7 Sept 1992 advertised to users. % |
---|
122 | %% PostScript option introduced: % |
---|
123 | %% LaTeX, vee, curlyvee, triangle & blacktriangle heads & tails % |
---|
124 | %% TPIC option introduced as an alternative to \LaTeX@make@line. % |
---|
125 | %% Postscript arrows (basic code). % |
---|
126 | %% Implemented \newarrow \newarrowhead etc. % |
---|
127 | %% Horizontal arrows outside diagram can stretch by wordspacing. % |
---|
128 | %% Added < and > for labels on left and right of arrow; % |
---|
129 | %% 3.16 (20.7.90) as mass mailed; only have mangled version % |
---|
130 | %% -- all following version numbers are post-facto -- % |
---|
131 | %% 3 (Jan 90) stretching vertical arrows % |
---|
132 | %% 2 (Sept 89) horizontals stretch to objects; "superscript" labels % |
---|
133 | %% 1 (1987) horizontal arrows stretch to edge of cell % |
---|
134 | %% 0 (1986) implementation of Knuth's TeXercise 18.46 for my thesis % |
---|
135 | %%======================================================================% |
---|
136 | |
---|
137 | %%======================================================================% |
---|
138 | %% % |
---|
139 | %% (1) CORRUPTION-SENSITIVE HACKS % |
---|
140 | %% % |
---|
141 | %%======================================================================% |
---|
142 | |
---|
143 | %% CORRUPTION & \catcode WARNING |
---|
144 | |
---|
145 | %% BITNET (IBM) machines may corrupt certain important characters |
---|
146 | %% in transmission by electronic mail: |
---|
147 | %% 0123456789=digits, abcdefghijklmnopqrstuvwxyz=lowers, |
---|
148 | %% ABCDEFGHIJKLMNOPQRSTUVWXYZ=uppers, @=at (internal names), |
---|
149 | %% {}=curly braces (grouping), \=backslash (keywords), |
---|
150 | %% %=percent (comment), #=hash/sharp (argument), +=plus, -=minus, |
---|
151 | %% <>=angle brackets (relations \ifnum,\ifdim), ==equals, |
---|
152 | %% ,=comma, .=dot, :=colon, ;=semicolon, =space |
---|
153 | %% $=dollar (maths) is only used in the "bits of maps" section |
---|
154 | |
---|
155 | %% The following characters are marked by a comment including the word "ASCII", |
---|
156 | %% except in comments and messages: |
---|
157 | %% &=and (alignment), ~=tilde, |=vertical, []=square brackets, |
---|
158 | %% ^=caret (superscript), _=underline (subscript), |
---|
159 | %% "=double quote (hex), ()=round brackets, |
---|
160 | %% /=slash, ?=query, !=pling/bang, |
---|
161 | %% The following are no longer flagged: |
---|
162 | %% `=grave/backquote (catcodes), '=acute/single quote (octal), |
---|
163 | |
---|
164 | %% The \catcode's marked * are assumed for reading this file: |
---|
165 | %% \=0* {=1* }=2* $=3 &=4 return=5* #=6 ^=7 _=8 ignored=9* |
---|
166 | %% space=10* letter=11* other=12 active=13 %=14* invalid=15 |
---|
167 | %% If you want to load this package inside Stallman's "texinfo", you must do |
---|
168 | %%% @catcode`@\=0 \catcode`\%=14 \input diagrams \catcode`\%=12 \catcode`\\=13 |
---|
169 | %% and then use @diagram @rTo @\ @enddiagram etc. (braces {} stay the same). |
---|
170 | %% Also need @catcode`@&=4. |
---|
171 | |
---|
172 | %%*** You *MUST NOT* use the internal commands (with names beginning \CD@)**** |
---|
173 | |
---|
174 | %% don't load me twice! |
---|
175 | \ifx\diagram\isundefined\else\message{WARNING: the \string\diagram\space |
---|
176 | command is already defined and will not be loaded again}\expandafter\endinput |
---|
177 | \fi |
---|
178 | |
---|
179 | %% make @ letter, saving its old code to restore at the end of this file |
---|
180 | %%% look for this on the last line of the file if you think something's missing! |
---|
181 | %% the other \catcode assignments are to make it work with texinfo. |
---|
182 | \edef\cdrestoreat{%% |
---|
183 | \noexpand\catcode`\noexpand\@=\the\catcode`\@%% |
---|
184 | \noexpand\catcode`\noexpand\#=\the\catcode`\#%% |
---|
185 | \noexpand\catcode`\noexpand\$=\the\catcode`\$%% |
---|
186 | \noexpand\catcode`\noexpand\<=\the\catcode`\<%% |
---|
187 | \noexpand\catcode`\noexpand\>=\the\catcode`\>%% |
---|
188 | \noexpand\catcode`\noexpand\:=\the\catcode`\:%% Johannes L. Braams's |
---|
189 | \noexpand\catcode`\noexpand\;=\the\catcode`\;%% Babel languages package |
---|
190 | \noexpand\catcode`\noexpand\!=\the\catcode`\!%% makes these \active. |
---|
191 | \noexpand\catcode`\noexpand\?=\the\catcode`\?%% |
---|
192 | \noexpand\catcode`\noexpand\+=\the\catcode'53%% texinfo @+ is @outer@active |
---|
193 | }\catcode`\@=11 \catcode`\#=6 \catcode`\<=12 \catcode`\>=12 \catcode'53=12 |
---|
194 | \catcode`\:=12 \catcode`\;=12 \catcode`\!=12 \catcode`\?=12 |
---|
195 | |
---|
196 | %% Change y to n if pool_size in your implementation of TeX is small. |
---|
197 | %% This is reasonable if you have a small ("personal") computer, but if you |
---|
198 | %%% have a sun, dec, hp, ... workstation or a mainframe, complain to your local |
---|
199 | %% system manager and get him/her to install a version of TeX with bigger |
---|
200 | %% parameters. The "hash size" (number of command names) gets you next. |
---|
201 | \ifx\diagram@help@messages\CD@qK\let\diagram@help@messages y\fi |
---|
202 | |
---|
203 | %% The following macro is used to include literal PostScript commands in the |
---|
204 | %% DVI file for rotation, etc. Since this goes beyond standard TeX, it is |
---|
205 | %%% dependent on the convention used by your local DVI-to-PostScript translator. |
---|
206 | %% Choose whichever line applies to the program used at your site, or, if |
---|
207 | %% yours is not listed, consult the manual, experiment with this macro and |
---|
208 | %% (please) tell me what is needed to make it work. |
---|
209 | %% |
---|
210 | %% |
---|
211 | %%% dvips (Tomas Rokicki, Radical Eye) labrea.stanford.edu /pub/dvips9999.tar.Z |
---|
212 | %% CTAN: dviware/dvips |
---|
213 | \def\cdps@Rokicki#1{\special{ps:#1}}\let\cdps@dvips\cdps@Rokicki\let |
---|
214 | \cdps@RadicalEye\cdps@Rokicki\let\CD@HB\cdps@Rokicki\let\CD@IK\cdps@Rokicki |
---|
215 | \let\CD@HB\cdps@Rokicki%% |
---|
216 | %% I'm not sure that the rest work. |
---|
217 | %% |
---|
218 | %% dvitps (Stephan Bechtolsheim, Integrated Computer Systems) |
---|
219 | %% arthur.cs.purdue.edu /pub/TeXPS-9.99.tar.Z |
---|
220 | \def\cdps@Bechtolsheim#1{\special{dvitps: Literal "#1"}}% |
---|
221 | %% ASCII two dbl quotes |
---|
222 | \let\cdps@dvitps\cdps@Bechtolsheim\let\cdps@IntegratedComputerSystems |
---|
223 | \cdps@Bechtolsheim%% |
---|
224 | %% dvitops (James Clark) |
---|
225 | %% CTAN: dviware/dvitops |
---|
226 | \def\cdps@Clark#1{\special{dvitops: inline #1}}%% |
---|
227 | \let\cdps@dvitops\cdps@Clark%% |
---|
228 | %% OzTeX (Andrew Trevorrow) cannot be used |
---|
229 | \let\cdps@OzTeX\empty\let\cdps@oztex\empty\let\cdps@Trevorrow\empty%% |
---|
230 | %% dvi3ps (Kevin Coombes) |
---|
231 | %% CTAN: dviware/dvi2ps/dvi3ps |
---|
232 | \def\cdps@Coombes#1{\special{ps-string #1}}%% |
---|
233 | %% psprint (Trevorrow) CTAN: dviware/psprint |
---|
234 | %% dvi2ps (Senn) CTAN: dviware/dvi2ps |
---|
235 | %% psdvi (Elwell) CTAN: dviware/dvi2ps/psdvi |
---|
236 | |
---|
237 | \count@=\year\multiply\count@12 \advance\count@\month%% |
---|
238 | \ifnum\count@>24180 %% (December 2014) |
---|
239 | \message{***********************************************************}%%ascii |
---|
240 | \message{! YOU HAVE AN OUT OF DATE VERSION OF COMMUTATIVE DIAGRAMS! *}%% |
---|
241 | \message{! it expired in December 2014 and is time-bombed for April *}%% |
---|
242 | \message{! You may get an up to date version of this package from *}%%ascii |
---|
243 | \message{! either www.ctan.org or www.PaulTaylor.EU/diagrams/ *}%% |
---|
244 | \message{***********************************************************}%%ascii |
---|
245 | \ifnum\count@>24183 %% (March 2015) |
---|
246 | \errhelp{You may press RETURN and carry on for the time being.}\message{! It |
---|
247 | is embarrassing to see papers in conference proceedings}\message{! and |
---|
248 | journals containing bugs which I had fixed years before.}\message{! It is easy |
---|
249 | to obtain and install a new version, which will}\errmessage{! remain |
---|
250 | compatible with your files. Please get it NOW.}\fi\fi |
---|
251 | |
---|
252 | \def\CD@DE{\global\let}\def\CD@RH{\outer\def} |
---|
253 | |
---|
254 | %% safe names for braces, tab (&) and maths ($), as commands and for messages |
---|
255 | {\escapechar\m@ne\xdef\CD@o{\string\{}\xdef\CD@yC{\string\}}%% |
---|
256 | %% |
---|
257 | %% three ASCII ampersands (ands) (&&&) appear on the next line |
---|
258 | \catcode`\&=4 \CD@DE\CD@Q=&\xdef\CD@S{\string\&}%%ascii three ands |
---|
259 | %% |
---|
260 | %% ASCII ^ and _ each appear twice on next line |
---|
261 | %% six ASCII dollars ($$$$$$) appear on the next two lines. |
---|
262 | \catcode`\$=3 \CD@DE\CD@k=$\CD@DE\CD@ND=$%%ascii three dollars |
---|
263 | \xdef\CD@nC{\string\$}\gdef\CD@LG{$$}%%ascii three dollars |
---|
264 | %% |
---|
265 | %% two ASCII underlines (__) appear on the next line. |
---|
266 | \catcode`\_=8 \CD@DE\CD@lJ=_%%ascii two underlines |
---|
267 | %% |
---|
268 | %% eight ASCII carets (^^^^^^^^) appear on the next three lines. |
---|
269 | \obeylines\catcode`\^=7 \CD@DE\@super=^%%ascii two carets |
---|
270 | \ifnum\newlinechar=10 \gdef\CD@uG{^^J}%%ascii two carets |
---|
271 | \else\ifnum\newlinechar=13 \gdef\CD@uG{^^M}%%ascii two carets |
---|
272 | \else\ifnum\newlinechar=-1 \gdef\CD@uG{^^J}%%ascii two carets |
---|
273 | \else\CD@DE\CD@uG\space\expandafter\message{! input error: \noexpand |
---|
274 | \newlinechar\space is ASCII \the\newlinechar, not LF=10 or CR=13.}%% |
---|
275 | \fi\fi\fi}%% |
---|
276 | |
---|
277 | %% avoid using <> (because I personally re-define them to mean \langle\rangle) |
---|
278 | \mathchardef\lessthan='30474 \mathchardef\greaterthan='30476 |
---|
279 | |
---|
280 | %% LaTeX line and arrowhead font |
---|
281 | %% the "hit return" comments show up if the font is missing. |
---|
282 | \ifx\tenln\CD@qK%% |
---|
283 | \font\tenln=line10\relax%% Hit return - who needs diagonals? |
---|
284 | \fi\ifx\tenlnw\CD@qK\ifx\tenln\nullfont\let\tenlnw\nullfont\else%% |
---|
285 | \font\tenlnw=linew10\relax%% Hit return - who needs diagonals? |
---|
286 | \fi\fi%% |
---|
287 | |
---|
288 | %% report line numbers in TeX3 only |
---|
289 | \ifx\inputlineno\CD@qK\csname newcount\endcsname\inputlineno\inputlineno\m@ne |
---|
290 | \message{***************************************************}\message{! |
---|
291 | Obsolete TeX (version 2). You should upgrade to *}\message{! version 3, which |
---|
292 | has been available since 1990. *}\message{***********************************% |
---|
293 | ****************}\fi |
---|
294 | |
---|
295 | \def\cd@shouldnt#1{\CD@KB{* THIS (#1) SHOULD NEVER HAPPEN! *}} |
---|
296 | |
---|
297 | %% turn round- and square-bracketed arguments into curly-bracketed |
---|
298 | \def\get@round@pair#1(#2,#3){#1{#2}{#3}}%%ascii round brackets () |
---|
299 | \def\get@square@arg#1[#2]{#1{#2}}%%ascii square brackets [] |
---|
300 | \def\CD@AE#1{\CD@PK\let\CD@DH\CD@@E\CD@@E#1,],}%%ascii sq brackets |
---|
301 | \def\CD@m{[}\def\CD@RD{]}\def\commdiag#1{{\let\enddiagram\relax\diagram[]#1% |
---|
302 | \enddiagram}} |
---|
303 | |
---|
304 | %% ASCII open square bracket occurs on next line |
---|
305 | \def\CD@BF{{\ifx\CD@EH[\aftergroup\get@square@arg\aftergroup\CD@YH\else |
---|
306 | \aftergroup\CD@JH\fi}}%% |
---|
307 | \def\CD@CF#1#2{\def\CD@YH{#1}\def\CD@JH{#2}\futurelet\CD@EH\CD@BF} |
---|
308 | |
---|
309 | %% ASCII vertical bar (|) occurs on the next line |
---|
310 | \def\CD@KK{|} |
---|
311 | |
---|
312 | \def\CD@PB{%% arguments to maps inside diagrams |
---|
313 | \tokcase\CD@DD:\CD@y\break@args;\catcase\@super:\upper@label;\catcase\CD@lJ:% |
---|
314 | \lower@label;\tokcase{~}:\middle@label;%%ascii tilde |
---|
315 | \tokcase<:\CD@iF;%%ascii less-than |
---|
316 | \tokcase>:\CD@iI;%%ascii greater-than |
---|
317 | \tokcase(:\CD@BC;%%)%ascii open round bracket |
---|
318 | \tokcase[:\optional@;%%]%ascii open square bracket |
---|
319 | \tokcase.:\CD@JJ;%%ascii dot 12.7.94 |
---|
320 | \catcase\space:\eat@space;\catcase\bgroup:\positional@;\default:\CD@@A |
---|
321 | \break@args;\endswitch} |
---|
322 | |
---|
323 | \def\switch@arg{%% arguments to horizontal maps outside diagrams |
---|
324 | \catcase\@super:\upper@label;\catcase\CD@lJ:\lower@label;\tokcase[:\optional@ |
---|
325 | ;%%]%ascii open square bracket |
---|
326 | \tokcase.:\CD@JJ;%%ascii dot 12.7.94 % ; was : before 15.6.97 |
---|
327 | \catcase\space:\eat@space;\catcase\bgroup:\positional@;\tokcase{~}:% |
---|
328 | \middle@label;%%ascii tilde (questionable!) |
---|
329 | \default:\CD@y\break@args;\endswitch} |
---|
330 | |
---|
331 | %% That's as much as you get to read "in clear" - the rest is private! |
---|
332 | |
---|
333 | \let\CD@tJ\relax\ifx\protect\CD@qK\let\protect\relax\fi\ifx\AtEndDocument |
---|
334 | \CD@qK\def\CD@PG{\CD@gB}\def\CD@GF#1#2{}\else\def\CD@PG#1{\edef\CD@CH{#1}% |
---|
335 | \expandafter\CD@oC\CD@CH\CD@OD}\def\CD@oC#1\CD@OD{\AtEndDocument{\typeout{% |
---|
336 | \CD@tA: #1}}}\def\CD@GF#1#2{\gdef#1{#2}\AtEndDocument{#1}}\fi\def\CD@ZA#1#2{% |
---|
337 | \def#1{\CD@PG{#2\CD@mD\CD@W}\CD@DE#1\relax}}\def\CD@uF#1\repeat{\def\CD@p{#1}% |
---|
338 | \CD@OF}\def\CD@OF{\CD@p\relax\expandafter\CD@OF\fi}\def\CD@sF#1\repeat{\def |
---|
339 | \CD@q{#1}\CD@PF}\def\CD@PF{\CD@q\relax\expandafter\CD@PF\fi}\def\CD@tF#1% |
---|
340 | \repeat{\def\CD@r{#1}\CD@QF}\def\CD@QF{\CD@r\relax\expandafter\CD@QF\fi}\def |
---|
341 | \CD@tG#1#2#3{\def#2{\let#1\iftrue}\def#3{\let#1\iffalse}#3}\if y% |
---|
342 | \diagram@help@messages\def\CD@rG#1#2{\csname newtoks\endcsname#1#1=% |
---|
343 | \expandafter{\csname#2\endcsname}}\else\csname newtoks\endcsname\no@cd@help |
---|
344 | \no@cd@help{See the manual}\def\CD@rG#1#2{\let#1\no@cd@help}\fi\chardef\CD@lF |
---|
345 | =1 \chardef\CD@lI=2 \chardef\CD@MH=5 \chardef\CD@tH=6 \chardef\CD@sH=7 |
---|
346 | \chardef\CD@PC=9 \dimendef\CD@hI=2 \dimendef\CD@hF=3 \dimendef\CD@mF=4 |
---|
347 | \dimendef\CD@mI=5 \dimendef\CD@wJ=6 \dimendef\CD@tI=8 \dimendef\CD@sI=9 |
---|
348 | \skipdef\CD@uB=1 \skipdef\CD@NF=2 \skipdef\CD@tB=3 \skipdef\CD@ZE=4 \skipdef |
---|
349 | \CD@JK=5 \skipdef\CD@kI=6 \skipdef\CD@kF=7 \skipdef\CD@qI=8 \skipdef\CD@pI=9 |
---|
350 | \countdef\CD@JC=9 \countdef\CD@gD=8 \countdef\CD@A=7 \def\sdef#1#2{\def#1{#2}% |
---|
351 | }\def\CD@L#1{\expandafter\aftergroup\csname#1\endcsname}\def\CD@RC#1{% |
---|
352 | \expandafter\def\csname#1\endcsname}\def\CD@sD#1{\expandafter\gdef\csname#1% |
---|
353 | \endcsname}\def\CD@vC#1{\expandafter\edef\csname#1\endcsname}\def\CD@nF#1#2{% |
---|
354 | \expandafter\let\csname#1\expandafter\endcsname\csname#2\endcsname}\def\CD@EE |
---|
355 | #1#2{\expandafter\CD@DE\csname#1\expandafter\endcsname\csname#2\endcsname}% |
---|
356 | \def\CD@AK#1{\csname#1\endcsname}\def\CD@XJ#1{\expandafter\show\csname#1% |
---|
357 | \endcsname}\def\CD@ZJ#1{\expandafter\showthe\csname#1\endcsname}\def\CD@WJ#1{% |
---|
358 | \expandafter\showbox\csname#1\endcsname}\def\CD@tA{Commutative Diagram}\edef |
---|
359 | \CD@kH{\string\par}\edef\CD@dC{\string\diagram}\edef\CD@HD{\string\enddiagram |
---|
360 | }\edef\CD@EC{\string\\}\def\CD@eF{LaTeX}\ifx\@ignoretrue\CD@qK\expandafter |
---|
361 | \CD@tG\csname if@ignore\endcsname\ignore@true\ignore@false\def\@ignoretrue{% |
---|
362 | \global\ignore@true}\def\@ignorefalse{\global\ignore@false}\fi |
---|
363 | |
---|
364 | \def\CD@g{{\ifnum0=`}\fi}\def\CD@wC{\ifnum0=`{\fi}}\def\catcase#1:{\ifcat |
---|
365 | \noexpand\CD@EH#1\CD@tJ\expandafter\CD@kC\else\expandafter\CD@dJ\fi}\def |
---|
366 | \tokcase#1:{\ifx\CD@EH#1\CD@tJ\expandafter\CD@kC\else\expandafter\CD@dJ\fi}% |
---|
367 | \def\CD@kC#1;#2\endswitch{#1}\def\CD@dJ#1;{}\let\endswitch\relax\def\default:% |
---|
368 | #1;#2\endswitch{#1}\ifx\at@\CD@qK\def\at@{@}\fi\edef\CD@P{\CD@o pt\CD@yC}% |
---|
369 | \CD@RC{\CD@P>}#1>#2>{\CD@z\rTo\sp{#1}\sb{#2}\CD@z}\CD@RC{\CD@P<}#1<#2<{\CD@z |
---|
370 | \lTo\sp{#1}\sb{#2}\CD@z}\CD@RC{\CD@P)}#1)#2){\CD@z\rTo\sp{#1}\sb{#2}\CD@z}% |
---|
371 | %%ascii round |
---|
372 | \CD@RC{\CD@P(}#1(#2({\CD@z\lTo\sp{#1}\sb{#2}\CD@z}%%ascii brack |
---|
373 | \def\CD@O{\def\endCD{\enddiagram}\CD@RC{\CD@P A}##1A##2A{\uTo<{##1}>{##2}% |
---|
374 | \CD@z\CD@z}\CD@RC{\CD@P V}##1V##2V{\dTo<{##1}>{##2}\CD@z\CD@z}\CD@RC{\CD@P=}{% |
---|
375 | \CD@z\hEq\CD@z}\CD@RC{\CD@P\CD@KK}{\vEq\CD@z\CD@z}\CD@RC{\CD@P\string\vert}{% |
---|
376 | \vEq\CD@z\CD@z}\CD@RC{\CD@P.}{\CD@z\CD@z}\let\CD@z\CD@Q}\def\CD@IE{\let\tmp |
---|
377 | \CD@JE\ifcat A\noexpand\CD@CH\else\ifcat=\noexpand\CD@CH\else\ifcat\relax |
---|
378 | \noexpand\CD@CH\else\let\tmp\at@\fi\fi\fi\tmp}\def\CD@JE#1{\CD@nF{tmp}{\CD@P |
---|
379 | \string#1}\ifx\tmp\relax\def\tmp{\at@#1}\fi\tmp}\def\CD@z{}\begingroup |
---|
380 | \aftergroup\def\aftergroup\CD@T\aftergroup{\aftergroup\def\catcode`\@\active |
---|
381 | \aftergroup @\endgroup{\futurelet\CD@CH\CD@IE}}\newcount\CD@uA\newcount\CD@vA |
---|
382 | \newcount\CD@wA\newcount\CD@xA\newdimen\CD@OA\newdimen\CD@PA\CD@tG\CD@gE |
---|
383 | \CD@@A\CD@y\CD@tG\CD@hE\CD@EA\CD@BA\newdimen\CD@RA\newdimen\CD@SA\newcount |
---|
384 | \CD@yA\newcount\CD@zA\newdimen\CD@QA\newbox\CD@DA\CD@tG\CD@lE\CD@dA\CD@bA |
---|
385 | \newcount\CD@LH\newcount\CD@TC\def\CD@V#1#2{\ifdim#1<#2\relax#1=#2\relax\fi}% |
---|
386 | \def\CD@X#1#2{\ifdim#1>#2\relax#1=#2\relax\fi}\newdimen\CD@XH\CD@XH=1sp |
---|
387 | \newdimen\CD@zC\CD@zC\z@\def\CD@cJ{\ifdim\CD@zC=1em\else\CD@nJ\fi}\def\CD@nJ{% |
---|
388 | \CD@zC1em\def\CD@NC{\fontdimen8\textfont3 }\CD@@J\CD@NJ\setbox0=\vbox{\CD@t |
---|
389 | \noindent\CD@k\null\penalty-9993\null\CD@ND\null\endgraf\setbox0=\lastbox |
---|
390 | \unskip\unpenalty\setbox1=\lastbox\global\setbox\CD@IG=\hbox{\unhbox0\unskip |
---|
391 | \unskip\unpenalty\setbox0=\lastbox}\global\setbox\CD@KG=\hbox{\unhbox1\unskip |
---|
392 | \unpenalty\setbox1=\lastbox}}}\newdimen\CD@@I\CD@@I=1true in \divide\CD@@I300 |
---|
393 | \def\CD@zH#1{\multiply#1\tw@\advance#1\ifnum#1<\z@-\else+\fi\CD@@I\divide#1% |
---|
394 | \tw@\divide#1\CD@@I\multiply#1\CD@@I}\def\MapBreadth{\afterassignment\CD@gI |
---|
395 | \CD@LF}\newdimen\CD@LF\newdimen\CD@oI\def\CD@gI{\CD@oI\CD@LF\CD@V\CD@@I{4% |
---|
396 | \CD@XH}\CD@X\CD@@I\p@\CD@zH\CD@oI\ifdim\CD@LF>\z@\CD@V\CD@oI\CD@@I\fi\CD@cJ}% |
---|
397 | \def\CD@RJ#1{\CD@zD\count@\CD@@I#1\ifnum\count@>\z@\divide\CD@@I\count@\fi |
---|
398 | \CD@gI\CD@NJ}\def\CD@NJ{\dimen@\CD@QC\count@\dimen@\divide\count@5\divide |
---|
399 | \count@\CD@@I\edef\CD@OC{\the\count@}}\def\CD@AJ{\CD@QJ\z@}\def\CD@QJ#1{% |
---|
400 | \CD@tI\axisheight\advance\CD@tI#1\relax\advance\CD@tI-.5\CD@oI\CD@zH\CD@tI |
---|
401 | \CD@sI-\CD@tI\advance\CD@tI\CD@LF}\newdimen\CD@DC\CD@DC\z@\newdimen\CD@eJ |
---|
402 | \CD@eJ\z@\def\CD@CJ#1{\CD@sI#1\relax\CD@tI\CD@sI\advance\CD@tI\CD@LF\relax}% |
---|
403 | \def\horizhtdp{height\CD@tI depth\CD@sI}\def\axisheight{\fontdimen22\the |
---|
404 | \textfont\tw@}\def\script@axisheight{\fontdimen22\the\scriptfont\tw@}\def |
---|
405 | \ss@axisheight{\fontdimen22\the\scriptscriptfont\tw@}\def\CD@NC{0.4pt}\def |
---|
406 | \CD@VK{\fontdimen3\textfont\z@}\def\CD@UK{\fontdimen3\textfont\z@}\newdimen |
---|
407 | \PileSpacing\newdimen\CD@nA\CD@nA\z@\def\CD@RG{\ifincommdiag1.3em\else2em\fi}% |
---|
408 | \newdimen\CD@YB\def\CellSize{\afterassignment\CD@kB\DiagramCellHeight}% |
---|
409 | \newdimen\DiagramCellHeight\DiagramCellHeight-\maxdimen\newdimen |
---|
410 | \DiagramCellWidth\DiagramCellWidth-\maxdimen\def\CD@kB{\DiagramCellWidth |
---|
411 | \DiagramCellHeight}\def\CD@QC{3em}\newdimen\MapShortFall\def\MapsAbut{% |
---|
412 | \MapShortFall\z@\objectheight\z@\objectwidth\z@}\newdimen\CD@iA\CD@iA\z@ |
---|
413 | \CD@tG\CD@vE\CD@aB\CD@ZB\expandafter\ifx\expandafter\iftrue\csname |
---|
414 | ifUglyObsoleteDiagrams\endcsname\CD@ZB\else\CD@aB\fi\CD@nF{% |
---|
415 | ifUglyObsoleteDiagrams}{relax}\newif\ifUglyObsoleteDiagrams\def\CD@nK{\CD@aB |
---|
416 | \UglyObsoleteDiagramsfalse}\def\CD@oK{\CD@ZB\UglyObsoleteDiagramstrue}\CD@vE |
---|
417 | \CD@nK\else\CD@oK\fi\CD@tG\CD@hK\CD@dK\CD@cK\CD@cK\def\CD@sK{\ifx\pdfoutput |
---|
418 | \CD@qK\else\ifx\pdfoutput\relax\else\ifnum\pdfoutput>\z@\CD@pK\fi\fi\fi} \def |
---|
419 | \CD@pK{\global\CD@dK\global\CD@aB\global\UglyObsoleteDiagramsfalse\global\let |
---|
420 | \CD@n\empty\global\let\CD@oK\relax\global\let\CD@pK\relax\global\let\CD@sK |
---|
421 | \relax}\def\CD@tK#1{\special{pdf: literal #1}}\ifx\pdfliteral\CD@qK\else\ifx |
---|
422 | \pdfliteral\relax\else\let\CD@tK\pdfliteral\fi\fi\ifx\XeTeXrevision\CD@qK |
---|
423 | \else\ifx\XeTeXrevision\relax\else\ifdim\XeTeXrevision pt<.996pt \expandafter |
---|
424 | \message{! XeTeX version \XeTeXrevision\space does not support PDF literals, |
---|
425 | so diagonals will not work!}\else\expandafter\message{RUNNING UNDER XETEX |
---|
426 | \XeTeXrevision}\CD@pK\fi\fi\fi\CD@sK\def\newarrowhead{\CD@mG h\CD@BG\CD@GG>}% |
---|
427 | \def\newarrowtail{\CD@mG t\CD@BG\CD@GG>}\def\newarrowmiddle{\CD@mG m\CD@BG |
---|
428 | \hbox@maths\empty}\def\newarrowfiller{\CD@mG f\CD@bE\CD@MK-}\def\CD@mG#1#2#3#% |
---|
429 | 4#5#6#7#8#9{\CD@RC{r#1:#5}{#2{#6}}\CD@RC{l#1:#5}{#2{#7}}\CD@RC{d#1:#5}{#3{#8}% |
---|
430 | }\CD@RC{u#1:#5}{#3{#9}}\CD@vC{-#1:#5}{\expandafter\noexpand\csname-#1:#4% |
---|
431 | \endcsname\noexpand\CD@MC}\CD@vC{+#1:#5}{\expandafter\noexpand\csname+#1:#4% |
---|
432 | \endcsname\noexpand\CD@MC}}\CD@ZA\CD@MC{\CD@eF\space diagonals are used unless |
---|
433 | PostScript is set}\def\defaultarrowhead#1{\edef\CD@sJ{#1}\CD@@J}\def\CD@@J{% |
---|
434 | \CD@IJ\CD@sJ<>ht\CD@IJ\CD@sJ<>th}\def\CD@IJ#1#2#3#4#5{\CD@HJ{r#4}{#3}{l#5}{#2% |
---|
435 | }{r#4:#1}\CD@HJ{r#5}{#2}{l#4}{#3}{l#4:#1}\CD@HJ{d#4}{#3}{u#5}{#2}{d#4:#1}% |
---|
436 | \CD@HJ{d#5}{#2}{u#4}{#3}{u#4:#1}}\def\CD@HJ#1#2#3#4#5{\begingroup\aftergroup |
---|
437 | \CD@GJ\CD@L{#1+:#2}\CD@L{#1:#2}\CD@L{#3:#4}\CD@L{#5}\endgroup}\def\CD@GJ#1#2#% |
---|
438 | 3#4{\csname newbox\endcsname#1\def#2{\copy#1}\def#3{\copy#1}\setbox#1=\box |
---|
439 | \voidb@x}\def\CD@sJ{}\CD@@J\def\CD@GJ#1#2#3#4{\setbox#1=#4}\ifx\tenln |
---|
440 | \nullfont\def\CD@sJ{vee}\else\let\CD@sJ\CD@eF\fi\def\CD@xF#1#2#3{\begingroup |
---|
441 | \aftergroup\CD@wF\CD@L{#1#2:#3#3}\CD@L{#1#2:#3}\aftergroup\CD@yF\CD@L{#1#2:#3% |
---|
442 | -#3}\CD@L{#1#2:#3}\endgroup}\def\CD@wF#1#2{\def#1{\hbox{\rlap{#2}\kern.4% |
---|
443 | \CD@zC#2}}}\def\CD@yF#1#2{\def#1{\hbox{\rlap{#2}\kern.4\CD@zC#2\kern-.4\CD@zC |
---|
444 | }}}\CD@xF lh>\CD@xF rt>\CD@xF rh<\CD@xF rt<\def\CD@yF#1#2{\def#1{\hbox{\kern-% |
---|
445 | .4\CD@zC\rlap{#2}\kern.4\CD@zC#2}}}\CD@xF rh>\CD@xF lh<\CD@xF lt>\CD@xF lt<% |
---|
446 | \def\CD@wF#1#2{\def#1{\vbox{\vbox to\z@{#2\vss}\nointerlineskip\kern.4\CD@zC#% |
---|
447 | 2}}}\def\CD@yF#1#2{\def#1{\vbox{\vbox to\z@{#2\vss}\nointerlineskip\kern.4% |
---|
448 | \CD@zC#2\kern-.4\CD@zC}}}\CD@xF uh>\CD@xF dt>\CD@xF dh<\CD@xF dt<\def\CD@yF#1% |
---|
449 | #2{\def#1{\vbox{\kern-.4\CD@zC\vbox to\z@{#2\vss}\nointerlineskip\kern.4% |
---|
450 | \CD@zC#2}}}\CD@xF dh>\CD@xF ut>\CD@xF uh<\CD@xF ut<\def\CD@BG#1{\hbox{% |
---|
451 | \mathsurround\z@\offinterlineskip\CD@k\mkern-1.5mu{#1}\mkern-1.5mu\CD@ND}}% |
---|
452 | \def\hbox@maths#1{\hbox{\CD@k#1\CD@ND}}\def\CD@GG#1{\hbox to\CD@LF{\setbox0=% |
---|
453 | \hbox{\offinterlineskip\mathsurround\z@\CD@k{#1}\CD@ND}\dimen0.5\wd0\advance |
---|
454 | \dimen0-.5\CD@oI\CD@zH{\dimen0}\kern-\dimen0\unhbox0\hss}}\def\CD@sB#1{\hbox |
---|
455 | to2\CD@LF{\hss\offinterlineskip\mathsurround\z@\CD@k{#1}\CD@ND\hss}}\def |
---|
456 | \CD@vF#1{\hbox{\mathsurround\z@\CD@k{#1}\CD@ND}}\def\CD@bE#1{\hbox{\kern-.15% |
---|
457 | \CD@zC\CD@k{#1}\CD@ND\kern-.15\CD@zC}}\def\CD@MK#1{\vbox{\offinterlineskip |
---|
458 | \kern-.2ex\CD@GG{#1}\kern-.2ex}}\def\@fillh{\xleaders\vrule\horizhtdp}\def |
---|
459 | \@fillv{\xleaders\hrule width\CD@LF}\CD@nF{rf:-}{@fillh}\CD@nF{lf:-}{@fillh}% |
---|
460 | \CD@nF{df:-}{@fillv}\CD@nF{uf:-}{@fillv}\CD@nF{rh:}{null}\CD@nF{rm:}{null}% |
---|
461 | \CD@nF{rt:}{null}\CD@nF{lh:}{null}\CD@nF{lm:}{null}\CD@nF{lt:}{null}\CD@nF{dh% |
---|
462 | :}{null}\CD@nF{dm:}{null}\CD@nF{dt:}{null}\CD@nF{uh:}{null}\CD@nF{um:}{null}% |
---|
463 | \CD@nF{ut:}{null}\CD@nF{+h:}{null}\CD@nF{+m:}{null}\CD@nF{+t:}{null}\CD@nF{-h% |
---|
464 | :}{null}\CD@nF{-m:}{null}\CD@nF{-t:}{null}\def\CD@@D{\hbox{\vrule height 1pt |
---|
465 | depth-1pt width 1pt}}\CD@RC{rf:}{\CD@@D}\CD@nF{lf:}{rf:}\CD@nF{+f:}{rf:}% |
---|
466 | \CD@RC{df:}{\CD@@D}\CD@nF{uf:}{df:}\CD@nF{-f:}{df:}\def\CD@BD{\CD@U\null |
---|
467 | \CD@@D\null\CD@@D\null}\edef\CD@lG{\string\newarrow}\def\newarrow#1#2#3#4#5#6% |
---|
468 | {\begingroup\edef\@name{#1}\edef\CD@oJ{#2}\edef\CD@iD{#3}\edef\CD@QG{#4}\edef |
---|
469 | \CD@jD{#5}\edef\CD@LE{#6}\let\CD@HE\CD@sG\let\CD@FK\CD@BH\let\@x\CD@AH\ifx |
---|
470 | \CD@oJ\CD@iD\let\CD@oJ\empty\fi\ifx\CD@LE\CD@jD\let\CD@LE\empty\fi\def\CD@LI{% |
---|
471 | r}\def\CD@SF{l}\def\CD@IC{d}\def\CD@yJ{u}\def\CD@gH{+}\def\@m{-}\ifx\CD@iD |
---|
472 | \CD@jD\ifx\CD@QG\CD@iD\let\CD@QG\empty\fi\ifx\CD@LE\empty\ifx\CD@iD\CD@aE\let |
---|
473 | \@x\CD@yG\else\let\@x\CD@zG\fi\fi\else\edef\CD@a{\CD@iD\CD@oJ}\ifx\CD@a\empty |
---|
474 | \ifx\CD@QG\CD@jD\let\CD@QG\empty\fi\fi\fi\ifmmode\aftergroup\CD@kG\else\CD@@A |
---|
475 | \CD@oB rh{head\space\space}\CD@LE\CD@oB rf{filler}\CD@iD\CD@oB rm{middle}% |
---|
476 | \CD@QG\ifx\CD@jD\CD@iD\else\CD@oB rf{filler}\CD@jD\fi\CD@oB rt{tail\space |
---|
477 | \space}\CD@oJ\CD@gE\CD@HE\CD@FK\@x\CD@nG l-2+2{lu}{nw}\NorthWest\CD@nG r+2+2{% |
---|
478 | ru}{ne}\NorthEast\CD@nG l-2-2{ld}{sw}\SouthWest\CD@nG r+2-2{rd}{se}\SouthEast |
---|
479 | \else\aftergroup\CD@b\CD@L{r\@name}\fi\fi\endgroup}\def\CD@sG{\CD@vG\CD@LI |
---|
480 | \CD@SF rl\Horizontal@Map}\def\CD@BH{\CD@vG\CD@IC\CD@yJ du\Vertical@Map}\def |
---|
481 | \CD@AH{\CD@vG\CD@gH\@m+-\Vector@Map}\def\CD@yG{\CD@vG\CD@gH\@m+-\Slant@Map}% |
---|
482 | \def\CD@zG{\CD@vG\CD@gH\@m+-\Slope@Map}\catcode`\/=\active\def\CD@vG#1#2#3#4#% |
---|
483 | 5{\CD@jG#1#3#5t:\CD@oJ/f:\CD@iD/m:\CD@QG/f:\CD@jD/h:\CD@LE//\CD@jG#2#4#5h:% |
---|
484 | \CD@LE/f:\CD@jD/m:\CD@QG/f:\CD@iD/t:\CD@oJ//}\def\CD@jG#1#2#3#4//{\edef\CD@fG |
---|
485 | {#2}\aftergroup\sdef\CD@L{#1\@name}\aftergroup{\aftergroup#3\CD@M#4//% |
---|
486 | \aftergroup}}\def\CD@M#1/{\edef\CD@EH{#1}\ifx\CD@EH\empty\else\CD@L{\CD@fG#1}% |
---|
487 | \expandafter\CD@M\fi}\catcode`\/=12 \def\CD@nG#1#2#3#4#5#6#7#8{\aftergroup |
---|
488 | \sdef\CD@L{#6\@name}\aftergroup{\CD@L{#2\@name}\if#2#4\aftergroup\CD@CI\else |
---|
489 | \aftergroup\CD@BI\fi\CD@L{#1\@name}% |
---|
490 | %% ASCII round brackets and comma (,) appear on the next line |
---|
491 | \aftergroup(\aftergroup#3\aftergroup,\aftergroup#5\aftergroup)\aftergroup}}% |
---|
492 | \def\CD@oB#1#2#3#4{\expandafter\ifx\csname#1#2:#4\endcsname\relax\CD@y\CD@gB{% |
---|
493 | arrow#3 "#4" undefined}\fi}\CD@rG\CD@VE{All five components must be defined |
---|
494 | before an arrow.}\CD@rG\CD@SE{\CD@lG, unlike \string\HorizontalMap, is a |
---|
495 | declaration.}\def\CD@b#1{\CD@YA{Arrows \string#1 etc could not be defined}% |
---|
496 | \CD@VE}\def\CD@kG{\CD@YA{misplaced \CD@lG}\CD@SE}\def\newdiagramgrid#1#2#3{% |
---|
497 | \CD@RC{cdgh@#1}{#2,],}%% ASCII close square bracket |
---|
498 | \CD@RC{cdgv@#1}{#3,],}}%% ASCII close square bracket |
---|
499 | \CD@tG\ifincommdiag\incommdiagtrue\incommdiagfalse\CD@tG\CD@@F\CD@IF\CD@HF |
---|
500 | \newcount\CD@VA\CD@VA=0 \def\CD@yH{\CD@VA6 }\def\CD@OB{\CD@VA1 \global\CD@yA1 |
---|
501 | \CD@DE\CD@YF\empty}\def\CD@YF{}\def\CD@nB#1{\relax\CD@MD\edef\CD@vJ{#1}% |
---|
502 | \begingroup\CD@rE\else\ifcase\CD@VA\ifmmode\else\CD@YG\CD@E0\fi\or\CD@cE5\or |
---|
503 | \CD@YG\CD@F5\or\CD@YG\CD@B5\or\CD@YG\CD@B5\or\CD@YG\CD@C5\or\CD@cE7\or\CD@YG |
---|
504 | \CD@D7\fi\fi\endgroup\xdef\CD@YF{#1}}\def\CD@pB#1#2#3#4#5{\relax\CD@MD\xdef |
---|
505 | \CD@vJ{#4}\begingroup\ifnum\CD@VA<#1 \expandafter\CD@cE\ifcase\CD@VA0\or#2\or |
---|
506 | #3\else#2\fi\else\ifnum\CD@VA<6 \CD@tJ\CD@YG\CD@B#2\else\CD@YG\CD@G#2\fi\fi |
---|
507 | \endgroup\CD@DE\CD@YF\CD@vJ\ifincommdiag\let\CD@ZD#5\else\let\CD@ZD\CD@LK\fi}% |
---|
508 | \def\CD@yI{\global\CD@yA=\ifnum\CD@VA<5 1\else2\fi\relax}\def\CD@OI{\CD@VA |
---|
509 | \CD@yA}\def\CD@cE#1{\aftergroup\CD@VA\aftergroup#1\aftergroup\relax}\def |
---|
510 | \CD@HH{\def\CD@nB##1{\relax}\let\CD@pB\CD@FH\let\CD@yH\relax\let\CD@OB\relax |
---|
511 | \let\CD@yI\relax\let\CD@OI\relax}\def\CD@FH#1#2#3#4#5{\ifincommdiag\let\CD@ZD |
---|
512 | #5\else\xdef\CD@vJ{#4}\let\CD@ZD\CD@LK\fi}\def\CD@YG#1{\aftergroup#1% |
---|
513 | \aftergroup\relax\CD@cE}\def\CD@B{\CD@YE\CD@S\CD@ME\CD@Q}\def\CD@G{\CD@YE{% |
---|
514 | \CD@yC\CD@S}\CD@XE\CD@QD\CD@Q}\def\CD@F{\CD@YE{*\CD@S}\CD@RE\clubsuit\CD@Q}% |
---|
515 | \def\CD@C{\CD@YE{\CD@S*\CD@S}\CD@RE\CD@Q\clubsuit\CD@Q}\def\CD@D{\CD@YE\CD@EC |
---|
516 | \CD@TE\\}\def\CD@E{\CD@YE\CD@nC\CD@QE\CD@k}\def\CD@LK{\CD@YA{\CD@vJ\space |
---|
517 | ignored \CD@dH}\CD@WE}\def\CD@FE{}\def\CD@d{\CD@YA{maps must never be enclosed |
---|
518 | in braces}\CD@OE}\def\CD@dH{outside diagram}\def\CD@FC{\string\HonV, \string |
---|
519 | \VonH\space and \string\HmeetV}\CD@rG\CD@ME{The way that horizontal and |
---|
520 | vertical arrows are terminated implicitly means\CD@uG that they cannot be |
---|
521 | mixed with each other or with \CD@FC.}\CD@rG\CD@XE{\string\pile\space is for |
---|
522 | parallel horizontal arrows; verticals can just be put together in\CD@uG a cell% |
---|
523 | . \CD@FC\space are not meaningful in a \string\pile.}\CD@rG\CD@RE{The |
---|
524 | horizontal maps must point to an object, not each other (I've put in\CD@uG one |
---|
525 | which you're unlikely to want). Use \string\pile\space if you want them |
---|
526 | parallel.}\CD@rG\CD@TE{Parallel horizontal arrows must be in separate layers |
---|
527 | of a \string\pile.}\CD@rG\CD@QE{Horizontal arrows may be used \CD@dH s, but |
---|
528 | must still be in maths.}\CD@rG\CD@WE{Vertical arrows, \CD@FC\space\CD@dH s don% |
---|
529 | 't know where\CD@uG where to terminate.}\CD@rG\CD@OE{This prevents them from |
---|
530 | stretching correctly.}\def\CD@YE#1{\CD@YA{"#1" inserted \ifx\CD@YF\empty |
---|
531 | before \CD@vJ\else between \CD@YF\ifx\CD@YF\CD@vJ s\else\space and \CD@vJ\fi |
---|
532 | \fi}}\count@=\year\multiply\count@12 \advance\count@\month\ifnum\count@>24187 |
---|
533 | \message{because this one expired in July 2015!}\expandafter\endinput\fi\def |
---|
534 | \Horizontal@Map{\CD@nB{horizontal map}\CD@LC\CD@TJ\CD@qD}\def\CD@TJ{\CD@GB-% |
---|
535 | 9999 \let\CD@ZD\CD@XD\ifincommdiag\else\CD@cJ\ifinpile\else\skip2\z@ plus 1.5% |
---|
536 | \CD@VK minus .5\CD@UK\skip4\skip2 \fi\fi\let\CD@kD\@fillh\CD@nF{fill@dot}{rf:% |
---|
537 | .}}\def\Vector@Map{\CD@HK4}\def\Slant@Map{\CD@HK{\CD@EF255\else6\fi}}\def |
---|
538 | \Slope@Map{\CD@HK\CD@OC}\def\CD@HK#1#2#3#4#5#6{\CD@LC\def\CD@WK{2}\def\CD@aK{% |
---|
539 | 2}\def\CD@ZK{1}\def\CD@bK{1}\let\Horizontal@Map\CD@nI\def\CD@OG{#1}\def\CD@NI |
---|
540 | {\CD@U#2#3#4#5#6}}\def\CD@nI{\CD@TJ\CD@JB\let\CD@ZD\CD@TD\CD@qD}\CD@tG\CD@pE |
---|
541 | \CD@rA\CD@qA\CD@rA\def\cds@missives{\CD@rA}\def\CD@TD{\CD@vE\let\CD@OG\CD@OC |
---|
542 | \CD@x\CD@zE\CD@WF\fi\setbox0\hbox{\incommdiagfalse\CD@HI}\CD@pE\CD@aD\else |
---|
543 | \global\CD@YC\CD@bD\fi\ifvoid6 \ifvoid7 \CD@eE\fi\fi\CD@zE\else\CD@BD\global |
---|
544 | \CD@YC\let\CD@CG\CD@IH\CD@YD\fi\else\CD@NI\CD@MI\global\CD@YC\CD@YD\fi}\def |
---|
545 | \CD@LC{\begingroup\dimen1=\MapShortFall\dimen2=\CD@RG\dimen5=\MapShortFall |
---|
546 | \setbox3=\box\voidb@x\setbox6=\box\voidb@x\setbox7=\box\voidb@x\CD@pD |
---|
547 | \mathsurround\z@\skip2\z@ plus1fill minus 1000pt\skip4\skip2 \CD@TB}\CD@tG |
---|
548 | \CD@tE\CD@UB\CD@TB\def\CD@U#1#2#3#4#5{\let\CD@oJ#1\let\CD@iD#2\let\CD@QG#3% |
---|
549 | \let\CD@jD#4\let\CD@LE#5\CD@TB\ifx\CD@iD\CD@jD\CD@UB\fi}\def\CD@qD#1#2#3#4#5{% |
---|
550 | \CD@U#1#2#3#4#5\CD@tD}\def\Vertical@Map{\CD@pB433{vertical map}\CD@cD\CD@LC |
---|
551 | \CD@GB-9995 \let\CD@kD\@fillv\CD@nF{fill@dot}{df:.}\CD@qD}\def\break@args{% |
---|
552 | \def\CD@tD{\CD@ZD}\CD@ZD\endgroup\aftergroup\CD@FE}\def\CD@MJ{\setbox1=\CD@oJ |
---|
553 | \setbox5=\CD@LE\ifvoid3 \ifx\CD@QG\null\else\setbox3=\CD@QG\fi\fi\CD@@G2% |
---|
554 | \CD@iD\CD@@G4\CD@jD}\def\CD@pF#1{\ifvoid1\else\CD@oF1#1\fi\ifvoid2\else\CD@oF |
---|
555 | 2#1\fi\ifvoid3\else\CD@oF3#1\fi\ifvoid4\else\CD@oF4#1\fi\ifvoid5\else\CD@oF5#% |
---|
556 | 1\fi} \def\CD@oF#1#2{\setbox#1\vbox{\offinterlineskip\box#1\dimen@\prevdepth |
---|
557 | \advance\dimen@-#2\relax\setbox0\null\dp0\dimen@\ht0-\dimen@\box0}}\def\CD@@G |
---|
558 | #1#2{\ifx#2\CD@kD\setbox#1=\box\voidb@x\else\setbox#1=#2\def#2{\xleaders\box#% |
---|
559 | 1}\fi}\CD@ZA\CD@BK{\string\HorizontalMap, \string\VerticalMap\space and |
---|
560 | \string\DiagonalMap\CD@uG are obsolete - use \CD@lG\space to pre-define maps}% |
---|
561 | \def\HorizontalMap#1#2#3#4#5{\CD@BK\CD@nB{old horizontal map}\CD@LC\CD@TJ\def |
---|
562 | \CD@oJ{\CD@UH{#1}}\CD@SH\CD@iD{#2}\def\CD@QG{\CD@UH{#3}}\CD@SH\CD@jD{#4}\def |
---|
563 | \CD@LE{\CD@UH{#5}}\CD@tD}\def\VerticalMap#1#2#3#4#5{\CD@BK\CD@pB433{vertical |
---|
564 | map}\CD@cD\CD@LC\CD@GB-9995 \let\CD@kD\@fillv\def\CD@oJ{\CD@GG{#1}}\CD@VH |
---|
565 | \CD@iD{#2}\def\CD@QG{\CD@GG{#3}}\CD@VH\CD@jD{#4}\def\CD@LE{\CD@GG{#5}}\CD@tD}% |
---|
566 | \def\DiagonalMap#1#2#3#4#5{\CD@BK\CD@LC\def\CD@OG{4}\let\CD@kD\CD@qK\let |
---|
567 | \CD@ZD\CD@YD\def\CD@WK{2}\def\CD@aK{2}\def\CD@ZK{1}\def\CD@bK{1}\def\CD@QG{% |
---|
568 | \CD@vF{#3}}\ifPositiveGradient\let\mv\raise\def\CD@oJ{\CD@vF{#5}}\def\CD@iD{% |
---|
569 | \CD@vF{#4}}\def\CD@jD{\CD@vF{#2}}\def\CD@LE{\CD@vF{#1}}\else\let\mv\lower\def |
---|
570 | \CD@oJ{\CD@vF{#1}}\def\CD@iD{\CD@vF{#2}}\def\CD@jD{\CD@vF{#4}}\def\CD@LE{% |
---|
571 | \CD@vF{#5}}\fi\CD@tD}\def\CD@aE{-}\def\CD@AD{\empty}\def\CD@SH{\CD@EG\CD@bE |
---|
572 | \CD@aE\@fillh}\def\CD@VH{\CD@EG\CD@MK\CD@KK\@fillv}\def\CD@EG#1#2#3#4#5{\def |
---|
573 | \CD@CH{#5}\ifx\CD@CH#2\let#4#3\else\let#4\null\ifx\CD@CH\empty\else\ifx\CD@CH |
---|
574 | \CD@AD\else\let#4\CD@CH\fi\fi\fi}\def\CD@UH#1{\hbox{\mathsurround\z@ |
---|
575 | \offinterlineskip\def\CD@CH{#1}\ifx\CD@CH\empty\else\ifx\CD@CH\CD@AD\else |
---|
576 | \CD@k\mkern-1.5mu{\CD@CH}\mkern-1.5mu\CD@ND\fi\fi}}\def\CD@yD#1#2{\setbox#1=% |
---|
577 | \hbox\bgroup\setbox0=\hbox{\CD@k\labelstyle()\CD@ND}%% ASCII round brackets |
---|
578 | \setbox1=\null\ht1\ht0\dp1\dp0\box1 \kern.1\CD@zC\CD@k\bgroup\labelstyle |
---|
579 | \aftergroup\CD@LD\CD@xD}\def\CD@LD{\CD@ND\kern.1\CD@zC\egroup\CD@tD}\def |
---|
580 | \CD@xD{\futurelet\CD@EH\CD@mJ}\def\CD@mJ{%% qualifiers on label arguments |
---|
581 | \catcase\bgroup:\CD@v;\catcase\egroup:\missing@label;\catcase\space:\CD@TF;% |
---|
582 | \tokcase[:\CD@XF;%%]%ascii close square bracket |
---|
583 | \default:\CD@zJ;\endswitch}\def\CD@v{\let\CD@MD\CD@c\let\CD@CH}\def\CD@zJ#1{% |
---|
584 | \let\CD@UF\egroup{\let\actually@braces@missing@around@macro@in@label\CD@ZH |
---|
585 | \let\CD@MD\CD@xC\let\CD@UF\CD@VF#1% |
---|
586 | \actually@braces@missing@around@macro@in@label}\CD@UF}\def |
---|
587 | \actually@braces@missing@around@macro@in@label{\let\CD@CH=}\def\missing@label |
---|
588 | {\egroup\CD@YA{missing label}\CD@PE}\def\CD@xC{\egroup\missing@label}\outer |
---|
589 | \def\CD@ZH{}\def\CD@UF{}\def\CD@VF{\CD@wC\CD@UF}\def\CD@MD{}\def\CD@XF{\let |
---|
590 | \CD@N\CD@xD\get@square@arg\CD@AE}\CD@rG\CD@PE{The text which has just been |
---|
591 | read is not allowed within map labels.}\def\CD@c{\egroup\CD@YA{missing \CD@yC |
---|
592 | \space inserted after label}\CD@PE}\def\upper@label{\CD@oD\CD@yD6}\def |
---|
593 | \lower@label{\def\positional@{\CD@@A\break@args}\CD@yD7}\def\middle@label{% |
---|
594 | \CD@yD3}\CD@tG\CD@yE\CD@pD\CD@oD\def\CD@iF{\ifPositiveGradient\CD@tJ |
---|
595 | \expandafter\upper@label\else\expandafter\lower@label\fi}\def\CD@iI{% |
---|
596 | \ifPositiveGradient\CD@tJ\expandafter\lower@label\else\expandafter |
---|
597 | \upper@label\fi}\def\positional@{\CD@gB{labels as positional arguments are |
---|
598 | obsolete}\CD@yE\CD@tJ\expandafter\upper@label\else\expandafter\lower@label\fi |
---|
599 | -}\def\CD@tD{\futurelet\CD@EH\switch@arg}\def\eat@space{\afterassignment |
---|
600 | \CD@tD\let\CD@EH= }\def\CD@TF{\afterassignment\CD@xD\let\CD@EH= }\def\CD@BC{% |
---|
601 | \get@round@pair\CD@uD}\def\CD@uD#1#2{\def\CD@WK{#1}\def\CD@aK{#2}\CD@tD}\def |
---|
602 | \optional@{\let\CD@N\CD@tD\get@square@arg\CD@AE}\def\CD@JJ.{\CD@sC\CD@tD}\def |
---|
603 | \CD@sC{\let\CD@iD\fill@dot\let\CD@jD\fill@dot\def\CD@MI{\let\CD@iD\dfdot\let |
---|
604 | \CD@jD\dfdot}}\def\CD@MI{}\def\CD@@E#1,{\CD@nH#1,\begingroup\ifx\@name\CD@RD |
---|
605 | \CD@FF\aftergroup\CD@e\fi\aftergroup\CD@jC\else\expandafter\def\expandafter |
---|
606 | \CD@RF\expandafter{\csname\@name\endcsname}\expandafter\CD@vD\CD@RF\CD@KD\ifx |
---|
607 | \CD@RF\empty\aftergroup\CD@pC\expandafter\aftergroup\csname\CD@FB\@name |
---|
608 | \endcsname\expandafter\aftergroup\csname\CD@FB @\@name\endcsname\else\gdef |
---|
609 | \CD@GE{#1}\CD@gB{\string\relax\space inserted before `[\CD@GE'}\message{(I was |
---|
610 | trying to read this as a \CD@tA\ option.)}\aftergroup\CD@H\fi\fi\endgroup}% |
---|
611 | \def\CD@vD#1#2\CD@KD{\def\CD@RF{#2}}\def\CD@jC{\let\CD@CH\CD@N\let\CD@N\relax |
---|
612 | \CD@CH}\def\CD@H#1],{%% ASCII close square bracket |
---|
613 | \CD@jC\relax\def\CD@RF{#1}\ifx\CD@RF\empty\def\CD@RF{[\CD@GE]}% |
---|
614 | %% ASCII open and close square bracket |
---|
615 | \else\def\CD@RF{[\CD@GE,#1]}%% ASCII open and close square bracket |
---|
616 | \fi\CD@RF}\def\CD@pC#1#2{\ifx#2\CD@qK\ifx#1\CD@qK\CD@gB{option `\@name' |
---|
617 | undefined}\else#1\fi\else\CD@FF\expandafter#2\CD@GK\CD@PK\else\CD@QK\fi\fi |
---|
618 | \CD@DH}\CD@tG\CD@FF\CD@QK\CD@PK\def\CD@nH#1,{\CD@FF\ifx\CD@GK\CD@qK\CD@e\else |
---|
619 | \expandafter\CD@oH\CD@GK,#1,(,),(,)[]% |
---|
620 | %%ASCII 5commas two pairs round, pair square |
---|
621 | \fi\fi\CD@FF\else\CD@mH#1==,\fi}\def\CD@e{\CD@gB{option `\@name' needs (x,y) |
---|
622 | value}\CD@PK\let\@name\empty}\def\CD@mH#1=#2=#3,{\def\@name{#1}\def\CD@GK{#2}% |
---|
623 | \def\CD@RF{#3}\ifx\CD@RF\empty\let\CD@GK\CD@qK\fi}% |
---|
624 | %% ASCII 2commas 2pair round, pair square on next line |
---|
625 | \def\CD@oH#1(#2,#3)#4,(#5,#6)#7[]{\def\CD@GK{{#2}{#3}}\def\CD@RF{#1#4#5#6}% |
---|
626 | \ifx\CD@RF\empty\def\CD@RF{#7}\ifx\CD@RF\empty\CD@e\fi\else\CD@e\fi}\def |
---|
627 | \CD@FB{cds@}\let\CD@N\relax\def\CD@zD#1{\ifx\CD@GK\CD@qK\CD@gB{option `\@name |
---|
628 | ' needs a value}\else#1\CD@GK\relax\fi}\def\CD@BE#1#2{\ifx\CD@GK\CD@qK#1#2% |
---|
629 | \relax\else#1\CD@GK\relax\fi}\def\cds@@showpair#1#2{\message{x=#1,y=#2}}\def |
---|
630 | \cds@@diagonalbase#1#2{\edef\CD@ZK{#1}\edef\CD@bK{#2}}\def\CD@DI#1{\def\CD@CH |
---|
631 | {#1}\CD@nF{@x}{cdps@#1}\ifx\CD@CH\empty\CD@f\CD@CH{cannot be used}\else\ifx |
---|
632 | \CD@CH\relax\CD@f\CD@CH{unknown}\else\let\CD@IK\@x\fi\fi}\def\CD@f#1#2{\CD@gB |
---|
633 | {PostScript translator `#1' #2}}\def\CD@PH{}\def\CD@PJ{\CD@fA\edef\CD@PH{% |
---|
634 | \noexpand\CD@KB{\@name\space ignored within maths}}}\def\diagramstyle{\CD@cJ |
---|
635 | \let\CD@N\relax\CD@CF\CD@AE\CD@AE}\let\diagramsstyle\diagramstyle\CD@tG\CD@sE |
---|
636 | \CD@SB\CD@RB\CD@tG\CD@qE\CD@EB\CD@DB\CD@tG\CD@oE\CD@pA\CD@oA\CD@tG\CD@iE |
---|
637 | \CD@HA\CD@GA\CD@HA\CD@tG\CD@jE\CD@JA\CD@IA\CD@tG\CD@kE\CD@LA\CD@KA\CD@tG |
---|
638 | \CD@EF\CD@DK\CD@CK\CD@tG\CD@rE\CD@JB\CD@IB\CD@tG\CD@mE\CD@gA\CD@fA\CD@tG |
---|
639 | \CD@nE\CD@kA\CD@jA\CD@tG\CD@AF\CD@iG\CD@hG\CD@RC{cds@ }{}\CD@RC{cds@}{}\CD@RC |
---|
640 | {cds@1em}{\CellSize1\CD@zC}\CD@RC{cds@1.5em}{\CellSize1.5\CD@zC}\CD@RC{cds@2% |
---|
641 | em}{\CellSize2\CD@zC}\CD@RC{cds@2.5em}{\CellSize2.5\CD@zC}\CD@RC{cds@3em}{% |
---|
642 | \CellSize3\CD@zC}\CD@RC{cds@3.5em}{\CellSize3.5\CD@zC}\CD@RC{cds@4em}{% |
---|
643 | \CellSize4\CD@zC}\CD@RC{cds@4.5em}{\CellSize4.5\CD@zC}\CD@RC{cds@5em}{% |
---|
644 | \CellSize5\CD@zC}\CD@RC{cds@6em}{\CellSize6\CD@zC}\CD@RC{cds@7em}{\CellSize7% |
---|
645 | \CD@zC}\CD@RC{cds@8em}{\CellSize8\CD@zC}\def\cds@abut{\MapsAbut\dimen1\z@ |
---|
646 | \dimen5\z@}\def\cds@alignlabels{\CD@IA\CD@KA}\def\cds@amstex{\ifincommdiag |
---|
647 | \CD@O\else\def\CD{\diagram[amstex]}%%ascii square brackets [] |
---|
648 | \fi\CD@T\catcode`\@\active}\def\cds@b{\let\CD@dB\CD@bB}\def\cds@balance{\let |
---|
649 | \CD@hA\CD@AA}\let\cds@bottom\cds@b\def\cds@center{\cds@vcentre\cds@nobalance}% |
---|
650 | \let\cds@centre\cds@center\def\cds@centerdisplay{\CD@HA\CD@PJ\cds@balance}% |
---|
651 | \let\cds@centredisplay\cds@centerdisplay\def\cds@crab{\CD@BE\CD@DC{.5% |
---|
652 | \PileSpacing}}\CD@RC{cds@crab-}{\CD@DC-.5\PileSpacing}\CD@RC{cds@crab+}{% |
---|
653 | \CD@DC.5\PileSpacing}\CD@RC{cds@crab++}{\CD@DC1.5\PileSpacing}\CD@RC{cds@crab% |
---|
654 | --}{\CD@DC-1.5\PileSpacing}\def\cds@defaultsize{\CD@BE{\let\CD@QC}{3em}\CD@NJ |
---|
655 | }\def\cds@displayoneliner{\CD@DB}\let\cds@dotted\CD@sC\def\cds@dpi{\CD@RJ{1% |
---|
656 | truein}}\def\cds@dpm{\CD@RJ{100truecm}}\let\CD@XA\CD@qK\def\cds@eqno{\let |
---|
657 | \CD@XA\CD@GK\let\CD@EJ\empty}\def\cds@fixed{\CD@qA}\CD@tG\CD@fE\CD@J\CD@I\def |
---|
658 | \cds@flushleft{\CD@I\CD@GA\CD@PJ\cds@nobalance\CD@BE\CD@nA\CD@nA}\def\cds@gap |
---|
659 | {\CD@AJ\setbox3=\null\ht3=\CD@tI\dp3=\CD@sI\CD@BE{\wd3=}\MapShortFall} \def |
---|
660 | \cds@grid{\ifx\CD@GK\CD@qK\let\h@grid\relax\let\v@grid\relax\else\CD@nF{% |
---|
661 | h@grid}{cdgh@\CD@GK}\CD@nF{v@grid}{cdgv@\CD@GK}\ifx\h@grid\relax\CD@gB{% |
---|
662 | unknown grid `\CD@GK'}\else\CD@WB\fi\fi}\let\h@grid\relax\let\v@grid\relax |
---|
663 | \def\cds@gridx{\ifx\CD@GK\CD@qK\else\cds@grid\fi\let\CD@CH\h@grid\let\h@grid |
---|
664 | \v@grid\let\v@grid\CD@CH}\def\cds@h{\CD@zD\DiagramCellHeight}\def\cds@hcenter |
---|
665 | {\let\CD@hA\CD@aA}\let\cds@hcentre\cds@hcenter\def\cds@heads{\CD@BE{\let |
---|
666 | \CD@sJ}\CD@sJ\CD@@J\CD@vE\else\ifx\CD@sJ\CD@eF\else\CD@MC\fi\fi}\let |
---|
667 | \cds@height\cds@h\let\cds@hmiddle\cds@balance\def\cds@htriangleheight{\CD@BE |
---|
668 | \DiagramCellHeight\DiagramCellHeight\DiagramCellWidth1.73205% |
---|
669 | \DiagramCellHeight}\def\cds@htrianglewidth{\CD@BE\DiagramCellWidth |
---|
670 | \DiagramCellWidth\DiagramCellHeight.57735\DiagramCellWidth}\CD@tG\CD@zE\CD@eE |
---|
671 | \CD@dE\CD@eE\def\cds@hug{\CD@eE} \def\cds@inline{\CD@gA\let\CD@PH\empty}\def |
---|
672 | \cds@inlineoneliner{\CD@EB}\CD@RC{cds@l>}{\CD@zD{\let\CD@RG}\dimen2=\CD@RG}% |
---|
673 | \def\cds@labelstyle{\CD@zD{\let\labelstyle}}\def\cds@landscape{\CD@kA}\def |
---|
674 | \cds@large{\CellSize5\CD@zC}\let\CD@EJ\empty\def\CD@FJ{\refstepcounter{% |
---|
675 | equation}\def\CD@XA{\hbox{\@eqnnum}}}\def\cds@LaTeXeqno{\let\CD@EJ\CD@FJ}\def |
---|
676 | \cds@lefteqno{\CD@pA}\def\cds@leftflush{\cds@flushleft\CD@J}\def |
---|
677 | \cds@leftshortfall{\CD@zD{\dimen1 }}\def\cds@lowershortfall{% |
---|
678 | \ifPositiveGradient\cds@leftshortfall\else\cds@rightshortfall\fi}\def |
---|
679 | \cds@loose{\CD@VB}\def\cds@midhshaft{\CD@JA}\def\cds@midshaft{\CD@JA}\def |
---|
680 | \cds@midvshaft{\CD@LA}\def\cds@moreoptions{\CD@@A}\let\cds@nobalance |
---|
681 | \cds@hcenter\def\cds@nohcheck{\CD@HH}\def\cds@nohug{\CD@dE} \def |
---|
682 | \cds@nooptions{\def\CD@aC{\CD@WD}}\let\cds@noorigin\cds@nobalance\def |
---|
683 | \cds@nopixel{\CD@@I4\CD@XH\CD@cJ}\def\cds@UO{\CD@oK\global\let\CD@n\empty}% |
---|
684 | \def\cds@UglyObsolete{\cds@UO\let\cds@PS\empty}\def\CD@rK#1{\CD@gB{option `#1% |
---|
685 | ' renamed as `UglyObsolete'}}\def\cds@noPostScript{\CD@rK{noPostScript}}\def |
---|
686 | \cds@noPS{\CD@rK{noPostScript}}\def\cds@notextflow{\CD@RB}\def\cds@noTPIC{% |
---|
687 | \CD@CK}\def\cds@objectstyle{\CD@zD{\let\objectstyle}}\def\cds@origin{\let |
---|
688 | \CD@hA\CD@iB}\def\cds@p{\CD@zD\PileSpacing}\let\cds@pilespacing\cds@p\def |
---|
689 | \cds@pixelsize{\CD@zD\CD@@I\CD@gI}\def\cds@portrait{\CD@jA}\def |
---|
690 | \cds@PostScript{\CD@nK\global\let\CD@n\empty\CD@BE\CD@DI\empty}\def\cds@PS{% |
---|
691 | \CD@nK\global\let\CD@n\empty}\CD@GF\CD@n{\typeout{\CD@tA: try the PostScript |
---|
692 | option for better results}}\def\cds@repositionpullbacks{\let\make@pbk\CD@fH |
---|
693 | \let\CD@qH\CD@pH}\def\cds@righteqno{\CD@oA}\def\cds@rightshortfall{\CD@zD{% |
---|
694 | \dimen5 }}\def\cds@ruleaxis{\CD@zD{\let\axisheight}}\def\cds@cmex{\let\CD@GG |
---|
695 | \CD@sB\let\CD@QJ\CD@CJ}\def\cds@s{\cds@height\DiagramCellWidth |
---|
696 | \DiagramCellHeight}\def\cds@scriptlabels{\let\labelstyle\scriptstyle}\def |
---|
697 | \cds@shortfall{\CD@zD\MapShortFall\dimen1\MapShortFall\dimen5\MapShortFall}% |
---|
698 | \def\cds@showfirstpass{\CD@BE{\let\CD@nD}\z@}\def\cds@silent{\def\CD@KB##1{}% |
---|
699 | \def\CD@gB##1{}}\let\cds@size\cds@s\def\cds@small{\CellSize2\CD@zC}\def |
---|
700 | \cds@snake{\CD@BE\CD@eJ\z@}\def\cds@t{\let\CD@dB\CD@fB}\def\cds@textflow{% |
---|
701 | \CD@SB\CD@PJ}\def\cds@thick{\let\CD@rF\tenlnw\CD@LF\CD@NC\CD@BE\MapBreadth{2% |
---|
702 | \CD@LF}\CD@@J}\def\cds@thin{\let\CD@rF\tenln\CD@BE\MapBreadth{\CD@NC}\CD@@J}% |
---|
703 | \def\cds@tight{\CD@WB}\let\cds@top\cds@t\def\cds@TPIC{\CD@DK}\def |
---|
704 | \cds@uppershortfall{\ifPositiveGradient\cds@rightshortfall\else |
---|
705 | \cds@leftshortfall\fi}\def\cds@vcenter{\let\CD@dB\CD@cB}\let\cds@vcentre |
---|
706 | \cds@vcenter\def\cds@vtriangleheight{\CD@BE\DiagramCellHeight |
---|
707 | \DiagramCellHeight\DiagramCellWidth.577035\DiagramCellHeight}\def |
---|
708 | \cds@vtrianglewidth{\CD@BE\DiagramCellWidth\DiagramCellWidth |
---|
709 | \DiagramCellHeight1.73205\DiagramCellWidth}\def\cds@vmiddle{\let\CD@dB\CD@eB}% |
---|
710 | \def\cds@w{\CD@zD\DiagramCellWidth}\let\cds@width\cds@w\def\diagram{\relax |
---|
711 | \protect\CD@bC}\def\enddiagram{\protect\CD@SG}\def\diagraminline{\diagram[% |
---|
712 | inline,moreoptions]}\def\enddiagraminline{\enddiagram}\def\CD@bC{\CD@g\CD@uI |
---|
713 | \incommdiagtrue\edef\CD@wI{\the\CD@NB}\global\CD@NB\z@\boxmaxdepth\maxdimen |
---|
714 | \everycr{}\CD@sK\everymath{}\everyhbox{}\ifx\pdfsyncstop\CD@qK\else |
---|
715 | \pdfsyncstop\fi\CD@aC}\def\CD@aC{\CD@y\let\CD@N\CD@ZC\CD@CF\CD@AE\CD@WD}\def |
---|
716 | \CD@ZC{\CD@gE\expandafter\CD@aC\else\expandafter\CD@WD\fi}\def\CD@WD{\let |
---|
717 | \CD@EH\relax\CD@nE\CD@vE\else\CD@hK\else\CD@KB{landscape ignored without |
---|
718 | PostScript}\CD@jA\fi\fi\fi\CD@EJ\setbox2=\vbox\bgroup\CD@JF\CD@VD}\def\CD@cH{% |
---|
719 | \CD@nE\CD@fB\else\CD@dB\fi\CD@hA\nointerlineskip\setbox0=\null\ht0-\CD@pI\dp0% |
---|
720 | \CD@pI\wd0\CD@kI\box0 \global\CD@QA\CD@kF\global\CD@yA\CD@XB\ifx\CD@NK\CD@qK |
---|
721 | \global\CD@RA\CD@kF\else\global\CD@RA\CD@NK\fi\egroup\CD@zF\CD@nE\setbox2=% |
---|
722 | \hbox to\dp2{\vrule height\wd2 depth\CD@QA width\z@\global\CD@QA\ht2\ht2\z@ |
---|
723 | \dp2\z@\wd2\z@\CD@hK\CD@tK{q 0 1 -1 0 0 0 cm}\else\global\CD@iG\CD@IK{0 1 |
---|
724 | bturn}\fi\box2\CD@gK\hss}\CD@DB\fi\ifnum\CD@yA=1 \else\CD@DB\fi\global |
---|
725 | \@ignorefalse\CD@mE\leavevmode\fi\ifvmode\CD@TA\else\ifmmode\CD@PH\CD@GI\else |
---|
726 | \CD@qE\CD@gA\fi\ifinner\CD@gA\fi\CD@mE\CD@GI\else\CD@sE\CD@QB\else\CD@TA\fi |
---|
727 | \fi\fi\fi\CD@dD}\def\CD@dD{\global\CD@NB\CD@wI\relax\CD@xE\global\CD@ID\else |
---|
728 | \aftergroup\CD@mC\fi\if@ignore\aftergroup\ignorespaces\fi\CD@wC\ignorespaces}% |
---|
729 | \def\CD@fB{\advance\CD@pI\dimen1\relax}\def\CD@eB{\advance\CD@pI.5\dimen1% |
---|
730 | \relax}\def\CD@bB{}\def\CD@cB{\CD@fB\advance\CD@pI\CD@YB\divide\CD@pI2 |
---|
731 | \advance\CD@pI-\axisheight\relax}\def\CD@aA{}\def\CD@iB{\CD@kF\z@}\def\CD@AA{% |
---|
732 | \ifdim\dimen2>\CD@kF\CD@kF\dimen2 \else\dimen2\CD@kF\CD@kI\dimen0 \advance |
---|
733 | \CD@kI\dimen2 \fi}\def\CD@QB{\skip0\z@\relax\loop\skip1\lastskip\ifdim\skip1>% |
---|
734 | \z@\unskip\advance\skip0\skip1 \repeat\vadjust{\prevdepth\dp\strutbox\penalty |
---|
735 | \predisplaypenalty\vskip\abovedisplayskip\CD@UA\penalty\postdisplaypenalty |
---|
736 | \vskip\belowdisplayskip}\ifdim\skip0=\z@\else\hskip\skip0 \global\@ignoretrue |
---|
737 | \fi}\def\CD@TA{\CD@LG\kern-\displayindent\CD@UA\CD@LG\global\@ignoretrue}\def |
---|
738 | \CD@UA{\hbox to\hsize{\CD@fE\ifdim\CD@RA=\z@\else\advance\CD@QA-\CD@RA\setbox |
---|
739 | 2=\hbox{\kern\CD@RA\box2}\fi\fi\setbox1=\hbox{\ifx\CD@XA\CD@qK\else\CD@k |
---|
740 | \CD@XA\CD@ND\fi}\CD@oE\CD@iE\else\advance\CD@QA\wd1 \fi\wd1\z@\box1 \fi\dimen |
---|
741 | 0\wd2 \advance\dimen0\wd1 \advance\dimen0-\hsize\ifdim\dimen0>-\CD@nA\CD@HA |
---|
742 | \fi\advance\dimen0\CD@QA\ifdim\dimen0>\z@\CD@KB{wider than the page by \the |
---|
743 | \dimen0 }\CD@HA\fi\CD@iE\hss\else\CD@V\CD@QA\CD@nA\fi\CD@GI\hss\kern-\wd1\box |
---|
744 | 1 }}\def\CD@GI{\CD@AF\CD@@F\else\CD@SC\global\CD@hG\fi\fi\kern\CD@QA\box2 }% |
---|
745 | \CD@tG\CD@wE\CD@YC\CD@XC\def\CD@JF{\CD@cJ\ifdim\DiagramCellHeight=-\maxdimen |
---|
746 | \DiagramCellHeight\CD@QC\fi\ifdim\DiagramCellWidth=-\maxdimen |
---|
747 | \DiagramCellWidth\CD@QC\fi\global\CD@XC\CD@IF\let\CD@FE\empty\let\CD@z\CD@Q |
---|
748 | \let\overprint\CD@eH\let\CD@s\CD@rJ\let\enddiagram\CD@ED\let\\\CD@cC\let\par |
---|
749 | \CD@jH\let\CD@MD\empty\let\switch@arg\CD@PB\let\shift\CD@iA\baselineskip |
---|
750 | \DiagramCellHeight\lineskip\z@\lineskiplimit\z@\mathsurround\z@\tabskip\z@ |
---|
751 | \CD@OB}\def\CD@VD{\penalty-123 \begingroup\CD@jA\aftergroup\CD@K\halign |
---|
752 | \bgroup\global\advance\CD@NB1 \vadjust{\penalty1}\global\CD@FA\z@\CD@OB\CD@j#% |
---|
753 | #\CD@DD\CD@Q\CD@Q\CD@OI\CD@j##\CD@DD\cr}\def\CD@ED{\CD@MD\CD@GD\crcr\egroup |
---|
754 | \global\CD@JD\endgroup}\def\CD@j{\global\advance\CD@FA1 \futurelet\CD@EH\CD@i |
---|
755 | }\def\CD@i{\ifx\CD@EH\CD@DD\CD@tJ\hskip1sp plus 1fil \relax\let\CD@DD\relax |
---|
756 | \CD@vI\else\hfil\CD@k\objectstyle\let\CD@FE\CD@d\fi}\def\CD@DD{\CD@MD\relax |
---|
757 | \CD@yI\CD@vI\global\CD@QA\CD@iA\penalty-9993 \CD@ND\hfil\null\kern-2\CD@QA |
---|
758 | \null}\def\CD@cC{\cr}\def\across#1{\span\omit\mscount=#1 \global\advance |
---|
759 | \CD@FA\mscount\global\advance\CD@FA\m@ne\CD@sF\ifnum\mscount>2 \CD@fJ\repeat |
---|
760 | \ignorespaces}\def\CD@fJ{\relax\span\omit\advance\mscount\m@ne}\def\CD@qJ{% |
---|
761 | \ifincommdiag\ifx\CD@iD\@fillh\ifx\CD@jD\@fillh\ifdim\dimen3>\z@\else\ifdim |
---|
762 | \dimen2>93\CD@@I\ifdim\dimen2>18\p@\ifdim\CD@LF>\z@\count@\CD@bJ\advance |
---|
763 | \count@\m@ne\ifnum\count@<\z@\count@20\let\CD@aJ\CD@uJ\fi\xdef\CD@bJ{\the |
---|
764 | \count@}\fi\fi\fi\fi\fi\fi\fi}\def\CD@cG#1{\vrule\horizhtdp width#1\dimen@ |
---|
765 | \kern2\dimen@}\def\CD@uJ{\rlap{\dimen@\CD@@I\CD@V\dimen@{.182\p@}\CD@zH |
---|
766 | \dimen@\advance\CD@tI\dimen@\CD@cG0\CD@cG0\CD@cG2\CD@cG6\CD@cG6\CD@cG2\CD@cG0% |
---|
767 | \CD@cG0\CD@cG2\CD@cG6\CD@cG0\CD@cG0\CD@cG2\CD@cG2\CD@cG6\CD@cG0\CD@cG0\CD@cG2% |
---|
768 | \CD@cG6\CD@cG2\CD@cG2\CD@cG0\CD@cG0}}\def\CD@bJ{10}\def\CD@aJ{}\def\CD@XD{% |
---|
769 | \CD@gE\CD@TB\fi\CD@x\CD@WF\CD@HI}\def\CD@x{\CD@QJ\CD@DC\CD@MJ\ifdim\CD@DC=\z@ |
---|
770 | \else\CD@pF\CD@DC\fi\ifvoid3 \setbox3=\null\ht3\CD@tI\dp3\CD@sI\else\CD@V{\ht |
---|
771 | 3}\CD@tI\CD@V{\dp3}\CD@sI\fi\dimen3=.5\wd3 \ifdim\dimen3=\z@\CD@tE\else\dimen |
---|
772 | 3-\CD@XH\fi\else\CD@TB\fi\CD@V{\dimen2}{\wd7}\CD@V{\dimen2}{\wd6}\CD@qJ |
---|
773 | \advance\dimen2-2\dimen3 \dimen4.5\dimen2 \dimen2\dimen4 \advance\dimen2% |
---|
774 | \CD@eJ\advance\dimen4-\CD@eJ\advance\dimen2-\wd1 \advance\dimen4-\wd5 \ifvoid |
---|
775 | 2 \else\CD@V{\ht3}{\ht2}\CD@V{\dp3}{\dp2}\CD@V{\dimen2}{\wd2}\fi\ifvoid4 \else |
---|
776 | \CD@V{\ht3}{\ht4}\CD@V{\dp3}{\dp4}\CD@V{\dimen4}{\wd4}\fi\advance\skip2\dimen |
---|
777 | 2 \advance\skip4\dimen4 \CD@tE\advance\skip2\skip4 \dimen0\dimen5 \advance |
---|
778 | \dimen0\wd5 \skip3-\skip4 \advance\skip3-\dimen0 \let\CD@jD\empty\else\skip3% |
---|
779 | \z@\relax\dimen0\z@\fi}\def\CD@WF{\offinterlineskip\lineskip.2\CD@zC\ifvoid6 |
---|
780 | \else\setbox3=\vbox{\hbox to2\dimen3{\hss\box6\hss}\box3}\fi\ifvoid7 \else |
---|
781 | \setbox3=\vtop{\box3 \hbox to2\dimen3{\hss\box7\hss}}\fi}\def\CD@HI{\kern |
---|
782 | \dimen1 \box1 \CD@aJ\CD@iD\hskip\skip2 \kern\dimen0 \ifincommdiag\CD@jE |
---|
783 | \penalty1\fi\kern\dimen3 \penalty\CD@GB\hskip\skip3 \null\kern-\dimen3 \else |
---|
784 | \hskip\skip3 \fi\box3 \CD@jD\hskip\skip4 \box5 \kern\dimen5}\def\CD@MF{\ifnum |
---|
785 | \CD@LH>\CD@TC\CD@V{\dimen1}\objectheight\CD@V{\dimen5}\objectheight\else\CD@V |
---|
786 | {\dimen1}\objectwidth\CD@V{\dimen5}\objectwidth\fi}\def\CD@Y{\begingroup |
---|
787 | \ifdim\dimen7=\z@\kern\dimen8 \else\ifdim\dimen6=\z@\kern\dimen9 \else\dimen5% |
---|
788 | \dimen6 \dimen6\dimen9 \CD@KJ\dimen4\dimen2 \CD@dG{\dimen4}\dimen6\dimen5 |
---|
789 | \dimen7\dimen8 \CD@KJ\CD@iC{\dimen2}\ifdim\dimen2<\dimen4 \kern\dimen2 \else |
---|
790 | \kern\dimen4 \fi\fi\fi\endgroup}\def\CD@jJ{\CD@JI\setbox\z@\hbox{\lower |
---|
791 | \axisheight\hbox to\dimen2{\CD@DF\ifPositiveGradient\dimen8\ht\CD@MH\dimen9% |
---|
792 | \CD@mI\else\dimen8\dp3 \dimen9\dimen1 \fi\else\dimen8 \ifPositiveGradient |
---|
793 | \objectheight\else\z@\fi\dimen9\objectwidth\fi\advance\dimen8 |
---|
794 | \ifPositiveGradient-\fi\axisheight\CD@Y\unhbox\z@\CD@DF\ifPositiveGradient |
---|
795 | \dimen8\dp3 \dimen9\dimen0 \else\dimen8\ht\CD@MH\dimen9\CD@mF\fi\else\dimen8 |
---|
796 | \ifPositiveGradient\z@\else\objectheight\fi\dimen9\objectwidth\fi\advance |
---|
797 | \dimen8 \ifPositiveGradient\else-\fi\axisheight\CD@Y}}}\def\CD@bD{\dimen6 |
---|
798 | \CD@aK\DiagramCellHeight\dimen7 \CD@WK\DiagramCellWidth\CD@jJ |
---|
799 | \ifPositiveGradient\advance\dimen7-\CD@ZK\DiagramCellWidth\else\dimen7 \CD@ZK |
---|
800 | \DiagramCellWidth\dimen6\z@\fi\advance\dimen6-\CD@bK\DiagramCellHeight\CD@mK |
---|
801 | \setbox0=\rlap{\kern-\dimen7 \lower\dimen6\box\z@}\ht0\z@\dp0\z@\raise |
---|
802 | \axisheight\box0 }\def\CD@mK{\setbox0\hbox{\ht\z@\z@\dp\z@\z@\wd\z@\z@\CD@hK |
---|
803 | \expandafter\CD@tK{q \CD@eK\space\CD@lK\space\CD@kK\space\CD@eK\space0 0 cm}% |
---|
804 | \else\global\CD@iG\CD@eD{\the\CD@TC\space\ifPositiveGradient\else-\fi\the |
---|
805 | \CD@LH\space bturn}\fi\box\z@\CD@gK}}\def\CD@vB{\advance\CD@hF-\CD@mI\CD@wJ |
---|
806 | \CD@hF\advance\CD@wJ\CD@hI\ifvoid\CD@sH\ifdim\CD@wJ<.1em\ifnum\CD@gD=\@m\else |
---|
807 | \CD@aG h\CD@wJ<.1em:objects overprint:\CD@FA\CD@gD\fi\fi\else\ifhbox\CD@sH |
---|
808 | \CD@SK\else\CD@TK\fi\advance\CD@wJ\CD@mI\CD@bH{-\CD@mI}{\box\CD@sH}{\CD@wJ}% |
---|
809 | \z@\fi\CD@hF-\CD@mF\CD@gD\CD@FA\CD@hI\z@}\def\CD@SK{\setbox\CD@sH=\hbox{% |
---|
810 | \unhbox\CD@sH\unskip\unpenalty}\setbox\CD@tH=\hbox{\unhbox\CD@tH\unskip |
---|
811 | \unpenalty}\setbox\CD@sH=\hbox to\CD@wJ{\CD@OA\wd\CD@sH\unhbox\CD@sH\CD@PA |
---|
812 | \lastkern\unkern\ifdim\CD@PA=\z@\CD@UB\advance\CD@OA-\wd\CD@tH\else\CD@TB\fi |
---|
813 | \ifnum\lastpenalty=\z@\else\CD@JA\unpenalty\fi\kern\CD@PA\ifdim\CD@hF<\CD@OA |
---|
814 | \CD@JA\fi\ifdim\CD@hI<\wd\CD@tH\CD@JA\fi\CD@jE\CD@hI\CD@wJ\advance\CD@hI-% |
---|
815 | \CD@OA\advance\CD@hI\wd\CD@tH\ifdim\CD@hI<2\wd\CD@tH\CD@aG h\CD@hI<2\wd\CD@tH |
---|
816 | :arrow too short:\CD@FA\CD@gD\fi\divide\CD@hI\tw@\CD@hF\CD@wJ\advance\CD@hF-% |
---|
817 | \CD@hI\fi\CD@tE\kern-\CD@hI\fi\hbox to\CD@hI{\unhbox\CD@tH}\CD@HG}}\CD@tG |
---|
818 | \ifinpile\inpiletrue\inpilefalse\inpilefalse\def\pile{\protect\CD@UJ\protect |
---|
819 | \CD@uH}\def\CD@uH#1{\CD@l#1\CD@QD}\def\CD@UJ{\CD@nB{pile}\setbox0=\vtop |
---|
820 | \bgroup\aftergroup\CD@lD\inpiletrue\let\CD@FE\empty\let\pile\CD@KF\let\CD@QD |
---|
821 | \CD@PD\let\CD@GD\CD@FD\CD@yH\baselineskip.5\PileSpacing\lineskip.1\CD@zC |
---|
822 | \relax\lineskiplimit\lineskip\mathsurround\z@\tabskip\z@\let\\\CD@wH}\def |
---|
823 | \CD@l{\CD@DE\CD@YF\empty\halign\bgroup\hfil\CD@k\let\CD@FE\CD@d\let\\\CD@vH##% |
---|
824 | \CD@MD\CD@ND\hfil\CD@Q\CD@R##\cr}\CD@rG\CD@NE{pile only allows one column.}% |
---|
825 | \CD@rG\CD@UE{you left it out!}\def\CD@R{\CD@QD\CD@Q\relax\CD@YA{missing \CD@yC |
---|
826 | \space inserted after \string\pile}\CD@NE}\def\CD@PD{\CD@MD\crcr\egroup |
---|
827 | \egroup}\def\CD@GD{\CD@MD}\def\CD@FD{\CD@MD\relax\CD@QD\CD@YA{missing \CD@yC |
---|
828 | \space inserted between \string\pile\space and \CD@HD}\CD@UE}\def\CD@QD{% |
---|
829 | \CD@MD}\def\CD@lD{\vbox{\dimen1\dp0 \unvbox0 \setbox0=\lastbox\advance\dimen1% |
---|
830 | \dp0 \nointerlineskip\box0 \nointerlineskip\setbox0=\null\dp0.5\dimen1\ht0-% |
---|
831 | \dp0 \box0}\ifincommdiag\CD@tJ\penalty-9998 \fi\xdef\CD@YF{pile}}\def\CD@vH{% |
---|
832 | \cr}\def\CD@wH{\noalign{\skip@\prevdepth\advance\skip@-\baselineskip |
---|
833 | \prevdepth\skip@}}\def\CD@KF#1{#1}\def\CD@TK{\setbox\CD@sH=\vbox{\unvbox |
---|
834 | \CD@sH\setbox1=\lastbox\setbox0=\box\voidb@x\CD@tF\setbox\CD@sH=\lastbox |
---|
835 | \ifhbox\CD@sH\CD@rC\repeat\unvbox0 \global\CD@QA\CD@ZE}\CD@ZE\CD@QA}\def |
---|
836 | \CD@rC{\CD@jE\setbox\CD@sH=\hbox{\unhbox\CD@sH\unskip\setbox\CD@sH=\lastbox |
---|
837 | \unskip\unhbox\CD@sH}\ifdim\CD@wJ<\wd\CD@sH\CD@aG h\CD@wJ<\wd\CD@sH:arrow in |
---|
838 | pile too short:\CD@FA\CD@gD\else\setbox\CD@sH=\hbox to\CD@wJ{\unhbox\CD@sH}% |
---|
839 | \fi\else\CD@gJ\fi\setbox0=\vbox{\box\CD@sH\nointerlineskip\ifvoid0 \CD@tJ\box |
---|
840 | 1 \else\vskip\skip0 \unvbox0 \fi}\skip0=\lastskip\unskip}\def\CD@gJ{\penalty7 |
---|
841 | \noindent\unhbox\CD@sH\unskip\setbox\CD@sH=\lastbox\unskip\unhbox\CD@sH |
---|
842 | \endgraf\setbox\CD@tH=\lastbox\unskip\setbox\CD@tH=\hbox{\CD@JG\unhbox\CD@tH |
---|
843 | \unskip\unskip\unpenalty}\ifcase\prevgraf\cd@shouldnt P\or\ifdim\CD@wJ<\wd |
---|
844 | \CD@tH\CD@aG h\CD@wJ<\wd\CD@sH:object in pile too wide:\CD@FA\CD@gD\setbox |
---|
845 | \CD@sH=\hbox to\CD@wJ{\hss\unhbox\CD@tH\hss}\else\setbox\CD@sH=\hbox to\CD@wJ |
---|
846 | {\hss\kern\CD@hF\unhbox\CD@tH\kern\CD@hI\hss}\fi\or\setbox\CD@sH=\lastbox |
---|
847 | \unskip\CD@SK\else\cd@shouldnt Q\fi\unskip\unpenalty}\def\CD@cD{\CD@MJ\ifvoid |
---|
848 | 3 \setbox3=\null\ht3\axisheight\dp3-\ht3 \dimen3.5\CD@LF\else\dimen4\dp3 |
---|
849 | \dimen3.5\wd3 \setbox3=\CD@GG{\box3}\dp3\dimen4 \ifdim\ht3=-\dp3 \else\CD@TB |
---|
850 | \fi\fi\dimen0\dimen3 \advance\dimen0-.5\CD@LF\setbox0\null\ht0\ht3\dp0\dp3\wd |
---|
851 | 0\wd3 \ifvoid6\else\setbox6\hbox{\unhbox6\kern\dimen0\kern2pt}\dimen0\wd6 \fi |
---|
852 | \ifvoid7\else\setbox7\hbox{\kern2pt\kern\dimen3\unhbox7}\dimen3\wd7 \fi |
---|
853 | \setbox3\hbox{\ifvoid6\else\kern-\dimen0\unhbox6\fi\unhbox3 \ifvoid7\else |
---|
854 | \unhbox7\kern-\dimen3\fi}\ht3\ht0\dp3\dp0\wd3\wd0 \CD@tE\dimen4=\ht\CD@MH |
---|
855 | \advance\dimen4\dp5 \advance\dimen4\dimen1 \let\CD@jD\empty\else\dimen4\ht3 |
---|
856 | \fi\setbox0\null\ht0\dimen4 \offinterlineskip\setbox8=\vbox spread2ex{\kern |
---|
857 | \dimen5 \box1 \CD@iD\vfill\CD@tE\else\kern\CD@eJ\fi\box0}\ht8=\z@\setbox9=% |
---|
858 | \vtop spread2ex{\kern-\ht3 \kern-\CD@eJ\box3 \CD@jD\vfill\box5 \kern\dimen1}% |
---|
859 | \dp9=\z@\hskip\dimen0plus.0001fil \box9 \kern-\CD@LF\box8 \CD@kE\penalty2 \fi |
---|
860 | \CD@tE\penalty1 \fi\kern\PileSpacing\kern-\PileSpacing\kern-.5\CD@LF\penalty |
---|
861 | \CD@GB\null\kern\dimen3}\def\CD@cI{\ifhbox\CD@VA\CD@KB{clashing verticals}\ht |
---|
862 | \CD@MH.5\dp\CD@VA\dp\CD@MH-\ht5 \CD@yB\ht\CD@MH\z@\dp\CD@MH\z@\fi\dimen1\dp |
---|
863 | \CD@VA\CD@xA\prevgraf\unvbox\CD@VA\CD@wA\lastpenalty\unpenalty\setbox\CD@VA=% |
---|
864 | \null\setbox\CD@lI=\hbox{\CD@JG\unhbox\CD@lI\unskip\unpenalty\dimen0\lastkern |
---|
865 | \unkern\unkern\unkern\kern\dimen0 \CD@HG}\setbox\CD@lF=\hbox{\unhbox\CD@lF |
---|
866 | \dimen0\lastkern\unkern\unkern\global\CD@QA\lastkern\unkern\kern\dimen0 }% |
---|
867 | \CD@tF\ifnum\CD@xA>4 \CD@zI\repeat\unskip\unskip\advance\CD@mF.5\wd\CD@VA |
---|
868 | \advance\CD@mF\wd\CD@lF\advance\CD@mI.5\wd\CD@VA\advance\CD@mI\wd\CD@lI\ifnum |
---|
869 | \CD@FA=\CD@lA\CD@OA.5\wd\CD@VA\edef\CD@NK{\the\CD@OA}\fi\setbox\CD@VA=\hbox{% |
---|
870 | \kern-\CD@mF\box\CD@lF\unhbox\CD@VA\box\CD@lI\kern-\CD@mI\penalty\CD@wA |
---|
871 | \penalty\CD@NB}\ht\CD@VA\dimen1 \dp\CD@VA\z@\wd\CD@VA\CD@tB\CD@vB}\def\CD@zI{% |
---|
872 | \ifdim\wd\CD@lF<\CD@QA\setbox\CD@lF=\hbox to\CD@QA{\CD@JG\unhbox\CD@lF}\fi |
---|
873 | \advance\CD@xA\m@ne\setbox\CD@VA=\hbox{\box\CD@lF\unhbox\CD@VA}\unskip\setbox |
---|
874 | \CD@lF=\lastbox\setbox\CD@lF=\hbox{\unhbox\CD@lF\unskip\unpenalty\dimen0% |
---|
875 | \lastkern\unkern\unkern\global\CD@QA\lastkern\unkern\kern\dimen0 }}\def\CD@yB |
---|
876 | {\dimen1\dp\CD@VA\ifhbox\CD@VA\CD@xB\else\CD@zB\fi\setbox\CD@VA=\vbox{% |
---|
877 | \penalty\CD@NB}\dp\CD@VA-\dp\CD@MH\wd\CD@VA\CD@tB}\def\CD@zB{\unvbox\CD@VA |
---|
878 | \CD@wA\lastpenalty\unpenalty\ifdim\dimen1<\ht\CD@MH\CD@aG v\dimen1<\ht\CD@MH:% |
---|
879 | rows overprint:\CD@NB\CD@wA\fi}\def\CD@xB{\dimen0=\ht\CD@VA\setbox\CD@VA=% |
---|
880 | \hbox\bgroup\advance\dimen1-\ht\CD@MH\unhbox\CD@VA\CD@xA\lastpenalty |
---|
881 | \unpenalty\CD@wA\lastpenalty\unpenalty\global\CD@RA-\lastkern\unkern\setbox0=% |
---|
882 | \lastbox\CD@tF\setbox\CD@VA=\hbox{\box0\unhbox\CD@VA}\setbox0=\lastbox\ifhbox |
---|
883 | 0 \CD@kJ\repeat\global\CD@SA-\lastkern\unkern\global\CD@QA\CD@JK\unhbox\CD@VA |
---|
884 | \egroup\CD@JK\CD@QA\CD@bH{\CD@SA}{\box\CD@VA}{\CD@RA}{\dimen1}}\def\CD@kJ{% |
---|
885 | \setbox0=\hbox to\wd0\bgroup\unhbox0 \unskip\unpenalty\dimen7\lastkern\unkern |
---|
886 | \ifnum\lastpenalty=1 \unpenalty\CD@UB\else\CD@TB\fi\ifnum\lastpenalty=2 |
---|
887 | \unpenalty\dimen2.5\dimen0\advance\dimen2-.5\dimen1\advance\dimen2-% |
---|
888 | \axisheight\else\dimen2\z@\fi\setbox0=\lastbox\dimen6\lastkern\unkern\setbox1% |
---|
889 | =\lastbox\setbox0=\vbox{\unvbox0 \CD@tE\kern-\dimen1 \else\ifdim\dimen2=\z@ |
---|
890 | \else\kern\dimen2 \fi\fi}\ifdim\dimen0<\ht0 \CD@aG v\dimen0<\ht0:upper part of |
---|
891 | vertical too short:{\CD@tE\CD@NB\else\CD@wA\fi}\CD@xA\else\setbox0=\vbox to% |
---|
892 | \dimen0{\unvbox0}\fi\setbox1=\vtop{\unvbox1}\ifdim\dimen1<\dp1 \CD@aG v\dimen |
---|
893 | 1<\dp1:lower part of vertical too short:\CD@NB\CD@wA\else\setbox1=\vtop to% |
---|
894 | \dimen1{\ifdim\dimen2=\z@\else\kern-\dimen2 \fi\unvbox1 }\fi\box1 \kern\dimen |
---|
895 | 6 \box0 \kern\dimen7 \CD@HG\global\CD@QA\CD@JK\egroup\CD@JK\CD@QA\relax}% |
---|
896 | \countdef\CD@u=14 \newcount\CD@CA\newcount\CD@XB\newcount\CD@NB\let\CD@LB |
---|
897 | \insc@unt\newcount\CD@FA\newcount\CD@lA\let\CD@mA\CD@XB\newcount\CD@MB\CD@tG |
---|
898 | \CD@DF\CD@bI\CD@aI\CD@aI\def\CD@nD{-1}\def\CD@K{\ifnum\CD@nD<\z@\else |
---|
899 | \begingroup\scrollmode\showboxdepth\CD@nD\showboxbreadth\maxdimen\showlists |
---|
900 | \endgroup\fi\CD@bI\CD@zF\CD@CA=\CD@u\advance\CD@CA1 \CD@XB=\CD@CA\ifnum\CD@NB |
---|
901 | =1 \CD@JA\fi\advance\CD@XB\CD@NB\dimen1\z@\skip0\z@\count@=\insc@unt\advance |
---|
902 | \count@\CD@u\divide\count@2 \ifnum\CD@XB>\count@\CD@KB{The diagram has too |
---|
903 | many rows! It can't be reformatted.}\else\CD@NG\CD@WI\fi\CD@cH}\def\CD@NG{% |
---|
904 | \CD@NB\CD@CA\CD@uF\ifnum\CD@NB<\CD@XB\setbox\CD@NB\box\voidb@x\advance\CD@NB1% |
---|
905 | \relax\repeat\CD@NB\CD@CA\skip\z@\z@\CD@uF\CD@GB\lastpenalty\unpenalty\ifnum |
---|
906 | \CD@GB>\z@\CD@KE\repeat\ifnum\CD@GB=-123 \CD@tJ\unpenalty\else\cd@shouldnt D% |
---|
907 | \fi\ifx\v@grid\relax\else\CD@NB\CD@XB\advance\CD@NB\m@ne\expandafter\CD@VJ |
---|
908 | \v@grid\fi\CD@MB\CD@mA\CD@tB\z@\CD@XG\ifx\h@grid\relax\else\expandafter\CD@LJ |
---|
909 | \h@grid\fi\count@\CD@XB\advance\count@\m@ne\CD@YB\ht\count@}\def\CD@KE{% |
---|
910 | \ifcase\CD@GB\or\CD@MG\else\CD@uA-\lastpenalty\unpenalty\CD@vA\lastpenalty |
---|
911 | \unpenalty\setbox0=\lastbox\CD@WG\fi\CD@wD}\def\CD@wD{\skip1\lastskip\unskip |
---|
912 | \advance\skip0\skip1 \ifdim\skip1=\z@\else\expandafter\CD@wD\fi}\def\CD@MG{% |
---|
913 | \setbox0=\lastbox\CD@pI\dp0 \advance\CD@pI\skip\z@\skip\z@\z@\advance\CD@NF |
---|
914 | \CD@pI\CD@uE\ifnum\CD@NB>\CD@CA\CD@NF\DiagramCellHeight\CD@pI\CD@NF\advance |
---|
915 | \CD@pI-\CD@qI\fi\fi\CD@qI\ht0 \CD@NF\CD@qI\setbox\CD@NB\hbox{\unhbox\CD@NB |
---|
916 | \unhbox0}\dp\CD@NB\CD@pI\ht\CD@NB\CD@qI\advance\CD@NB1 }\def\CD@WG{\ifnum |
---|
917 | \CD@uA<\z@\advance\CD@uA\CD@XB\ifnum\CD@uA<\CD@CA\CD@UG\else\CD@OA\dp\CD@uA |
---|
918 | \CD@PA\ht\CD@uA\setbox\CD@uA\hbox{\box\z@\penalty\CD@vA\penalty\CD@GB\unhbox |
---|
919 | \CD@uA}\dp\CD@uA\CD@OA\ht\CD@uA\CD@PA\fi\else\CD@UG\fi}\def\CD@UG{\CD@KB{% |
---|
920 | diagonal goes outside diagram (lost)}}\def\CD@fI{\advance\CD@uA\CD@XB\ifnum |
---|
921 | \CD@uA<\CD@CA\CD@UG\else\ifnum\CD@uA=\CD@NB\CD@VG\else\ifnum\CD@uA>\CD@NB |
---|
922 | \cd@shouldnt M\else\CD@OA\dp\CD@uA\CD@PA\ht\CD@uA\setbox\CD@uA\hbox{\box\z@ |
---|
923 | \penalty\CD@vA\penalty\CD@GB\unhbox\CD@uA}\dp\CD@uA\CD@OA\ht\CD@uA\CD@PA\fi |
---|
924 | \fi\fi}\def\CD@WI{\CD@t\CD@AJ\setbox\CD@PC=\hbox{\CD@k A\@super f\CD@lJ f% |
---|
925 | \CD@ND}\CD@ZE\z@\CD@JK\z@\CD@kI\z@\CD@kF\z@\CD@NB=\CD@XB\CD@NF\z@\CD@uB\z@ |
---|
926 | \CD@uF\ifnum\CD@NB>\CD@CA\advance\CD@NB\m@ne\CD@qI\ht\CD@NB\CD@pI\dp\CD@NB |
---|
927 | \advance\CD@NF\CD@qI\CD@rI\advance\CD@uB\CD@NF\CD@KC\CD@ZI\CD@w\ht\CD@NB |
---|
928 | \CD@qI\dp\CD@NB\CD@pI\nointerlineskip\box\CD@NB\CD@NF\CD@pI\setbox\CD@NB\null |
---|
929 | \ht\CD@NB\CD@uB\repeat\CD@wB\nointerlineskip\box\CD@NB\CD@gG\CD@ZE |
---|
930 | \DiagramCellWidth{width}\CD@gG\CD@JK\DiagramCellHeight{height}\CD@VA\CD@LB |
---|
931 | \advance\CD@VA-\CD@lA\advance\CD@VA\m@ne\advance\CD@VA\CD@mA\dimen0\wd\CD@VA |
---|
932 | \CD@tI\axisheight\dimen1\CD@uB\advance\dimen1-\CD@YB\dimen2\CD@kI\advance |
---|
933 | \dimen2-\dimen0 \advance\CD@XB-\CD@CA\advance\CD@LB-\CD@lA}\count@\year |
---|
934 | \multiply\count@12 \advance\count@\month\ifnum\count@>24194 \loop\iftrue |
---|
935 | \message{gone February 2016!}\repeat\fi\def\CD@wB{\CD@qI-\CD@NF\CD@pI\CD@NF |
---|
936 | \setbox\CD@MH=\null\dp\CD@MH\CD@NF\ht\CD@MH-\CD@NF\CD@mF\z@\CD@mI\z@\CD@lA |
---|
937 | \CD@LB\advance\CD@lA-\CD@MB\advance\CD@lA\CD@mA\CD@FA\CD@LB\CD@VA\CD@MB\CD@sF |
---|
938 | \ifnum\CD@FA>\CD@lA\advance\CD@FA\m@ne\advance\CD@VA\m@ne\CD@tB\wd\CD@VA |
---|
939 | \setbox\CD@FA=\box\voidb@x\CD@yB\repeat\CD@w\ht\CD@NB\CD@qI\dp\CD@NB\CD@pI}% |
---|
940 | \def\CD@gG#1#2#3{\ifdim#1>.01\CD@zC\CD@PA#2\relax\advance\CD@PA#1\relax |
---|
941 | \advance\CD@PA.99\CD@zC\count@\CD@PA\divide\count@\CD@zC\CD@KB{increase cell #% |
---|
942 | 3 to \the\count@ em}\fi}\def\CD@rI{\CD@FA=\CD@LB\penalty4 \noindent\unhbox |
---|
943 | \CD@NB\CD@sF\unskip\setbox0=\lastbox\ifhbox0 \advance\CD@FA\m@ne\setbox\CD@FA |
---|
944 | \hbox to\wd0{\null\penalty-9990\null\unhbox0}\repeat\CD@lA\CD@FA\advance |
---|
945 | \CD@FA\CD@MB\advance\CD@FA-\CD@mA\ifnum\CD@FA<\CD@LB\count@\CD@FA\advance |
---|
946 | \count@\m@ne\dimen0=\wd\count@\count@\CD@MB\advance\count@\m@ne\CD@tB\wd |
---|
947 | \count@\CD@sF\ifnum\CD@FA<\CD@LB\CD@DJ\CD@XG\dimen0\wd\CD@FA\advance\CD@FA1 |
---|
948 | \repeat\fi\CD@sF\CD@GB\lastpenalty\unpenalty\ifnum\CD@GB>\z@\CD@vA |
---|
949 | \lastpenalty\unpenalty\CD@VG\repeat\endgraf\unskip\ifnum\lastpenalty=4 |
---|
950 | \unpenalty\else\cd@shouldnt S\fi}\def\CD@VG{\advance\CD@vA\CD@lA\advance |
---|
951 | \CD@vA\m@ne\setbox0=\lastbox\ifnum\CD@vA<\CD@LB\setbox\CD@vA\hbox{\box0% |
---|
952 | \penalty\CD@GB\unhbox\CD@vA}\else\CD@UG\fi}\def\CD@bG{}\CD@tG\CD@uE\CD@WB |
---|
953 | \CD@VB\def\CD@DJ{\advance\dimen0\wd\CD@FA\divide\dimen0\tw@\CD@uE\dimen0% |
---|
954 | \DiagramCellWidth\else\CD@V{\dimen0}\DiagramCellWidth\CD@pJ\fi\advance\CD@tB |
---|
955 | \dimen0 }\def\CD@XG{\setbox\CD@MB=\vbox{}\dp\CD@MB=\CD@uB\wd\CD@MB\CD@tB |
---|
956 | \advance\CD@MB1 }\def\CD@LJ#1,{\def\CD@GK{#1}\ifx\CD@GK\CD@RD\else\advance |
---|
957 | \CD@tB\CD@GK\DiagramCellWidth\CD@XG\expandafter\CD@LJ\fi}\def\CD@VJ#1,{\def |
---|
958 | \CD@GK{#1}\ifx\CD@GK\CD@RD\else\ifnum\CD@NB>\CD@CA\CD@NF\CD@GK |
---|
959 | \DiagramCellHeight\advance\CD@NF-\dp\CD@NB\advance\CD@NB\m@ne\ht\CD@NB\CD@NF |
---|
960 | \fi\expandafter\CD@VJ\fi}\def\CD@pJ{\CD@wE\CD@OA\dimen0 \advance\CD@OA-% |
---|
961 | \DiagramCellWidth\ifdim\CD@OA>2\MapShortFall\CD@KB{badly drawn diagonals (see |
---|
962 | manual)}\let\CD@pJ\empty\fi\else\let\CD@pJ\empty\fi}\def\CD@KC{\CD@VA\CD@mA |
---|
963 | \CD@sF\ifnum\CD@VA<\CD@MB\dimen0\dp\CD@VA\advance\dimen0\CD@NF\dp\CD@VA\dimen |
---|
964 | 0 \advance\CD@VA1 \repeat}\def\CD@bH#1#2#3#4{\ifnum\CD@FA<\CD@LB\CD@OA=#1% |
---|
965 | \relax\setbox\CD@FA=\hbox{\setbox0=#2\dimen7=#4\relax\dimen8=#3\relax\ifhbox |
---|
966 | \CD@FA\unhbox\CD@FA\advance\CD@OA-\lastkern\unkern\fi\ifdim\CD@OA=\z@\else |
---|
967 | \kern-\CD@OA\fi\raise\dimen7\box0 \kern-\dimen8 }\ifnum\CD@FA=\CD@lA\CD@V |
---|
968 | \CD@kF\CD@OA\fi\else\cd@shouldnt O\fi}\def\CD@w{\setbox\CD@NB=\hbox{\CD@FA |
---|
969 | \CD@lA\CD@VA\CD@mA\CD@PA\z@\relax\CD@sF\ifnum\CD@FA<\CD@LB\CD@tB\wd\CD@VA |
---|
970 | \relax\CD@eI\advance\CD@FA1 \advance\CD@VA1 \repeat}\CD@V\CD@kI{\wd\CD@NB}\wd |
---|
971 | \CD@NB\z@}\def\CD@eI{\ifhbox\CD@FA\CD@OA\CD@tB\relax\advance\CD@OA-\CD@PA |
---|
972 | \relax\ifdim\CD@OA=\z@\else\kern\CD@OA\fi\CD@PA\CD@tB\advance\CD@PA\wd\CD@FA |
---|
973 | \relax\unhbox\CD@FA\advance\CD@PA-\lastkern\unkern\fi}\def\CD@ZI{\setbox |
---|
974 | \CD@sH=\box\voidb@x\CD@VA=\CD@MB\CD@FA\CD@LB\CD@VA\CD@mA\advance\CD@VA\CD@FA |
---|
975 | \advance\CD@VA-\CD@lA\advance\CD@VA\m@ne\CD@tB\wd\CD@VA\count@\CD@LB\advance |
---|
976 | \count@\m@ne\CD@hF.5\wd\count@\advance\CD@hF\CD@tB\CD@A\m@ne\CD@gD\@m\CD@sF |
---|
977 | \ifnum\CD@FA>\CD@lA\advance\CD@FA\m@ne\advance\CD@hF-\CD@tB\CD@PI\wd\CD@VA |
---|
978 | \CD@tB\advance\CD@hF\CD@tB\advance\CD@VA\m@ne\CD@tB\wd\CD@VA\repeat\CD@mF |
---|
979 | \CD@kF\CD@mI-\CD@mF\CD@vB}\newcount\CD@GB\def\CD@s{}\def\CD@t{\mathsurround |
---|
980 | \z@\hsize\z@\rightskip\z@ plus1fil minus\maxdimen\parfillskip\z@\linepenalty |
---|
981 | 9000 \looseness0 \hfuzz\maxdimen\hbadness10000 \clubpenalty0 \widowpenalty0 |
---|
982 | \displaywidowpenalty0 \interlinepenalty0 \predisplaypenalty0 |
---|
983 | \postdisplaypenalty0 \interdisplaylinepenalty0 \interfootnotelinepenalty0 |
---|
984 | \floatingpenalty0 \brokenpenalty0 \everypar{}\leftskip\z@\parskip\z@ |
---|
985 | \parindent\z@\pretolerance10000 \tolerance10000 \hyphenpenalty10000 |
---|
986 | \exhyphenpenalty10000 \binoppenalty10000 \relpenalty10000 \adjdemerits0 |
---|
987 | \doublehyphendemerits0 \finalhyphendemerits0 \CD@IA\prevdepth\z@}\newbox |
---|
988 | \CD@KG\newbox\CD@IG\def\CD@JG{\unhcopy\CD@KG}\def\CD@HG{\unhcopy\CD@IG}\def |
---|
989 | \CD@iJ{\hbox{}\penalty1\nointerlineskip}\def\CD@PI{\penalty5 \noindent\setbox |
---|
990 | \CD@MH=\null\CD@mF\z@\CD@mI\z@\ifnum\CD@FA<\CD@LB\ht\CD@MH\ht\CD@FA\dp\CD@MH |
---|
991 | \dp\CD@FA\unhbox\CD@FA\skip0=\lastskip\unskip\else\CD@OK\skip0=\z@\fi\endgraf |
---|
992 | \ifcase\prevgraf\cd@shouldnt Y \or\cd@shouldnt Z \or\CD@RI\or\CD@XI\else |
---|
993 | \CD@QI\fi\unskip\setbox0=\lastbox\unskip\unskip\unpenalty\noindent\unhbox0% |
---|
994 | \setbox0\lastbox\unpenalty\unskip\unskip\unpenalty\setbox0\lastbox\CD@tF |
---|
995 | \CD@GB\lastpenalty\unpenalty\ifnum\CD@GB>\z@\setbox\z@\lastbox\CD@lB\repeat |
---|
996 | \endgraf\unskip\unskip\unpenalty}\def\CD@YJ{\CD@uA\CD@XB\advance\CD@uA-\CD@NB |
---|
997 | \CD@vA\CD@FA\advance\CD@vA-\CD@lA\advance\CD@vA1 \expandafter\message{% |
---|
998 | prevgraf=\the\prevgraf at (\the\CD@uA,\the\CD@vA)}}\def\CD@XI{\CD@CE\setbox |
---|
999 | \CD@lI=\lastbox\setbox\CD@lI=\hbox{\unhbox\CD@lI\unskip\unpenalty}\unskip |
---|
1000 | \ifdim\ht\CD@lI>\ht\CD@PC\setbox\CD@MH=\copy\CD@lI\else\ifdim\dp\CD@lI>\dp |
---|
1001 | \CD@PC\setbox\CD@MH=\copy\CD@lI\else\CD@FG\CD@lI\fi\fi\advance\CD@mF.5\wd |
---|
1002 | \CD@lI\advance\CD@mI.5\wd\CD@lI\setbox\CD@lI=\hbox{\unhbox\CD@lI\CD@HG}\CD@bH |
---|
1003 | \CD@mF{\box\CD@lI}\CD@mI\z@\CD@yB\CD@vB}\def\CD@CE{\ifnum\CD@A>0 \advance |
---|
1004 | \dimen0-\CD@tB\CD@iA-.5\dimen0 \CD@A-\CD@A\else\CD@A0 \CD@iA\z@\fi\setbox |
---|
1005 | \CD@MH=\lastbox\setbox\CD@MH=\hbox{\unhbox\CD@MH\unskip\unskip\unpenalty |
---|
1006 | \setbox0=\lastbox\global\CD@QA\lastkern\unkern}\advance\CD@iA-.5\CD@QA\unskip |
---|
1007 | \setbox\CD@MH=\null\CD@mI\CD@iA\CD@mF-\CD@iA}\def\CD@Z{\ht\CD@MH\CD@tI\dp |
---|
1008 | \CD@MH\CD@sI}\def\CD@FG#1{\setbox\CD@MH=\hbox{\CD@V{\ht\CD@MH}{\ht#1}\CD@V{% |
---|
1009 | \dp\CD@MH}{\dp#1}\CD@V{\wd\CD@MH}{\wd#1}\vrule height\ht\CD@MH depth\dp\CD@MH |
---|
1010 | width\wd\CD@MH}}\def\CD@QI{\CD@CE\CD@Z\setbox\CD@lI=\lastbox\unskip\setbox |
---|
1011 | \CD@lF=\lastbox\unskip\setbox\CD@lF=\hbox{\unhbox\CD@lF\unskip\global\CD@yA |
---|
1012 | \lastpenalty\unpenalty}\advance\CD@yA9999 \ifcase\CD@yA\CD@VI\or\CD@YI\or |
---|
1013 | \CD@TI\or\CD@dI\or\CD@cI\or\CD@SI\else\cd@shouldnt9\fi}\def\CD@VI{\CD@FG |
---|
1014 | \CD@lI\CD@UI\setbox\CD@sH=\box\CD@lF\setbox\CD@tH=\box\CD@lI}\def\CD@YI{% |
---|
1015 | \CD@FG\CD@lF\setbox\CD@lI\hbox{\penalty8 \unhbox\CD@lI\unskip\unpenalty\ifnum |
---|
1016 | \lastpenalty=8 \else\CD@xH\fi}\CD@UI\setbox\CD@lF=\hbox{\unhbox\CD@lF\unskip |
---|
1017 | \unpenalty\global\setbox\CD@DA=\lastbox}\ifdim\wd\CD@lF=\z@\else\CD@xH\fi |
---|
1018 | \setbox\CD@sH=\box\CD@DA}\def\CD@xH{\CD@KB{extra material in \string\pile |
---|
1019 | \space cell (lost)}}\def\CD@UI{\CD@yB\ifvoid\CD@sH\else\CD@KB{Clashing |
---|
1020 | horizontal arrows}\CD@mI.5\CD@hF\CD@mF-\CD@mI\CD@vB\CD@mI\z@\CD@mF\z@\fi |
---|
1021 | \CD@hI\CD@hF\advance\CD@hI-\CD@mI\CD@hF-\CD@mF\CD@JC\CD@FA}\def\CD@RI{\setbox |
---|
1022 | 0\lastbox\unskip\CD@iA\z@\CD@Z\ifdim\skip0>\z@\CD@tJ\CD@A0 \else\ifnum\CD@A<1 |
---|
1023 | \CD@A0 \dimen0\CD@tB\fi\advance\CD@A1 \fi}\def\VonH{\CD@MA46\VonH{.5\CD@LF}}% |
---|
1024 | \def\HonV{\CD@MA57\HonV{.5\CD@LF}}\def\HmeetV{\CD@MA44\HmeetV{-\MapShortFall}% |
---|
1025 | }\def\CD@MA#1#2#3#4{\CD@pB34#1{\string#3}\CD@SD\CD@GB-999#2 \dimen0=#4\CD@tI |
---|
1026 | \dimen0\advance\CD@tI\axisheight\CD@sI\dimen0\advance\CD@sI-\axisheight\CD@CF |
---|
1027 | \CD@HC\CD@ZD}\def\CD@HC#1{\setbox0=\hbox{\CD@k#1\CD@ND}\dimen0.5\wd0 \CD@tI |
---|
1028 | \ht0 \CD@sI\dp0 \CD@ZD}\def\CD@SD{\setbox0=\null\ht0=\CD@tI\dp0=\CD@sI\wd0=% |
---|
1029 | \dimen0 \copy0\penalty\CD@GB\box0 }\def\CD@TI{\CD@GC\CD@yB}\def\CD@dI{\CD@GC |
---|
1030 | \CD@vB}\def\CD@SI{\CD@GC\CD@yB\CD@vB}\def\CD@GC{\setbox\CD@lI=\hbox{\unhbox |
---|
1031 | \CD@lI}\setbox\CD@lF=\hbox{\unhbox\CD@lF\global\setbox\CD@DA=\lastbox}\ht |
---|
1032 | \CD@MH\ht\CD@DA\dp\CD@MH\dp\CD@DA\advance\CD@mF\wd\CD@DA\advance\CD@mI\wd |
---|
1033 | \CD@lI}\CD@tG\ifPositiveGradient\CD@CI\CD@BI\CD@CI\CD@tG\ifClimbing\CD@rB |
---|
1034 | \CD@qB\CD@rB\newcount\DiagonalChoice\DiagonalChoice\m@ne\ifx\tenln\nullfont |
---|
1035 | \CD@tJ\def\CD@qF{\CD@KH\ifPositiveGradient/\else\CD@k\backslash\CD@ND\fi}% |
---|
1036 | \else\def\CD@qF{\CD@rF\char\count@}\fi\let\CD@rF\tenln\def\Use@line@char#1{% |
---|
1037 | \hbox{#1\CD@rF\ifPositiveGradient\else\advance\count@64 \fi\char\count@}}\def |
---|
1038 | \CD@cF{\Use@line@char{\count@\CD@TC\multiply\count@8\advance\count@-9\advance |
---|
1039 | \count@\CD@LH}}\def\CD@ZF{\Use@line@char{\ifcase\DiagonalChoice\CD@gF\or |
---|
1040 | \CD@fF\or\CD@fF\else\CD@gF\fi}}\def\CD@gF{\ifnum\CD@TC=\z@\count@'33 \else |
---|
1041 | \count@\CD@TC\multiply\count@\sixt@@n\advance\count@-9\advance\count@\CD@LH |
---|
1042 | \advance\count@\CD@LH\fi}\def\CD@fF{\count@'\ifcase\CD@LH55\or\ifcase\CD@TC66% |
---|
1043 | \or22\or52\or61\or72\fi\or\ifcase\CD@TC66\or25\or22\or63\or52\fi\or\ifcase |
---|
1044 | \CD@TC66\or16\or36\or22\or76\fi\or\ifcase\CD@TC66\or27\or25\or67\or22\fi\fi |
---|
1045 | \relax}\def\CD@uC#1{\hbox{#1\setbox0=\Use@line@char{#1}\ifPositiveGradient |
---|
1046 | \else\raise.3\ht0\fi\copy0 \kern-.7\wd0 \ifPositiveGradient\raise.3\ht0\fi |
---|
1047 | \box0}}\def\CD@jF#1{\hbox{\setbox0=#1\kern-.75\wd0 \vbox to.25\ht0{% |
---|
1048 | \ifPositiveGradient\else\vss\fi\box0 \ifPositiveGradient\vss\fi}}}\def\CD@jI#% |
---|
1049 | 1{\hbox{\setbox0=#1\dimen0=\wd0 \vbox to.25\ht0{\ifPositiveGradient\vss\fi |
---|
1050 | \box0 \ifPositiveGradient\else\vss\fi}\kern-.75\dimen0 }}\CD@RC{+h:>}{% |
---|
1051 | \Use@line@char\CD@fF}\CD@RC{-h:>}{\Use@line@char\CD@gF}\CD@nF{+t:<}{-h:>}% |
---|
1052 | \CD@nF{-t:<}{+h:>}\CD@RC{+t:>}{\CD@jF{\Use@line@char\CD@fF}}\CD@RC{-t:>}{% |
---|
1053 | \CD@jI{\Use@line@char\CD@gF}}\CD@nF{+h:<}{-t:>}\CD@nF{-h:<}{+t:>}\CD@RC{+h:>>% |
---|
1054 | }{\CD@uC\CD@fF}\CD@RC{-h:>>}{\CD@uC\CD@gF}\CD@nF{+t:<<}{-h:>>}\CD@nF{-t:<<}{+% |
---|
1055 | h:>>}\CD@nF{+h:>->}{+h:>>}\CD@nF{-h:>->}{-h:>>}\CD@nF{+t:<-<}{-h:>>}\CD@nF{-t% |
---|
1056 | :<-<}{+h:>>}\CD@RC{+t:>>}{\CD@jF{\CD@uC\CD@fF}}\CD@RC{-t:>>}{\CD@jI{\CD@uC |
---|
1057 | \CD@gF}}\CD@nF{+h:<<}{-t:>>}\CD@nF{-h:<<}{+t:>>}\CD@nF{+t:>->}{+t:>>}\CD@nF{-% |
---|
1058 | t:>->}{-t:>>}\CD@nF{+h:<-<}{-t:>>}\CD@nF{-h:<-<}{+t:>>}\CD@RC{+f:-}{\CD@EF |
---|
1059 | \null\else\CD@cF\fi}\CD@nF{-f:-}{+f:-}\def\CD@tC#1#2{\vbox to#1{\vss\hbox to#% |
---|
1060 | 2{\hss.\hss}\vss}}\def\hfdot{\CD@tC{2\axisheight}{.5em}}% |
---|
1061 | %% % .7em until 29.7.98 |
---|
1062 | \def\vfdot{\CD@tC{1ex}\z@}%% % 1.46ex until 29.7.98 |
---|
1063 | \def\CD@bF{\hbox{\dimen0=.3\CD@zC\dimen1\dimen0 \ifnum\CD@LH>\CD@TC\CD@iC{% |
---|
1064 | \dimen1}\else\CD@dG{\dimen0}\fi\CD@tC{\dimen0}{\dimen1}}}\newarrowfiller{.}% |
---|
1065 | \hfdot\hfdot\vfdot\vfdot\def\dfdot{\CD@bF\CD@CK}\CD@RC{+f:.}{\dfdot}\CD@RC{-f% |
---|
1066 | :.}{\dfdot}\def\CD@@K#1{\hbox\bgroup\def\CD@CH{#1\egroup}\afterassignment |
---|
1067 | \CD@CH%% |
---|
1068 | \count@='}\def\lnchar{\CD@@K\CD@qF}\def\CD@dF#1{\setbox#1=\hbox{\dimen5\dimen |
---|
1069 | #1 \setbox8=\box#1 \dimen1\wd8 \count@\dimen5 \divide\count@\dimen1 \ifnum |
---|
1070 | \count@=0 \box8 \ifdim\dimen5<.95\dimen1 \CD@gB{diagonal line too short}\fi |
---|
1071 | \else\dimen3=\dimen5 \advance\dimen3-\dimen1 \divide\dimen3\count@\dimen4% |
---|
1072 | \dimen3 \CD@dG{\dimen4}\ifPositiveGradient\multiply\dimen4\m@ne\fi\dimen6% |
---|
1073 | \dimen1 \advance\dimen6-\dimen3 \loop\raise\count@\dimen4\copy8 \ifnum\count@ |
---|
1074 | >0 \kern-\dimen6 \advance\count@\m@ne\repeat\fi}}\def\CD@CG#1{\CD@EF\CD@xJ{#1% |
---|
1075 | }\else\CD@dF{#1}\fi}\def\CD@IH#1{}\newdimen\objectheight\objectheight1.8ex |
---|
1076 | \newdimen\objectwidth\objectwidth1em \def\CD@YD{\dimen6=\CD@aK |
---|
1077 | \DiagramCellHeight\dimen7=\CD@WK\DiagramCellWidth\CD@KJ\ifnum\CD@LH>0 \ifnum |
---|
1078 | \CD@TC>0 \CD@aF\else\aftergroup\CD@VC\fi\else\aftergroup\CD@UC\fi}\def\CD@VC{% |
---|
1079 | \CD@YA{diagonal map is nearly vertical}\CD@NA}\def\CD@UC{\CD@YA{diagonal map |
---|
1080 | is nearly horizontal}\CD@NA}\CD@rG\CD@NA{Use an orthogonal map instead}\def |
---|
1081 | \CD@aF{\CD@MJ\dimen3\dimen7\dimen7\dimen6\CD@iC{\dimen7}\advance\dimen3-% |
---|
1082 | \dimen7 \CD@MF\ifnum\CD@LH>\CD@TC\advance\dimen6-\dimen1\advance\dimen6-% |
---|
1083 | \dimen5 \CD@iC{\dimen1}\CD@iC{\dimen5}\else\dimen0\dimen1\advance\dimen0% |
---|
1084 | \dimen5\CD@dG{\dimen0}\advance\dimen6-\dimen0 \fi\dimen2.5\dimen7\advance |
---|
1085 | \dimen2-\dimen1 \dimen4.5\dimen7\advance\dimen4-\dimen5 \ifPositiveGradient |
---|
1086 | \dimen0\dimen5 \advance\dimen1-\CD@WK\DiagramCellWidth\advance\dimen1 \CD@ZK |
---|
1087 | \DiagramCellWidth\setbox6=\llap{\unhbox6\kern.1\ht2}\setbox7=\rlap{\kern.1\ht |
---|
1088 | 2\unhbox7}\else\dimen0\dimen1 \advance\dimen1-\CD@ZK\DiagramCellWidth\setbox7% |
---|
1089 | =\llap{\unhbox7\kern.1\ht2}\setbox6=\rlap{\kern.1\ht2\unhbox6}\fi\setbox6=% |
---|
1090 | \vbox{\box6\kern.1\wd2}\setbox7=\vtop{\kern.1\wd2\box7}\CD@dG{\dimen0}% |
---|
1091 | \advance\dimen0-\axisheight\advance\dimen0-\CD@bK\DiagramCellHeight\dimen5-% |
---|
1092 | \dimen0 \advance\dimen0\dimen6 \advance\dimen1.5\dimen3 \ifdim\wd3>\z@\ifdim |
---|
1093 | \ht3>-\dp3\CD@TB\fi\fi\dimen3\dimen2 \dimen7\dimen2\advance\dimen7\dimen4 |
---|
1094 | \ifvoid3 \else\CD@tE\else\dimen8\ht3\advance\dimen8-\axisheight\CD@iC{\dimen8% |
---|
1095 | }\CD@X{\dimen8}{.5\wd3}\dimen9\dp3\advance\dimen9\axisheight\CD@iC{\dimen9}% |
---|
1096 | \CD@X{\dimen9}{.5\wd3}\ifPositiveGradient\advance\dimen2-\dimen9\advance |
---|
1097 | \dimen4-\dimen8 \else\advance\dimen4-\dimen9\advance\dimen2-\dimen8 \fi\fi |
---|
1098 | \advance\dimen3-.5\wd3 \fi\dimen9=\CD@aK\DiagramCellHeight\advance\dimen9-2% |
---|
1099 | \DiagramCellHeight\CD@tE\advance\dimen2\dimen4 \CD@CG{2}\dimen2-\dimen0% |
---|
1100 | \advance\dimen2\dp2 \else\CD@CG{2}\CD@CG{4}\ifPositiveGradient\dimen2-\dimen0% |
---|
1101 | \advance\dimen2\dp2 \dimen4\dimen5\advance\dimen4-\ht4 \else\dimen4-\dimen0% |
---|
1102 | \advance\dimen4\dp4 \dimen2\dimen5\advance\dimen2-\ht2 \fi\fi\setbox0=\hbox to% |
---|
1103 | \z@{\kern\dimen1 \ifvoid1 \else\ifPositiveGradient\advance\dimen0-\dp1 \lower |
---|
1104 | \dimen0 \else\advance\dimen5-\ht1 \raise\dimen5 \fi\rlap{\unhbox1}\fi\raise |
---|
1105 | \dimen2\rlap{\unhbox2}\ifvoid3 \else\lower.5\dimen9\rlap{\kern\dimen3\unhbox3% |
---|
1106 | }\fi\kern.5\dimen7 \lower.5\dimen9\box6 \lower.5\dimen9\box7 \kern.5\dimen7 |
---|
1107 | \CD@tE\else\raise\dimen4\llap{\unhbox4}\fi\ifvoid5 \else\ifPositiveGradient |
---|
1108 | \advance\dimen5-\ht5 \raise\dimen5 \else\advance\dimen0-\dp5 \lower\dimen0 \fi |
---|
1109 | \llap{\unhbox5}\fi\hss}\ht0=\axisheight\dp0=-\ht0\box0 }\def\NorthWest{\CD@BI |
---|
1110 | \CD@rB\DiagonalChoice0 }\def\NorthEast{\CD@CI\CD@rB\DiagonalChoice1 }\def |
---|
1111 | \SouthWest{\CD@CI\CD@qB\DiagonalChoice3 }\def\SouthEast{\CD@BI\CD@qB |
---|
1112 | \DiagonalChoice2 }\def\CD@aD{\vadjust{\CD@uA\CD@FA\advance\CD@uA |
---|
1113 | \ifPositiveGradient\else-\fi\CD@ZK\relax\CD@vA\CD@NB\advance\CD@vA-\CD@bK |
---|
1114 | \relax\hbox{\advance\CD@uA\ifPositiveGradient-\fi\CD@WK\advance\CD@vA\CD@aK |
---|
1115 | \hbox{\box6 \kern\CD@DC\kern\CD@eJ\penalty1 \box7 \box\z@}\penalty\CD@uA |
---|
1116 | \penalty\CD@vA}\penalty\CD@uA\penalty\CD@vA\penalty104}}\def\CD@eH#1{\relax |
---|
1117 | \vadjust{\hbox@maths{#1}\penalty\CD@FA\penalty\CD@NB\penalty\tw@}}\def\CD@lB{% |
---|
1118 | \ifcase\CD@GB\or\or\CD@bH{.5\wd0}{\box0}{.5\wd0}\z@\or\unhbox\z@\setbox\z@ |
---|
1119 | \lastbox\CD@bH{.5\wd0}{\box0}{.5\wd0}\z@\unpenalty\unpenalty\setbox\z@ |
---|
1120 | \lastbox\or\CD@TG\else\advance\CD@GB-100 \ifnum\CD@GB<\z@\cd@shouldnt B\fi |
---|
1121 | \setbox\z@\hbox{\kern\CD@mF\copy\CD@MH\kern\CD@mI\CD@uA\CD@XB\advance\CD@uA-% |
---|
1122 | \CD@NB\penalty\CD@uA\CD@uA\CD@FA\advance\CD@uA-\CD@lA\penalty\CD@uA\unhbox\z@ |
---|
1123 | \global\CD@yA\lastpenalty\unpenalty\global\CD@zA\lastpenalty\unpenalty}\CD@uA |
---|
1124 | -\CD@yA\CD@vA\CD@zA\CD@fI\fi}\def\CD@TG{\unhbox\z@\setbox\z@\lastbox\CD@uA |
---|
1125 | \lastpenalty\unpenalty\advance\CD@uA\CD@mA\CD@vA\CD@XB\advance\CD@vA-% |
---|
1126 | \lastpenalty\unpenalty\dimen1\lastkern\unkern\setbox3\lastbox\dimen0\lastkern |
---|
1127 | \unkern\setbox0=\hbox to\z@{\unhbox0\setbox0\lastbox\setbox7\lastbox |
---|
1128 | \unpenalty\CD@eJ\lastkern\unkern\CD@DC\lastkern\unkern\setbox6\lastbox\dimen7% |
---|
1129 | \CD@tB\advance\dimen7-\wd\CD@uA\ifdim\dimen7<\z@\CD@CI\multiply\dimen7\m@ne |
---|
1130 | \let\mv\empty\else\CD@BI\def\mv{\raise\ht1}\kern-\dimen7 \fi\ifnum\CD@vA>% |
---|
1131 | \CD@NB\dimen6\CD@uB\advance\dimen6-\ht\CD@vA\else\dimen6\z@\fi\CD@jJ\CD@mK |
---|
1132 | \setbox1\null\ht1\dimen6\wd1\dimen7 \dimen7\dimen2 \dimen6\wd1 \CD@KJ\CD@uA |
---|
1133 | \CD@LH\CD@vA\CD@TC\dimen6\ht1 \CD@KJ\setbox2\null\divide\dimen2\tw@\advance |
---|
1134 | \dimen2\CD@eJ\CD@eG{\dimen2}\wd2\dimen2 \dimen0.5\dimen7 \advance\dimen0% |
---|
1135 | \ifPositiveGradient\else-\fi\CD@eJ\CD@dG{\dimen0}\advance\dimen0-\axisheight |
---|
1136 | \ht2\dimen0 \dimen0\CD@DC\CD@eG{\dimen0}\advance\dimen0\ht2\ht2\dimen0 \dimen |
---|
1137 | 0\ifPositiveGradient-\fi\CD@DC\CD@dG{\dimen0}\advance\dimen0\wd2\wd2\dimen0 |
---|
1138 | \setbox4\null\dimen0 .6\CD@zC\CD@eG{\dimen0}\ht4\dimen0 \dimen0 .2\CD@zC |
---|
1139 | \CD@dG{\dimen0}\wd4\dimen0 \dimen0\wd2 \ifvoid6\else\dimen1\ht4 \advance |
---|
1140 | \dimen1\ht2 \CD@CC6+-\raise\dimen1\rlap{\ifPositiveGradient\advance\dimen0-% |
---|
1141 | \wd6\advance\dimen0-\wd4 \else\advance\dimen0\wd4 \fi\kern\dimen0\box6}\fi |
---|
1142 | \dimen0\wd2 \ifvoid7\else\dimen1\ht4 \advance\dimen1-\ht2 \CD@CC7-+\lower |
---|
1143 | \dimen1\rlap{\ifPositiveGradient\advance\dimen0\wd4 \else\advance\dimen0-\wd7% |
---|
1144 | \advance\dimen0-\wd4 \fi\kern\dimen0\box7}\fi\mv\box0\hss}\ht0\z@\dp0\z@ |
---|
1145 | \CD@bH{\z@}{\box\z@}{\z@}{\axisheight}}\def\CD@CC#1#2#3{\dimen4.5\wd#1 \ifdim |
---|
1146 | \dimen4>.25\dimen7\dimen4=.25\dimen7\fi\ifdim\dimen4>\CD@zC\dimen4.4\dimen4 |
---|
1147 | \advance\dimen4.6\CD@zC\fi\CD@eG{\dimen4}\dimen5\axisheight\CD@dG{\dimen5}% |
---|
1148 | \advance\dimen4-\dimen5 \dimen5\dimen4\CD@eG{\dimen5}\advance\dimen0% |
---|
1149 | \ifPositiveGradient#2\else#3\fi\dimen5 \CD@dG{\dimen4}\advance\dimen1\dimen4 } |
---|
1150 | \def\CD@eD#1{\expandafter\CD@IK{#1}}\CD@ZA\CD@EK{output is PostScript |
---|
1151 | dependent}\def\CD@SC{\CD@IK{/bturn {gsave currentpoint currentpoint translate |
---|
1152 | 4 2 roll neg exch atan rotate neg exch neg exch translate } def /eturn {% |
---|
1153 | currentpoint grestore moveto} def}}\def\CD@gK{\relax\CD@hK\CD@tK{Q}\else |
---|
1154 | \CD@IK{eturn}\fi} \def\CD@OJ#1{\count@#1\relax\multiply\count@7\advance |
---|
1155 | \count@16577\divide\count@33154 }\def\CD@fD#1{\expandafter\special{#1}} \def |
---|
1156 | \CD@xJ#1{\setbox#1=\hbox{\dimen0\dimen#1\CD@dG{\dimen0}\CD@OJ{\dimen0}\setbox |
---|
1157 | 0=\null\ifPositiveGradient\count@-\count@\ht0\dimen0 \else\dp0\dimen0 \fi\box |
---|
1158 | 0 \CD@uA\count@\CD@OJ\CD@LF\CD@fD{pn \the\count@}\CD@fD{pa 0 0}\CD@OJ{\dimen#% |
---|
1159 | 1}\CD@fD{pa \the\count@\space\the\CD@uA}\CD@fD{fp}\kern\dimen#1}}\def\CD@JI{% |
---|
1160 | \CD@KJ\begingroup\ifdim\dimen7<\dimen6 \dimen2=\dimen6 \dimen6=\dimen7 \dimen |
---|
1161 | 7=\dimen2 \count@\CD@LH\CD@LH\CD@TC\CD@TC\count@\else\dimen2=\dimen7 \fi |
---|
1162 | \ifdim\dimen6>.01\p@\CD@KI\global\CD@QA\dimen0 \else\global\CD@QA\dimen7 \fi |
---|
1163 | \endgroup\dimen2\CD@QA\CD@iK\CD@lK{\ifPositiveGradient\else-\fi\dimen6}\CD@iK |
---|
1164 | \CD@kK{\ifPositiveGradient-\fi\dimen6}\CD@iK\CD@eK{\dimen7}}\def\CD@KI{\CD@hJ |
---|
1165 | \ifdim\dimen7>1.73\dimen6 \divide\dimen2 4 \multiply\CD@TC2 \else\dimen2=0.% |
---|
1166 | 353553\dimen2 \advance\CD@LH-\CD@TC\multiply\CD@TC4 \fi\dimen0=4\dimen2 \CD@ZG |
---|
1167 | 4\CD@ZG{-2}\CD@ZG2\CD@ZG{-2.5}}\def\CD@AI{\begingroup\count@\dimen0 \dimen2 45% |
---|
1168 | pt \divide\count@\dimen2 \ifdim\dimen0<\z@\advance\count@\m@ne\fi\ifodd |
---|
1169 | \count@\advance\count@1\CD@@A\else\CD@y\fi\advance\dimen0-\count@\dimen2 |
---|
1170 | \CD@gE\multiply\dimen0\m@ne\fi\ifnum\count@<0 \multiply\count@-7 \fi\dimen3% |
---|
1171 | \dimen1 \dimen6\dimen0 \dimen7 3754936sp \ifdim\dimen0<6\p@\def\CD@OG{4000}% |
---|
1172 | \fi\CD@KJ\dimen2\dimen3\CD@dG{\dimen2}\CD@hJ\multiply\CD@TC-6 \dimen0\dimen2 |
---|
1173 | \CD@ZG1\CD@ZG{0.3}\dimen1\dimen0 \dimen2\dimen3 \dimen0\dimen3 \CD@ZG3\CD@ZG{% |
---|
1174 | 1.5}\CD@ZG{0.3}\divide\count@2 \CD@gE\multiply\dimen1\m@ne\fi\ifodd\count@ |
---|
1175 | \dimen2\dimen1\dimen1\dimen0\dimen0-\dimen2 \fi\divide\count@2 \ifodd\count@ |
---|
1176 | \multiply\dimen0\m@ne\multiply\dimen1\m@ne\fi\global\CD@QA\dimen0\global |
---|
1177 | \CD@RA\dimen1\endgroup\dimen6\CD@QA\dimen7\CD@RA}\def\CD@OC{255}\let\CD@OG |
---|
1178 | \CD@OC\def\CD@KJ{\begingroup\ifdim\dimen7<\dimen6 \dimen9\dimen7\dimen7\dimen |
---|
1179 | 6\dimen6\dimen9\CD@@A\else\CD@y\fi\dimen2\z@\dimen3\CD@XH\dimen4\CD@XH\dimen0% |
---|
1180 | \z@\dimen8=\CD@OG\CD@XH\CD@lC\global\CD@yA\dimen\CD@gE0\else3\fi\global\CD@zA |
---|
1181 | \dimen\CD@gE3\else0\fi\endgroup\CD@LH\CD@yA\CD@TC\CD@zA}\def\CD@lC{\count@ |
---|
1182 | \dimen6 \divide\count@\dimen7 \advance\dimen6-\count@\dimen7 \dimen9\dimen4 |
---|
1183 | \advance\dimen9\count@\dimen0 \ifdim\dimen9>\dimen8 \CD@@C\else\CD@AC\ifdim |
---|
1184 | \dimen6>\z@\dimen9\dimen6 \dimen6\dimen7 \dimen7\dimen9 \expandafter |
---|
1185 | \expandafter\expandafter\CD@lC\fi\fi}\def\CD@@C{\ifdim\dimen0=\z@\ifdim\dimen |
---|
1186 | 9<2\dimen8 \dimen0\dimen8 \fi\else\advance\dimen8-\dimen4 \divide\dimen8% |
---|
1187 | \dimen0 \ifdim\count@\CD@XH<2\dimen8 \count@\dimen8 \dimen9\dimen4 \advance |
---|
1188 | \dimen9\count@\dimen0 \CD@AC\fi\fi}\def\CD@AC{\dimen4\dimen0 \dimen0\dimen9 |
---|
1189 | \advance\dimen2\count@\dimen3 \dimen9\dimen2 \dimen2\dimen3 \dimen3\dimen9 }% |
---|
1190 | \def\CD@ZG#1{\CD@dG{\dimen2}\advance\dimen0 #1\dimen2 }\def\CD@dG#1{\divide#1% |
---|
1191 | \CD@TC\multiply#1\CD@LH}\def\CD@eG#1{\divide#1\CD@vA\multiply#1\CD@uA}\def |
---|
1192 | \CD@iC#1{\divide#1\CD@LH\multiply#1\CD@TC}\def\CD@hJ{\dimen6\CD@LH\CD@XH |
---|
1193 | \multiply\dimen6\CD@LH\dimen7\CD@TC\CD@XH\multiply\dimen7\CD@TC\CD@KJ}\def |
---|
1194 | \CD@iK#1#2{\begingroup\dimen@#2\relax\loop\ifdim\dimen2<.4\maxdimen\multiply |
---|
1195 | \dimen2\tw@\multiply\dimen@\tw@\repeat\divide\dimen2\@cclvi\divide\dimen@ |
---|
1196 | \dimen2\relax\multiply\dimen@\@cclvi\expandafter\CD@jK\the\dimen@\endgroup |
---|
1197 | \let#1\CD@fK}{\catcode`p=12 \catcode`0=12 \catcode`.=12 \catcode`t=12 \gdef |
---|
1198 | \CD@jK#1pt{\gdef\CD@fK{#1}}}\ifx\errorcontextlines\CD@qK\CD@tJ\let\CD@GH |
---|
1199 | \relax\else\def\CD@GH{\errorcontextlines\m@ne}\fi\ifnum\inputlineno<0 \let |
---|
1200 | \CD@CD\empty\let\CD@W\empty\let\CD@mD\relax\let\CD@uI\relax\let\CD@vI\relax |
---|
1201 | \let\CD@zF\relax\message{! Why not upgrade to TeX version 3? (available since |
---|
1202 | 1990)}\else\def\CD@W{ at line \number\inputlineno}\def\CD@mD{ - first occurred% |
---|
1203 | }\def\CD@uI{\edef\CD@h{\the\inputlineno}\global\let\CD@jB\CD@h}\def\CD@h{9999% |
---|
1204 | }\def\CD@vI{\xdef\CD@jB{\the\inputlineno}}\def\CD@jB{\CD@h}\def\CD@zF{\ifnum |
---|
1205 | \CD@h<\inputlineno\edef\CD@CD{\space at lines \CD@h--\the\inputlineno}\else |
---|
1206 | \edef\CD@CD{\CD@W}\fi}\fi\let\CD@CD\empty\def\CD@YA#1#2{\CD@GH\errhelp=#2% |
---|
1207 | \expandafter\errmessage{\CD@tA: #1}}\def\CD@KB#1{\begingroup\expandafter |
---|
1208 | \message{! \CD@tA: #1\CD@CD}\ifnum\CD@XB>\CD@NB\ifnum\CD@CA>\CD@NB\else\ifnum |
---|
1209 | \CD@lA>\CD@FA\else\ifnum\CD@LB>\CD@FA\advance\CD@XB-\CD@NB\advance\CD@FA-% |
---|
1210 | \CD@lA\advance\CD@FA1\relax\expandafter\message{! (error detected at row \the |
---|
1211 | \CD@XB, column \the\CD@FA, but probably caused elsewhere)}\fi\fi\fi\fi |
---|
1212 | \endgroup}\def\CD@gB#1{{\expandafter\message{\CD@tA\space Warning: #1\CD@W}}}% |
---|
1213 | \def\CD@CB#1#2{\CD@gB{#1 \string#2 is obsolete\CD@mD}}\def\CD@AB#1{\CD@CB{% |
---|
1214 | Dimension}{#1}\CD@DE#1\CD@BB\CD@BB}\def\CD@BB{\CD@OA=}\def\CD@@B#1{\CD@CB{% |
---|
1215 | Count}{#1}\CD@DE#1\CD@OH\CD@OH}\def\CD@OH{\count@=}\def\HorizontalMapLength{% |
---|
1216 | \CD@AB\HorizontalMapLength}\def\VerticalMapHeight{\CD@AB\VerticalMapHeight}% |
---|
1217 | \def\VerticalMapDepth{\CD@AB\VerticalMapDepth}\def\VerticalMapExtraHeight{% |
---|
1218 | \CD@AB\VerticalMapExtraHeight}\def\VerticalMapExtraDepth{\CD@AB |
---|
1219 | \VerticalMapExtraDepth}\def\DiagonalLineSegments{\CD@@B\DiagonalLineSegments}% |
---|
1220 | \ifx\tenln\nullfont\CD@ZA\CD@KH{\CD@eF\space diagonal line and arrow font not |
---|
1221 | available}\else\let\CD@KH\relax\fi\def\CD@aG#1#2<#3:#4:#5#6{\begingroup\CD@PA |
---|
1222 | #3\relax\advance\CD@PA-#2\relax\ifdim.1em<\CD@PA\CD@uA#5\relax\CD@vA#6\relax |
---|
1223 | \ifnum\CD@uA<\CD@vA\count@\CD@vA\advance\count@-\CD@uA\CD@KB{#4 by \the\CD@PA |
---|
1224 | }\if#1v\let\CD@CH\CD@JK\edef\tmp{\the\CD@uA--\the\CD@vA,\the\CD@FA}\else |
---|
1225 | \advance\count@\count@\if#1l\advance\count@-\CD@A\else\if#1r\advance\count@ |
---|
1226 | \CD@A\fi\fi\advance\CD@PA\CD@PA\let\CD@CH\CD@ZE\edef\tmp{\the\CD@NB,\the |
---|
1227 | \CD@uA--\the\CD@vA}\fi\divide\CD@PA\count@\ifdim\CD@CH<\CD@PA\global\CD@CH |
---|
1228 | \CD@PA\fi\fi\fi\endgroup}\CD@tG\CD@xE\CD@JD\CD@ID\CD@rG\CD@xI{See the message |
---|
1229 | above.}\CD@rG\CD@lH{Perhaps you've forgotten to end the diagram before |
---|
1230 | resuming the text, in\CD@uG which case some garbage may be added to the |
---|
1231 | diagram, but we should be ok now.\CD@uG Alternatively you've left a blank line |
---|
1232 | in the middle - TeX will now complain\CD@uG that the remaining \CD@S s are |
---|
1233 | misplaced - so please use comments for layout.}\CD@rG\CD@hD{You have already |
---|
1234 | closed too many brace pairs or environments; an \CD@HD\CD@uG command was (% |
---|
1235 | over)due.}\CD@rG\CD@hH{\CD@dC\space and \CD@HD\space commands must match.}% |
---|
1236 | \def\CD@jH{\ifnum\inputlineno=0 \else\expandafter\CD@iH\fi}\def\CD@iH{\CD@MD |
---|
1237 | \CD@GD\crcr\CD@YA{missing \CD@HD\space inserted before \CD@kH- type "h"}% |
---|
1238 | \CD@lH\enddiagram\CD@AG\CD@kH\par}\def\CD@AG#1{\edef\enddiagram{\noexpand |
---|
1239 | \CD@rD{#1\CD@W}}}\def\CD@rD#1{\CD@YA{\CD@HD\space(anticipated by #1) ignored}% |
---|
1240 | \CD@xI\let\enddiagram\CD@SG}\def\CD@SG{\CD@YA{misplaced \CD@HD\space ignored}% |
---|
1241 | \CD@hH}\def\CD@mC{\CD@YA{missing \CD@HD\space inserted.}\CD@hD\CD@AG{closing |
---|
1242 | group}}\ifx\DeclareOption\CD@qK\else\ifx\DeclareOption\@notprerr\else |
---|
1243 | \DeclareOption*{\let\CD@N\relax\let\CD@DH\relax\expandafter\CD@@E |
---|
1244 | \CurrentOption,}\fi\fi |
---|
1245 | %%======================================================================% |
---|
1246 | %% % |
---|
1247 | %% (22) AUXILLARY MACROS FOR ADJUSTMENT OF COMPONENTS % |
---|
1248 | %% % |
---|
1249 | %%======================================================================% |
---|
1250 | |
---|
1251 | %% NOTE: The recommended way of defining arrow commands is now |
---|
1252 | %% \newarrow{Name}{tail}{filler}{middle}{filler}{head} |
---|
1253 | %% which defines \rName, \lName, \dName and \uName using arrow parts which |
---|
1254 | %% have themselves previously been defined using the commands |
---|
1255 | %% \newarrowtail, \newarrowfiller, \newarrowmiddle and \newarrowhead. |
---|
1256 | |
---|
1257 | %% The components \rhvee etc have been retained for the time being, as an |
---|
1258 | %% intermediate stage and to continue to support the old \HorizontalMap and |
---|
1259 | %% \VerticalMap commands, but you should not rely on the continued existence |
---|
1260 | %% of these macros. |
---|
1261 | |
---|
1262 | %% The various components usually need some correction |
---|
1263 | %% - longitudinally, ie to prevent gaps and overprints with the shaft, |
---|
1264 | %% - transversally, ie to prevent "steps" in the junction with the shaft. |
---|
1265 | %% The former can be done safely ad hoc, eg with \mkern1mu. |
---|
1266 | %% The latter are now done with the macros \scriptaxis, \boldscriptaxis, |
---|
1267 | %% \shifthook and \raisehook, which include pixel corrections. |
---|
1268 | |
---|
1269 | %% Please note that these and the other auxillary macros which follow are |
---|
1270 | %% interim. When it becomes clear exactly what kinds of adjustments are |
---|
1271 | %% needed for characters, this job will be done by a suitable extension |
---|
1272 | %% to the language of \newarrowhead, etc. If you have any other ideas for |
---|
1273 | %% transformations of general use please tell me. |
---|
1274 | |
---|
1275 | %% By all means experiment with other characters for arrowheads, but |
---|
1276 | %% please, in your own interests, do not rely on macros like \rhvee, |
---|
1277 | %% send me a copy of your definitions for distribution to other users |
---|
1278 | %% in this file, and keep track of where your efforts get copied so |
---|
1279 | %% that they can be replaced with the "official" version when it is |
---|
1280 | %% incorporated. |
---|
1281 | |
---|
1282 | %% ***** DONT use macros with mangled names like \Cd@gH. ***** |
---|
1283 | |
---|
1284 | \catcode`\$=3 %% make sure that $ means maths-shift |
---|
1285 | \def\vboxtoz{\vbox to\z@}%% \z@ is in plain TeX and means 0pt |
---|
1286 | |
---|
1287 | %% print #1 in \scriptstyle, adjusting for the maths axis height |
---|
1288 | \def\scriptaxis#1{\@scriptaxis{$\scriptstyle#1$}}%% |
---|
1289 | \def\ssaxis#1{\@ssaxis{$\scriptscriptstyle#1$}}%% |
---|
1290 | \def\@scriptaxis#1{\dimen0\axisheight\advance\dimen0-\ss@axisheight\raise |
---|
1291 | \dimen0\hbox{#1}}\def\@ssaxis#1{\dimen0\axisheight\advance\dimen0-% |
---|
1292 | \ss@axisheight\raise\dimen0\hbox{#1}} |
---|
1293 | |
---|
1294 | %% Some of the characters would look better in bold since they're |
---|
1295 | %% taken from sub/superscript fonts; we use LaTeX's \boldmath to |
---|
1296 | %% do this, defining this to do nothing if it doesn't exist. |
---|
1297 | %% With the old LaTeX font selection at other than 10pt you may still |
---|
1298 | %% get nothing happenning. Also, PK fonts may be missing. |
---|
1299 | %% If you have problems, DONT use boldhook or boldlittlevee. |
---|
1300 | \ifx\boldmath\CD@qK%% |
---|
1301 | \let\boldscriptaxis\scriptaxis%% |
---|
1302 | \def\boldscript#1{\hbox{$\scriptstyle#1$}}%% |
---|
1303 | \def\boldscriptscript#1{\hbox{$\scriptscriptstyle#1$}}%% |
---|
1304 | \else\def\boldscriptaxis#1{\@scriptaxis{\boldmath$\scriptstyle#1$}}%% |
---|
1305 | \def\boldscript#1{\hbox{\boldmath$\scriptstyle#1$}}%% |
---|
1306 | \def\boldscriptscript#1{\hbox{\boldmath$\scriptscriptstyle#1$}}%% |
---|
1307 | \fi |
---|
1308 | |
---|
1309 | %% #1= {} or \boldmath; #2= + or -; #3=\subset or \supset |
---|
1310 | \def\raisehook#1#2#3{\hbox{\setbox3=\hbox{#1$\scriptscriptstyle#3$}% |
---|
1311 | %% the character to use |
---|
1312 | \dimen0\ss@axisheight%% \scriptscriptstyle axis height |
---|
1313 | \dimen1\axisheight\advance\dimen1-\dimen0%% difference in axis heights |
---|
1314 | \dimen2\ht3\advance\dimen2-\dimen0% |
---|
1315 | %% height of char above axis (half spread) |
---|
1316 | \advance\dimen2-0.021em\advance\dimen1 #2\dimen2% |
---|
1317 | %% shift = axis_difference +/- half_spread |
---|
1318 | \raise\dimen1\box3}}%% print the character |
---|
1319 | %% Mark Dawson suggested using the width |
---|
1320 | \def\shifthook#1#2#3{\setbox1=\hbox{#1$\scriptscriptstyle#3$}\dimen0\wd1% |
---|
1321 | \divide\dimen0 12\CD@zH{\dimen0}%% "u" |
---|
1322 | \dimen1\wd1\advance\dimen1-2\dimen0 \advance\dimen1-2\CD@oI\CD@zH{\dimen1}% |
---|
1323 | \kern#2\dimen1\box1}%% print |
---|
1324 | |
---|
1325 | %% use the extension font (cmex) for double vertical arrows |
---|
1326 | \def\@cmex{\mathchar"03}%%ascii double quote |
---|
1327 | |
---|
1328 | %% ************* P U L L B A C K S ************ |
---|
1329 | |
---|
1330 | %% These will probably be replaced by something less ad hoc |
---|
1331 | %% in a future version. |
---|
1332 | |
---|
1333 | \def\make@pbk#1{\setbox\tw@\hbox to\z@{#1}\ht\tw@\z@\dp\tw@\z@\box\tw@}\def |
---|
1334 | \CD@fH#1{\overprint{\hbox to\z@{#1}}}\def\CD@qH{\kern0.11em}\def\CD@pH{\kern0% |
---|
1335 | .35em} |
---|
1336 | |
---|
1337 | %% This is a hack for my book ``Practical Foundations of Mathematics'' |
---|
1338 | %% and WILL NOT BE SUPPORTED --- DO NOT USE IT! |
---|
1339 | \def\dblvert{\def\CD@rH{\kern.5\PileSpacing}}\def\CD@rH{} |
---|
1340 | |
---|
1341 | \def\SEpbk{\make@pbk{\CD@qH\CD@rH\vrule depth 2.87ex height -2.75ex width 0.% |
---|
1342 | 95em \vrule height -0.66ex depth 2.87ex width 0.05em \hss}} |
---|
1343 | |
---|
1344 | \def\SWpbk{\make@pbk{\hss\vrule height -0.66ex depth 2.87ex width 0.05em |
---|
1345 | \vrule depth 2.87ex height -2.75ex width 0.95em \CD@qH\CD@rH}} |
---|
1346 | |
---|
1347 | \def\NEpbk{\make@pbk{\CD@qH\CD@rH\vrule depth -3.81ex height 4.00ex width 0.% |
---|
1348 | 95em \vrule height 4.00ex depth -1.72ex width 0.05em \hss}} |
---|
1349 | |
---|
1350 | \def\NWpbk{\make@pbk{\hss\vrule height 4.00ex depth -1.72ex width 0.05em |
---|
1351 | \vrule depth -3.81ex height 4.00ex width 0.95em \CD@qH\CD@rH}} |
---|
1352 | |
---|
1353 | %% Freyd & Scedrov puncture symbol for non-commuting polygon |
---|
1354 | \def\puncture{{\setbox0\hbox{A}\vrule height.53\ht0 depth-.47\ht0 width.35\ht |
---|
1355 | 0 \kern.12\ht0 \vrule height\ht0 depth-.65\ht0 width.06\ht0 \kern-.06\ht0 |
---|
1356 | \vrule height.35\ht0 depth0pt width.06\ht0 \kern.12\ht0 \vrule height.53\ht0 |
---|
1357 | depth-.47\ht0 width.35\ht0 }} |
---|
1358 | |
---|
1359 | %% 2-cells: (24.11.95) |
---|
1360 | %%% \NEclck puts a clockwise (ie southeast) arrow to the northwest of cell etc |
---|
1361 | \def\NEclck{\overprint{\raise2.5ex\rlap{ \CD@rH$\scriptstyle\searrow$}}}%% |
---|
1362 | \def\NEanti{\overprint{\raise2.5ex\rlap{ \CD@rH$\scriptstyle\nwarrow$}}}%% |
---|
1363 | \def\NWclck{\overprint{\raise2.5ex\llap{$\scriptstyle\nearrow$ \CD@rH}}}%% |
---|
1364 | \def\NWanti{\overprint{\raise2.5ex\llap{$\scriptstyle\swarrow$ \CD@rH}}}%% |
---|
1365 | \def\SEclck{\overprint{\lower1ex\rlap{ \CD@rH$\scriptstyle\swarrow$}}}%% |
---|
1366 | \def\SEanti{\overprint{\lower1ex\rlap{ \CD@rH$\scriptstyle\nearrow$}}}%% |
---|
1367 | \def\SWclck{\overprint{\lower1ex\llap{$\scriptstyle\nwarrow$ \CD@rH}}}%% |
---|
1368 | \def\SWanti{\overprint{\lower1ex\llap{$\scriptstyle\searrow$ \CD@rH}}} |
---|
1369 | |
---|
1370 | %%======================================================================% |
---|
1371 | %% % |
---|
1372 | %% (23) BITS OF ARROWS % |
---|
1373 | %% % |
---|
1374 | %%======================================================================% |
---|
1375 | |
---|
1376 | %% ********** H E A D S *********** |
---|
1377 | |
---|
1378 | %% \diagramstyle[heads=xxx] defines {>} as {xxx} where xxx |
---|
1379 | %% has been defined by \newarrowhead{xxx} and \newarrowtail{xxx} |
---|
1380 | |
---|
1381 | %% vee head |
---|
1382 | \def\rhvee{\mkern-10mu\greaterthan}%% |
---|
1383 | \def\lhvee{\lessthan\mkern-10mu}%% |
---|
1384 | \def\dhvee{\vboxtoz{\vss\hbox{$\vee$}\kern0pt}}%% |
---|
1385 | \def\uhvee{\vboxtoz{\hbox{$\wedge$}\vss}}%% |
---|
1386 | \newarrowhead{vee}\rhvee\lhvee\dhvee\uhvee |
---|
1387 | |
---|
1388 | %% little vee head |
---|
1389 | \def\dhlvee{\vboxtoz{\vss\hbox{$\scriptstyle\vee$}\kern0pt}}%% |
---|
1390 | \def\uhlvee{\vboxtoz{\hbox{$\scriptstyle\wedge$}\vss}}%% |
---|
1391 | \newarrowhead{littlevee}{\mkern1mu\scriptaxis\rhvee}{\scriptaxis\lhvee}% |
---|
1392 | \dhlvee\uhlvee\ifx\boldmath\CD@qK%% |
---|
1393 | \newarrowhead{boldlittlevee}{\mkern1mu\scriptaxis\rhvee}{\scriptaxis\lhvee}% |
---|
1394 | \dhlvee\uhlvee\else%% |
---|
1395 | \def\dhblvee{\vboxtoz{\vss\boldscript\vee\kern0pt}}%% |
---|
1396 | \def\uhblvee{\vboxtoz{\boldscript\wedge\vss}}%% |
---|
1397 | \newarrowhead{boldlittlevee}{\mkern1mu\boldscriptaxis\rhvee}{\boldscriptaxis |
---|
1398 | \lhvee}\dhblvee\uhblvee%% |
---|
1399 | \fi |
---|
1400 | |
---|
1401 | %% curly vee head (uses AMS symbols fonts) |
---|
1402 | \def\rhcvee{\mkern-10mu\succ}%% |
---|
1403 | \def\lhcvee{\prec\mkern-10mu}%% |
---|
1404 | \def\dhcvee{\vboxtoz{\vss\hbox{$\curlyvee$}\kern0pt}}%% |
---|
1405 | \def\uhcvee{\vboxtoz{\hbox{$\curlywedge$}\vss}}%% |
---|
1406 | \newarrowhead{curlyvee}\rhcvee\lhcvee\dhcvee\uhcvee |
---|
1407 | |
---|
1408 | %% double vee head %% will probably be withdrawn later |
---|
1409 | \def\rhvvee{\mkern-13mu\gg}%% 24.8.92 changed 10mu to 13mu |
---|
1410 | \def\lhvvee{\ll\mkern-13mu}%% to make rule go through |
---|
1411 | \def\dhvvee{\vboxtoz{\vss\hbox{$\vee$}\kern-.6ex\hbox{$\vee$}\kern0pt}}%% |
---|
1412 | \def\uhvvee{\vboxtoz{\hbox{$\wedge$}\kern-.6ex \hbox{$\wedge$}\vss}}%% |
---|
1413 | \newarrowhead{doublevee}\rhvvee\lhvvee\dhvvee\uhvvee |
---|
1414 | |
---|
1415 | %% open and closed triangles (uses AMS symbols fonts) |
---|
1416 | \def\triangleup{{\scriptscriptstyle\bigtriangleup}}%% |
---|
1417 | \def\littletriangledown{{\scriptscriptstyle\triangledown}}%% AMS |
---|
1418 | \def\rhtriangle{\triangleright\mkern1.2mu}%% 29.1.93 |
---|
1419 | \def\lhtriangle{\triangleleft\mkern.8mu}%% |
---|
1420 | \def\uhtriangle{\vbox{\kern-.2ex \hbox{$\scriptscriptstyle\bigtriangleup$}% |
---|
1421 | \kern-.25ex}}%% |
---|
1422 | %% Changed \scriptstyle\triangledown to \scriptscriptstyle\bigtriangledown |
---|
1423 | %% at the suggestion of Martin Hofmann (25.11.92) to avoid using AMS symbols |
---|
1424 | %% and also for compatibility with upward arrow. |
---|
1425 | \def\dhtriangle{\vbox{\kern-.28ex \hbox{$\scriptscriptstyle\bigtriangledown$}% |
---|
1426 | \kern-.1ex}}%% 15.1.93 from -.25ex |
---|
1427 | \def\dhblack{\vbox{\kern-.25ex\nointerlineskip\hbox{$\blacktriangledown$}}}% |
---|
1428 | %% AMS |
---|
1429 | \def\uhblack{\vbox{\kern-.25ex\nointerlineskip\hbox{$\blacktriangle$}}}% |
---|
1430 | %% AMS |
---|
1431 | \def\dhlblack{\vbox{\kern-.25ex\nointerlineskip\hbox{$\scriptstyle |
---|
1432 | \blacktriangledown$}}}%% AMS |
---|
1433 | \def\uhlblack{\vbox{\kern-.25ex\nointerlineskip\hbox{$\scriptstyle |
---|
1434 | \blacktriangle$}}}%% AMS |
---|
1435 | \newarrowhead{triangle}\rhtriangle\lhtriangle\dhtriangle\uhtriangle |
---|
1436 | \newarrowhead{blacktriangle}{\mkern-1mu\blacktriangleright\mkern.4mu}{% |
---|
1437 | \blacktriangleleft}\dhblack\uhblack\newarrowhead{littleblack}{\mkern-1mu% |
---|
1438 | \scriptaxis\blacktriangleright}{\scriptaxis\blacktriangleleft\mkern-2mu}% |
---|
1439 | \dhlblack\uhlblack |
---|
1440 | |
---|
1441 | %% LaTeX arrowheads |
---|
1442 | \def\rhla{\hbox{\setbox0=\lnchar55\dimen0=\wd0\kern-.6\dimen0\ht0\z@\raise |
---|
1443 | \axisheight\box0\kern.1\dimen0}}%% |
---|
1444 | \def\lhla{\hbox{\setbox0=\lnchar33\dimen0=\wd0\kern.05\dimen0\ht0\z@\raise |
---|
1445 | \axisheight\box0\kern-.5\dimen0}}%% |
---|
1446 | \def\dhla{\vboxtoz{\vss\rlap{\lnchar77}}}%% |
---|
1447 | \def\uhla{\vboxtoz{\setbox0=\lnchar66 \wd0\z@\kern-.15\ht0\box0\vss}}%% 1/93 |
---|
1448 | \newarrowhead{LaTeX}\rhla\lhla\dhla\uhla |
---|
1449 | |
---|
1450 | %% double LaTeX arrowheads %% will probably be withdrawn later |
---|
1451 | \def\lhlala{\lhla\kern.3em\lhla}%% |
---|
1452 | \def\rhlala{\rhla\kern.3em\rhla}%% |
---|
1453 | \def\uhlala{\hbox{\uhla\raise-.6ex\uhla}}%% |
---|
1454 | \def\dhlala{\hbox{\dhla\lower-.6ex\dhla}}%% |
---|
1455 | \newarrowhead{doubleLaTeX}\rhlala\lhlala\dhlala\uhlala |
---|
1456 | |
---|
1457 | %% circles % \rho is a Greek letter! |
---|
1458 | \def\hhO{\scriptaxis\bigcirc\mkern.4mu} \def\hho{{\circ}\mkern1.2mu}% |
---|
1459 | \newarrowhead{o}\hho\hho\circ\circ%% |
---|
1460 | \newarrowhead{O}\hhO\hhO{\scriptstyle\bigcirc}{\scriptstyle\bigcirc}%% |
---|
1461 | |
---|
1462 | %% crosses |
---|
1463 | \def\rhtimes{\mkern-5mu{\times}\mkern-.8mu}\def\lhtimes{\mkern-.8mu{\times}% |
---|
1464 | \mkern-5mu}\def\uhtimes{\setbox0=\hbox{$\times$}\ht0\axisheight\dp0-\ht0% |
---|
1465 | \lower\ht0\box0 }\def\dhtimes{\setbox0=\hbox{$\times$}\ht0\axisheight\box0 }% |
---|
1466 | \newarrowhead{X}\rhtimes\lhtimes\dhtimes\uhtimes\newarrowhead+++++ |
---|
1467 | |
---|
1468 | %% empty head {} is also available |
---|
1469 | |
---|
1470 | %% Y from stmaryrd (vertical ones still need large adjustment) |
---|
1471 | \newarrowhead{Y}{\mkern-3mu\Yright}{\Yleft\mkern-3mu}\Ydown\Yup |
---|
1472 | |
---|
1473 | %% ********** H E A D S with S H A F T S *********** |
---|
1474 | |
---|
1475 | %% little arrow with shaft |
---|
1476 | \newarrowhead{->}\rightarrow\leftarrow\downarrow\uparrow |
---|
1477 | |
---|
1478 | %% arrow with double shaft |
---|
1479 | %%\newarrowhead{=>}\Rightarrow\Leftarrow\Downarrow\Uparrow |
---|
1480 | \newarrowhead{=>}\Rightarrow\Leftarrow{\@cmex7F}{\@cmex7E} |
---|
1481 | |
---|
1482 | %% harpoon with shaft (trailing up/left can be changed to down/right) |
---|
1483 | \newarrowhead{harpoon}\rightharpoonup\leftharpoonup\downharpoonleft |
---|
1484 | \upharpoonleft |
---|
1485 | |
---|
1486 | %% little double-headed arrow with shaft (uses AMS symbols fonts) |
---|
1487 | \def\twoheaddownarrow{\rlap{$\downarrow$}\raise-.5ex\hbox{$\downarrow$}}%% |
---|
1488 | \def\twoheaduparrow{\rlap{$\uparrow$}\raise.5ex\hbox{$\uparrow$}}%% |
---|
1489 | \newarrowhead{->>}\twoheadrightarrow\twoheadleftarrow\twoheaddownarrow |
---|
1490 | \twoheaduparrow |
---|
1491 | |
---|
1492 | %% ********** T A I L S *********** |
---|
1493 | |
---|
1494 | %% vee tail |
---|
1495 | \def\rtvee{\greaterthan}%% |
---|
1496 | \def\ltvee{\mkern-1mu{\lessthan}\mkern.4mu}%% \mkern added 15.1.93 |
---|
1497 | \def\dtvee{\vee}%% |
---|
1498 | \def\utvee{\wedge}%% |
---|
1499 | \newarrowtail{vee}\greaterthan\ltvee\vee\wedge |
---|
1500 | |
---|
1501 | %% little vee tail |
---|
1502 | \newarrowtail{littlevee}{\scriptaxis\greaterthan}{\mkern-1mu\scriptaxis |
---|
1503 | \lessthan}{\scriptstyle\vee}{\scriptstyle\wedge}\ifx\boldmath\CD@qK |
---|
1504 | \newarrowtail{boldlittlevee}{\scriptaxis\greaterthan}{\mkern-1mu\scriptaxis |
---|
1505 | \lessthan}{\scriptstyle\vee}{\scriptstyle\wedge}\else\newarrowtail{% |
---|
1506 | boldlittlevee}{\boldscriptaxis\greaterthan}{\mkern-1mu\boldscriptaxis |
---|
1507 | \lessthan}{\boldscript\vee}{\boldscript\wedge}\fi |
---|
1508 | |
---|
1509 | %% curly vee tail (uses AMS symbols fonts) |
---|
1510 | \newarrowtail{curlyvee}\succ{\mkern-1mu{\prec}\mkern.4mu}\curlyvee\curlywedge |
---|
1511 | |
---|
1512 | %% open and closed triangle tails (uses AMS symbols fonts) |
---|
1513 | \def\rttriangle{\mkern1.2mu\triangleright}%% 29.1.93 |
---|
1514 | \newarrowtail{triangle}\rttriangle\lhtriangle\dhtriangle\uhtriangle |
---|
1515 | \newarrowtail{blacktriangle}\blacktriangleright{\mkern-1mu\blacktriangleleft |
---|
1516 | \mkern.4mu}\dhblack\uhblack\newarrowtail{littleblack}{\scriptaxis |
---|
1517 | \blacktriangleright\mkern-2mu}{\mkern-1mu\scriptaxis\blacktriangleleft}% |
---|
1518 | \dhlblack\uhlblack |
---|
1519 | |
---|
1520 | %% LaTeX tails |
---|
1521 | \def\rtla{\hbox{\setbox0=\lnchar55\dimen0=\wd0\kern-.5\dimen0\ht0\z@\raise |
---|
1522 | \axisheight\box0\kern-.2\dimen0}}%% |
---|
1523 | \def\ltla{\hbox{\setbox0=\lnchar33\dimen0=\wd0\kern-.15\dimen0\ht0\z@\raise |
---|
1524 | \axisheight\box0\kern-.5\dimen0}}%% |
---|
1525 | \def\dtla{\vbox{\setbox0=\rlap{\lnchar77}\dimen0=\ht0\kern-.7\dimen0\box0% |
---|
1526 | \kern-.1\dimen0}}%% 15.1.93 from -.6 |
---|
1527 | \def\utla{\vbox{\setbox0=\rlap{\lnchar66}\dimen0=\ht0\kern-.1\dimen0\box0% |
---|
1528 | \kern-.6\dimen0}}%% |
---|
1529 | \newarrowtail{LaTeX}\rtla\ltla\dtla\utla |
---|
1530 | |
---|
1531 | %% double vee tail %% will probably be withdrawn later |
---|
1532 | \def\rtvvee{\gg\mkern-3mu}%% |
---|
1533 | \def\ltvvee{\mkern-3mu\ll}%% |
---|
1534 | \def\dtvvee{\vbox{\hbox{$\vee$}\kern-.6ex \hbox{$\vee$}\vss}}%% |
---|
1535 | \def\utvvee{\vbox{\vss\hbox{$\wedge$}\kern-.6ex \hbox{$\wedge$}\kern\z@}}%% |
---|
1536 | \newarrowtail{doublevee}\rtvvee\ltvvee\dtvvee\utvvee |
---|
1537 | |
---|
1538 | %% double LaTeX tails %% will probably be withdrawn later |
---|
1539 | \def\ltlala{\ltla\kern.3em\ltla}%% |
---|
1540 | \def\rtlala{\rtla\kern.3em\rtla}%% |
---|
1541 | \def\utlala{\hbox{\utla\raise-.6ex\utla}}%% |
---|
1542 | \def\dtlala{\hbox{\dtla\lower-.6ex\dtla}}%% |
---|
1543 | \newarrowtail{doubleLaTeX}\rtlala\ltlala\dtlala\utlala |
---|
1544 | |
---|
1545 | %% bar (as in \mapsto) |
---|
1546 | \def\utbar{\vrule height 0.093ex depth0pt width 0.4em}%% |
---|
1547 | \let\dtbar\utbar%% |
---|
1548 | \def\rtbar{\mkern1.5mu\vrule height 1.1ex depth.06ex width .04em\mkern1.5mu}% |
---|
1549 | %% |
---|
1550 | \let\ltbar\rtbar%% |
---|
1551 | \newarrowtail{mapsto}\rtbar\ltbar\dtbar\utbar%% |
---|
1552 | \newarrowtail{|}\rtbar\ltbar\dtbar\utbar%%ascii vertical bar (|) |
---|
1553 | |
---|
1554 | %% hooks (as in \into): choice of after/above and before/below |
---|
1555 | |
---|
1556 | \def\rthooka{\raisehook{}+\subset\mkern-1mu}%% |
---|
1557 | \def\lthooka{\mkern-1mu\raisehook{}+\supset}%% |
---|
1558 | \def\rthookb{\raisehook{}-\subset\mkern-2mu}%% |
---|
1559 | \def\lthookb{\mkern-1mu\raisehook{}-\supset}%% |
---|
1560 | |
---|
1561 | \def\dthooka{\shifthook{}+\cap}%% |
---|
1562 | \def\dthookb{\shifthook{}-\cap}%% |
---|
1563 | \def\uthooka{\shifthook{}+\cup}%% |
---|
1564 | \def\uthookb{\shifthook{}-\cup}%% |
---|
1565 | |
---|
1566 | \newarrowtail{hooka}\rthooka\lthooka\dthooka\uthooka\newarrowtail{hookb}% |
---|
1567 | \rthookb\lthookb\dthookb\uthookb |
---|
1568 | |
---|
1569 | \ifx\boldmath\CD@qK\newarrowtail{boldhooka}\rthooka\lthooka\dthooka\uthooka |
---|
1570 | \newarrowtail{boldhookb}\rthookb\lthookb\dthookb\uthookb\newarrowtail{% |
---|
1571 | boldhook}\rthooka\lthooka\dthookb\uthooka\else\def\rtbhooka{\raisehook |
---|
1572 | \boldmath+\subset\mkern-1mu}%% |
---|
1573 | \def\ltbhooka{\mkern-1mu\raisehook\boldmath+\supset}%% |
---|
1574 | \def\rtbhookb{\raisehook\boldmath-\subset\mkern-2mu}%% |
---|
1575 | \def\ltbhookb{\mkern-1mu\raisehook\boldmath-\supset}%% |
---|
1576 | \def\dtbhooka{\shifthook\boldmath+\cap}%% |
---|
1577 | \def\dtbhookb{\shifthook\boldmath-\cap}%% |
---|
1578 | \def\utbhooka{\shifthook\boldmath+\cup}%% |
---|
1579 | \def\utbhookb{\shifthook\boldmath-\cup}%% |
---|
1580 | \newarrowtail{boldhooka}\rtbhooka\ltbhooka\dtbhooka\utbhooka\newarrowtail{% |
---|
1581 | boldhookb}\rtbhookb\ltbhookb\dtbhookb\utbhookb\newarrowtail{boldhook}% |
---|
1582 | \rtbhooka\ltbhooka\dtbhooka\utbhooka\fi |
---|
1583 | |
---|
1584 | %% square-ended hooks (used for closed subsets in ``lifting and gluing'') |
---|
1585 | \def\dtsqhooka{\shifthook{}+\sqcap}%% |
---|
1586 | \def\dtsqhookb{\shifthook{}-\sqcap}%% |
---|
1587 | \def\ltsqhooka{\mkern-1mu\raisehook{}+\sqsupset}%% |
---|
1588 | \def\ltsqhookb{\mkern-1mu\raisehook{}-\sqsupset}%% |
---|
1589 | \def\rtsqhooka{\raisehook{}+\sqsubset\mkern-1mu}%% |
---|
1590 | \def\rtsqhookb{\raisehook{}-\sqsubset\mkern-2mu}%% |
---|
1591 | \def\utsqhooka{\shifthook{}+\sqcup}%% |
---|
1592 | \def\utsqhookb{\shifthook{}-\sqcup}%% |
---|
1593 | \newarrowtail{sqhook}\rtsqhooka\ltsqhooka\dtsqhooka\utsqhooka |
---|
1594 | |
---|
1595 | %% the following seem the better choices at 10pt & 300dpi |
---|
1596 | \newarrowtail{hook}\rthooka\lthookb\dthooka\uthooka\newarrowtail{C}\rthooka |
---|
1597 | \lthookb\dthooka\uthooka |
---|
1598 | |
---|
1599 | %% circles |
---|
1600 | \newarrowtail{o}\hho\hho\circ\circ%% |
---|
1601 | \newarrowtail{O}\hhO\hhO{\scriptstyle\bigcirc}{\scriptstyle\bigcirc}%% |
---|
1602 | |
---|
1603 | %% crosses |
---|
1604 | \newarrowtail{X}\lhtimes\rhtimes\uhtimes\dhtimes\newarrowtail+++++ |
---|
1605 | |
---|
1606 | %% empty tail {} is also available |
---|
1607 | |
---|
1608 | %% Y from stmaryrd (vertical ones still need adjustment) |
---|
1609 | \newarrowtail{Y}\Yright\Yleft\Ydown\Yup |
---|
1610 | |
---|
1611 | %% harpoon with shaft (trailing up/left can be changed to down/right) |
---|
1612 | \newarrowtail{harpoon}\leftharpoondown\rightharpoondown\upharpoonright |
---|
1613 | \downharpoonright |
---|
1614 | |
---|
1615 | %% arrow with double shaft |
---|
1616 | %%\newarrowtail{<=}\Leftarrow\Rightarrow\Uparrow\Downarrow |
---|
1617 | \newarrowtail{<=}\Leftarrow\Rightarrow{\@cmex7E}{\@cmex7F} |
---|
1618 | |
---|
1619 | %% ********** F I L L E R S *********** |
---|
1620 | |
---|
1621 | %% shortening is up to 0.15em=2.7mu horiz and 0.35ex vertically at each end. |
---|
1622 | |
---|
1623 | %% dot {.}, single rule {-} and empty {} fillers are also available |
---|
1624 | |
---|
1625 | %% double and triple lines |
---|
1626 | %%\newarrowfiller{=}==\Vert\Vert%% |
---|
1627 | \newarrowfiller{=}=={\@cmex77}{\@cmex77}%% 16.1.93 |
---|
1628 | \def\vfthree{\mid\!\!\!\mid\!\!\!\mid}%%ascii |
---|
1629 | \newarrowfiller{3}\equiv\equiv\vfthree\vfthree |
---|
1630 | |
---|
1631 | %% dashed line |
---|
1632 | \def\vfdashstrut{\vrule width0pt height1.3ex depth0.7ex}%% |
---|
1633 | \def\vfthedash{\vrule width\CD@LF height0.6ex depth 0pt}%% |
---|
1634 | \def\hfthedash{\CD@AJ\vrule\horizhtdp width 0.26em}%% |
---|
1635 | \def\hfdash{\mkern5.5mu\hfthedash\mkern5.5mu}%% |
---|
1636 | \def\vfdash{\vfdashstrut\vfthedash}%% |
---|
1637 | \newarrowfiller{dash}\hfdash\hfdash\vfdash\vfdash |
---|
1638 | |
---|
1639 | %% ************* M I D D L E S ************ |
---|
1640 | |
---|
1641 | %% plus |
---|
1642 | \newarrowmiddle+++++ |
---|
1643 | |
---|
1644 | %% ************* D I A G O N A L S ************ |
---|
1645 | |
---|
1646 | %% simple arrow heads |
---|
1647 | %%\def\nwhTO{\nwarrow\mkern-1mu}%% |
---|
1648 | %%\def\nehTO{\mkern-.1mu\nearrow}%% |
---|
1649 | %%\def\sehTO{\searrow\mkern-.02mu}%% |
---|
1650 | %%\def\swhTO{\mkern-.8mu\swarrow}%% |
---|
1651 | |
---|
1652 | %%======================================================================% |
---|
1653 | %% % |
---|
1654 | %% (24) ARROW COMMANDS % |
---|
1655 | %% % |
---|
1656 | %%======================================================================% |
---|
1657 | |
---|
1658 | %% change to \iftrue to get mixed heads |
---|
1659 | \iffalse%% |
---|
1660 | \newarrow{To}----{vee}%% |
---|
1661 | \newarrow{Arr}----{LaTeX}%% |
---|
1662 | \newarrow{Dotsto}....{vee}%% |
---|
1663 | \newarrow{Dotsarr}....{LaTeX}%% |
---|
1664 | \newarrow{Dashto}{}{dash}{}{dash}{vee}%% |
---|
1665 | \newarrow{Dasharr}{}{dash}{}{dash}{LaTeX}%% |
---|
1666 | \newarrow{Mapsto}{mapsto}---{vee}%% |
---|
1667 | \newarrow{Mapsarr}{mapsto}---{LaTeX}%% |
---|
1668 | \newarrow{IntoA}{hooka}---{vee}%% |
---|
1669 | \newarrow{IntoB}{hookb}---{vee}%% |
---|
1670 | \newarrow{Embed}{vee}---{vee}%% |
---|
1671 | \newarrow{Emarr}{LaTeX}---{LaTeX}%% |
---|
1672 | \newarrow{Onto}----{doublevee}%% |
---|
1673 | \newarrow{Dotsonarr}....{doubleLaTeX}%% |
---|
1674 | \newarrow{Dotsonto}....{doublevee}%% |
---|
1675 | \newarrow{Dotsonarr}....{doubleLaTeX}%% |
---|
1676 | \else%% |
---|
1677 | \newarrow{To}---->%% |
---|
1678 | \newarrow{Arr}---->%% |
---|
1679 | \newarrow{Dotsto}....>%% |
---|
1680 | \newarrow{Dotsarr}....>%% |
---|
1681 | \newarrow{Dashto}{}{dash}{}{dash}>%% |
---|
1682 | \newarrow{Dasharr}{}{dash}{}{dash}>%% |
---|
1683 | \newarrow{Mapsto}{mapsto}--->%% |
---|
1684 | \newarrow{Mapsarr}{mapsto}--->%% |
---|
1685 | \newarrow{IntoA}{hooka}--->%% |
---|
1686 | \newarrow{IntoB}{hookb}--->%% |
---|
1687 | \newarrow{Embed}>--->%% |
---|
1688 | \newarrow{Emarr}>--->%% |
---|
1689 | \newarrow{Onto}----{>>}%% |
---|
1690 | \newarrow{Dotsonarr}....{>>}%% |
---|
1691 | \newarrow{Dotsonto}....{>>}%% |
---|
1692 | \newarrow{Dotsonarr}....{>>}%% |
---|
1693 | \fi%% |
---|
1694 | |
---|
1695 | \newarrow{Implies}===={=>}%% minimum cell height 9.5pt |
---|
1696 | \newarrow{Project}----{triangle}%% |
---|
1697 | \newarrow{Pto}----{harpoon}%% partial function |
---|
1698 | \newarrow{Relto}{harpoon}---{harpoon}%% binary relation |
---|
1699 | |
---|
1700 | \newarrow{Eq}=====%% |
---|
1701 | \newarrow{Line}-----%% |
---|
1702 | \newarrow{Dots}.....%% |
---|
1703 | \newarrow{Dashes}{}{dash}{}{dash}{}%% |
---|
1704 | |
---|
1705 | %% square hooked arrow (used in my ``gluing and lifting'' paper) |
---|
1706 | \newarrow{SquareInto}{sqhook}---> |
---|
1707 | |
---|
1708 | %% braces and parentheses |
---|
1709 | %% \newarrow gives inappropriate directions, so we change the names |
---|
1710 | %% the vertical filler is too far to the right; horizontal too high |
---|
1711 | %% the vertical middles are too low with midvshaft |
---|
1712 | %% maybe we'll add square brackets and the integral sign one day |
---|
1713 | \newarrowhead{cmexbra}{\@cmex7B}{\@cmex7C}{\@cmex3B}{\@cmex38}%% |
---|
1714 | \newarrowtail{cmexbra}{\@cmex7A}{\@cmex7D}{\@cmex39}{\@cmex3A}%% |
---|
1715 | \newarrowmiddle{cmexbra}{\braceru\bracelu}{\bracerd\braceld}{\vcenter{% |
---|
1716 | \hbox@maths{\@cmex3D\mkern-2mu}}}%% right |
---|
1717 | {\vcenter{\hbox@maths{\mkern2mu\@cmex3C}}}%% left |
---|
1718 | \newarrow{@brace}{cmexbra}-{cmexbra}-{cmexbra}%% braces |
---|
1719 | \newarrow{@parenth}{cmexbra}---{cmexbra}%% straight parentheses |
---|
1720 | \def\rightBrace{\d@brace[thick,cmex]}%%ASCII square brackets [] |
---|
1721 | \def\leftBrace{\u@brace[thick,cmex]}%%ASCII square brackets [] |
---|
1722 | \def\upperBrace{\r@brace[thick,cmex]}%%ASCII square brackets [] |
---|
1723 | \def\lowerBrace{\l@brace[thick,cmex]}%%ASCII square brackets [] |
---|
1724 | \def\rightParenth{\d@parenth[thick,cmex]}%%ASCII square brackets [] |
---|
1725 | \def\leftParenth{\u@parenth[thick,cmex]}%%ASCII square brackets [] |
---|
1726 | \def\upperParenth{\r@parenth[thick,cmex]}%%ASCII square brackets [] |
---|
1727 | \def\lowerParenth{\l@parenth[thick,cmex]}%%ASCII square brackets [] |
---|
1728 | |
---|
1729 | %% synonyms for reverse compatibility |
---|
1730 | |
---|
1731 | \let\uFrom\uTo%% |
---|
1732 | \let\lFrom\lTo%% |
---|
1733 | \let\uDotsfrom\uDotsto%% |
---|
1734 | \let\lDotsfrom\lDotsto%% |
---|
1735 | \let\uDashfrom\uDashto%% |
---|
1736 | \let\lDashfrom\lDashto%% |
---|
1737 | \let\uImpliedby\uImplies%% |
---|
1738 | \let\lImpliedby\lImplies%% |
---|
1739 | \let\uMapsfrom\uMapsto%% |
---|
1740 | \let\lMapsfrom\lMapsto%% |
---|
1741 | \let\lOnfrom\lOnto%% |
---|
1742 | \let\uOnfrom\uOnto%% |
---|
1743 | \let\lPfrom\lPto%% |
---|
1744 | \let\uPfrom\uPto%% |
---|
1745 | |
---|
1746 | \let\uInfromA\uIntoA%% |
---|
1747 | \let\uInfromB\uIntoB%% |
---|
1748 | \let\lInfromA\lIntoA%% |
---|
1749 | \let\lInfromB\lIntoB%% |
---|
1750 | \let\rInto\rIntoA%% |
---|
1751 | \let\lInto\lIntoA%% |
---|
1752 | \let\dInto\dIntoB%% |
---|
1753 | \let\uInto\uIntoA%% |
---|
1754 | \let\ruInto\ruIntoA%% |
---|
1755 | \let\luInto\luIntoA%% |
---|
1756 | \let\rdInto\rdIntoA%% |
---|
1757 | \let\ldInto\ldIntoA%% |
---|
1758 | %% |
---|
1759 | \let\hEq\rEq%% |
---|
1760 | \let\vEq\uEq%% |
---|
1761 | \let\hLine\rLine%% |
---|
1762 | \let\vLine\uLine%% |
---|
1763 | \let\hDots\rDots%% |
---|
1764 | \let\vDots\uDots%% |
---|
1765 | \let\hDashes\rDashes%% |
---|
1766 | \let\vDashes\uDashes%% |
---|
1767 | |
---|
1768 | %%=========================================================================% |
---|
1769 | %% The following are included for reverse compatibility only. |
---|
1770 | %%=========================================================================% |
---|
1771 | \let\NW\luTo\let\NE\ruTo\let\SW\ldTo\let\SE\rdTo\def\nNW{\luTo(2,3)}\def\nNE{% |
---|
1772 | \ruTo(2,3)}%%ascii |
---|
1773 | \def\sSW{\ldTo(2,3)}\def\sSE{\rdTo(2,3)}%%ascii |
---|
1774 | \def\wNW{\luTo(3,2)}\def\eNE{\ruTo(3,2)}%%ascii |
---|
1775 | \def\wSW{\ldTo(3,2)}\def\eSE{\rdTo(3,2)}%%ascii |
---|
1776 | \def\NNW{\luTo(2,4)}\def\NNE{\ruTo(2,4)}%%ascii |
---|
1777 | \def\SSW{\ldTo(2,4)}\def\SSE{\rdTo(2,4)}%%ascii |
---|
1778 | \def\WNW{\luTo(4,2)}\def\ENE{\ruTo(4,2)}%%ascii |
---|
1779 | \def\WSW{\ldTo(4,2)}\def\ESE{\rdTo(4,2)}%%ascii |
---|
1780 | \def\NNNW{\luTo(2,6)}\def\NNNE{\ruTo(2,6)}%%ascii |
---|
1781 | \def\SSSW{\ldTo(2,6)}\def\SSSE{\rdTo(2,6)}%%ascii |
---|
1782 | \def\WWNW{\luTo(6,2)}\def\EENE{\ruTo(6,2)}%%ascii |
---|
1783 | \def\WWSW{\ldTo(6,2)}\def\EESE{\rdTo(6,2)}%%ascii |
---|
1784 | |
---|
1785 | \let\NWd\luDotsto\let\NEd\ruDotsto\let\SWd\ldDotsto\let\SEd\rdDotsto\def\nNWd |
---|
1786 | {\luDotsto(2,3)}\def\nNEd{\ruDotsto(2,3)}%%ascii |
---|
1787 | \def\sSWd{\ldDotsto(2,3)}\def\sSEd{\rdDotsto(2,3)}%%ascii |
---|
1788 | \def\wNWd{\luDotsto(3,2)}\def\eNEd{\ruDotsto(3,2)}%%ascii |
---|
1789 | \def\wSWd{\ldDotsto(3,2)}\def\eSEd{\rdDotsto(3,2)}%%ascii |
---|
1790 | \def\NNWd{\luDotsto(2,4)}\def\NNEd{\ruDotsto(2,4)}%%ascii |
---|
1791 | \def\SSWd{\ldDotsto(2,4)}\def\SSEd{\rdDotsto(2,4)}%%ascii |
---|
1792 | \def\WNWd{\luDotsto(4,2)}\def\ENEd{\ruDotsto(4,2)}%%ascii |
---|
1793 | \def\WSWd{\ldDotsto(4,2)}\def\ESEd{\rdDotsto(4,2)}%%ascii |
---|
1794 | \def\NNNWd{\luDotsto(2,6)}\def\NNNEd{\ruDotsto(2,6)}%%ascii |
---|
1795 | \def\SSSWd{\ldDotsto(2,6)}\def\SSSEd{\rdDotsto(2,6)}%%ascii |
---|
1796 | \def\WWNWd{\luDotsto(6,2)}\def\EENEd{\ruDotsto(6,2)}%%ascii |
---|
1797 | \def\WWSWd{\ldDotsto(6,2)}\def\EESEd{\rdDotsto(6,2)}%%ascii |
---|
1798 | |
---|
1799 | \let\NWl\luLine\let\NEl\ruLine\let\SWl\ldLine\let\SEl\rdLine\def\nNWl{\luLine |
---|
1800 | (2,3)}\def\nNEl{\ruLine(2,3)}%%ascii |
---|
1801 | \def\sSWl{\ldLine(2,3)}\def\sSEl{\rdLine(2,3)}%%ascii |
---|
1802 | \def\wNWl{\luLine(3,2)}\def\eNEl{\ruLine(3,2)}%%ascii |
---|
1803 | \def\wSWl{\ldLine(3,2)}\def\eSEl{\rdLine(3,2)}%%ascii |
---|
1804 | \def\NNWl{\luLine(2,4)}\def\NNEl{\ruLine(2,4)}%%ascii |
---|
1805 | \def\SSWl{\ldLine(2,4)}\def\SSEl{\rdLine(2,4)}%%ascii |
---|
1806 | \def\WNWl{\luLine(4,2)}\def\ENEl{\ruLine(4,2)}%%ascii |
---|
1807 | \def\WSWl{\ldLine(4,2)}\def\ESEl{\rdLine(4,2)}%%ascii |
---|
1808 | \def\NNNWl{\luLine(2,6)}\def\NNNEl{\ruLine(2,6)}%%ascii |
---|
1809 | \def\SSSWl{\ldLine(2,6)}\def\SSSEl{\rdLine(2,6)}%%ascii |
---|
1810 | \def\WWNWl{\luLine(6,2)}\def\EENEl{\ruLine(6,2)}%%ascii |
---|
1811 | \def\WWSWl{\ldLine(6,2)}\def\EESEl{\rdLine(6,2)}%%ascii |
---|
1812 | |
---|
1813 | \let\NWld\luDots\let\NEld\ruDots\let\SWld\ldDots\let\SEld\rdDots\def\nNWld{% |
---|
1814 | \luDots(2,3)}\def\nNEld{\ruDots(2,3)}%%ascii |
---|
1815 | \def\sSWld{\ldDots(2,3)}\def\sSEld{\rdDots(2,3)}%%ascii |
---|
1816 | \def\wNWld{\luDots(3,2)}\def\eNEld{\ruDots(3,2)}%%ascii |
---|
1817 | \def\wSWld{\ldDots(3,2)}\def\eSEld{\rdDots(3,2)}%%ascii |
---|
1818 | \def\NNWld{\luDots(2,4)}\def\NNEld{\ruDots(2,4)}%%ascii |
---|
1819 | \def\SSWld{\ldDots(2,4)}\def\SSEld{\rdDots(2,4)}%%ascii |
---|
1820 | \def\WNWld{\luDots(4,2)}\def\ENEld{\ruDots(4,2)}%%ascii |
---|
1821 | \def\WSWld{\ldDots(4,2)}\def\ESEld{\rdDots(4,2)}%%ascii |
---|
1822 | \def\NNNWld{\luDots(2,6)}\def\NNNEld{\ruDots(2,6)}%%ascii |
---|
1823 | \def\SSSWld{\ldDots(2,6)}\def\SSSEld{\rdDots(2,6)}%%ascii |
---|
1824 | \def\WWNWld{\luDots(6,2)}\def\EENEld{\ruDots(6,2)}%%ascii |
---|
1825 | \def\WWSWld{\ldDots(6,2)}\def\EESEld{\rdDots(6,2)}%%ascii |
---|
1826 | |
---|
1827 | \let\NWe\luEmbed\let\NEe\ruEmbed\let\SWe\ldEmbed\let\SEe\rdEmbed\def\nNWe{% |
---|
1828 | \luEmbed(2,3)}\def\nNEe{\ruEmbed(2,3)}%%ascii |
---|
1829 | \def\sSWe{\ldEmbed(2,3)}\def\sSEe{\rdEmbed(2,3)}%%ascii |
---|
1830 | \def\wNWe{\luEmbed(3,2)}\def\eNEe{\ruEmbed(3,2)}%%ascii |
---|
1831 | \def\wSWe{\ldEmbed(3,2)}\def\eSEe{\rdEmbed(3,2)}%%ascii |
---|
1832 | \def\NNWe{\luEmbed(2,4)}\def\NNEe{\ruEmbed(2,4)}%%ascii |
---|
1833 | \def\SSWe{\ldEmbed(2,4)}\def\SSEe{\rdEmbed(2,4)}%%ascii |
---|
1834 | \def\WNWe{\luEmbed(4,2)}\def\ENEe{\ruEmbed(4,2)}%%ascii |
---|
1835 | \def\WSWe{\ldEmbed(4,2)}\def\ESEe{\rdEmbed(4,2)}%%ascii |
---|
1836 | \def\NNNWe{\luEmbed(2,6)}\def\NNNEe{\ruEmbed(2,6)}%%ascii |
---|
1837 | \def\SSSWe{\ldEmbed(2,6)}\def\SSSEe{\rdEmbed(2,6)}%%ascii |
---|
1838 | \def\WWNWe{\luEmbed(6,2)}\def\EENEe{\ruEmbed(6,2)}%%ascii |
---|
1839 | \def\WWSWe{\ldEmbed(6,2)}\def\EESEe{\rdEmbed(6,2)}%%ascii |
---|
1840 | |
---|
1841 | \let\NWo\luOnto\let\NEo\ruOnto\let\SWo\ldOnto\let\SEo\rdOnto\def\nNWo{\luOnto |
---|
1842 | (2,3)}\def\nNEo{\ruOnto(2,3)}%%ascii |
---|
1843 | \def\sSWo{\ldOnto(2,3)}\def\sSEo{\rdOnto(2,3)}%%ascii |
---|
1844 | \def\wNWo{\luOnto(3,2)}\def\eNEo{\ruOnto(3,2)}%%ascii |
---|
1845 | \def\wSWo{\ldOnto(3,2)}\def\eSEo{\rdOnto(3,2)}%%ascii |
---|
1846 | \def\NNWo{\luOnto(2,4)}\def\NNEo{\ruOnto(2,4)}%%ascii |
---|
1847 | \def\SSWo{\ldOnto(2,4)}\def\SSEo{\rdOnto(2,4)}%%ascii |
---|
1848 | \def\WNWo{\luOnto(4,2)}\def\ENEo{\ruOnto(4,2)}%%ascii |
---|
1849 | \def\WSWo{\ldOnto(4,2)}\def\ESEo{\rdOnto(4,2)}%%ascii |
---|
1850 | \def\NNNWo{\luOnto(2,6)}\def\NNNEo{\ruOnto(2,6)}%%ascii |
---|
1851 | \def\SSSWo{\ldOnto(2,6)}\def\SSSEo{\rdOnto(2,6)}%%ascii |
---|
1852 | \def\WWNWo{\luOnto(6,2)}\def\EENEo{\ruOnto(6,2)}%%ascii |
---|
1853 | \def\WWSWo{\ldOnto(6,2)}\def\EESEo{\rdOnto(6,2)}%%ascii |
---|
1854 | |
---|
1855 | \let\NWod\luDotsonto\let\NEod\ruDotsonto\let\SWod\ldDotsonto\let\SEod |
---|
1856 | \rdDotsonto\def\nNWod{\luDotsonto(2,3)}\def\nNEod{\ruDotsonto(2,3)}%%ascii |
---|
1857 | \def\sSWod{\ldDotsonto(2,3)}\def\sSEod{\rdDotsonto(2,3)}%%ascii |
---|
1858 | \def\wNWod{\luDotsonto(3,2)}\def\eNEod{\ruDotsonto(3,2)}%%ascii |
---|
1859 | \def\wSWod{\ldDotsonto(3,2)}\def\eSEod{\rdDotsonto(3,2)}%%ascii |
---|
1860 | \def\NNWod{\luDotsonto(2,4)}\def\NNEod{\ruDotsonto(2,4)}%%ascii |
---|
1861 | \def\SSWod{\ldDotsonto(2,4)}\def\SSEod{\rdDotsonto(2,4)}%%ascii |
---|
1862 | \def\WNWod{\luDotsonto(4,2)}\def\ENEod{\ruDotsonto(4,2)}%%ascii |
---|
1863 | \def\WSWod{\ldDotsonto(4,2)}\def\ESEod{\rdDotsonto(4,2)}%%ascii |
---|
1864 | \def\NNNWod{\luDotsonto(2,6)}\def\NNNEod{\ruDotsonto(2,6)}%%ascii |
---|
1865 | \def\SSSWod{\ldDotsonto(2,6)}\def\SSSEod{\rdDotsonto(2,6)}%%ascii |
---|
1866 | \def\WWNWod{\luDotsonto(6,2)}\def\EENEod{\ruDotsonto(6,2)}%%ascii |
---|
1867 | \def\WWSWod{\ldDotsonto(6,2)}\def\EESEod{\rdDotsonto(6,2)}%%ascii |
---|
1868 | |
---|
1869 | %%======================================================================% |
---|
1870 | %% % |
---|
1871 | %% (25) MISCELLANEOUS % |
---|
1872 | %% % |
---|
1873 | %%======================================================================% |
---|
1874 | |
---|
1875 | \def\labelstyle{%% |
---|
1876 | \ifincommdiag%% |
---|
1877 | \textstyle%% |
---|
1878 | \else%% |
---|
1879 | \scriptstyle%% |
---|
1880 | \fi}%% |
---|
1881 | \let\objectstyle\displaystyle |
---|
1882 | |
---|
1883 | \newdiagramgrid{pentagon}{0.618034,0.618034,1,1,1,1,0.618034,0.618034}{1.% |
---|
1884 | 17557,1.17557,1.902113,1.902113} |
---|
1885 | |
---|
1886 | \newdiagramgrid{perspective}{0.75,0.75,1.1,1.1,0.9,0.9,0.95,0.95,0.75,0.75}{0% |
---|
1887 | .75,0.75,1.1,1.1,0.9,0.9} |
---|
1888 | |
---|
1889 | \diagramstyle[%%ascii open square bracket |
---|
1890 | dpi=300,%% office laserwriters are usually 300 dots per inch |
---|
1891 | vmiddle,nobalance,%% vertical and horizontal positioning |
---|
1892 | loose,%% allow rows and columns to stretch |
---|
1893 | thin,%% line10 arrows; default rule thickness (TeXbook p447) |
---|
1894 | pilespacing=10pt,% |
---|
1895 | %% parallel vertical separation (horizontals: half this) |
---|
1896 | shortfall=4pt,%% distance between arrowheads and their targets |
---|
1897 | %% The following are defaulted on entry to the diagram itself. |
---|
1898 | %% l>=2em minimum length of horizontal arrow shafts in text |
---|
1899 | %% l>=1em ditto in diagrams |
---|
1900 | %% size=3em cell size |
---|
1901 | %% heads=LaTeX arrowheads |
---|
1902 | ]%%ascii close square bracket |
---|
1903 | |
---|
1904 | %% process options to LaTeX2e's \usepackage[options]{diagrams} |
---|
1905 | \ifx\ProcessOptions\CD@qK\else\CD@PK\ProcessOptions\relax\CD@FF\CD@e\fi\fi |
---|
1906 | |
---|
1907 | %%============================== THE END ==================================== |
---|
1908 | \CD@vE\CD@hK\message{| running in pdf mode -- diagonal arrows will work |
---|
1909 | automatically |}\else\message{| >>>>>>>> POSTSCRIPT MODE (DVIPS) IS NOW THE |
---|
1910 | DEFAULT <<<<<<<<<<<<|}\message{|(DVI mode has not been supported since 1992 |
---|
1911 | and produces inferior|}\message{|results which are completely unsuitable for |
---|
1912 | publication. However,|}\message{|if you really still need it, you can still |
---|
1913 | get it by loading the |}\message{|package using ``\string\usepackage[% |
---|
1914 | UglyObsolete]{diagrams}'' instead. ) |}\fi\else\message{| >>>>>>>> USING UGLY |
---|
1915 | OBSOLETE DVI CODE - PLEASE STOP <<<<<<<<<<<<|}\message{|(DVI mode has not been |
---|
1916 | supported since 1992 and produces inferior|}\message{|results which are |
---|
1917 | completely unsuitable for publication - Please |}\message{|use the PostScript |
---|
1918 | or PDF mode instead, for much better results.)|}\fi\cdrestoreat |
---|
1919 | %% restore old category code for @ etc |
---|
1920 | \message{===================================================================}% |
---|
1921 | %% This is the end of Paul Taylor's commutative diagrams package. |
---|
1922 | |
---|