{-# OPTIONS -Wall #-} -------------------------------------------------------------------------------- -- | -- Module : Wumpus.Basic.Text.LRSymbol -- Copyright : (c) Stephen Tetley 2010 -- License : BSD3 -- -- Maintainer : Stephen Tetley -- 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