Skip to content
This repository has been archived by the owner on Sep 28, 2023. It is now read-only.

Commit

Permalink
Merge pull request #39 from romildo/master
Browse files Browse the repository at this point in the history
Add the `relsize` latex package
  • Loading branch information
Daniel-Diaz committed Nov 8, 2014
2 parents 863ffaa + b9d78c8 commit e0d1ddc
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 0 deletions.
1 change: 1 addition & 0 deletions HaTeX.cabal
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,7 @@ Library
Text.LaTeX.Packages.Graphicx
Text.LaTeX.Packages.Hyperref
Text.LaTeX.Packages.Inputenc
Text.LaTeX.Packages.Relsize
-- Trees
Text.LaTeX.Packages.Trees
Text.LaTeX.Packages.Trees.Qtree
Expand Down
62 changes: 62 additions & 0 deletions Text/LaTeX/Packages/Relsize.hs
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@

-- | The @relsize@ package is used to set the font size relative to the
-- current size.
--
-- CTAN page for relsize: <http://ctan.org/pkg/relsize>.
module Text.LaTeX.Packages.Relsize
( -- * Relsize package
prelsize
-- * Commands
, relsize
, larger, smaller
, relscale
, textlarger, textsmaller, textscale
) where

import Text.LaTeX.Base.Class
import Text.LaTeX.Base.Render (rendertex)
import Text.LaTeX.Base.Syntax
import Text.LaTeX.Base.Types

-- | The 'prelsize' package.
-- Example:
--
-- > usepackage [] prelsize
prelsize :: ClassName
prelsize = "relsize"

-- Commands

-- | Change font size by 'i' steps. A step is a number of '\magsteps' to
-- change size; from this are defined commands '\larger', '\smaller',
-- '\textlarger', etc.
relsize :: LaTeXC l => Int -> l
relsize i = fromLaTeX $ TeXComm "relsize" [FixArg $ rendertex i]

-- | Increase font size by (optional) 'i' steps (default 1).
larger :: LaTeXC l => Maybe Int -> l
larger Nothing = comm0 "larger"
larger (Just i) = fromLaTeX $ TeXComm "larger" [OptArg $ rendertex i]

-- | Reduce font size by 'i' steps (default 1).
smaller :: LaTeXC l => Maybe Int -> l
smaller Nothing = comm0 "smaller"
smaller (Just i) = fromLaTeX $ TeXComm "smaller" [OptArg $ rendertex i]

-- | Change font size by scale factor 'f'.
relscale :: LaTeXC l => Float -> l
relscale f = fromLaTeX $ TeXComm "relscale" [FixArg $ rendertex f]

-- | Text size enlarged by (optional) 'i' steps.
textlarger :: LaTeXC l => Maybe Int -> l -> l
textlarger Nothing = comm1 "textlarger"
textlarger (Just i) = liftL $ \l -> TeXComm "textlarger" [OptArg $ rendertex i, FixArg l]

-- | Text size reduced by (optional) 'i' steps.
textsmaller :: LaTeXC l => Maybe Int -> l -> l
textsmaller Nothing = comm1 "textsmaller"
textsmaller (Just i) = liftL $ \l -> TeXComm "textsmaller" [OptArg $ rendertex i, FixArg l]

-- | Text size scaled by factor 'f'.
textscale :: LaTeXC l => Float -> l -> l
textscale f = liftL $ \l -> TeXComm "textscale" [FixArg $ rendertex f, FixArg l]

0 comments on commit e0d1ddc

Please sign in to comment.