lambdatex- Type-Safe LaTeX EDSL

Safe HaskellNone




TODO(kerckhove) big example here!



buildLaTeXProject :: MonadIO m => ΛTeXT m a -> ProjectConfig -> m (Either [ΛError] ()) Source #

Build all the files for a LaTeX project given by a ΛTeXT generator This either returns Left with an error or Right () to signify success.

This function takes care of some of the LaTeX tediousness:

  • LaTeX file generation
  • Automatic bibtex file generation
  • All safety provided by execLambdaTeXT (in the form of textual errors)
  • Automatic asynchronic resolution of IO dependencies for graphviz or tikz figures

execLambdaTeXT :: Monad m => ΛTeXT m a -> GenerationConfig -> m ([ΛError], LaTeX, [Reference], [(String, FilePath -> IO ())]) Source #

Execute a ΛTeXT generation This either returns a tuple of the errors and a tuple of the resulting LaTeX value and a list of external references that need to be put into a bibtex file.

This function takes care of a lot of safety issues:

  • Subset selection. This allows you to build large documents in parts.
  • External dependency selection. No more ?? for external references in the output pdf.
  • Internal dependency safety. No more ?? for external references in the internal pdf.
  • Package dependency resolution, TODO(kerckhove) with packages in the right order
  • Dependency selection of figure dependencies on graphviz or tikz figures


defaultProjectConfig :: ProjectConfig Source #

Default project configuration.

Modify this instead of building your own ProjectConfig

defaultGenerationConfig :: GenerationConfig Source #

Default generation config.

Modify this instead of building your own GenerationConfig



Packages dependencies

IO dependencies