{-# 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 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 , uGamma , uDelta , uTheta , uLambda , uXi , uPi , uSigma , uUpsilon , uPhi , uPsi , uOmega ) where import Wumpus.Basic.SafeFonts import Wumpus.Basic.Text.LRText import Wumpus.Core -- package: wumpus-core import Data.Char ( chr ) 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. -- useSymbol :: TextM u a -> TextM u a useSymbol = bracketFontFace symbol -------------------------------------------------------------------------------- -- lower case alpha :: (Num u, FromPtSize u) => TextM u () alpha = useSymbol $ char 'a' beta :: (Num u, FromPtSize u) => TextM u () beta = useSymbol $ char 'b' gamma :: (Num u, FromPtSize u) => TextM u () gamma = useSymbol $ char 'g' delta :: (Num u, FromPtSize u) => TextM u () delta = useSymbol $ char 'd' epsilon :: (Num u, FromPtSize u) => TextM u () epsilon = useSymbol $ char 'e' zeta :: (Num u, FromPtSize u) => TextM u () zeta = useSymbol $ char 'z' eta :: (Num u, FromPtSize u) => TextM u () eta = useSymbol $ char 'h' theta :: (Num u, FromPtSize u) => TextM u () theta = useSymbol $ char 'q' iota :: (Num u, FromPtSize u) => TextM u () iota = useSymbol $ char 'i' kappa :: (Num u, FromPtSize u) => TextM u () kappa = useSymbol $ char 'k' lambda :: (Num u, FromPtSize u) => TextM u () lambda = useSymbol $ char 'l' mu :: (Num u, FromPtSize u) => TextM u () mu = useSymbol $ char 'm' nu :: (Num u, FromPtSize u) => TextM u () nu = useSymbol $ char 'n' xi :: (Num u, FromPtSize u) => TextM u () xi = useSymbol $ char 'x' pi :: (Num u, FromPtSize u) => TextM u () pi = useSymbol $ char 'p' rho :: (Num u, FromPtSize u) => TextM u () rho = useSymbol $ char 'r' sigma :: (Num u, FromPtSize u) => TextM u () sigma = useSymbol $ char 's' tau :: (Num u, FromPtSize u) => TextM u () tau = useSymbol $ char 't' upsilon :: (Num u, FromPtSize u) => TextM u () upsilon = useSymbol $ char 'u' phi :: (Num u, FromPtSize u) => TextM u () phi = useSymbol $ char 'j' chi :: (Num u, FromPtSize u) => TextM u () chi = useSymbol $ char 'c' psi :: (Num u, FromPtSize u) => TextM u () psi = useSymbol $ char 'y' omega :: (Num u, FromPtSize u) => TextM u () omega = useSymbol $ char 'w' -------------------------------------------------------------------------------- -- upper case uGamma :: (Num u, FromPtSize u) => TextM u () uGamma = useSymbol $ char 'G' uDelta :: (Num u, FromPtSize u) => TextM u () uDelta = useSymbol $ char 'D' uTheta :: (Num u, FromPtSize u) => TextM u () uTheta = useSymbol $ char 'Q' uLambda :: (Num u, FromPtSize u) => TextM u () uLambda = useSymbol $ char 'L' uXi :: (Num u, FromPtSize u) => TextM u () uXi = useSymbol $ char 'X' uPi :: (Num u, FromPtSize u) => TextM u () uPi = useSymbol $ char 'P' uSigma :: (Num u, FromPtSize u) => TextM u () uSigma = useSymbol $ char 'S' -- | Not working, though 161 should be uUpsilon. -- uUpsilon :: (Num u, FromPtSize u) => TextM u () uUpsilon = useSymbol $ char $ chr 161 uPhi :: (Num u, FromPtSize u) => TextM u () uPhi = useSymbol $ char 'F' uPsi :: (Num u, FromPtSize u) => TextM u () uPsi = useSymbol $ char 'Y' uOmega :: (Num u, FromPtSize u) => TextM u () uOmega = useSymbol $ char 'W'