content: 
  {-# LANGUAGE OverloadedStrings #-}
  
  module Text.LaTeX.Packages.LongTable
   ( -- * longtable package
     longtablep
     -- * longtable commands
   , longtable
   , endfirsthead
   , endhead
   , endfoot
   , endlastfoot
     -- * Package Options
     ) where
  
  import Text.LaTeX.Base.Syntax (LaTeX(TeXEnv, TeXRaw, TeXComm), TeXArg(FixArg, OptArg))
  import Text.LaTeX.Base.Class (LaTeXC, fromLaTeX, liftL)
  import Text.LaTeX.Base.Render (render, renderAppend)
  import Text.LaTeX.Base.Types (PackageName, Pos, TableSpec)
  
  -- | longtable package. Use it to import it like this:
  --
  -- > usepackage [] longtable
  longtablep :: PackageName
  longtablep = "longtable"
  
  
  -- | The 'longtable' environment can be used to typeset multi-page tables.
  longtable :: LaTeXC l =>
               Maybe Pos   -- ^ This optional parameter can be used to specify the vertical position of the table.
                           --   Defaulted to 'Center'.
            -> [TableSpec] -- ^ Table specification of columns and vertical lines.
            -> l           -- ^ Table content. See '&', 'lnbk', 'hline' and 'cline'.
            -> l           -- ^ Resulting table syntax.
  longtable Nothing ts  = liftL $ TeXEnv "longtable" [ FixArg $ TeXRaw $ renderAppend ts ]
  longtable (Just p) ts = liftL $ TeXEnv "longtable" [ OptArg $ TeXRaw $ render p , FixArg $ TeXRaw $ renderAppend ts ]
  
  -- | End the first head.
  --
  -- Everything above this command will appear at the beginning of the
  -- table, in the first page.
  endfirsthead :: LaTeXC l => l
  endfirsthead = fromLaTeX $ TeXComm "endfirsthead" []
  
  -- | End the head.
  --
  -- Whatever you put before this command and below \endfirsthead will
  -- be displayed at the top of the table in every page except the first
  -- one.
  endhead :: LaTeXC l => l
  endhead = fromLaTeX $ TeXComm "endhead" []
  
  -- | End the foot.
  --
  -- Similar to \endhead, what you put after \endhead and before this
  -- command will appear at the bottom of the table in every page except
  -- the last one.
  endfoot :: LaTeXC l => l
  endfoot = fromLaTeX $ TeXComm "endfoot" []
  
  -- | End the last foot.
  --
  -- Similar to \endfisthead. The elements after \endfoot and before
  -- this command will be displayed at the bottom of the table but only
  -- in the last page where the table appears.
  endlastfoot :: LaTeXC l => l
  endlastfoot = fromLaTeX $ TeXComm "endlastfoot" []
  