# Overview

The TeX engine does not provide good error messages or warnings; the messages are mixed in with lots of superfluous output, some errors don't have file and line numbers, there is no consist formatting for messages, syntax errors can lead to very confusing messages, errors in code using packages like tikz are non-intuitive. This package implements a LaTeX checker that uses parsec for great error messages while parsing while also implementing many lint style checks. The ambitious goal is to check the majority of TeX errors so that these errors can be discovered in a common format and loaded into editors like Vim. Also, provide much better error messages which are understandable by the user.

# Usage

The checker can be used in one of two ways: through a command line program lacandle and through a haskell library. Basic usage of lacandle is

lacandle [options] [filenames]


The options are described in detail below and are mostly options to enable or disable certian warnings and lint checks. Any errors, warnings, or lint found by the checker is written to standard output. The format for messages is the following.

file:line:col: message
file:line:col-col: a message spanning multiple columns
file:line:col:+ first message line
second message line
another message line
file:line:col-col:+ a multiple column message
second message line


## Vim Integration

The plan is to integrate with syntastic, although this still needs to be written.

-b, --only-body ~ If this flag is passed, the document is assumed to consit only of LaTeX which is valid between the \begin{document} and \end{document}. If neither this option nor --full-document are passed, the option is detected based on the presense of a documentclass command.
-f, --full-document ~ If this flag is passed, the document is required to start with the documentclass command. If neither this option nor --only-body are passed, the option is detected based on the presense of a documentclass command.