HaTeX-3.16.1.0: The Haskell LaTeX library.

Safe HaskellSafe-Inferred
LanguageHaskell2010

Text.LaTeX.Base.Render

Contents

Description

The final purpose of this module is to render a Text value from a LaTeX value. The interface is abstracted via a typeclass so you can cast to Text other types as well. Also, some other handy Text-related functions are defined.

Synopsis

Re-exports

data Text :: *

A space efficient, packed, unboxed Unicode text type.

Instances

IsList Text 
Eq Text 
Data Text

This instance preserves data abstraction at the cost of inefficiency. We omit reflection services for the sake of data abstraction.

This instance was created by copying the updated behavior of Data.Set.Set and Data.Map.Map. If you feel a mistake has been made, please feel free to submit improvements.

The original discussion is archived here: could we get a Data instance for Data.Text.Text?

The followup discussion that changed the behavior of Set and Map is archived here: Proposal: Allow gunfold for Data.Map, ...

Ord Text 
Read Text 
Show Text 
IsString Text 
Monoid Text 
NFData Text 
Semigroup Text 
Pretty Text 
Render Text

This instance escapes LaTeX reserved characters.

Texy Text 
Typeable * Text 
Monad m => Stream Text m Char 
type Item Text = Char 

Render class

class Show a => Render a where Source

Class of values that can be transformed to Text. You mainly will use this to obtain the Text output of a LaTeX value. If you are going to write the result in a file, consider to use renderFile.

Consider also to use rendertex to get Renderable values into LaTeX blocks.

If you want to make a type instance of Render and you already have a Show instance, you can use the default instance.

render = fromString . show

Minimal complete definition

Nothing

Methods

render :: a -> Text Source

renderAppend :: Render a => [a] -> Text Source

Render every element of a list and append results.

renderChars :: Render a => Char -> [a] -> Text Source

Render every element of a list and append results, separated by the given Char.

renderCommas :: Render a => [a] -> Text Source

Render every element of a list and append results, separated by commas.

renderFile :: Render a => FilePath -> a -> IO () Source

Use this function to render a LaTeX (or another one in the Render class) value directly in a file.

rendertex :: (Render a, LaTeXC l) => a -> l Source

If you can transform a value to Text, you can insert that Text in your LaTeX code. That is what this function does.

Warning: rendertex does not escape LaTeX reserved characters. Use protectText to escape them.

Reading files

readFileTex :: FilePath -> IO Text Source

If you are going to insert the content of a file in your LaTeX data, use this function to ensure your encoding is correct.

Util

showFloat :: RealFloat a => a -> String Source

Show a signed floating number using standard decimal notation using 5 decimals.