1 Introduction

This file defines the package wasysym which makes some additional characters available that come from the wasy fonts (Waldis symbol fonts). These fonts are not automatically included in the NFSS2/L^{A}TEX 2ε since they take up important space and aren’t necessary if one makes use of the packages amsfonts or amssymb.

Warning: This style uses version 2 of the wasy-fonts. It is not 100 % compatible to the old version 1 from 1989. I have provided no compatibility mode for the old fonts! If some characters come out wrong you have to upgrade.

The math-commands defined by the wasysym package are:

\Join ⨝ \Box □ \Diamond ◇ \leadsto ↝ \sqsubset ⊏
\sqsupset ⊐ \lhd ⊲ \unlhd ⊴ \LHD ◄ \rhd ⊳ \unrhd ⊵
\RHD ► \apprle ≲ \apprge ≳ \wasypropto ∝ \invneg ⌐ \ocircle ◯
\logof ⍟ \varint ∫ \iint ∬ \iiint ∭ \varoint ∮ \oiint ∯

The following commands are available in text-mode and scale according to the textfont size:

General symbol:

\male ♂ \female ♀ \currency ¤ \phone ☎ \recorder ⌕ \clock 🕒
\lightning ↯ \pointer ⇨ \RIGHTarrow ► \LEFTarrow ◄ \UParrow ▲
\DOWNarrow ▼ \diameter ⌀ \invdiameter ⍉ \varangle ∢ \wasylozenge ⌑
\kreuz ✠ \smiley ☺ \frownie ☹ \blacksmiley ☻ \sun ☼
\checked ✓ \bell 🔔 \ataribox   \cent ¢ \permil ‰ \brokenvert ¦
\wasytherefore ∴ \Bowtie ⨝ \agemO ℧

Electrical and physical symbols:

\AC ∼ \HF ∼ ∼ \VHF ≋ \photon ∼∼∼∼ \gluon

Polygons and Stars:

\Square □ \XBox ⊠ \CheckedBox □ ✓ \hexagon ⎔ \varhexagon ⬡
\pentagon ⬠ \octagon    \hexstar ✶ \varhexstar ✶ \davidsstar ✡

Music notes:

\eighthnote ♪ \quarternote ♩ \halfnote 𝅗𝅥 \fullnote 𝅝 \twonotes ♫

Various circles:

\Circle ◯ \CIRCLE ● \Leftcircle    \LEFTCIRCLE ◖ \Rightcircle
\RIGHTCIRCLE ◗ \LEFTcircle ◖ ◯ \RIGHTcircle ◗ ◯ \leftturn ↺
\rightturn ↻

Phonetic signs:

\thorn þ \Thorn Þ \dh ð \DH D (The old \Dh command will go away in the next release.) \openo ɔ \inve ə

Some symbols used in astonomy:

\vernal ♈ \ascnode ☊ \descnode ☋ \fullmoon ◯ \newmoon ●
\leftmoon ☾ \rightmoon ☽ \astrosun ⊙ \mercury ☿ \venus ♀
\earth ♁ \mars ♂ \jupiter ♃ \saturn ♄ \uranus ⛢ \neptune ♆
\pluto ♇

Astrological symbols and the zodiacal symbols:

\aries ♈ \taurus ♉ \gemini ♊ \cancer ♋ \leo ☊ \virgo ♍
\libra ♎ \scorpio ♏ \sagittarius ♐ \capricornus ♑ \aquarius ♒
\pisces ♓ \conjunction ☌ \opposition ☍

And the APL-symbols, whoever needs them:

\APLstar ★ \APLlog ⍟ \APLbox ⎕ \APLup △ \APLdown ▽ \APLinput ⍞
\APLcomment ⍝ \APLinv ÷ ⎕ \APLuparrowbox ⍐ \APLdownarrowbox ⍗
\APLleftarrowbox ⍇ \APLrightarrowbox ⍈ \notbackslash \ −
\notslash / − \APLnot∼ \APLvert | \APLcirc ∘ \APLminus −

2 The docstrip modules

The following modules are used in the implementation to direct docstrip in generating the external files:

driver  produce a documentation driver file
package produce a package file
fd  produce a font definition file

3 The Implementation

\symwasy It is possible to detect whether or not the wasy symbols are already defined by

checking for the math group number with the name \symwasy.

In that case we exit but write a message to the transcript file

1 ⟨∗package⟩

2 \ifx\symwasy\undefined \else
3 \wlog{Package wasysym: nothing to set up^^J}%
4 \endinput
5 \fi

Otherwise we define the new symbol font

