Flatten camel case text in LaTeX files.
smallcaps is a pre-processor library for LaTeX files. The library comes with an executable that makes most functionality accessible through a command line interface. The pre-processor formats sequences of uppercase letters with TeX's \small
macro or whatever you configure. Uppercase letters at the beginning of sentences are not formatted. Other formatting conditions can be configured by the user.
The executable can be configured through its command line arguments as well as through TeX comments. In the default configuration, lesscase does not change the content of any macro argument or environment (different from document). More and less restrictive configuration profiles can be activated and adapted. Configurations can be stored and restored at any time, even while processing the input file.
Text.SmallCaps
exports the main program as library.
Text.SmallCaps.Config
specifies the default configuration values for
Text.SmallCaps
.Text.SmallCaps.TeXParser
parses
Text
to aTeXElement
token stream.Text.SmallCaps.TeXLaTeXParser
parses a
TeXElement
token stream and produces aLaTeXElement
token stream.Text.SmallCaps.DocumentParser
replaces uppercase letters in
LaTeXElement
token streams.
A simple program can be defined as
import Data.Default ( def )
import Text.SmallCaps ( smallcaps )
import Text.SmallCaps.Config ( defaultProfile )
main = smallcaps def defaultProfile
This is virtually all the code that is necessary to implement the executable lesscase
. Have a look in the source of the executable twocase
which only formats sequences of two or more uppercase letters. It is a good reference for understanding the API changes that took place between the revisions 0.5 and 0.6.