wumpus-basic-0.8.0: src/Wumpus/Basic/Text/LRSymbol.hs
{-# OPTIONS -Wall #-}
--------------------------------------------------------------------------------
-- |
-- Module : Wumpus.Basic.Text.LRSymbol
-- Copyright : (c) Stephen Tetley 2010
-- License : BSD3
--
-- Maintainer : Stephen Tetley <stephen.tetley@gmail.com>
-- Stability : highly unstable
-- Portability : GHC
--
-- Named literals from Symbol font, drawn with the LRText monad.
--
-- Note - currently the techinique used here generates adequate
-- PostScript, but very ineficient SVG.
--
-- Also uUpsilon is not mapped to the correct character...
--
--------------------------------------------------------------------------------
module Wumpus.Basic.Text.LRSymbol
(
-- * Lower case Greek letters
alpha
, beta
, gamma
, delta
, epsilon
, zeta
, eta
, theta
, iota
, kappa
, lambda
, mu
, nu
, xi
, pi
, rho
, sigma
, tau
, upsilon
, phi
, chi
, psi
, omega
-- * Upper case Greek letters
, uGamma
, uDelta
, uTheta
, uLambda
, uXi
, uPi
, uSigma
, uUpsilon
, uPhi
, uPsi
, uOmega
, otimes
, oplus
) where
import Wumpus.Basic.Text.LRText
import Prelude hiding ( pi )
-- Note - due to a optimization in Wumpus-Core, the PostScript
-- generated by the techinique here - writing a
-- (single-character) label one at a time - isn\'t too bad as
-- Wumpus-Core only issues a findfont command when the font
-- changes.
--
-- However for SVG the result is very poor - one text element
-- including an orientation changing matrix transforming for
-- each character.
--
-- Wumpus-Core\'s SVG rendering will work at some point.
--
--------------------------------------------------------------------------------
-- lower case
alpha :: Num u => TextM u ()
alpha = symb 'a'
beta :: Num u => TextM u ()
beta = symb 'b'
gamma :: Num u => TextM u ()
gamma = symb 'g'
delta :: Num u => TextM u ()
delta = symb 'd'
epsilon :: Num u => TextM u ()
epsilon = symb 'e'
zeta :: Num u => TextM u ()
zeta = symb 'z'
eta :: Num u => TextM u ()
eta = symb 'h'
theta :: Num u => TextM u ()
theta = symb 'q'
iota :: Num u => TextM u ()
iota = symb 'i'
kappa :: Num u => TextM u ()
kappa = symb 'k'
lambda :: Num u => TextM u ()
lambda = symb 'l'
mu :: Num u => TextM u ()
mu = symb 'm'
nu :: Num u => TextM u ()
nu = symb 'n'
xi :: Num u => TextM u ()
xi = symb 'x'
pi :: Num u => TextM u ()
pi = symb 'p'
rho :: Num u => TextM u ()
rho = symb 'r'
sigma :: Num u => TextM u ()
sigma = symb 's'
tau :: Num u => TextM u ()
tau = symb 't'
upsilon :: Num u => TextM u ()
upsilon = symb 'u'
phi :: Num u => TextM u ()
phi = symb 'j'
chi :: Num u => TextM u ()
chi = symb 'c'
psi :: Num u => TextM u ()
psi = symb 'y'
omega :: Num u => TextM u ()
omega = symb 'w'
--------------------------------------------------------------------------------
-- upper case
uGamma :: Num u => TextM u ()
uGamma = symb 'G'
uDelta :: Num u => TextM u ()
uDelta = symb 'D'
uTheta :: Num u => TextM u ()
uTheta = symb 'Q'
uLambda :: Num u => TextM u ()
uLambda = symb 'L'
uXi :: Num u => TextM u ()
uXi = symb 'X'
uPi :: Num u => TextM u ()
uPi = symb 'P'
uSigma :: Num u => TextM u ()
uSigma = symb 'S'
-- | Not working in PostScript, @\&\#161;@ works for SVG but
-- PostScript needs an encoding table for Symbol-Font not Latin1!
--
-- For PostScript, Latin1 @161@ maps to @exclamdown@ not
-- @Upsilon1@, extending Wumpus-Core to support this will require
-- quite some work...
--
uUpsilon :: Num u => TextM u ()
uUpsilon = symbEscInt 161
uPhi :: Num u => TextM u ()
uPhi = symb 'F'
uPsi :: Num u => TextM u ()
uPsi = symb 'Y'
uOmega :: Num u => TextM u ()
uOmega = symb 'W'
--------------------------------------------------------------------------------
otimes :: Num u => TextM u ()
otimes = symbi 0xc4
oplus :: Num u => TextM u ()
oplus = symbi 0xc5