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
(HdrSettings -> HdrSettings -> Bool)
-> (HdrSettings -> HdrSettings -> Bool) -> Eq HdrSettings
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: HdrSettings -> HdrSettings -> Bool
== :: HdrSettings -> HdrSettings -> Bool
$c/= :: HdrSettings -> HdrSettings -> Bool
/= :: HdrSettings -> HdrSettings -> Bool
Eq,Int -> HdrSettings -> ShowS
[HdrSettings] -> ShowS
HdrSettings -> PackageName
(Int -> HdrSettings -> ShowS)
-> (HdrSettings -> PackageName)
-> ([HdrSettings] -> ShowS)
-> Show HdrSettings
forall a.
(Int -> a -> ShowS)
-> (a -> PackageName) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> HdrSettings -> ShowS
showsPrec :: Int -> HdrSettings -> ShowS
$cshow :: HdrSettings -> PackageName
show :: HdrSettings -> PackageName
$cshowList :: [HdrSettings] -> ShowS
showList :: [HdrSettings] -> ShowS
Show)
defaultHdrSettings :: HdrSettings
defaultHdrSettings :: HdrSettings
defaultHdrSettings =
HdrSettings
{ leftHeader :: LaTeX
leftHeader = LaTeX
forall a. Monoid a => a
mempty
, centerHeader :: LaTeX
centerHeader = LaTeX
forall a. Monoid a => a
mempty
, rightHeader :: LaTeX
rightHeader = LaTeX
forall a. Monoid a => a
mempty
, leftFooter :: LaTeX
leftFooter = LaTeX
forall a. Monoid a => a
mempty
, centerFooter :: LaTeX
centerFooter = LaTeX
forall l. LaTeXC l => l
thePage
, rightFooter :: LaTeX
rightFooter = LaTeX
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 =
[l] -> PackageName -> l
forall l. LaTeXC l => [l] -> PackageName -> l
usepackage [] PackageName
fancyhdr
l -> l -> l
forall a. Semigroup a => a -> a -> a
<> PackageName -> l
forall l. LaTeXC l => PackageName -> l
pagestyle PackageName
fancy
l -> l -> l
forall a. Semigroup a => a -> a -> a
<> LaTeX -> l
forall l. LaTeXC l => LaTeX -> l
fromLaTeX (LaTeX -> LaTeX
forall l. LaTeXC l => l -> l
lhead (LaTeX -> LaTeX) -> LaTeX -> LaTeX
forall a b. (a -> b) -> a -> b
$ HdrSettings -> LaTeX
leftHeader HdrSettings
hs)
l -> l -> l
forall a. Semigroup a => a -> a -> a
<> LaTeX -> l
forall l. LaTeXC l => LaTeX -> l
fromLaTeX (LaTeX -> LaTeX
forall l. LaTeXC l => l -> l
chead (LaTeX -> LaTeX) -> LaTeX -> LaTeX
forall a b. (a -> b) -> a -> b
$ HdrSettings -> LaTeX
centerHeader HdrSettings
hs)
l -> l -> l
forall a. Semigroup a => a -> a -> a
<> LaTeX -> l
forall l. LaTeXC l => LaTeX -> l
fromLaTeX (LaTeX -> LaTeX
forall l. LaTeXC l => l -> l
rhead (LaTeX -> LaTeX) -> LaTeX -> LaTeX
forall a b. (a -> b) -> a -> b
$ HdrSettings -> LaTeX
rightHeader HdrSettings
hs)
l -> l -> l
forall a. Semigroup a => a -> a -> a
<> LaTeX -> l
forall l. LaTeXC l => LaTeX -> l
fromLaTeX (LaTeX -> LaTeX
forall l. LaTeXC l => l -> l
lfoot (LaTeX -> LaTeX) -> LaTeX -> LaTeX
forall a b. (a -> b) -> a -> b
$ HdrSettings -> LaTeX
leftFooter HdrSettings
hs)
l -> l -> l
forall a. Semigroup a => a -> a -> a
<> LaTeX -> l
forall l. LaTeXC l => LaTeX -> l
fromLaTeX (LaTeX -> LaTeX
forall l. LaTeXC l => l -> l
cfoot (LaTeX -> LaTeX) -> LaTeX -> LaTeX
forall a b. (a -> b) -> a -> b
$ HdrSettings -> LaTeX
centerFooter HdrSettings
hs)
l -> l -> l
forall a. Semigroup a => a -> a -> a
<> LaTeX -> l
forall l. LaTeXC l => LaTeX -> l
fromLaTeX (LaTeX -> LaTeX
forall l. LaTeXC l => l -> l
rfoot (LaTeX -> LaTeX) -> LaTeX -> LaTeX
forall a b. (a -> b) -> a -> b
$ HdrSettings -> LaTeX
rightFooter HdrSettings
hs)
l -> l -> l
forall a. Semigroup a => a -> a -> a
<> Measure -> l
forall l. LaTeXC l => Measure -> l
renewheadrulewidth (HdrSettings -> Measure
headRuleWidth HdrSettings
hs)
l -> l -> l
forall a. Semigroup a => a -> a -> a
<> Measure -> l
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 = PackageName -> l -> l
forall l. LaTeXC l => PackageName -> l -> l
comm1 PackageName
"lhead"
chead :: LaTeXC l => l -> l
chead :: forall l. LaTeXC l => l -> l
chead = PackageName -> l -> l
forall l. LaTeXC l => PackageName -> l -> l
comm1 PackageName
"chead"
rhead :: LaTeXC l => l -> l
rhead :: forall l. LaTeXC l => l -> l
rhead = PackageName -> l -> l
forall l. LaTeXC l => PackageName -> l -> l
comm1 PackageName
"rhead"
lfoot :: LaTeXC l => l -> l
= PackageName -> l -> l
forall l. LaTeXC l => PackageName -> l -> l
comm1 PackageName
"lfoot"
cfoot :: LaTeXC l => l -> l
= PackageName -> l -> l
forall l. LaTeXC l => PackageName -> l -> l
comm1 PackageName
"cfoot"
rfoot :: LaTeXC l => l -> l
= PackageName -> 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 = LaTeX -> l
forall l. LaTeXC l => LaTeX -> l
fromLaTeX (LaTeX -> l) -> LaTeX -> l
forall a b. (a -> b) -> a -> b
$
PackageName -> [TeXArg] -> LaTeX
TeXComm PackageName
"renewcommand" [ LaTeX -> TeXArg
FixArg (LaTeX -> TeXArg) -> LaTeX -> TeXArg
forall a b. (a -> b) -> a -> b
$ PackageName -> LaTeX
TeXCommS PackageName
"headrulewidth"
, LaTeX -> TeXArg
FixArg (LaTeX -> TeXArg) -> LaTeX -> TeXArg
forall a b. (a -> b) -> a -> b
$ Measure -> LaTeX
forall l. LaTeXC l => Measure -> l
forall t l. (Texy t, LaTeXC l) => t -> l
texy Measure
m
]
renewfootrulewidth :: LaTeXC l => Measure -> l
Measure
m = LaTeX -> l
forall l. LaTeXC l => LaTeX -> l
fromLaTeX (LaTeX -> l) -> LaTeX -> l
forall a b. (a -> b) -> a -> b
$
PackageName -> [TeXArg] -> LaTeX
TeXComm PackageName
"renewcommand" [ LaTeX -> TeXArg
FixArg (LaTeX -> TeXArg) -> LaTeX -> TeXArg
forall a b. (a -> b) -> a -> b
$ PackageName -> LaTeX
TeXCommS PackageName
"footrulewidth"
, LaTeX -> TeXArg
FixArg (LaTeX -> TeXArg) -> LaTeX -> TeXArg
forall a b. (a -> b) -> a -> b
$ Measure -> LaTeX
forall l. LaTeXC l => Measure -> l
forall t l. (Texy t, LaTeXC l) => t -> l
texy Measure
m
]