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 long text 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 %

\newamsint Here we define a similar command to use wasy (upright) integral symbols in an amsmath document. Load both packages as follows:

    \usepackage{amsmath}
    \usepackage{wasysym}
    \newamsint
16 \def\newamsint{\let\ointop\varoint  \let\oiintop\oiint
17  \let\intop\varint \let\iintop\iint \let\iiintop\iiint
18  \def\int{\DOTSI\intop\ilimits@}%
19  \def\iint{\DOTSI\iintop\ilimits@}%
20  \def\iiint{\DOTSI\iiintop\ilimits@}%
21  \def\oint{\DOTSI\ointop\ilimits@}%
22  \def\oint{\DOTSI\ointop\ilimits@}%
23  \def\oiint{\DOTSI\oiintop\ilimits@}%
24  \def\intkern@{\mkern-8mu}%

25 }

Defining some special symbols:

26 \def\male       {\mbox{\wasyfamily\char26}}
27 \def\female     {\mbox{\wasyfamily\char25}}
28 \def\currency   {{\wasyfamily\char27}}
29 \def\phone      {{\wasyfamily\char7}}
30 \def\recorder   {{\wasyfamily\char6}}
31 \def\clock      {{\wasyfamily\char28}}
32 \def\lightning  {{\wasyfamily\char18}}
33 \def\pointer    {{\wasyfamily\char9}}
34 \def\RIGHTarrow {{\wasyfamily\char17}}
35 \def\LEFTarrow  {{\wasyfamily\char16}}
36 \def\UParrow    {{\wasyfamily\char75}}
37 \def\DOWNarrow  {{\wasyfamily\char76}}
38 \def\AC         {\mbox{\kern0.5pt\wasyfamily\char58\kern0.5pt}}
39 \def\HF         {\leavevmode
40  \lower0.9pt\hbox to 0pt{\kern0.5pt\wasyfamily\char58\hss}%
41  \raise0.9pt\hbox{\kern0.5pt\wasyfamily\char58\kern0.5pt}}
42 \def\VHF        {\mbox{\wasyfamily\char64}}
43 %\def\Box{\mbox{\wasyfamily\char50}}
44 \def\Square     {\mbox{$\Box$}}
45 \def\CheckedBox {\hbox to 0pt{\wasyfamily\char50\hss}\hbox{\wasyfamily\char8}}
46 \def\XBox       {\mbox{\wasyfamily\char52}}
47 \def\hexagon    {\mbox{\wasyfamily\char55}}
48 \def\pentagon   {\mbox{\wasyfamily\char68}}
49 \def\octagon    {\mbox{\wasyfamily\char56}}
50 \def\varhexagon {\mbox{\wasyfamily\char57}}
51 \def\hexstar    {\mbox{\wasyfamily\char65}}

