module Text.LaTeX.Packages.Fancyhdr (
   
   fancyhdr
   
 , HdrSettings (..)
 , defaultHdrSettings
 , applyHdrSettings
   
 , fancy
 , lhead, chead, rhead
 , lfoot, cfoot, rfoot
 , renewheadrulewidth
 , renewfootrulewidth
   ) where
import Text.LaTeX.Base.Syntax
import Text.LaTeX.Base.Class
import Text.LaTeX.Base.Types
import Text.LaTeX.Base.Commands
import Text.LaTeX.Base.Texy
fancyhdr :: PackageName
fancyhdr :: PackageName
fancyhdr = PackageName
"fancyhdr"
data HdrSettings = HdrSettings
 {     :: LaTeX
 ,   :: LaTeX
 ,    :: LaTeX
 ,     :: LaTeX
 ,   :: LaTeX
 ,    :: LaTeX
 , HdrSettings -> Measure
headRuleWidth :: Measure
 ,  :: Measure
   } deriving (HdrSettings -> HdrSettings -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: HdrSettings -> HdrSettings -> Bool
$c/= :: HdrSettings -> HdrSettings -> Bool
== :: HdrSettings -> HdrSettings -> Bool
$c== :: HdrSettings -> HdrSettings -> Bool
Eq,Int -> HdrSettings -> ShowS
[HdrSettings] -> ShowS
HdrSettings -> PackageName
forall a.
(Int -> a -> ShowS)
-> (a -> PackageName) -> ([a] -> ShowS) -> Show a
showList :: [HdrSettings] -> ShowS
$cshowList :: [HdrSettings] -> ShowS
show :: HdrSettings -> PackageName
$cshow :: HdrSettings -> PackageName
showsPrec :: Int -> HdrSettings -> ShowS
$cshowsPrec :: Int -> HdrSettings -> ShowS
Show)
defaultHdrSettings :: HdrSettings
defaultHdrSettings :: HdrSettings
defaultHdrSettings =
  HdrSettings
   { leftHeader :: LaTeX
leftHeader    = forall a. Monoid a => a
mempty
   , centerHeader :: LaTeX
centerHeader  = forall a. Monoid a => a
mempty
   , rightHeader :: LaTeX
rightHeader   = forall a. Monoid a => a
mempty
   , leftFooter :: LaTeX
leftFooter    = forall a. Monoid a => a
mempty
   , centerFooter :: LaTeX
centerFooter  = forall l. LaTeXC l => l
thePage
   , rightFooter :: LaTeX
rightFooter   = forall a. Monoid a => a
mempty
   , headRuleWidth :: Measure
headRuleWidth = Double -> Measure
Pt Double
0.4
   , footRuleWidth :: Measure
footRuleWidth = Double -> Measure
Pt Double
0
     }
applyHdrSettings :: LaTeXC l => HdrSettings -> l
applyHdrSettings :: forall l. LaTeXC l => HdrSettings -> l
applyHdrSettings HdrSettings
hs =
    forall l. LaTeXC l => [l] -> PackageName -> l
usepackage [] PackageName
fancyhdr
 forall a. Semigroup a => a -> a -> a
<> forall l. LaTeXC l => PackageName -> l
pagestyle PackageName
fancy
 forall a. Semigroup a => a -> a -> a
<> forall l. LaTeXC l => LaTeX -> l
fromLaTeX (forall l. LaTeXC l => l -> l
lhead forall a b. (a -> b) -> a -> b
$   HdrSettings -> LaTeX
leftHeader HdrSettings
hs)
 forall a. Semigroup a => a -> a -> a
<> forall l. LaTeXC l => LaTeX -> l
fromLaTeX (forall l. LaTeXC l => l -> l
chead forall a b. (a -> b) -> a -> b
$ HdrSettings -> LaTeX
centerHeader HdrSettings
hs)
 forall a. Semigroup a => a -> a -> a