6 \DeclareSymbolFont{wasy}{U}{wasy}{m}{n}
7 \SetSymbolFont{wasy}{bold}{U}{wasy}{b}{n}

\wasyfamily \textwasy To access the wasy-symbols in text-mode I have defined them as a new fontfamily. Since I only take single characters but don’t want to write this is not an elegant approach. But it works and the symbols scale according to textsize, which is all I promised.

8 \def\wasyfamily{\fontencoding{U}\fontfamily{wasy}\selectfont}
9 \DeclareTextFontCommand{\textwasy}{\wasyfamily}

We declare some new commands to generate overlayed symbols and to switch to the new integral-signs:

10 %

11 \def\overstrike#1#2{{\setbox0\hbox{$#2$}\hbox to \wd0{\hss
12  $#1$\hss}\kern-\wd0\box0}}
13 \def\newpropto{\let\propto\wasyvarpropto}
14 \def\newint{\let\int\varint \let\oint\varoint} % default limits

15 %

Defining some special symbols:

16 \def\male       {\hbox{\wasyfamily\char26}}
17 \def\female     {\hbox{\wasyfamily\char25}}
18 \def\currency   {{\wasyfamily\char27}}
19 \def\phone      {{\wasyfamily\char7}}
20 \def\recorder   {{\wasyfamily\char6}}
21 \def\clock      {{\wasyfamily\char28}}
22 \def\lightning  {{\wasyfamily\char18}}
23 \def\pointer    {{\wasyfamily\char9}}
24 \def\RIGHTarrow {{\wasyfamily\char17}}
25 \def\LEFTarrow  {{\wasyfamily\char16}}
26 \def\UParrow    {{\wasyfamily\char75}}
27 \def\DOWNarrow  {{\wasyfamily\char76}}
28 \def\AC         {\hbox{\kern0.5pt\wasyfamily\char58\kern0.5pt}}
29 \def\HF         {\lower0.9pt\hbox to 0pt{\kern0.5pt\wasyfamily\char58\hss}%
30  \raise0.9pt\hbox{\kern0.5pt\wasyfamily\char58\kern0.5pt}}
31 \def\VHF        {\hbox{\wasyfamily\char64}}
32 %\def\Box{\hbox{\wasyfamily\char50}}
33 \def\Square     {\hbox{$\Box$}}
34 \def\CheckedBox {\hbox to 0pt{\wasyfamily\char50\hss}\hbox{\wasyfamily\char8}}
35 \def\XBox       {\hbox{\wasyfamily\char52}}
36 \def\hexagon    {\hbox{\wasyfamily\char55}}
37 \def\pentagon   {\hbox{\wasyfamily\char68}}
38 \def\octagon    {\hbox{\wasyfamily\char56}}
39 \def\varhexagon {\hbox{\wasyfamily\char57}}
40 \def\hexstar    {\hbox{\wasyfamily\char65}}
41 \def\varhexstar {\hbox{\wasyfamily\char66}}
42 \def\davidsstar {\hbox{\wasyfamily\char67}}
43 \def\diameter   {\hbox{\wasyfamily\char31}}
44 \def\invdiameter{\hbox{\wasyfamily\char21}}
45 \def\varangle   {\hbox{\wasyfamily\char30}}
46 \def\wasylozenge{\hbox{\wasyfamily\char53}}
47 \def\kreuz      {\hbox{\wasyfamily\char54}}
48 \def\smiley     {\hbox{\wasyfamily\char44}}
49 \def\frownie    {\hbox{\wasyfamily\char47}}
50 \def\blacksmiley{\hbox{\wasyfamily\char45}}
51 \def\sun        {\hbox{\wasyfamily\char46}}
52 \def\checked    {\hbox{\wasyfamily\char8}}
53 \def\bell       {\hbox{\wasyfamily\char10}}
54 \def\eighthnote {\hbox{\wasyfamily\char11}}
55 \def\quarternote{\hbox{\wasyfamily\char12}}
56 \def\halfnote   {\hbox{\wasyfamily\char13}}
57 \def\fullnote   {\hbox{\wasyfamily\char14}}
58 \def\twonotes   {\hbox{\wasyfamily\char15}}
59 \def\brokenvert {\hbox{\wasyfamily\char124}}

