fix empty instruction; add anchors and top links
[librarian.git] / librarian / styles / wasysym / wasysym.dtx
1 % \iffalse meta-comment
2 %
3 % Copyright  1994 - 99 by Axel Kielhorn
4 % Copyright  2003 Axel Kielhorn, Walter Schmidt
5
6 % This program can be redistributed and/or modified under the terms
7 % of the LaTeX Project Public License Distributed from CTAN
8 % archives in directory macros/latex/base/lppl.txt; either
9 % version 1 of the License, or any later version.
10
11 % IMPORTANT NOTICE:
12
13 % For error reports in case of UNCHANGED versions contact
14 % A.Kielhorn@web.de
15
16 % You are not allowed to change this file.
17 %
18 % Changes:
19 % 1.0b corrected mathcode for integrals (now 1)
20 % 1.0c Minor corrections
21 % 1.0e Resync with latex2e [1995/06/01]
22 %      Changed some ops to \mathbin
23 % 1.0f Corrected \dh and \Dh in T1 encoding as suggested by 
24 %      Ernst-Guenter Giessmann (giessman@informatik.hu-berlin.de)
25 % 1.0g Reintroduced \hbox in many commands, they work in math-mode
26 %      again
27 % 1.0h Included some changes by Donald Arseneau
28 % 1.0i Changed License to LPPL
29 % 1.0j Added uwasyvar.fd for scaleable PS fonts
30 %      Added substitution bx -> b
31 % 2.0  See the section "Changes over version~1.x".
32 %      The instructions how to set up the font definition files
33 %      for scaleable Type1 fonts have been moved to the 
34 %      installation script, because they are needed at install
35 %      time.
36 %      \overstrike macro renamed to \wasy@over to avoid potential
37 %       clashes
38 % \fi
39 %
40 % \CheckSum{844}
41 %% \CharacterTable
42 %%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
43 %%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
44 %%   Digits        \0\1\2\3\4\5\6\7\8\9
45 %%   Exclamation   \!     Double quote  \"     Hash (number) \#
46 %%   Dollar        \$     Percent       \%     Ampersand     \&
47 %%   Acute accent  \'     Left paren    \(     Right paren   \)
48 %%   Asterisk      \*     Plus          \+     Comma         \,
49 %%   Minus         \-     Point         \.     Solidus       \/
50 %%   Colon         \:     Semicolon     \;     Less than     \<
51 %%   Equals        \=     Greater than  \>     Question mark \?
52 %%   Commercial at \@     Left bracket  \[     Backslash     \\
53 %%   Right bracket \]     Circumflex    \^     Underscore    \_
54 %%   Grave accent  \`     Left brace    \{     Vertical bar  \|
55 %%   Right brace   \}     Tilde         \~}
56 %
57 % \iffalse   % this is a METACOMMENT !
58 %
59 %<package>\NeedsTeXFormat{LaTeX2e}
60 %<package>\ProvidesPackage{wasysym}
61 %<fd|fdvar>\ProvidesFile{uwasy.fd}%
62 %<-driver>             [2003/10/30 v2.0
63 %<package>               Wasy-2 symbol support package]
64 %<fd|fdvar>              Wasy-2 symbol font definitions]
65 %
66 %
67 %<*driver>
68 \documentclass{ltxdoc}
69 \OnlyDescription
70 \usepackage[integrals]{wasysym}
71 \providecommand\dst{\expandafter{\normalfont\scshape docstrip}}
72 \renewcommand{\quad}{{\hskip1em plus 2em}}
73 \begin{document}
74  \DocInput{wasysym.dtx}
75 \end{document}
76 %</driver>
77 % \fi
78 %
79 % \GetFileInfo{wasysym.sty}
80 % \title{The \texttt{wasysym} macro package for \LaTeXe}
81 % \author{Axel Kielhorn}
82 % \date{version \fileversion{} -- \filedate}
83 % \maketitle
84 %
85 % \setcounter{StandardModuleDepth}{1}
86 %
87 %
88 % \section{Introduction}
89 %
90 %    This file defines the package |wasysym| which makes some
91 %    additional characters available that come from the \texttt{wasy} fonts.
92 %    These fonts were provided by Roland Waldi, Universit\"at Karlsruhe, 
93 %    Germany.  
94 %    Notice that the present macro package requires version~2 (1992) of 
95 %    these fonts. It is not 100 \% compatible to the old 
96 %    version~1 from 1989. I have provided no compatibility mode 
97 %    for the old fonts! If some characters come out wrong or are
98 %    missing, you have to upgrade.
99 %
100 %    Some of the symbols below are already provided in the T1 or TS1 
101 %    (textcompanion) encodings, and |wasysm| serves only to make them 
102 %    available also with the traditional (OT1-encoded) CM-Roman fonts. 
103 %    Other symbols are  provided in the AMS symbol fonts, too, and can
104 %    be accessed using either the |amssymb| or the |amsfonts| package.
105 %
106 % \section{The symbols}   
107 %
108 %   \subsection{Various math symbols}
109 %    The following commands are valid in math mode only:
110 %    \begin{quote}
111 %    |\Join|~$\Join$ \quad
112 %    |\Box|~$\Box$ \quad
113 %    |\Diamond|~$\Diamond$ \quad
114 %    |\leadsto|~$\leadsto$ \quad
115 %    |\sqsubset|~$\sqsubset$ \quad
116 %    |\sqsupset|~$\sqsupset$ \quad
117 %    |\lhd|~$\lhd$ \quad
118 %    |\unlhd|~$\unlhd$ \quad
119 %    |\LHD|~$\LHD$\quad
120 %    |\rhd|~$\rhd$ \quad
121 %    |\unrhd|~$\unrhd$ \quad
122 %    |\RHD|~$\RHD$\quad
123 %    |\apprle|~$\apprle$\quad
124 %    |\apprge|~$\apprge$\quad
125 %    |\wasypropto|~$\wasypropto$\quad
126 %    |\invneg|~$\invneg$\quad
127 %    |\ocircle|~$\ocircle$\quad
128 %    |\logof|~$\logof$\quad
129 %    \end{quote}
130 %
131 %   \subsection{Integrals}
132 %   The |wasy| fonts provide a set of integral sybols, which comprises
133 %   multiple integrals and surface integrals, too.  
134 %   \begin{itemize}
135 %   \item
136 %    Loading the package
137 %    with the option \texttt{[integrals]} makes the following integrals available:
138 %    \begin{quote}
139 %    |\int|~$\int$\quad
140 %    |\iint|~$\iint$\quad
141 %    |\iiint|~$\iiint$\quad
142 %    |\oint|~$\oint$\quad
143 %    |\oiint|~$\oiint$
144 %    \end{quote}
145 %   Notice that the style of the |\int| and |\oint| is changed, as compared
146 %   with standard \LaTeX, and matches the other integral symbols.
147 %   This works with or without the |amsmath| package,  
148 %   and the sequence of loading does not matter.
149 %   \item
150 %   If you prefer to stay with the integral symbols provided by \LaTeX
151 %   (and possibly |amsmath|),
152 %   but need other symbols from the \texttt{wasy} fonts,
153 %   load the package with the option \texttt{[nointegrals]}.  Doing so will 
154 %   neither alter any existing integral symbols nor add new ones.
155 %   \item
156 %   Loading the package \emph{without an option} or with the option \texttt{[compat1]}
157 %   makes the following commands for integrals available:
158 %    \begin{quote}
159 %    |\varint|~$\int$\quad
160 %    |\iint|~$\iint$\quad
161 %    |\iiint|~$\iiint$\quad
162 %    |\varoint|~$\oint$\quad
163 %    |\oiint|~$\oiint$
164 %    \end{quote}
165 %   This is compatible with the behavior of |wasysym| version~1.x,
166 %   but the package will not cooperate well with |amsmath| then.
167 %   \end{itemize}
168 %
169 % \subsection{General symbols}
170 %
171 %    \begin{quote}
172 %  |\male|~\male \quad
173 %  |\female|~\female \quad
174 %  |\currency|~\currency \quad
175 %  |\phone|~\phone \quad
176 %  |\recorder|~\recorder \quad
177 %  |\clock|~\clock \quad
178 %  |\lightning|~\lightning \quad
179 %  |\pointer|~\pointer \quad
180 %  |\RIGHTarrow|~\RIGHTarrow \quad
181 %  |\LEFTarrow|~\LEFTarrow \quad
182 %  |\UParrow|~\UParrow \quad
183 %  |\DOWNarrow|~\DOWNarrow \quad
184 %  |\diameter|~\diameter \quad
185 %  |\invdiameter|~\invdiameter \quad
186 %  |\varangle|~\varangle \quad
187 %  |\wasylozenge|~\wasylozenge \quad
188 %  |\kreuz|~\kreuz \quad
189 %  |\smiley|~\smiley \quad
190 %  |\frownie|~\frownie \quad
191 %  |\blacksmiley|~\blacksmiley \quad
192 %  |\sun|~\sun \quad
193 %  |\checked|~\checked \quad
194 %  |\bell|~\bell \quad
195 %  |\ataribox|~\ataribox \quad
196 %  |\cent|~\cent \quad
197 %  |\permil|~\permil \quad
198 %  |\brokenvert|~\brokenvert \quad
199 %  |\wasytherefore|~\wasytherefore \quad
200 %  |\Bowtie|~\Bowtie \quad
201 %  |\agemO|~\agemO
202 %   \end{quote}
203 %
204 %  \subsection{Electrical and physical symbols}
205 %
206 %   \begin{quote}
207 %  |\AC|~\AC \quad
208 %  |\HF|~\HF \quad
209 %  |\VHF|~\VHF \quad
210 %  |\photon|~\photon \quad
211 %  |\gluon|~\gluon
212 %   \end{quote}
213 %
214 %   \subsection{Polygons and stars}
215 %
216 %   \begin{quote}
217 %  |\Square|~\Square \quad
218 %  |\XBox|~\XBox \quad
219 %  |\CheckedBox|~\CheckedBox \quad
220 %  |\hexagon|~\hexagon \quad
221 %  |\varhexagon|~\varhexagon \quad
222 %  |\pentagon|~\pentagon \quad
223 %  |\octagon|~\octagon \quad
224 %  |\hexstar|~\hexstar \quad
225 %  |\varhexstar|~\varhexstar \quad
226 %  |\davidsstar|~\davidsstar
227 %   \end{quote}
228 %
229 %   \subsection{Music notes}
230 %
231 %   \begin{quote}
232 %  |\eighthnote|~\eighthnote \quad
233 %  |\quarternote|~\quarternote \quad
234 %  |\halfnote|~\halfnote \quad
235 %  |\fullnote|~\fullnote \quad
236 %  |\twonotes|~\twonotes
237 %   \end{quote}
238 %
239 %  \subsection{Various circles}
240 %
241 %   \begin{quote}
242 %  |\Circle|~\Circle \quad
243 %  |\CIRCLE|~\CIRCLE \quad
244 %  |\Leftcircle|~\Leftcircle \quad
245 %  |\LEFTCIRCLE|~\LEFTCIRCLE \quad
246 %  |\Rightcircle|~\Rightcircle \quad
247 %  |\RIGHTCIRCLE|~\RIGHTCIRCLE \quad
248 %  |\LEFTcircle|~\LEFTcircle \quad
249 %  |\RIGHTcircle|~\RIGHTcircle \quad
250 %  |\leftturn|~\leftturn \quad
251 %  |\rightturn|~\rightturn \quad
252 %   \end{quote}
253 %
254 %  \subsection{Phonetic symbols}
255 %
256 %   \begin{quote}
257 %  |\dh|~{\fontencoding{OT1}\fontfamily{cmr}\selectfont\dh} \quad
258 %  |\DH|~{\fontencoding{OT1}\fontfamily{cmr}\selectfont\DH} \quad 
259 %  |\thorn|~\thorn \quad
260 %  |\Thorn|~\Thorn \quad
261 %  |\openo|~\openo \quad
262 %  |\inve|~\inve
263 %   \end{quote}
264 %
265 %   T1-encoded fonts normally include  Eth characters of their own.
266 %   The |wasy| package tries to provide  them in the OT1 encoding, too.
267 %   by ``faking'' them.
268 %   This should work with the Computer Modern fonts, but may fail with others.
269 %
270 %   The characters produced by |\thorn|, |\Thorn|, |\openo| and |\inve|  
271 %   match only the CM-Roman typeface
272 %   and do not change with the surrounding font family or shape.
273 %
274 %  \subsection{Astronomical symbols}
275 %
276 %   \begin{quote}
277 %  |\vernal|~\vernal \quad
278 %  |\ascnode|~\ascnode \quad
279 %  |\descnode|~\descnode \quad
280 %  |\fullmoon|~\fullmoon \quad
281 %  |\newmoon|~\newmoon \quad
282 %  |\leftmoon|~\leftmoon \quad
283 %  |\rightmoon|~\rightmoon \quad
284 %  |\astrosun|~\astrosun \quad
285 %  |\mercury|~\mercury \quad
286 %  |\venus|~\venus \quad
287 %  |\earth|~\earth \quad
288 %  |\mars|~\mars \quad
289 %  |\jupiter|~\jupiter \quad
290 %  |\saturn|~\saturn \quad
291 %  |\uranus|~\uranus \quad
292 %  |\neptune|~\neptune \quad
293 %  |\pluto|~\pluto
294 %   \end{quote}
295 %
296 %   \subsection{Astrological symbols and the zodiacal symbols}
297 %
298 %    \begin{quote}
299 %  |\aries|~\aries \quad
300 %  |\taurus|~\taurus \quad
301 %  |\gemini|~\gemini \quad
302 %  |\cancer|~\cancer \quad
303 %  |\leo|~\leo \quad
304 %  |\virgo|~\virgo \quad
305 %  |\libra|~\libra \quad
306 %  |\scorpio|~\scorpio \quad
307 %  |\sagittarius|~\sagittarius \quad
308 %  |\capricornus|~\capricornus \quad
309 %  |\aquarius|~\aquarius \quad
310 %  |\pisces|~\pisces \quad
311 %  |\conjunction|~\conjunction \quad
312 %  |\opposition|~\opposition
313 %   \end{quote}
314 %
315 %  \subsection{APL symbols}
316 %
317 %    \begin{quote}
318 %  |\APLstar|~\APLstar \quad
319 %  |\APLlog|~\APLlog \quad
320 %  |\APLbox|~\APLbox \quad
321 %  |\APLup|~\APLup \quad
322 %  |\APLdown|~\APLdown \quad
323 %  |\APLinput|~\APLinput \quad
324 %  |\APLcomment|~\APLcomment \quad
325 %  |\APLinv|~\APLinv \quad
326 %  |\APLuparrowbox|~\APLuparrowbox \quad
327 %  |\APLdownarrowbox|~\APLdownarrowbox \quad
328 %  |\APLleftarrowbox|~\APLleftarrowbox \quad
329 %  |\APLrightarrowbox|~\APLrightarrowbox \quad
330 %  |\notbackslash|~\notbackslash \quad
331 %  |\notslash|~\notslash \quad
332 %  |\APLnot|~\APLnot\ \quad
333 %  |\APLvert|~\APLvert\ \quad
334 %  |\APLcirc|~\APLcirc\ \quad
335 %  |\APLminus|~\APLminus
336 %
337 %    \end{quote}
338 %
339 % \section{Changes over version~1.x}
340 % \begin{itemize}
341 %   \item
342 %    The |\Dh| command has finally been abolished.
343 %    \item
344 %    The macros 
345 %    |\LEFTcircle|, |\RIGHTcircle|, |\CheckedBox| and |\APLinv|
346 %    start with  |\leavevmode| now, so that they work properly at the 
347 %    beginning of a paragraph.
348 %    \item
349 %    Use of the \texttt{wasy}-style integral symbols can be controlled 
350 %    via the options \texttt{[compat1]}, \texttt{[integrals]} and \texttt{[nointegrals]},
351 %    with \texttt{[compat1]} being the default.
352 %    \item
353 %    When loaded with the \texttt{[integrals]} or \texttt{[nointegrals]} option, 
354 %    the package will not clash with |amsmath|.
355 % \end{itemize}
356 %
357 %
358 % \StopEventually{}
359 %
360 % \section{The \dst{} modules}
361 %
362 % The following modules are used in the implementation to direct
363 % \dst{} in generating the external files:
364 % \begin{center}
365 % \begin{tabular}{ll}
366 %   driver & produce a documentation driver file \\
367 %   package  & produce a package file \\
368 %   fd     & produce a font definition file \\
369 %   fdvar    & produce a \texttt{.fd} file for use with scalable fonts
370 % \end{tabular}
371 % \end{center}
372 %
373 % \section{The Implementation}
374 % \subsection{The macro package}
375 %
376 %  With the version 1.x of |wasysym|, the definitions of the multiple 
377 %  integrals would depend on whether |amsmath| was loaded additionally, and whether it 
378 %  was loaded before or after |wasysym|.  Redefinition of \emph{all} integrals
379 %  so as to exhibit the same style was only possible through the (almost) undocumented 
380 %  macros |\newint| and |\newamsint|.  Similar problems would also arise
381 %  with the Fourier math fonts.
382 %  This behavior was hard to understand and somewhat unfortunate\dots
383 %
384 %  Three options are now introduced to control the (re)definiton of the integral macros
385 %  and a ``version~1 compatibility mode'':
386 %    \begin{macrocode}
387 %<*package>
388 \newif\ifwasy@integrals
389 \newif\ifwasy@compatibility
390 \DeclareOption{compat1}{%
391   \wasy@compatibilitytrue\wasy@integralsfalse}%
392 \DeclareOption{integrals}{%
393   \wasy@compatibilityfalse\wasy@integralstrue}%
394 \DeclareOption{nointegrals}{%
395   \wasy@compatibilityfalse\wasy@integralsfalse}%
396 \ExecuteOptions{compat1}
397 \ProcessOptions\relax
398 %    \end{macrocode}
399 %  \begin{itemize}
400 %  \item
401 %  By default or with the option \texttt{[compat1]}, version~2 will behave just as version~1,
402 %  i.e. the macros |\varint|, |\iint|, |\iiint|, |\varoint| and |\oiint| are defined at load time.
403 %  \item
404 %  With the option \texttt{[nointegrals]}, the meaning of any ``standard''
405 %  or AMS integral macros remains unchanged, and the additional \texttt{wasy}
406 %  integrals cannot be used.
407 %  Thus, one can use the other \texttt{wasy} symbols without altering the 
408 %  integral signs.
409 %  \item
410 %  With the option \texttt{[integrals]}, the standard
411 %  and (if applicable) AMS integral macros are redefined to match the style of the
412 %  additional \texttt{wasy} integrals.  The definitions are deferred until 
413 %  |\begin{document}|, so that other package cannot interfere.
414 %  The redefined integral macros will cooperate with the |amsmath| package,
415 %  if it is loaded additionally.
416 %  \item
417 %  The undocumented commands |\newint| and |\newamsint|, too, may turn on
418 %  the redefinition of the integral commands.
419 %  \end{itemize}
420 %
421 %  The following two macros serve to actually (re)define the integrals.
422 %  The first one  is to be used if the |amsmath| package is not loaded:
423 %    \begin{macrocode}
424 \def\wasy@setup{%
425      \let\int\wasy@int  
426      \let\iint\wasy@iint 
427      \let\iiint\wasy@iiint 
428      \let\oint\wasy@oint 
429      \let\oiint\wasy@oiint
430
431 %    \end{macrocode}
432 %    With |amsmath|, it's a bit more complicated:
433 %    \begin{macrocode}
434 \def\wasy@amssetup{%
435      \let\intop\wasy@int
436      \let\iintop\wasy@iint 
437      \let\iiintop\wasy@iiint
438      \let\ointop\wasy@oint  
439      \let\oiintop\wasy@oiint
440      \def\int{\DOTSI\intop\ilimits@}%
441      \def\iint{\DOTSI\iintop\ilimits@}%
442      \def\iiint{\DOTSI\iiintop\ilimits@}%
443      \def\oint{\DOTSI\ointop\ilimits@}%
444      \def\oiint{\DOTSI\oiintop\ilimits@}%
445      \def\intkern@{\mkern-8mu}
446 }
447 %    \end{macrocode}
448 %
449 % The old undocumented commands |\newint| and |\newamsint| are changed,
450 % so as to effect the same  as the |integrals| option  and issue a warning
451 % message:
452 %    \begin{macrocode}
453 \newcommand{\newint}{%
454   \PackageWarning{wasysym}{%
455   The command \protect\newint\space is obsolete.
456   \MessageBreak
457   Load the package with the option [integrals] instead}
458   \wasy@integralstrue}
459 \newcommand{\newamsint}{%
460   \PackageWarning{wasysym}{%
461   The command \protect\newamsint\space is obsolete.
462   \MessageBreak
463   Load the package with the option [integrals] instead.}
464   \wasy@integralstrue}
465 %    \end{macrocode}
466 %
467 %
468 %    To access the wasy symbols in text mode I have defined them
469 %    as a new fontfamily. Since I only take single characters but
470 %    don't want to write long text this is not an elegant approach. 
471 %    But it works and the symbols scale according to textsize, which 
472 %    is all I promised.
473 %    \begin{macrocode}
474 \def\wasyfamily{\fontencoding{U}\fontfamily{wasy}\selectfont}
475 \DeclareTextFontCommand{\textwasy}{\wasyfamily}
476 %    \end{macrocode}
477 %
478 % We declare a \texttt{wasy} math symbol font, too:
479 %    \begin{macrocode}
480 \DeclareSymbolFont{wasy}{U}{wasy}{m}{n}
481 \SetSymbolFont{wasy}{bold}{U}{wasy}{b}{n}
482 %    \end{macrocode}
483 %
484 %    We declare a new command to generate overlayed symbols:
485 %    \begin{macrocode}
486 \def\wasy@over#1#2{{\setbox0\hbox{$#2$}\hbox to \wd0{\hss
487     $#1$\hss}\kern-\wd0\box0}}
488 %    \end{macrocode}
489 %
490 %     Defining some special symbols:
491 %    \begin{macrocode}
492 \def\male       {\mbox{\wasyfamily\char26}}
493 \def\female     {\mbox{\wasyfamily\char25}}
494 \def\currency   {{\wasyfamily\char27}}
495 \def\phone      {{\wasyfamily\char7}}
496 \def\recorder   {{\wasyfamily\char6}}
497 \def\clock      {{\wasyfamily\char28}}
498 \def\lightning  {{\wasyfamily\char18}}
499 \def\pointer    {{\wasyfamily\char9}}
500 \def\RIGHTarrow {{\wasyfamily\char17}}
501 \def\LEFTarrow  {{\wasyfamily\char16}}
502 \def\UParrow    {{\wasyfamily\char75}}
503 \def\DOWNarrow  {{\wasyfamily\char76}}
504 \def\AC         {\mbox{\kern0.5pt\wasyfamily\char58\kern0.5pt}}
505 \def\HF         {\leavevmode
506         \lower0.9pt\hbox to 0pt{\kern0.5pt\wasyfamily\char58\hss}%
507         \raise0.9pt\hbox{\kern0.5pt\wasyfamily\char58\kern0.5pt}}
508 \def\VHF        {\mbox{\wasyfamily\char64}}
509 \def\Square     {\mbox{$\Box$}}
510 \def\CheckedBox {\leavevmode\hbox to 0pt{\wasyfamily\char50\hss}%
511                  \hbox{\wasyfamily\char8}}
512 \def\XBox       {\mbox{\wasyfamily\char52}}
513 \def\hexagon    {\mbox{\wasyfamily\char55}}
514 \def\pentagon   {\mbox{\wasyfamily\char68}}
515 \def\octagon    {\mbox{\wasyfamily\char56}}
516 \def\varhexagon {\mbox{\wasyfamily\char57}}
517 \def\hexstar    {\mbox{\wasyfamily\char65}}
518 \def\varhexstar {\mbox{\wasyfamily\char66}}
519 \def\davidsstar {\mbox{\wasyfamily\char67}}
520 \def\diameter   {\mbox{\wasyfamily\char31}}
521 \def\invdiameter{\mbox{\wasyfamily\char21}}
522 \def\varangle   {\mbox{\wasyfamily\char30}}
523 \def\wasylozenge{\mbox{\wasyfamily\char53}}
524 \def\kreuz      {\mbox{\wasyfamily\char54}}
525 \def\smiley     {\mbox{\wasyfamily\char44}}
526 \def\frownie    {\mbox{\wasyfamily\char47}}
527 \def\blacksmiley{\mbox{\wasyfamily\char45}}
528 \def\sun        {\mbox{\wasyfamily\char46}}
529 \def\checked    {\mbox{\wasyfamily\char8}}
530 \def\bell       {\mbox{\wasyfamily\char10}}
531 \def\eighthnote {\mbox{\wasyfamily\char11}}
532 \def\quarternote{\mbox{\wasyfamily\char12}}
533 \def\halfnote   {\mbox{\wasyfamily\char13}}
534 \def\fullnote   {\mbox{\wasyfamily\char14}}
535 \def\twonotes   {\mbox{\wasyfamily\char15}}
536 \def\brokenvert {\mbox{\wasyfamily\char124}}
537 \def\ataribox   {\mbox{\wasyfamily\char109}}
538 \def\wasytherefore{\mbox{\wasyfamily\char5}}
539 \def\Circle     {\mbox{\wasyfamily\char35}}
540 \def\CIRCLE     {\mbox{\wasyfamily\char32}}
541 \def\Leftcircle {\mbox{\wasyfamily\char73}}
542 \def\LEFTCIRCLE {\mbox{\wasyfamily\char71}}
543 \def\Rightcircle{\mbox{\wasyfamily\char74}}
544 \def\RIGHTCIRCLE{\mbox{\wasyfamily\char72}}
545 \def\LEFTcircle {\leavevmode%
546                  \hbox to 0pt{\wasyfamily\char71\hss}%
547                  \hbox{\wasyfamily\char35}}
548 \def\RIGHTcircle{\leavevmode%
549                  \hbox to 0pt{\wasyfamily\char72\hss}%
550                  \hbox{\wasyfamily\char35}}
551 %    \end{macrocode}
552 %
553 %     Astronomy:
554 %    \begin{macrocode}
555 \def\vernal     {\mbox{\wasyfamily\char23}}
556 \def\ascnode    {\mbox{\wasyfamily\char19}}
557 \def\descnode   {\mbox{\wasyfamily\char20}}
558 \let\fullmoon   \Circle
559 \let\newmoon    \CIRCLE
560 \def\leftmoon   {\mbox{\wasyfamily\char36}}
561 \def\rightmoon  {\mbox{\wasyfamily\char37}}
562 \def\astrosun   {\mbox{$\odot$}}
563 \def\mercury    {\mbox{\wasyfamily\char39}}
564 \def\venus      {\leavevmode\raise0.2ex\hbox{\wasyfamily\char25}}
565 \def\earth      {\leavevmode\lower0.3ex\hbox{\wasyfamily\char38}}
566 \def\mars       {\leavevmode\lower0.2ex\hbox{\wasyfamily\char26}}
567 \def\jupiter    {\mbox{\wasyfamily\char88}}
568 \def\saturn     {\mbox{\wasyfamily\char89}}
569 \def\uranus     {\mbox{\wasyfamily\char90}}
570 \def\neptune    {\mbox{\wasyfamily\char91}}
571 \def\pluto      {\mbox{\wasyfamily\char92}}
572 %    \end{macrocode}
573 %
574 %     The zodiac:
575 %    \begin{macrocode}
576 \let\aries      \vernal
577 \def\taurus     {\mbox{\wasyfamily\char93}}
578 \def\gemini     {\mbox{\wasyfamily\char94}}
579 \def\cancer     {\mbox{\wasyfamily\char95}}
580 \let\leo        \ascnode
581 \def\virgo      {\mbox{\wasyfamily\char96}}
582 \def\libra      {\mbox{\wasyfamily\char97}}
583 \def\scorpio    {\mbox{\wasyfamily\char98}}
584 \def\sagittarius{\mbox{\wasyfamily\char99}}
585 \def\capricornus{\mbox{\wasyfamily\char100}}
586 \def\aquarius   {\mbox{\wasyfamily\char101}}
587 \def\pisces     {\mbox{\wasyfamily\char102}}
588 \def\conjunction{{\wasyfamily\char86}}
589 \def\opposition {{\wasyfamily\char87}}
590 %    \end{macrocode}
591 %
592 %     APL characters:
593 %    \begin{macrocode}
594 \def\APLstar    {\mbox{\wasyfamily\char69}}
595 \def\APLlog     {\mbox{\wasyfamily\char22}}
596 \def\APLbox     {\mbox{\wasyfamily\char126}}
597 \def\APLup      {\mbox{\wasyfamily\char0}}
598 \def\APLdown    {\mbox{\wasyfamily\char70}}
599 \def\APLinput   {\mbox{\wasyfamily\char125}}
600 \def\APLcomment {\mbox{\wasyfamily\char127}}
601 \def\APLinv     {{\leavevmode\hbox to 0pt{$\div$\hss}\APLbox}}
602 \def\APLuparrowbox{\mbox{\wasyfamily\char110}}
603 \def\APLdownarrowbox{\mbox{\wasyfamily\char111}}
604 \def\APLleftarrowbox{\mbox{\wasyfamily\char112}}
605 \def\APLrightarrowbox{\mbox{\wasyfamily\char113}}
606 \def\notbackslash{\wasy@over{\backslash}{-}}
607 \def\notslash   {\wasy@over{/}{-}}
608 \def\APLminus   {\leavevmode\raise0.7ex\hbox{$-$}}
609 \def\APLnot#1{\wasy@over{\sim}{#1}}
610 \def\APLcirc#1{\wasy@over{\circ}{#1}}
611 \def\APLvert#1{\wasy@over{\vert}{#1}}
612 %    \end{macrocode}
613 %
614 %     Math symbols:
615 %    \begin{macrocode}
616 \def\Bowtie     {\mbox{\wasyfamily\char49}}
617 \def\leftturn   {\mbox{\wasyfamily\char34}}
618 \def\rightturn  {\mbox{\wasyfamily\char33}}
619 %    \end{macrocode}
620 %
621 %     Particle physics:
622 %    \begin{macrocode}
623 \def\photon     {\mbox{\wasyfamily\char58\char58\char58\char58}}
624 \def\gluon      {\mbox{\wasyfamily\char81\char80\char80\char80%
625     \char80\char80\char80\char82}}
626 %    \end{macrocode}
627 %
628 %     Miscellaneous:
629 %    \begin{macrocode}
630 \def\cent       {\mbox{\wasyfamily\char103}}
631 \def\permil     {\mbox{\wasyfamily\char104}}
632 \def\agemO      {{\wasyfamily\char48}}
633 %    \end{macrocode}
634 %
635 %     Phonetic:
636 %    \begin{macrocode}
637 \def\thorn      {{\wasyfamily\char105}}
638 \def\Thorn      {{\wasyfamily\char106}}
639 \DeclareTextCommand{\dh}{OT1}{{\wasyfamily\char107}}
640 \DeclareTextCommand{\DH}{OT1}{\leavevmode{\rm\setbox0\hbox{D}%
641     \hbox to\wd0{\kern 0.04em\char32\hss D}}}
642 \def\openo      {{\wasyfamily\char108}}
643 \def\inve       {{\wasyfamily\char85}}
644 %    \end{macrocode}
645 %
646 %
647 %    Because the lasy symbols are made an error in the format we have
648 %    to undefine them before we can set them anew with
649 %    |\DeclareMathSymbol|. Made the mathgroups more readable and
650 %    changed |\lhd| and friends to be binary operators as in
651 %    latexsym.
652 %    \begin{macrocode}
653   \let\mho\undefined
654   \let\sqsupset\undefined \let\Join\undefined
655   \let\lhd\undefined      \let\Box\undefined
656   \let\unlhd\undefined    \let\Diamond\undefined
657   \let\rhd\undefined      \let\leadsto\undefined
658   \let\unrhd\undefined    \let\sqsubset\undefined
659   \DeclareMathSymbol\mho     {\mathord}{wasy}{"30}
660   \DeclareMathSymbol\Join    {\mathrel}{wasy}{"31}
661   \DeclareMathSymbol\Box     {\mathord}{wasy}{"32}
662   \DeclareMathSymbol\Diamond {\mathord}{wasy}{"33}
663   \DeclareMathSymbol\leadsto {\mathrel}{wasy}{"3B}
664   \DeclareMathSymbol\sqsubset{\mathrel}{wasy}{"3C}
665   \DeclareMathSymbol\sqsupset{\mathrel}{wasy}{"3D}
666   \DeclareMathSymbol\lhd     {\mathbin}{wasy}{"01}
667   \DeclareMathSymbol\unlhd   {\mathbin}{wasy}{"02}
668   \DeclareMathSymbol\LHD     {\mathbin}{wasy}{"10}
669   \DeclareMathSymbol\rhd     {\mathbin}{wasy}{"03}
670   \DeclareMathSymbol\unrhd   {\mathbin}{wasy}{"04}
671   \DeclareMathSymbol\RHD     {\mathbin}{wasy}{"11}
672   \DeclareMathSymbol\apprle  {\mathrel}{wasy}{"3E}
673   \DeclareMathSymbol\apprge  {\mathrel}{wasy}{"3F}
674   \DeclareMathSymbol\wasypropto   {\mathrel}{wasy}{"1D}
675   \DeclareMathSymbol\invneg  {\mathrel}{wasy}{"18}
676   \DeclareMathSymbol\ocircle {\mathbin}{wasy}{"23}
677   \DeclareMathSymbol\logof   {\mathrel}{wasy}{"16}
678 %    \end{macrocode}
679 %    
680 %    Initially the integrals are defined with ``harmless''
681 %    names. i.e., no existing macros are overwritten:
682 %    \begin{macrocode}
683   \DeclareMathSymbol\wasy@int  {\mathop}{wasy}{"72}
684   \DeclareMathSymbol\wasy@iint {\mathop}{wasy}{"73}
685   \DeclareMathSymbol\wasy@iiint{\mathop}{wasy}{"74}
686   \DeclareMathSymbol\wasy@oint {\mathop}{wasy}{"75}
687   \DeclareMathSymbol\wasy@oiint{\mathop}{wasy}{"76}
688 %    \end{macrocode}
689 %
690 % Now let's actually set up the integrals.  
691 % In ``compatibility mode'' they are defined immediately at load time:
692 %    \begin{macrocode}
693 \ifwasy@compatibility
694   \let\varint\wasy@int
695   \let\iint\wasy@iint 
696   \let\iiint\wasy@iiint 
697   \let\varoint\wasy@oint
698   \let\oiint\wasy@oiint
699 \fi
700 %    \end{macrocode}
701 % If the option \texttt{[integrals]} was selected, the related definitions
702 % are executed only at |\begin{document}|.  Notice that the commands
703 % |\newint| or |\newamsint| may appear in the preamble and turn on the
704 % the redefinition of the integral macros.
705 %    \begin{macrocode}
706 \AtBeginDocument{%
707   \ifwasy@integrals
708     \@ifpackageloaded{amsmath}{\wasy@amssetup}{\wasy@setup}
709   \fi
710 }
711 %</package>
712 %    \end{macrocode}
713 %
714 %  \subsection{The font definition files}
715 %
716 %    The declarations, 
717 %    that have to go into the corresponding |.fd| files:
718 %    \begin{macrocode}
719 %<*fd>
720 \DeclareFontFamily{U}{wasy}{}
721 \DeclareFontShape{U}{wasy}{m}{n}{ <5> <6> <7> <8> <9> gen * wasy
722       <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>wasy10  }{}
723 \DeclareFontShape{U}{wasy}{b}{n}{ <-10> sub * wasy/m/n
724  <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>wasyb10 }{}
725 \DeclareFontShape{U}{wasy}{bx}{n}{ <-> sub * wasy/b/n}{}
726 %</fd>
727 %<*fdvar>
728 \DeclareFontFamily{U}{wasy}{}
729 \DeclareFontShape{U}{wasy}{m}{n}{%
730 <5-6> wasy5
731 <6-7> wasy6
732 <7-8> wasy7
733 <8-9> wasy8
734 <9-10> wasy9
735 <10-> wasy10}{}
736 \DeclareFontShape{U}{wasy}{b}{n}{ <-10> sub * wasy/m/n
737  <10-> wasyb10 }{}
738 \DeclareFontShape{U}{wasy}{bx}{n}{ <-> sub * wasy/b/n}{}
739 %</fdvar>
740 %    \end{macrocode}
741 %
742 %    The next line goes into all files and in addition prevents \dst{}
743 %    from adding any further code from the main source file (such as a
744 %    character table).
745 %    \begin{macrocode}
746 \endinput
747 %    \end{macrocode}
748 %
749 % \DeleteShortVerb{\|}
750 % \Finale