52 \def\varhexstar {\mbox{\wasyfamily\char66}}
53 \def\davidsstar {\mbox{\wasyfamily\char67}}
54 \def\diameter   {\mbox{\wasyfamily\char31}}
55 \def\invdiameter{\mbox{\wasyfamily\char21}}
56 \def\varangle   {\mbox{\wasyfamily\char30}}
57 \def\wasylozenge{\mbox{\wasyfamily\char53}}
58 \def\kreuz      {\mbox{\wasyfamily\char54}}
59 \def\smiley     {\mbox{\wasyfamily\char44}}
60 \def\frownie    {\mbox{\wasyfamily\char47}}
61 \def\blacksmiley{\mbox{\wasyfamily\char45}}
62 \def\sun        {\mbox{\wasyfamily\char46}}
63 \def\checked    {\mbox{\wasyfamily\char8}}
64 \def\bell       {\mbox{\wasyfamily\char10}}
65 \def\eighthnote {\mbox{\wasyfamily\char11}}
66 \def\quarternote{\mbox{\wasyfamily\char12}}
67 \def\halfnote   {\mbox{\wasyfamily\char13}}
68 \def\fullnote   {\mbox{\wasyfamily\char14}}
69 \def\twonotes   {\mbox{\wasyfamily\char15}}
70 \def\brokenvert {\mbox{\wasyfamily\char124}}
71 \def\ataribox   {\mbox{\wasyfamily\char109}}
72 \def\wasytherefore{\mbox{\wasyfamily\char5}}
73 \def\Circle     {\mbox{\wasyfamily\char35}}
74 \def\CIRCLE     {\mbox{\wasyfamily\char32}}
75 \def\Leftcircle {\mbox{\wasyfamily\char73}}
76 \def\LEFTCIRCLE {\mbox{\wasyfamily\char71}}
77 \def\Rightcircle{\mbox{\wasyfamily\char74}}
78 \def\RIGHTCIRCLE{\mbox{\wasyfamily\char72}}
79 \def\LEFTcircle {\hbox to 0pt{\wasyfamily\char71\hss}\hbox{\wasyfamily\char35}}
80 \def\RIGHTcircle{\hbox to 0pt{\wasyfamily\char72\hss}\hbox{\wasyfamily\char35}}
81 %% astronomy
82 \def\vernal     {\mbox{\wasyfamily\char23}}
83 \def\ascnode    {\mbox{\wasyfamily\char19}}
84 \def\descnode   {\mbox{\wasyfamily\char20}}
85 \let\fullmoon   \Circle
86 \let\newmoon    \CIRCLE
87 \def\leftmoon   {\mbox{\wasyfamily\char36}}
88 \def\rightmoon  {\mbox{\wasyfamily\char37}}
89 %\def\astrosun  {{\tensy\char12}}
90 \def\astrosun   {\mbox{$\odot$}}
91 \def\mercury    {\mbox{\wasyfamily\char39}}
92 \def\venus      {\leavevmode\raise0.2ex\hbox{\wasyfamily\char25}}
93 \def\earth      {\leavevmode\lower0.3ex\hbox{\wasyfamily\char38}}
94 \def\mars       {\leavevmode\lower0.2ex\hbox{\wasyfamily\char26}}
95 \def\jupiter    {\mbox{\wasyfamily\char88}}
96 \def\saturn     {\mbox{\wasyfamily\char89}}
97 \def\uranus     {\mbox{\wasyfamily\char90}}
98 \def\neptune    {\mbox{\wasyfamily\char91}}
99 \def\pluto      {\mbox{\wasyfamily\char92}}
100 %%%%%% the zodiac
101 \let\aries      \vernal
102 \def\taurus     {\mbox{\wasyfamily\char93}}
103 \def\gemini     {\mbox{\wasyfamily\char94}}
104 \def\cancer     {\mbox{\wasyfamily\char95}}
105 \let\leo        \ascnode

106 \def\virgo      {\mbox{\wasyfamily\char96}}
107 \def\libra      {\mbox{\wasyfamily\char97}}
108 \def\scorpio    {\mbox{\wasyfamily\char98}}
109 \def\sagittarius{\mbox{\wasyfamily\char99}}
110 \def\capricornus{\mbox{\wasyfamily\char100}}
111 \def\aquarius   {\mbox{\wasyfamily\char101}}
112 \def\pisces     {\mbox{\wasyfamily\char102}}
113 \def\conjunction{{\wasyfamily\char86}}
114 \def\opposition {{\wasyfamily\char87}}
115 %%%%%% APL characters
116 \def\APLstar    {\mbox{\wasyfamily\char69}}
117 \def\APLlog     {\mbox{\wasyfamily\char22}}
118 \def\APLbox     {\mbox{\wasyfamily\char126}}
119 \def\APLup      {\mbox{\wasyfamily\char0}}
120 \def\APLdown    {\mbox{\wasyfamily\char70}}
121 \def\APLinput   {\mbox{\wasyfamily\char125}}
122 \def\APLcomment {\mbox{\wasyfamily\char127}}
123 \def\APLinv     {{\hbox to 0pt{$\div$\hss}\APLbox}}
124 \def\APLuparrowbox{\mbox{\wasyfamily\char110}}
125 \def\APLdownarrowbox{\mbox{\wasyfamily\char111}}
126 \def\APLleftarrowbox{\mbox{\wasyfamily\char112}}
127 \def\APLrightarrowbox{\mbox{\wasyfamily\char113}}
128 \def\notbackslash{\overstrike{\backslash}{-}}
129 \def\notslash   {\overstrike{/}{-}}
130 \def\APLminus   {\leavevmode\raise0.7ex\hbox{$-$}}
131 \def\APLnot#1{\overstrike{\sim}{#1}}
132 \def\APLcirc#1{\overstrike{\circ}{#1}}
133 \def\APLvert#1{\overstrike{\vert}{#1}}
134 %%%%%% math characters
135 \def\Bowtie     {\mbox{\wasyfamily\char49}}
136 \def\leftturn   {\mbox{\wasyfamily\char34}}
137 \def\rightturn  {\mbox{\wasyfamily\char33}}
138 %%%%%% diagrams
139 \def\photon     {\mbox{\wasyfamily\char58\char58\char58\char58}}
140 \def\gluon      {\mbox{\wasyfamily\char81\char80\char80\char80%
141  \char80\char80\char80\char82}}
142 %%%%%% special characters
143 \def\cent       {\mbox{\wasyfamily\char103}}
144 \def\permil     {\mbox{\wasyfamily\char104}}
145 \def\agemO      {{\wasyfamily\char48}}
146 \def\thorn      {{\wasyfamily\char105}}
147 \def\Thorn      {{\wasyfamily\char106}}
148 \DeclareTextCommand{\dh}{OT1}{{\wasyfamily\char107}}
149 %\DeclareTextSymbol{\dh}{T1}{240} %\dh is already declared
150 \DeclareTextCommand{\DH}{OT1}{\leavevmode{\rm\setbox0\hbox{D}%
151  \hbox to\wd0{\kern 0.04em\char32\hss D}}}
152 \DeclareTextCommand{\Dh}{OT1}{\DH} % Will go away soon
153 \DeclareTextCommand{\Dh}{T1}{\DH}  % Will go away soon
154 \def\openo      {{\wasyfamily\char108}}
155 \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.