<> forall l. LaTeXC l => LaTeX -> l
fromLaTeX (forall l. LaTeXC l => l -> l
rhead forall a b. (a -> b) -> a -> b
$  HdrSettings -> LaTeX
rightHeader HdrSettings
hs)
 forall a. Semigroup a => a -> a -> a
<> forall l. LaTeXC l => LaTeX -> l
fromLaTeX (forall l. LaTeXC l => l -> l
lfoot forall a b. (a -> b) -> a -> b
$   HdrSettings -> LaTeX
leftFooter HdrSettings
hs)
 forall a. Semigroup a => a -> a -> a
<> forall l. LaTeXC l => LaTeX -> l
fromLaTeX (forall l. LaTeXC l => l -> l
cfoot forall a b. (a -> b) -> a -> b
$ HdrSettings -> LaTeX
centerFooter HdrSettings
hs)
 forall a. Semigroup a => a -> a -> a
<> forall l. LaTeXC l => LaTeX -> l
fromLaTeX (forall l. LaTeXC l => l -> l
rfoot forall a b. (a -> b) -> a -> b
$  HdrSettings -> LaTeX
rightFooter HdrSettings
hs)
 forall a. Semigroup a => a -> a -> a
<> forall l. LaTeXC l => Measure -> l
renewheadrulewidth (HdrSettings -> Measure
headRuleWidth HdrSettings
hs)
 forall a. Semigroup a => a -> a -> a
<> forall l. LaTeXC l => Measure -> l
renewfootrulewidth (HdrSettings -> Measure
footRuleWidth HdrSettings
hs)
fancy :: PageStyle
fancy :: PackageName
fancy = PackageName
"fancy"
lhead :: LaTeXC l => l -> l
lhead :: forall l. LaTeXC l => l -> l
lhead = forall l. LaTeXC l => PackageName -> l -> l
comm1 PackageName
"lhead"
chead :: LaTeXC l => l -> l
chead :: forall l. LaTeXC l => l -> l
chead = forall l. LaTeXC l => PackageName -> l -> l
comm1 PackageName
"chead"
rhead :: LaTeXC l => l -> l
rhead :: forall l. LaTeXC l => l -> l
rhead = forall l. LaTeXC l => PackageName -> l -> l
comm1 PackageName
"rhead"
lfoot :: LaTeXC l => l -> l
 = forall l. LaTeXC l => PackageName -> l -> l
comm1 PackageName
"lfoot"
cfoot :: LaTeXC l => l -> l
 = forall l. LaTeXC l => PackageName -> l -> l
comm1 PackageName
"cfoot"
rfoot :: LaTeXC l => l -> l
 = forall l. LaTeXC l => PackageName -> l -> l
comm1 PackageName
"rfoot"
renewheadrulewidth :: LaTeXC l => Measure -> l
renewheadrulewidth :: forall l. LaTeXC l => Measure -> l
renewheadrulewidth Measure
m = forall l. LaTeXC l => LaTeX -> l
fromLaTeX forall a b. (a -> b) -> a -> b
$
  PackageName -> [TeXArg] -> LaTeX
TeXComm PackageName
"renewcommand" [ LaTeX -> TeXArg
FixArg forall a b. (a -> b) -> a -> b
$ PackageName -> LaTeX
TeXCommS PackageName
"headrulewidth"
                         , LaTeX -> TeXArg
FixArg forall a b. (a -> b) -> a -> b
$ forall t l. (Texy t, LaTeXC l) => t -> l
texy Measure
m
                           ]
renewfootrulewidth :: LaTeXC l => Measure -> l
 Measure
m = forall l. LaTeXC l => LaTeX -> l
fromLaTeX forall a b. (a -> b) -> a -> b
$
  PackageName -> [TeXArg] -> LaTeX
TeXComm PackageName
"renewcommand" [ LaTeX -> TeXArg
FixArg forall a b. (a -> b) -> a -> b
$ PackageName -> LaTeX
TeXCommS PackageName
"footrulewidth"
                         , LaTeX -> TeXArg
FixArg forall a b. (a -> b) -> a -> b
$ forall t l. (Texy t, LaTeXC l) => t -> l
texy Measure
m
                           ]