# Features

ChkTeX begins to get quite a few bells & whistles now. However, you should be aware of that in most cases, all this is transparent to the user. As you will see, ChkTeX offers the ability to adapt to many environments and configurations.

- Supports over 40 warnings. Warnings include:
  - Commands terminated with space. Ignores “`\`tt”, etc.
  - Space in front of references instead of “˜”.
  - Forgetting to group parenthesis characters when sub-/superscripting.
  - Italic correction (“`\`/”) mistakes (double, missing, unnecessary).
  - Parenthesis and environment matching.
  - Ellipsis detection; also checks whether to use “`\`dots”, “`\`cdots” or “`\`ldots”.
  - Enforcement of normal space after abbreviation. Detects most abbreviations automagically.
  - Enforcement of end-of-sentence space when the last sentence ended with capital letter.
  - Math-mode on/off detection.
  - Quote checking, both wrong types (“"”) and wrong direction.
  - Recommends splitting three quotes in a row.
  - Searching for user patterns.
  - Displays comments.
  - Space in front of “`\`label” and similar commands.
  - Use of “x” instead of “$`\`times$” between numbers.
  - Multiple spaces in input which will be rendered as one space (or multiple spaces, where that is undesirable).
  - Warns about text which may be ignored.
  - Mathematical operators typeset as variables.
  - No space in front of/after parenthesis.
  - Demands a consistent quote style.
  - Punctuation inside inner math mode/outside display math mode.
  - Use of TEX primitives where LATEX equivalents are available.
  - Space in front of footnotes.
  - Bogus characters following commands.
  - Ability to suppress warnings on a single line.
- Fully customizable. Intelligent resource format makes it possible to make ChkTeX respect your LATEX setup. Even command-line options may be specified globally in the “chktexrc” file.
- Supports “`\`input” command; both TEX and LATEX version. Actually includes the files. “TEXINPUTS”-equivalent search path.
- Intelligent warning/error handling. The user may promote/mute warnings to suit his preferences. You may also mute warnings in the header of a file; thus killing much unwanted garbage.
- Scripts included for checking CWEB files written in LATEX. (Requires perl v5).
- Supports both LATEX 2.09 and LATEX2e.
- Flexible output handling. Has some predefined formats and lets the user specify his own format. Uses a “printf()” similar syntax. “lacheck” compatible mode included for interfacing with systems which only support lacheck.
- Written in ANSI C. “configure” script included for easy setup and installation on UNIX systems.

Still, it is important to realize that the output from ChkTeX is only intended as a guide to fixing faults. However, it is by no means always correct. This means that correct LATEX code may produce errors in ChkTeX, and vice versa: Incorrect LATEX code may pass silently through.