156 \let\mho\undefined
157 \let\sqsupset\undefined \let\Join\undefined
158 \let\lhd\undefined      \let\Box\undefined
159 \let\unlhd\undefined    \let\Diamond\undefined
160 \let\rhd\undefined      \let\leadsto\undefined
161 \let\unrhd\undefined    \let\sqsubset\undefined

162

163 \let\iint\undefined     \let\iiint\undefined

164

165 \DeclareMathSymbol\mho     {\mathord}{wasy}{"30}
166 \DeclareMathSymbol\Join    {\mathrel}{wasy}{"31}
167 \DeclareMathSymbol\Box     {\mathord}{wasy}{"32}
168 \DeclareMathSymbol\Diamond {\mathord}{wasy}{"33}
169 \DeclareMathSymbol\leadsto {\mathrel}{wasy}{"3B}
170 \DeclareMathSymbol\sqsubset{\mathrel}{wasy}{"3C}
171 \DeclareMathSymbol\sqsupset{\mathrel}{wasy}{"3D}
172 \DeclareMathSymbol\lhd     {\mathbin}{wasy}{"01}
173 \DeclareMathSymbol\unlhd   {\mathbin}{wasy}{"02}
174 \DeclareMathSymbol\LHD     {\mathbin}{wasy}{"10}
175 \DeclareMathSymbol\rhd     {\mathbin}{wasy}{"03}
176 \DeclareMathSymbol\unrhd   {\mathbin}{wasy}{"04}
177 \DeclareMathSymbol\RHD     {\mathbin}{wasy}{"11}
178 \DeclareMathSymbol\apprle  {\mathrel}{wasy}{"3E}
179 \DeclareMathSymbol\apprge  {\mathrel}{wasy}{"3F}
180 \DeclareMathSymbol\wasypropto   {\mathrel}{wasy}{"1D}
181 \DeclareMathSymbol\invneg  {\mathrel}{wasy}{"18}
182 \DeclareMathSymbol\ocircle {\mathbin}{wasy}{"23}
183 \DeclareMathSymbol\logof   {\mathrel}{wasy}{"16}
184 \DeclareMathSymbol\varint  {\mathop}{wasy}{"72}
185 \DeclareMathSymbol\iint    {\mathop}{wasy}{"73}
186 \DeclareMathSymbol\iiint   {\mathop}{wasy}{"74}
187 \DeclareMathSymbol\varoint {\mathop}{wasy}{"75}
188 \DeclareMathSymbol\oiint   {\mathop}{wasy}{"76}

189 ⟨/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.

190 ⟨∗fd⟩

191 \DeclareFontFamily{U}{wasy}{}
192 \DeclareFontShape{U}{wasy}{m}{n}{ <5> <6> <7> <8> <9> gen * wasy
193  <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>wasy10  }{}
194 \DeclareFontShape{U}{wasy}{b}{n}{ <-10> sub * wasy/m/n
195 <10> <10.95> <12> <14.4> <17.28> <20.74> <24.88>wasyb10 }{}

196 ⟨/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).

197 \endinput