Font Catalogue
The \LaTeX font catalogue is a listing of a wide variety of fonts with examples. Let's explore how to use those fonts in Reanimate.
Fetamont
Go to https://tug.org/FontCatalogue/fetamont/ and look under the Usage
section. There you can find \LaTeX preamble code and style selector code. The preamble looks like this:
\usepackage{fetamont}
\usepackage[T1]{fontenc}
And the style selector looks like this: \ffmfamily
Armed with this information, we can create a TeX configuration in Reanimate:
fetamont = TexConfig LaTeX ["\\usepackage{fetamont}" ,"\\usepackage[T1]{fontenc}"] ["\\ffmfamily"] animation :: Animation animation = scene $ showCfg "Fetamont" fetamont showCfg :: T.Text -> TexConfig -> Scene s () showCfg name cfg = do let title = scale 2 $ center $ latexCfg cfg name line1 = center $ latexCfg cfg "Pack My Box" line2 = center $ latexCfg cfg "With Five Dozen" line3 = center $ latexCfg cfg "Liquour Jugs" header <- oNew title oModify header $ oTopY .~ screenTop oShow header l1 <- oNew line1 l1 `oBelow` header oShow l1 l2 <- oNew line2 l2 `oBelow` l1 oShow l2 l3 <- oNew line3 l3 `oBelow` l2 oShow l3 wait 1 oBelow a b = do aBot <- oRead b oBottomY oModifyS a $ do oMarginTop .= 0 oTopY .= aBot
Inconsolata
Configuration code for Inconsolata can be found here: https://tug.org/FontCatalogue/inconsolata/
inconsolata = TexConfig LaTeX ["\\usepackage{inconsolata}" ,"\\renewcommand*\\familydefault{\\ttdefault}" ,"\\usepackage[T1]{fontenc}"] ["\\normalfont"] animation :: Animation animation = scene $ showCfg "Inconsolata" inconsolata showCfg :: T.Text -> TexConfig -> Scene s () showCfg name cfg = do let title = scale 2 $ center $ latexCfg cfg name line1 = center $ latexCfg cfg "Pack My Box" line2 = center $ latexCfg cfg "With Five Dozen" line3 = center $ latexCfg cfg "Liquour Jugs" header <- oNew title oModify header $ oTopY .~ screenTop oShow header l1 <- oNew line1 l1 `oBelow` header oShow l1 l2 <- oNew line2 l2 `oBelow` l1 oShow l2 l3 <- oNew line3 l3 `oBelow` l2 oShow l3 wait 1 oBelow a b = do aBot <- oRead b oBottomY oModifyS a $ do oMarginTop .= 0 oTopY .= aBot
Computer Modern
Computer modern is the default font. It's presented here as a reference and as a point of comparison.
-- Default font so no need to do anything. computerModern = TexConfig LaTeX [] [] animation :: Animation animation = scene $ showCfg "Computer Modern" computerModern showCfg :: T.Text -> TexConfig -> Scene s () showCfg name cfg = do let title = scale 2 $ center $ latexCfg cfg name line1 = center $ latexCfg cfg "Pack My Box" line2 = center $ latexCfg cfg "With Five Dozen" line3 = center $ latexCfg cfg "Liquour Jugs" header <- oNew title oModify header $ oTopY .~ screenTop oShow header l1 <- oNew line1 l1 `oBelow` header oShow l1 l2 <- oNew line2 l2 `oBelow` l1 oShow l2 l3 <- oNew line3 l3 `oBelow` l2 oShow l3 wait 1 oBelow a b = do aBot <- oRead b oBottomY oModifyS a $ do oMarginTop .= 0 oTopY .= aBot
Missing fonts
Fonts only work if they are installed in your TeX setup. If a font is missing, you'll get a cryptic error message like this:
clayTablet = TexConfig LaTeX ["\\usepackage{fontspec}" ,"\\setmainfont{QTClaytablet}"] ["\\normalfont"] animation :: Animation animation = scene $ showCfg "Claytablet" clayTablet showCfg :: T.Text -> TexConfig -> Scene s () showCfg name cfg = do let title = scale 2 $ center $ latexCfg cfg name line1 = center $ latexCfg cfg "Pack My Box" line2 = center $ latexCfg cfg "With Five Dozen" line3 = center $ latexCfg cfg "Liquour Jugs" header <- oNew title oModify header $ oTopY .~ screenTop oShow header l1 <- oNew line1 l1 `oBelow` header oShow l1 l2 <- oNew line2 l2 `oBelow` l1 oShow l2 l3 <- oNew line3 l3 `oBelow` l2 oShow l3 wait 1 oBelow a b = do aBot <- oRead b oBottomY oModifyS a $ do oMarginTop .= 0 oTopY .= aBot