highlighting-kate-0.6: Syntax highlighting

Copyright | Copyright (C) 2008-2011 John MacFarlane
License | GNU GPL, version 2 or above
Maintainer | John MacFarlane <jgm@berkeley.edu>
Stability | alpha
Portability | portable
Safe Haskell | Safe
Language | Haskell98

Text.Highlighting.Kate.Format.LaTeX

Description

Formatters that convert a list of annotated source lines to LaTeX.

Synopsis

- formatLaTeXInline :: FormatOptions -> [SourceLine] -> String
- formatLaTeXBlock :: FormatOptions -> [SourceLine] -> String
- styleToLaTeX :: Style -> String

# Documentation

formatLaTeXInline :: FormatOptions -> [SourceLine] -> String

Formats tokens as LaTeX using custom commands inside `|` characters. Assumes that `|` is defined as a short verbatim command by the macros produced by `styleToLaTeX`. A `KeywordTok` is rendered using `\KeywordTok{..}`, and so on.

formatLaTeXBlock :: FormatOptions -> [SourceLine] -> String

Format tokens as a LaTeX `Highlighting` environment inside a `Shaded` environment. `Highlighting` and `Shaded` are defined by the macros produced by `styleToLaTeX`. `Highlighting` is a verbatim environment using `fancyvrb`; `\`, `{`, and `}` have their normal meanings inside this environment, so that formatting commands work. `Shaded` is either nothing (if the style's background color is default) or a `snugshade` environment from `framed`, providing a background color for the whole code block, even if it spans multiple pages.

styleToLaTeX :: Style -> String

Converts a `Style` to a set of LaTeX macro definitions, which should be placed in the document's preamble. Note: default LaTeX setup doesn't allow boldface typewriter font. To make boldface work in styles, you need to use a different typewriter font. This will work for computer modern:

    \DeclareFontShape{OT1}{cmtt}{bx}{n}{<5><6><7><8><9><10><10.95><12><14.4><17.28><20.74><24.88>cmttb10}{}

Or, with xelatex:

    \usepackage{fontspec}
    \setmainfont[SmallCapsFont={* Caps}]{Latin Modern Roman}
    \setsansfont{Latin Modern Sans}
    \setmonofont[SmallCapsFont={Latin Modern Mono Caps}]{Latin Modern Mono Light}