60 \def\ataribox   {\hbox{\wasyfamily\char109}}
61 \def\wasytherefore{\hbox{\wasyfamily\char5}}
62 \def\Circle     {\hbox{\wasyfamily\char35}}
63 \def\CIRCLE     {\hbox{\wasyfamily\char32}}
64 \def\Leftcircle {\hbox{\wasyfamily\char73}}
65 \def\LEFTCIRCLE {\hbox{\wasyfamily\char71}}
66 \def\Rightcircle{\hbox{\wasyfamily\char74}}
67 \def\RIGHTCIRCLE{\hbox{\wasyfamily\char72}}
68 \def\LEFTcircle {\hbox to 0pt{\wasyfamily\char71\hss}\hbox{\wasyfamily\char35}}
69 \def\RIGHTcircle{\hbox to 0pt{\wasyfamily\char72\hss}\hbox{\wasyfamily\char35}}
70 %% astronomy
71 \def\vernal     {\hbox{\wasyfamily\char23}}
72 \def\ascnode    {\hbox{\wasyfamily\char19}}
73 \def\descnode   {\hbox{\wasyfamily\char20}}
74 \let\fullmoon   \Circle
75 \let\newmoon    \CIRCLE
76 \def\leftmoon   {\hbox{\wasyfamily\char36}}
77 \def\rightmoon  {\hbox{\wasyfamily\char37}}
78 %\def\astrosun  {{\tensy\char12}}
79 \def\astrosun   {\hbox{$\odot$}}
80 \def\mercury    {\hbox{\wasyfamily\char39}}
81 \def\venus      {\raise0.2ex\hbox{\wasyfamily\char25}}
82 \def\earth      {\lower0.3ex\hbox{\wasyfamily\char38}}
83 \def\mars       {\lower0.2ex\hbox{\wasyfamily\char26}}
84 \def\jupiter    {\hbox{\wasyfamily\char88}}
85 \def\saturn     {\hbox{\wasyfamily\char89}}
86 \def\uranus     {\hbox{\wasyfamily\char90}}
87 \def\neptune    {\hbox{\wasyfamily\char91}}
88 \def\pluto      {\hbox{\wasyfamily\char92}}
89 %%%%%% the zodiac
90 \let\aries      \vernal
91 \def\taurus     {\hbox{\wasyfamily\char93}}
92 \def\gemini     {\hbox{\wasyfamily\char94}}
93 \def\cancer     {\hbox{\wasyfamily\char95}}
94 \let\leo        \ascnode
95 \def\virgo      {\hbox{\wasyfamily\char96}}
96 \def\libra      {\hbox{\wasyfamily\char97}}
97 \def\scorpio    {\hbox{\wasyfamily\char98}}
98 \def\sagittarius{\hbox{\wasyfamily\char99}}
99 \def\capricornus{\hbox{\wasyfamily\char100}}
100 \def\aquarius   {\hbox{\wasyfamily\char101}}
101 \def\pisces     {\hbox{\wasyfamily\char102}}
102 \def\conjunction{{\wasyfamily\char86}}
103 \def\opposition {{\wasyfamily\char87}}
104 %%%%%% APL characters
105 \def\APLstar    {\hbox{\wasyfamily\char69}}
106 \def\APLlog     {\hbox{\wasyfamily\char22}}
107 \def\APLbox     {\hbox{\wasyfamily\char126}}
108 \def\APLup      {\hbox{\wasyfamily\char0}}
109 \def\APLdown    {\hbox{\wasyfamily\char70}}
110 \def\APLinput   {\hbox{\wasyfamily\char125}}
111 \def\APLcomment {\hbox{\wasyfamily\char127}}
112 \def\APLinv     {{\hbox to 0pt{$\div$\hss}\APLbox}}
113 \def\APLuparrowbox{\hbox{\wasyfamily\char110}}

