module Text.LaTeX.LambdaTeX.Package.Internal where
import Text.LaTeX.Base.Syntax
import Text.LaTeX.LambdaTeX.Package.Types
import Text.LaTeX.LambdaTeX.Types
injectPackageDependencies :: [PackageDep] -> LaTeX -> LaTeX
injectPackageDependencies ps = go
where
go t@(TeXComm "documentclass" _) = TeXSeq t packages
go (TeXSeq t1 t2) = TeXSeq (go t1) (go t2)
go c = c
packages :: LaTeX
packages = mconcat $ map (\(PackageDep name args) -> usepackage args name) ps
usepackage :: [LaTeX] -> Text -> LaTeX
usepackage ls pn = TeXComm "usepackage" [MOptArg ls, FixArg $ TeXRaw pn]