{-# LANGUAGE OverloadedStrings #-}
module Text.LaTeX.Packages.Beamer
(
beamer
, frame
, frametitle
, framesubtitle
, alert
, pause
, block
, OverlaySpec (..)
, beameritem
, uncover
, only
, onslide
, visible
, invisible
, beamercolor
, overprint
, CoverOption (..)
, Opaqueness (..)
, setbeamercovered
, usetheme
, Theme (..)
) where
import Text.LaTeX.Base.Syntax
import Text.LaTeX.Base.Class
import Text.LaTeX.Base.Render
import Text.LaTeX.Base.Types
beamer :: ClassName
beamer :: ClassName
beamer = ClassName
"beamer"
frame :: LaTeXC l => l -> l
frame :: forall l. LaTeXC l => l -> l
frame = (LaTeX -> LaTeX) -> l -> l
forall l. LaTeXC l => (LaTeX -> LaTeX) -> l -> l
liftL ((LaTeX -> LaTeX) -> l -> l) -> (LaTeX -> LaTeX) -> l -> l
forall a b. (a -> b) -> a -> b
$ ClassName -> [TeXArg] -> LaTeX -> LaTeX
TeXEnv ClassName
"frame" []
frametitle :: LaTeXC l => l -> l
frametitle :: forall l. LaTeXC l => l -> l
frametitle = (LaTeX -> LaTeX) -> l -> l
forall l. LaTeXC l => (LaTeX -> LaTeX) -> l -> l
liftL ((LaTeX -> LaTeX) -> l -> l) -> (LaTeX -> LaTeX) -> l -> l
forall a b. (a -> b) -> a -> b
$ \LaTeX
l -> ClassName -> [TeXArg] -> LaTeX
TeXComm ClassName
"frametitle" [LaTeX -> TeXArg
FixArg LaTeX
l]
framesubtitle :: LaTeXC l => l -> l
framesubtitle :: forall l. LaTeXC l => l -> l
framesubtitle = (LaTeX -> LaTeX) -> l -> l
forall l. LaTeXC l => (LaTeX -> LaTeX) -> l -> l
liftL ((LaTeX -> LaTeX) -> l -> l) -> (LaTeX -> LaTeX) -> l -> l
forall a b. (a -> b) -> a -> b
$ \LaTeX
l -> ClassName -> [TeXArg] -> LaTeX
TeXComm ClassName
"framesubtitle" [LaTeX -> TeXArg
FixArg LaTeX
l]
alert :: LaTeXC l => [OverlaySpec] -> l -> l
alert :: forall l. LaTeXC l => [OverlaySpec] -> l -> l
alert [OverlaySpec]
os = (LaTeX -> LaTeX) -> l -> l
forall l. LaTeXC l => (LaTeX -> LaTeX) -> l -> l
liftL ((LaTeX -> LaTeX) -> l -> l) -> (LaTeX -> LaTeX) -> l -> l
forall a b. (a -> b) -> a -> b
$ \LaTeX
l -> ClassName -> [TeXArg] -> LaTeX
TeXComm ClassName
"alert" [ [LaTeX] -> TeXArg
MSymArg ([LaTeX] -> TeXArg) -> [LaTeX] -> TeXArg
forall a b. (a -> b) -> a -> b
$ (OverlaySpec -> LaTeX) -> [OverlaySpec] -> [LaTeX]
forall a b. (a -> b) -> [a] -> [b]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (Text -> LaTeX
TeXRaw (Text -> LaTeX) -> (OverlaySpec -> Text) -> OverlaySpec -> LaTeX
forall b c a. (b -> c) -> (a -> b) -> a -> c
. OverlaySpec -> Text
forall a. Render a => a -> Text
render) [OverlaySpec]
os, LaTeX -> TeXArg
FixArg LaTeX
l]
pause :: LaTeXC l => l
pause :: forall l. LaTeXC l => l
pause = ClassName -> l
forall l. LaTeXC l => ClassName -> l
comm0 ClassName
"pause"
beameritem :: LaTeXC l => [OverlaySpec] -> l
beameritem :: forall l. LaTeXC l => [OverlaySpec] -> l
beameritem [OverlaySpec]
os = LaTeX -> l
forall l. LaTeXC l => LaTeX -> l
fromLaTeX (LaTeX -> l) -> LaTeX -> l
forall a b. (a -> b) -> a -> b
$ ClassName -> [TeXArg] -> LaTeX
TeXComm ClassName
"item" [ [LaTeX] -> TeXArg
MSymArg ([LaTeX] -> TeXArg) -> [LaTeX] -> TeXArg
forall a b. (a -> b) -> a -> b
$ (OverlaySpec -> LaTeX) -> [OverlaySpec] -> [LaTeX]
forall a b. (a -> b) -> [a] -> [b]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (Text -> LaTeX
TeXRaw (Text -> LaTeX) -> (OverlaySpec -> Text) -> OverlaySpec -> LaTeX
forall b c a. (b -> c) -> (a -> b) -> a -> c
. OverlaySpec -> Text
forall a. Render a => a -> Text
render) [OverlaySpec]
os ]
uncover :: LaTeXC l => [OverlaySpec] -> l -> l
uncover :: forall l. LaTeXC l => [OverlaySpec] -> l -> l
uncover [OverlaySpec]
os = (LaTeX -> LaTeX) -> l -> l
forall l. LaTeXC l => (LaTeX -> LaTeX) -> l -> l
liftL ((LaTeX -> LaTeX) -> l -> l) -> (LaTeX -> LaTeX) -> l -> l
forall a b. (a -> b) -> a -> b
$ \LaTeX
l -> ClassName -> [TeXArg] -> LaTeX
TeXComm ClassName
"uncover" [ [LaTeX] -> TeXArg
MSymArg ([LaTeX] -> TeXArg) -> [LaTeX] -> TeXArg
forall a b. (a -> b) -> a -> b
$ (OverlaySpec -> LaTeX) -> [OverlaySpec] -> [LaTeX]
forall a b. (a -> b) -> [a] -> [b]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (Text -> LaTeX
TeXRaw (Text -> LaTeX) -> (OverlaySpec -> Text) -> OverlaySpec -> LaTeX
forall b c a. (b -> c) -> (a -> b) -> a -> c
. OverlaySpec -> Text
forall a. Render a => a -> Text
render) [OverlaySpec]
os , LaTeX -> TeXArg
FixArg LaTeX
l ]
only :: LaTeXC l => [OverlaySpec] -> l -> l
only :: forall l. LaTeXC l => [OverlaySpec] -> l -> l
only [OverlaySpec]
os = (LaTeX -> LaTeX) -> l -> l
forall l. LaTeXC l => (LaTeX -> LaTeX) -> l -> l
liftL ((LaTeX -> LaTeX) -> l -> l) -> (LaTeX -> LaTeX) -> l -> l
forall a b. (a -> b) -> a -> b
$ \LaTeX
l -> ClassName -> [TeXArg] -> LaTeX
TeXComm ClassName
"only" [ [LaTeX] -> TeXArg
MSymArg ([LaTeX] -> TeXArg) -> [LaTeX] -> TeXArg
forall a b. (a -> b) -> a -> b
$ (OverlaySpec -> LaTeX) -> [OverlaySpec] -> [LaTeX]
forall a b. (a -> b) -> [a] -> [b]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (Text -> LaTeX
TeXRaw (Text -> LaTeX) -> (OverlaySpec -> Text) -> OverlaySpec -> LaTeX
forall b c a. (b -> c) -> (a -> b) -> a -> c
. OverlaySpec -> Text
forall a. Render a => a -> Text
render) [OverlaySpec]
os , LaTeX -> TeXArg
FixArg LaTeX
l ]
onslide :: LaTeXC l => [OverlaySpec] -> l -> l
onslide :: forall l. LaTeXC l => [OverlaySpec] -> l -> l
onslide [OverlaySpec]
os = (LaTeX -> LaTeX) -> l -> l
forall l. LaTeXC l => (LaTeX -> LaTeX) -> l -> l
liftL ((LaTeX -> LaTeX) -> l -> l) -> (LaTeX -> LaTeX) -> l -> l
forall a b. (a -> b) -> a -> b
$ \LaTeX
l -> ClassName -> [TeXArg] -> LaTeX
TeXComm ClassName
"onslide" [ [LaTeX] -> TeXArg
MSymArg ([LaTeX] -> TeXArg) -> [LaTeX] -> TeXArg
forall a b. (a -> b) -> a -> b
$ (OverlaySpec -> LaTeX) -> [OverlaySpec] -> [LaTeX]
forall a b. (a -> b) -> [a] -> [b]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (Text -> LaTeX
TeXRaw (Text -> LaTeX) -> (OverlaySpec -> Text) -> OverlaySpec -> LaTeX
forall b c a. (b -> c) -> (a -> b) -> a -> c
. OverlaySpec -> Text
forall a. Render a => a -> Text
render) [OverlaySpec]
os , LaTeX -> TeXArg
FixArg LaTeX
l ]
visible :: LaTeXC l => [OverlaySpec] -> l -> l
visible :: forall l. LaTeXC l => [OverlaySpec] -> l -> l
visible [OverlaySpec]
os = (LaTeX -> LaTeX) -> l -> l
forall l. LaTeXC l => (LaTeX -> LaTeX) -> l -> l
liftL ((LaTeX -> LaTeX) -> l -> l) -> (LaTeX -> LaTeX) -> l -> l
forall a b. (a -> b) -> a -> b
$ \LaTeX
l -> ClassName -> [TeXArg] -> LaTeX
TeXComm ClassName
"visible" [ [LaTeX] -> TeXArg
MSymArg ([LaTeX] -> TeXArg) -> [LaTeX] -> TeXArg
forall a b. (a -> b) -> a -> b
$ (OverlaySpec -> LaTeX) -> [OverlaySpec] -> [LaTeX]
forall a b. (a -> b) -> [a] -> [b]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (Text -> LaTeX
TeXRaw (Text -> LaTeX) -> (OverlaySpec -> Text) -> OverlaySpec -> LaTeX
forall b c a. (b -> c) -> (a -> b) -> a -> c
. OverlaySpec -> Text
forall a. Render a => a -> Text
render) [OverlaySpec]
os , LaTeX -> TeXArg
FixArg LaTeX
l ]
invisible :: LaTeXC l => [OverlaySpec] -> l -> l
invisible :: forall l. LaTeXC l => [OverlaySpec] -> l -> l
invisible [OverlaySpec]
os = (LaTeX -> LaTeX) -> l -> l
forall l. LaTeXC l => (LaTeX -> LaTeX) -> l -> l
liftL ((LaTeX -> LaTeX) -> l -> l) -> (LaTeX -> LaTeX) -> l -> l
forall a b. (a -> b) -> a -> b
$ \LaTeX
l -> ClassName -> [TeXArg] -> LaTeX
TeXComm ClassName
"invisible" [ [LaTeX] -> TeXArg
MSymArg ([LaTeX] -> TeXArg) -> [LaTeX] -> TeXArg
forall a b. (a -> b) -> a -> b
$ (OverlaySpec -> LaTeX) -> [OverlaySpec] -> [LaTeX]
forall a b. (a -> b) -> [a] -> [b]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (Text -> LaTeX
TeXRaw (Text -> LaTeX) -> (OverlaySpec -> Text) -> OverlaySpec -> LaTeX
forall b c a. (b -> c) -> (a -> b) -> a -> c
. OverlaySpec -> Text
forall a. Render a => a -> Text
render) [OverlaySpec]
os , LaTeX -> TeXArg
FixArg LaTeX
l ]
beamercolor :: LaTeXC l => [OverlaySpec] -> l
beamercolor :: forall l. LaTeXC l => [OverlaySpec] -> l
beamercolor [OverlaySpec]
os = LaTeX -> l
forall l. LaTeXC l => LaTeX -> l
fromLaTeX (LaTeX -> l) -> LaTeX -> l
forall a b. (a -> b) -> a -> b
$ ClassName -> [TeXArg] -> LaTeX
TeXComm ClassName
"color" [ [LaTeX] -> TeXArg
MSymArg ([LaTeX] -> TeXArg) -> [LaTeX] -> TeXArg
forall a b. (a -> b) -> a -> b
$ (OverlaySpec -> LaTeX) -> [OverlaySpec] -> [LaTeX]
forall a b. (a -> b) -> [a] -> [b]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap (Text -> LaTeX
TeXRaw (Text -> LaTeX) -> (OverlaySpec -> Text) -> OverlaySpec -> LaTeX
forall b c a. (b -> c) -> (a -> b) -> a -> c
. OverlaySpec -> Text
forall a. Render a => a -> Text
render) [OverlaySpec]
os ]
overprint :: LaTeXC l => l -> l
overprint :: forall l. LaTeXC l => l -> l
overprint = (LaTeX -> LaTeX) -> l -> l
forall l. LaTeXC l => (LaTeX -> LaTeX) -> l -> l
liftL ((LaTeX -> LaTeX) -> l -> l) -> (LaTeX -> LaTeX) -> l -> l
forall a b. (a -> b) -> a -> b
$ ClassName -> [TeXArg] -> LaTeX -> LaTeX
TeXEnv ClassName
"overprint" []
data OverlaySpec =
OneSlide Int
| FromSlide Int
| ToSlide Int
| FromToSlide Int Int
deriving Int -> OverlaySpec -> ShowS
[OverlaySpec] -> ShowS
OverlaySpec -> ClassName
(Int -> OverlaySpec -> ShowS)
-> (OverlaySpec -> ClassName)
-> ([OverlaySpec] -> ShowS)
-> Show OverlaySpec
forall a.
(Int -> a -> ShowS) -> (a -> ClassName) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> OverlaySpec -> ShowS
showsPrec :: Int -> OverlaySpec -> ShowS
$cshow :: OverlaySpec -> ClassName
show :: OverlaySpec -> ClassName
$cshowList :: [OverlaySpec] -> ShowS
showList :: [OverlaySpec] -> ShowS
Show
instance Render OverlaySpec where
render :: OverlaySpec -> Text
render (OneSlide Int
n) = Int -> Text
forall a. Render a => a -> Text
render Int
n
render (FromSlide Int
n) = Int -> Text
forall a. Render a => a -> Text
render Int
n Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
"-"
render (ToSlide Int
n) = Text
"-" Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Int -> Text
forall a. Render a => a -> Text
render Int
n
render (FromToSlide Int
n Int
m) = Int -> Text
forall a. Render a => a -> Text
render Int
n Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Text
"-" Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Int -> Text
forall a. Render a => a -> Text
render Int
m
block :: LaTeXC l =>
l
-> l
-> l
block :: forall l. LaTeXC l => l -> l -> l
block = (LaTeX -> LaTeX -> LaTeX) -> l -> l -> l
forall l. LaTeXC l => (LaTeX -> LaTeX -> LaTeX) -> l -> l -> l
liftL2 ((LaTeX -> LaTeX -> LaTeX) -> l -> l -> l)
-> (LaTeX -> LaTeX -> LaTeX) -> l -> l -> l
forall a b. (a -> b) -> a -> b
$ \LaTeX
tit -> ClassName -> [TeXArg] -> LaTeX -> LaTeX
TeXEnv ClassName
"block" [ LaTeX -> TeXArg
FixArg LaTeX
tit ]
data CoverOption =
Invisible
| Transparent (Maybe Float)
| Dynamic
| HighlyDynamic
deriving Int -> CoverOption -> ShowS
[CoverOption] -> ShowS
CoverOption -> ClassName
(Int -> CoverOption -> ShowS)
-> (CoverOption -> ClassName)
-> ([CoverOption] -> ShowS)
-> Show CoverOption
forall a.
(Int -> a -> ShowS) -> (a -> ClassName) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> CoverOption -> ShowS
showsPrec :: Int -> CoverOption -> ShowS
$cshow :: CoverOption -> ClassName
show :: CoverOption -> ClassName
$cshowList :: [CoverOption] -> ShowS
showList :: [CoverOption] -> ShowS
Show
instance Render CoverOption where
render :: CoverOption -> Text
render CoverOption
Invisible = Text
"invisible"
render (Transparent Maybe Float
Nothing) = Text
"transparent"
render (Transparent (Just Float
op)) = Text
"transparent=" Text -> Text -> Text
forall a. Semigroup a => a -> a -> a
<> Float -> Text
forall a. Render a => a -> Text
render Float
op
render CoverOption
Dynamic = Text
"dynamic"
render CoverOption
HighlyDynamic = Text
"highlydynamic"
data Opaqueness =
Opaqueness [OverlaySpec] Float
deriving Int -> Opaqueness -> ShowS
[Opaqueness] -> ShowS
Opaqueness -> ClassName
(Int -> Opaqueness -> ShowS)
-> (Opaqueness -> ClassName)
-> ([Opaqueness] -> ShowS)
-> Show Opaqueness
forall a.
(Int -> a -> ShowS) -> (a -> ClassName) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Opaqueness -> ShowS
showsPrec :: Int -> Opaqueness -> ShowS
$cshow :: Opaqueness -> ClassName
show :: Opaqueness -> ClassName
$cshowList :: [Opaqueness] -> ShowS
showList :: [Opaqueness] -> ShowS
Show
setbeamercovered :: LaTeXC l => [CoverOption] -> l
setbeamercovered :: forall l. LaTeXC l => [CoverOption] -> l
setbeamercovered [CoverOption]
co =
LaTeX -> l
forall l. LaTeXC l => LaTeX -> l
fromLaTeX (LaTeX -> l) -> LaTeX -> l
forall a b. (a -> b) -> a -> b
$ ClassName -> [TeXArg] -> LaTeX
TeXComm ClassName
"setbeamercovered" [ LaTeX -> TeXArg
FixArg (LaTeX -> TeXArg) -> LaTeX -> TeXArg
forall a b. (a -> b) -> a -> b
$ Text -> LaTeX
TeXRaw (Text -> LaTeX) -> Text -> LaTeX
forall a b. (a -> b) -> a -> b
$ [CoverOption] -> Text
forall a. Render a => [a] -> Text
renderCommas [CoverOption]
co ]
data Theme =
AnnArbor
| Antibes
| Bergen
| Berkeley
| Berlin
| Boadilla
| CambridgeUS
| Copenhagen
| Darmstadt
| Dresden
| Frankfurt
| Goettingen
| Hannover
| Ilmenau
| JuanLesPins
| Luebeck
| Madrid
| Malmoe
| Marburg
| Montpellier
| PaloAlto
| Pittsburgh
| Rochester
| Singapore
| Szeged
| Warsaw
| Boxes
| Default
| CustomTheme String
deriving (Theme -> Theme -> Bool
(Theme -> Theme -> Bool) -> (Theme -> Theme -> Bool) -> Eq Theme
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Theme -> Theme -> Bool
== :: Theme -> Theme -> Bool
$c/= :: Theme -> Theme -> Bool
/= :: Theme -> Theme -> Bool
Eq,Int -> Theme -> ShowS
[Theme] -> ShowS
Theme -> ClassName
(Int -> Theme -> ShowS)
-> (Theme -> ClassName) -> ([Theme] -> ShowS) -> Show Theme
forall a.
(Int -> a -> ShowS) -> (a -> ClassName) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> Theme -> ShowS
showsPrec :: Int -> Theme -> ShowS
$cshow :: Theme -> ClassName
show :: Theme -> ClassName
$cshowList :: [Theme] -> ShowS
showList :: [Theme] -> ShowS
Show)
instance Render Theme where
render :: Theme -> Text
render (CustomTheme ClassName
str) = ClassName -> Text
forall a. IsString a => ClassName -> a
fromString ClassName
str
render Theme
x = ClassName -> Text
forall a. IsString a => ClassName -> a
fromString (ClassName -> Text) -> ClassName -> Text
forall a b. (a -> b) -> a -> b
$ Theme -> ClassName
forall a. Show a => a -> ClassName
show Theme
x
usetheme :: LaTeXC l => Theme -> l
usetheme :: forall l. LaTeXC l => Theme -> l
usetheme Theme
th = LaTeX -> l
forall l. LaTeXC l => LaTeX -> l
fromLaTeX (LaTeX -> l) -> LaTeX -> l
forall a b. (a -> b) -> a -> b
$ ClassName -> [TeXArg] -> LaTeX
TeXComm ClassName
"usetheme" [ LaTeX -> TeXArg
FixArg (LaTeX -> TeXArg) -> LaTeX -> TeXArg
forall a b. (a -> b) -> a -> b
$ Text -> LaTeX
TeXRaw (Text -> LaTeX) -> Text -> LaTeX
forall a b. (a -> b) -> a -> b
$ Theme -> Text
forall a. Render a => a -> Text
render Theme
th ]