chktex
chktex documentation
- Version in Mega-Linter: 1.7.6
- Visit Official Web Site
- See How to configure chktex rules
- If custom
.chktexrc
config file is not found, .chktexrc will be used
- If custom
Configuration in Mega-Linter
- Enable chktex by adding
LATEX_CHKTEX
in ENABLE_LINTERS variable - Disable chktex by adding
LATEX_CHKTEX
in DISABLE_LINTERS variable
Variable | Description | Default value |
---|---|---|
LATEX_CHKTEX_ARGUMENTS | User custom arguments to add in linter CLI call Ex: -s --foo "bar" |
|
LATEX_CHKTEX_FILTER_REGEX_INCLUDE | Custom regex including filter Ex: (src\|lib) |
Include every file |
LATEX_CHKTEX_FILTER_REGEX_EXCLUDE | Custom regex excluding filter Ex: (test\|examples) |
Exclude no file |
LATEX_CHKTEX_CLI_LINT_MODE | Override default CLI lint mode - file : Calls the linter for each file- list_of_files : Call the linter with the list of files as argument- project : Call the linter from the root of the project |
{linter.cli_lint_mode} |
LATEX_CHKTEX_FILE_EXTENSIONS | Allowed file extensions. "*" matches any extension, "" matches empty extension. Empty list excludes all filesEx: [".py", ""] |
[".tex"] |
LATEX_CHKTEX_FILE_NAMES_REGEX | File name regex filters. Regular expression list for filtering files by their base names using regex full match. Empty list includes all files Ex: ["Dockerfile(-.+)?", "Jenkinsfile"] |
Include every file |
LATEX_CHKTEX_PRE_COMMANDS | List of bash commands to run before the linter | None |
LATEX_CHKTEX_POST_COMMANDS | List of bash commands to run after the linter | None |
LATEX_CHKTEX_CONFIG_FILE | chktex configuration file nameUse LINTER_DEFAULT to let the linter find it |
.chktexrc |
LATEX_CHKTEX_RULES_PATH | Path where to find linter configuration file | Workspace folder, then Mega-Linter default rules |
LATEX_CHKTEX_DISABLE_ERRORS | Run linter but consider errors as warnings | false |
LATEX_CHKTEX_DISABLE_ERRORS_IF_LESS_THAN | Maximum number of errors allowed | 0 |
IDE Integration
Use chktex in your favorite IDE to catch errors before Mega-Linter !
IDE | Extension Name | Install | |
---|---|---|---|
Atom | linter-chktex | Visit Web Site | |
Visual Studio Code | latex-workshop |
Mega-Linter Flavours
This linter is available in the following flavours
Flavor | Description | Embedded linters | Info | |
---|---|---|---|---|
all | Default Mega-Linter Flavor | 94 |
Behind the scenes
How are identified applicable files
- File extensions:
.tex
How the linting is performed
- chktex is called one time by identified file
Example calls
chktex -q myfile.tex
chktex -q -l .chktexrc myfile.tex
Help content
ChkTeX v1.7.6 - Copyright 1995-96 Jens T. Berger Thielemann.
Compiled with POSIX extended regex support.
ChkTeX comes with ABSOLUTELY NO WARRANTY; details on this and
distribution conditions in the GNU General Public License file.
Type "ChkTeX -h" for help, "ChkTeX -i" for distribution info.
Author: Jens Berger.
Bug reports: https://savannah.nongnu.org/bugs/?group=chktex
or darthandrus@gmail.com
Press Ctrl-D to terminate stdin input.
Usage of ChkTeX v1.7.6
~~~~~~~~~~~~~~~~~~~~~~
Template
~~~~~~~~
chktex [-hiqrW] [-v[0-...]] [-l <rcfile>] [-[wemn] <[1-42]|all>]
[-d[0-...]] [-p <name>] [-o <outfile>] [-[btxgI][0|1]]
file1 file2 ...
----------------------------------------------------------------------
Description of options:
~~~~~~~~~~~~~~~~~~~~~~~
Misc. options
~~~~~~~~~~~~~
-h --help : This text.
-i --license : Show distribution information
-l --localrc : Read local .chktexrc formatted file.
-d --debug : Debug information. Give it a number.
-r --reset : Reset settings to default.
Muting warning messages:
~~~~~~~~~~~~~~~~~~~~~~~~
-w --warnon : Makes msg # given a warning and turns it on.
-e --erroron : Makes msg # given an error and turns it on.
-m --msgon : Makes msg # given a message and turns it on.
-n --nowarn : Mutes msg # given.
-L --nolinesupp: Disables per-line suppressions.
Output control flags:
~~~~~~~~~~~~~~~~~~~~~
-v --verbosity : How errors are displayed.
Default 1, 0=Less, 2=Fancy, 3=lacheck.
-V --pipeverb : How errors are displayed when stdout != tty.
Defaults to the same as -v.
-s --splitchar : String used to split fields when doing -v0
-o --output : Redirect error report to a file.
-q --quiet : Shuts up about version information.
-p --pseudoname: Input file-name when reporting.
-f --format : Format to use for output
Boolean switches (1 -> enables / 0 -> disables):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-b --backup : Backup output file.
-x --wipeverb : Ignore contents of `\verb' commands.
-g --globalrc : Read global .chktexrc file.
-I --inputfiles: Execute \input statements.
-H --headererr : Show errors found in front of \begin{document}
Miscellaneous switches:
~~~~~~~~~~~~~~~~~~~~~~~
-W --version : Version information
----------------------------------------------------------------------
If no LaTeX files are specified on the command line, we will read from
stdin. For explanation of warning/error messages, please consult the
main documentation ChkTeX.dvi, ChkTeX.ps or ChkTeX.pdf:
http://www.nongnu.org/chktex/ChkTeX.pdf
Any of the above arguments can be made permanent by setting them in the
chktexrc file (~/.chktexrc).
Installation on mega-linter Docker image
- Dockerfile commands :
FROM ghcr.io/assignuser/chktex-alpine:latest as chktex
COPY --from=chktex /usr/bin/chktex /usr/bin/
RUN cd ~ && touch .chktexrc
Example success log
Results of chktex linter (version 1.7.6)
See documentation on https://megalinter.github.io/descriptors/latex_chktex/
-----------------------------------------------
[SUCCESS] .automation/test/latex/latex_good_1.tex
Example error log
Results of chktex linter (version 1.7.6)
See documentation on https://megalinter.github.io/descriptors/latex_chktex/
-----------------------------------------------
[ERROR] .automation/test/latex/latex_bad_1.tex
Warning 1 in .automation/test/latex/latex_bad_1.tex line 12: Command terminated with space.
\foo This is an error.
Warning 1 in .automation/test/latex/latex_bad_1.tex line 13: Command terminated with space.
So is this \foo
Warning 47 in .automation/test/latex/latex_bad_1.tex line 18: `section' expected, found `text' (ConTeXt).
\stoptext
Warning 2 in .automation/test/latex/latex_bad_1.tex line 22: Non-breaking space (`~') should have been used.
This is a faulty reference to \ref{foo}
Warning 3 in .automation/test/latex/latex_bad_1.tex line 27: You should enclose the previous parenthesis with `{}'.
$[(ab)^{-1}]^{-2}$ is not beautiful
Warning 3 in .automation/test/latex/latex_bad_1.tex line 27: You should enclose the previous parenthesis with `{}'.
$[(ab)^{-1}]^{-2}$ is not beautiful
Warning 6 in .automation/test/latex/latex_bad_1.tex line 32: No italic correction (`\/') found.
Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
Warning 42 in .automation/test/latex/latex_bad_1.tex line 32: You should remove spaces in front of `\/'
Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
Warning 4 in .automation/test/latex/latex_bad_1.tex line 32: Italic correction (`\/') found in non-italic buffer.
Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
Warning 28 in .automation/test/latex/latex_bad_1.tex line 32: Don't use \/ in front of small punctuation.
Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
Warning 42 in .automation/test/latex/latex_bad_1.tex line 32: You should remove spaces in front of `\/'
Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
Warning 5 in .automation/test/latex/latex_bad_1.tex line 32: Italic correction (`\/') found more than once.
Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
Warning 42 in .automation/test/latex/latex_bad_1.tex line 37: You should remove spaces in front of `\/'
Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
Warning 4 in .automation/test/latex/latex_bad_1.tex line 37: Italic correction (`\/') found in non-italic buffer.
Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
Warning 4 in .automation/test/latex/latex_bad_1.tex line 37: Italic correction (`\/') found in non-italic buffer.
Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
Warning 42 in .automation/test/latex/latex_bad_1.tex line 37: You should remove spaces in front of `\/'
Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
Warning 4 in .automation/test/latex/latex_bad_1.tex line 37: Italic correction (`\/') found in non-italic buffer.
Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
Warning 4 in .automation/test/latex/latex_bad_1.tex line 37: Italic correction (`\/') found in non-italic buffer.
Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
Warning 4 in .automation/test/latex/latex_bad_1.tex line 38: Italic correction (`\/') found in non-italic buffer.
Testing \textem{italic\/} in this \textit{sentence}, as \textem{you see}.
Warning 7 in .automation/test/latex/latex_bad_1.tex line 42: Accent command `\'' needs use of `\i'.
This \'is a test of $\hat{j}$ accents.
Warning 7 in .automation/test/latex/latex_bad_1.tex line 42: Accent command `\hat' needs use of `\jmath'.
This \'is a test of $\hat{j}$ accents.
Warning 8 in .automation/test/latex/latex_bad_1.tex line 47: Wrong length of dash may have been used.
It wasn't anything - just a 2---3 star--shots.
Warning 8 in .automation/test/latex/latex_bad_1.tex line 47: Wrong length of dash may have been used.
It wasn't anything - just a 2---3 star--shots.
Warning 8 in .automation/test/latex/latex_bad_1.tex line 47: Wrong length of dash may have been used.
It wasn't anything - just a 2---3 star--shots.
Warning 8 in .automation/test/latex/latex_bad_1.tex line 57: Wrong length of dash may have been used.
The Birch--Swinnerton--Dyer conjecture is not correct.
Warning 8 in .automation/test/latex/latex_bad_1.tex line 57: Wrong length of dash may have been used.
The Birch--Swinnerton--Dyer conjecture is not correct.
Warning 37 in .automation/test/latex/latex_bad_1.tex line 64: You should avoid spaces in front of parenthesis.
)}{[])} }}}]]])))
Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `)' found.
)}{[])} }}}]]])))
Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `}' found.
)}{[])} }}}]]])))
Warning 9 in .automation/test/latex/latex_bad_1.tex line 64: `}' expected, found `)'.
)}{[])} }}}]]])))
Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `}' found.
)}{[])} }}}]]])))
Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `}' found.
)}{[])} }}}]]])))
Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `}' found.
)}{[])} }}}]]])))
Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `}' found.
)}{[])} }}}]]])))
Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `]' found.
)}{[])} }}}]]])))
Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `]' found.
)}{[])} }}}]]])))
Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `]' found.
)}{[])} }}}]]])))
Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `)' found.
)}{[])} }}}]]])))
Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `)' found.
)}{[])} }}}]]])))
Warning 10 in .automation/test/latex/latex_bad_1.tex line 64: Solo `)' found.
)}{[])} }}}]]])))
Warning 9 in .automation/test/latex/latex_bad_1.tex line 69: `baz' expected, found `quux'.
\begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo}
Warning 9 in .automation/test/latex/latex_bad_1.tex line 69: `quux' expected, found `baz'.
\begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo}
Warning 10 in .automation/test/latex/latex_bad_1.tex line 69: Solo `asoi' found.
\begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo}
Warning 11 in .automation/test/latex/latex_bad_1.tex line 75: You should use \ldots to achieve an ellipsis.
Foo...bar. $1,...,3$. $1+...+3$. $1,\cdots,3$. $1\cdot\ldots\cdot3$.
Warning 11 in .automation/test/latex/latex_bad_1.tex line 75: You should use \ldots to achieve an ellipsis.
Foo...bar. $1,...,3$. $1+...+3$. $1,\cdots,3$. $1\cdot\ldots\cdot3$.
Warning 11 in .automation/test/latex/latex_bad_1.tex line 75: You should use \cdots to achieve an ellipsis.
Foo...bar. $1,...,3$. $1+...+3$. $1,\cdots,3$. $1\cdot\ldots\cdot3$.
Warning 11 in .automation/test/latex/latex_bad_1.tex line 75: You should use \ldots to achieve an ellipsis.
Foo...bar. $1,...,3$. $1+...+3$. $1,\cdots,3$. $1\cdot\ldots\cdot3$.
Warning 11 in .automation/test/latex/latex_bad_1.tex line 75: You should use \cdots to achieve an ellipsis.
Foo...bar. $1,...,3$. $1+...+3$. $1,\cdots,3$. $1\cdot\ldots\cdot3$.
Warning 12 in .automation/test/latex/latex_bad_1.tex line 80: Interword spacing (`\ ') should perhaps be used.
1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
Warning 12 in .automation/test/latex/latex_bad_1.tex line 80: Interword spacing (`\ ') should perhaps be used.
1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
Warning 12 in .automation/test/latex/latex_bad_1.tex line 80: Interword spacing (`\ ') should perhaps be used.
1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
Warning 12 in .automation/test/latex/latex_bad_1.tex line 80: Interword spacing (`\ ') should perhaps be used.
1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
Warning 12 in .automation/test/latex/latex_bad_1.tex line 80: Interword spacing (`\ ') should perhaps be used.
1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
Warning 12 in .automation/test/latex/latex_bad_1.tex line 80: Interword spacing (`\ ') should perhaps be used.
1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
Warning 12 in .automation/test/latex/latex_bad_1.tex line 80: Interword spacing (`\ ') should perhaps be used.
1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
Warning 13 in .automation/test/latex/latex_bad_1.tex line 85: Intersentence spacing (`\@') should perhaps be used.
Look at THIS! It's an error.
Warning 1 in .automation/test/latex/latex_bad_1.tex line 90: Command terminated with space.
\hat
Error 14 in .automation/test/latex/latex_bad_1.tex line 90: Could not find argument for command.
\hat
Warning 18 in .automation/test/latex/latex_bad_1.tex line 95: Use either `` or '' as an alternative to `"'.
Is this an "example", or is it an �example�.
Warning 18 in .automation/test/latex/latex_bad_1.tex line 95: Use either `` or '' as an alternative to `"'.
Is this an "example", or is it an �example�.
Warning 20 in .automation/test/latex/latex_bad_1.tex line 100: User-specified pattern found: \unknown.
That bug is \unknown\ to me.
Warning 23 in .automation/test/latex/latex_bad_1.tex line 110: Either `\,`` or ``\,` will look better.
```Hello', I heard him said'', she remembered.
Warning 24 in .automation/test/latex/latex_bad_1.tex line 115: Delete this space to maintain correct pagereferences.
Indexing text \index{text} is fun!
Warning 24 in .automation/test/latex/latex_bad_1.tex line 120: Delete this space to maintain correct pagereferences.
\index{text} is fun!
Warning 25 in .automation/test/latex/latex_bad_1.tex line 124: You might wish to put this between a pair of `{}'
$5\cdot10^10$
Warning 26 in .automation/test/latex/latex_bad_1.tex line 129: You ought to remove spaces in front of punctuation.
Do you understand ?
Warning 29 in .automation/test/latex/latex_bad_1.tex line 133: $\times$ may look prettier here.
The program opens a screen sized 640x200 pixels
Warning 31 in .automation/test/latex/latex_bad_1.tex line 144: This text may be ignored.
\end{verbatim} foo bar
Warning 32 in .automation/test/latex/latex_bad_1.tex line 148: Use ` to begin quotation, not '.
This is either an 'example`, an ''example`` or an `"`example'`'.
Warning 33 in .automation/test/latex/latex_bad_1.tex line 148: Use ' to end quotation, not `.
This is either an 'example`, an ''example`` or an `"`example'`'.
Warning 32 in .automation/test/latex/latex_bad_1.tex line 148: Use ` to begin quotation, not '.
This is either an 'example`, an ''example`` or an `"`example'`'.
Warning 33 in .automation/test/latex/latex_bad_1.tex line 148: Use ' to end quotation, not `.
This is either an 'example`, an ''example`` or an `"`example'`'.
Warning 34 in .automation/test/latex/latex_bad_1.tex line 148: Don't mix quotes.
This is either an 'example`, an ''example`` or an `"`example'`'.
Warning 34 in .automation/test/latex/latex_bad_1.tex line 148: Don't mix quotes.
This is either an 'example`, an ''example`` or an `"`example'`'.
Warning 35 in .automation/test/latex/latex_bad_1.tex line 153: You should perhaps use `\sin' instead.
$sin^2 + cos^2 = 1$
Warning 35 in .automation/test/latex/latex_bad_1.tex line 153: You should perhaps use `\cos' instead.
$sin^2 + cos^2 = 1$
Warning 36 in .automation/test/latex/latex_bad_1.tex line 158: You should put a space in front of parenthesis.
This( an example( Nuff said )), illustrates( ``my'' )point.
Warning 37 in .automation/test/latex/latex_bad_1.tex line 158: You should avoid spaces after parenthesis.
This( an example( Nuff said )), illustrates( ``my'' )point.
Warning 36 in .automation/test/latex/latex_bad_1.tex line 158: You should put a space in front of parenthesis.
This( an example( Nuff said )), illustrates( ``my'' )point.
Warning 37 in .automation/test/latex/latex_bad_1.tex line 158: You should avoid spaces after parenthesis.
This( an example( Nuff said )), illustrates( ``my'' )point.
Warning 37 in .automation/test/latex/latex_bad_1.tex line 158: You should avoid spaces in front of parenthesis.
This( an example( Nuff said )), illustrates( ``my'' )point.
Warning 36 in .automation/test/latex/latex_bad_1.tex line 158: You should put a space in front of parenthesis.
This( an example( Nuff said )), illustrates( ``my'' )point.
Warning 37 in .automation/test/latex/latex_bad_1.tex line 158: You should avoid spaces after parenthesis.
This( an example( Nuff said )), illustrates( ``my'' )point.
Warning 37 in .automation/test/latex/latex_bad_1.tex line 158: You should avoid spaces in front of parenthesis.
This( an example( Nuff said )), illustrates( ``my'' )point.
Warning 36 in .automation/test/latex/latex_bad_1.tex line 158: You should put a space after parenthesis.
This( an example( Nuff said )), illustrates( ``my'' )point.
Warning 38 in .automation/test/latex/latex_bad_1.tex line 162: You should not use punctuation in front of quotes.
``An example,'' he said, ``would be great.''
Warning 38 in .automation/test/latex/latex_bad_1.tex line 162: You should not use punctuation in front of quotes.
``An example,'' he said, ``would be great.''
Warning 39 in .automation/test/latex/latex_bad_1.tex line 167: Double space found.
For output codes, see table ~\ref{tab:fmtout}.
Warning 40 in .automation/test/latex/latex_bad_1.tex line 171: You should put punctuation outside inner math mode.
$\this,$ and $$this$$.
Warning 45 in .automation/test/latex/latex_bad_1.tex line 171: Use \[ ... \] instead of $$ ... $$.
$\this,$ and $$this$$.
Warning 40 in .automation/test/latex/latex_bad_1.tex line 171: You should put punctuation inside display math mode.
$\this,$ and $$this$$.
Warning 45 in .automation/test/latex/latex_bad_1.tex line 172: Use \[ ... \] instead of $$ ... $$.
$\this$, and $$this.$$
Warning 1 in .automation/test/latex/latex_bad_1.tex line 175: Command terminated with space.
foo \above qux
Warning 42 in .automation/test/latex/latex_bad_1.tex line 179: You should remove spaces in front of `\footnote'
This is a footnote \footnote{foo}.
Warning 43 in .automation/test/latex/latex_bad_1.tex line 183: `\left' is normally not followed by `{'.
Here is a mistake $\left{x\right}$.
Warning 43 in .automation/test/latex/latex_bad_1.tex line 183: `\right' is normally not followed by `}'.
Here is a mistake $\left{x\right}$.
Warning 44 in .automation/test/latex/latex_bad_1.tex line 192: User Regex: Always use \nmid.
For every $p\not|n$ you have an ugly prime which doesn't divide $n$.
Warning 35 in .automation/test/latex/latex_bad_1.tex line 196: You should perhaps use `\sin' instead.
\ensuremath{sin x\text{is not the same as sin x, but is the same as $sin x$}}
Warning 35 in .automation/test/latex/latex_bad_1.tex line 196: You should perhaps use `\sin' instead.
\ensuremath{sin x\text{is not the same as sin x, but is the same as $sin x$}}
Warning 36 in .automation/test/latex/latex_bad_1.tex line 197: You should put a space in front of parenthesis.
Also, $x(3)\text{ is not x(3) but it is $x(3)$}$
Warning 36 in .automation/test/latex/latex_bad_1.tex line 201: You should put a space in front of parenthesis.
But this is not a \% comment, so we should find this error(right)?
Warning 36 in .automation/test/latex/latex_bad_1.tex line 204: You should put a space in front of parenthesis.
Here(on this line only)is a warning $sin(x)$ suppressed. % CHKTEX 35 36
Warning 36 in .automation/test/latex/latex_bad_1.tex line 204: You should put a space after parenthesis.
Here(on this line only)is a warning $sin(x)$ suppressed. % CHKTEX 35 36
Warning 44 in .automation/test/latex/latex_bad_1.tex line 206: User Regex: 1:Capitalize before references.
In section~\ref{sec:3} we have a warning.
Warning 44 in .automation/test/latex/latex_bad_1.tex line 210: User Regex: -2:Vertical rules in tables are ugly.
\begin{tabular*}{1.0\linewidth}[h]{|c|cc|}
Warning 44 in .automation/test/latex/latex_bad_1.tex line 212: User Regex: -2:Use \toprule, midrule, or \bottomrule from booktabs.
\hline
Error 14 in .automation/test/latex/latex_bad_1.tex line 219: Could not find argument for command.
\verb#
Warning 31 in .automation/test/latex/latex_bad_1.tex line 223: This text may be ignored.
\end{verbatim} FOO
Warning 45 in .automation/test/latex/latex_bad_1.tex line 227: Use \[ ... \] instead of $$ ... $$.
$$(
Warning 16 in .automation/test/latex/latex_bad_1.tex line 232: Mathmode still on at end of LaTeX file.
Warning 17 in .automation/test/latex/latex_bad_1.tex line 232: Number of `(' doesn't match the number of `)'!
Warning 17 in .automation/test/latex/latex_bad_1.tex line 232: Number of `[' doesn't match the number of `]'!
Warning 17 in .automation/test/latex/latex_bad_1.tex line 232: Number of `{' doesn't match the number of `}'!