114 \def\APLdownarrowbox{\hbox{\wasyfamily\char111}}
115 \def\APLleftarrowbox{\hbox{\wasyfamily\char112}}
116 \def\APLrightarrowbox{\hbox{\wasyfamily\char113}}
117 \def\notbackslash{\overstrike{\backslash}{-}}
118 \def\notslash   {\overstrike{/}{-}}
119 \def\APLminus   {\raise0.7ex\hbox{$-$}}
120 \def\APLnot#1{\overstrike{\sim}{#1}}
121 \def\APLcirc#1{\overstrike{\circ}{#1}}
122 \def\APLvert#1{\overstrike{\vert}{#1}}
123 %%%%%% math characters
124 \def\Bowtie     {\hbox{\wasyfamily\char49}}
125 \def\leftturn   {\hbox{\wasyfamily\char34}}
126 \def\rightturn  {\hbox{\wasyfamily\char33}}
127 %%%%%% diagrams
128 \def\photon     {\hbox{\wasyfamily\char58\char58\char58\char58}}
129 \def\gluon      {\hbox{\wasyfamily\char81\char80\char80\char80%
130  \char80\char80\char80\char82}}
131 %%%%%% special characters
132 \def\cent       {\hbox{\wasyfamily\char103}}
133 \def\permil     {\hbox{\wasyfamily\char104}}
134 \def\agemO      {{\wasyfamily\char48}}
135 \def\thorn      {{\wasyfamily\char105}}
136 \def\Thorn      {{\wasyfamily\char106}}
137 \DeclareTextCommand{\dh}{OT1}{{\wasyfamily\char107}}
138 %\DeclareTextSymbol{\dh}{T1}{240} %\dh is already declared
139 \DeclareTextCommand{\DH}{OT1}{\leavevmode{\rm\setbox0\hbox{D}%
140  \hbox to\wd0{\kern 0.04em\char32\hss D}}}
141 \DeclareTextCommand{\Dh}{OT1}{\DH} % Will go away soon
142 \DeclareTextCommand{\Dh}{T1}{\DH}  % Will go away soon
143 \def\openo      {{\wasyfamily\char108}}
144 \def\inve       {{\wasyfamily\char85}}

Because the lasy symbols are made an error in the format we have to undefine them before we can set them anew with \DeclareMathSymbol. Made the mathgroups more readable and changed \lhd and friends to be binary operators as in latexsym.

145 \let\mho\undefined
146 \let\sqsupset\undefined \let\Join\undefined
147 \let\lhd\undefined      \let\Box\undefined
148 \let\unlhd\undefined    \let\Diamond\undefined
149 \let\rhd\undefined      \let\leadsto\undefined
150 \let\unrhd\undefined    \let\sqsubset\undefined

151

152 \DeclareMathSymbol\mho     {\mathord}{wasy}{"30}
153 \DeclareMathSymbol\Join    {\mathrel}{wasy}{"31}
154 \DeclareMathSymbol\Box     {\mathord}{wasy}{"32}
155 \DeclareMathSymbol\Diamond {\mathord}{wasy}{"33}
156 \DeclareMathSymbol\leadsto {\mathrel}{wasy}{"3B}
157 \DeclareMathSymbol\sqsubset{\mathrel}{wasy}{"3C}
158 \DeclareMathSymbol\sqsupset{\mathrel}{wasy}{"3D}
159 \DeclareMathSymbol\lhd     {\mathbin}{wasy}{"01}
160 \DeclareMathSymbol\unlhd   {\mathbin}{wasy}{"02}
161 \DeclareMathSymbol\LHD     {\mathbin}{wasy}{"10}
162 \DeclareMathSymbol\rhd     {\mathbin}{wasy}{"03}

163 \DeclareMathSymbol\unrhd   {\mathbin}{wasy}{"04}
164 \DeclareMathSymbol\RHD     {\mathbin}{wasy}{"11}
165 \DeclareMathSymbol\apprle  {\mathrel}{wasy}{"3E}
166 \DeclareMathSymbol\apprge  {\mathrel}{wasy}{"3F}
167 \DeclareMathSymbol\wasypropto   {\mathrel}{wasy}{"1D}
168 \DeclareMathSymbol\invneg  {\mathrel}{wasy}{"18}
169 \DeclareMathSymbol\ocircle {\mathbin}{wasy}{"23}
170 \DeclareMathSymbol\logof   {\mathrel}{wasy}{"16}
171 \DeclareMathSymbol\varint  {\mathop}{wasy}{"72}
172 \DeclareMathSymbol\iint    {\mathop}{wasy}{"73}
173 \DeclareMathSymbol\iiint   {\mathop}{wasy}{"74}
174 \DeclareMathSymbol\varoint {\mathop}{wasy}{"75}
175 \DeclareMathSymbol\oiint   {\mathop}{wasy}{"76}

176 ⟨/package⟩

3.1 L^{A}TEX symbols fonts

The rest of this file defines the the font shape declarations that have to go into the corresponding .fd file.

We introduce the .fd file in the log file. The explicit spaces are necessary in an .fd file and the \string guards against situations where `, < or > is active.

177 ⟨∗fd⟩

178 \DeclareFontFamily{U}{wasy}{}
179 \DeclareFontShape{U}{wasy}{m}{n}{ <5> <6> <7> <8> <9> gen * wasy
180  <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>wasy10  }{}
181 \DeclareFontShape{U}{wasy}{b}{n}{ <-10> sub * wasy/m/n
182 <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>wasyb10 }{}

183 ⟨/fd⟩

The next line goes into all files and in addition prevents docstrip from adding any further code from the main source file (such as a character table).

184 \endinput