Development of ChkTeX is now in a maintainance mode. All versions 1.6.x are essentially bug fixes. Version 1.7 added some new features. 1.7.8 (2022-10-17), released by Ivan Andrus * Fix some packaging issues for CTAN 1.7.7 (2022-10-17), released by Ivan Andrus * Fix false positives * Fix overzealous warning of x between numbers #60184 * Handle nested mathmode e.g. \ensuremath #60197 * Add many citation commands from biblatex #56608 * Add support for breqn package #62631 * WipeArg on \graphicspath #47593 * WipeArg on LuaTeX macros which contain lua code #53146 * Add \itshape to Silent section https://tex.stackexchange.com/questions/627808/why-does-chktex-complain-when-there-is-a-space-after-itshape-but-not-when-bfse * Make QuoteStyle warnings work with end of sentence punctuation #53494 * When checking for inter-word spacing, ignore certain punctuation #54751, #53347 * Allow \frenchspacing to turn off warning 13 (intersentence spacing) * Don't warn about space before a parenthesis at the beginning of the line if the previous line ended with a comment (and no space) #109479 * Make exit status 2 or 3 (not 1) when warnings or errors are found. Some callers expected a return value of 1 to mean an internal error. #53129 * Fix many bugs * Make ChkTeX process longer lines, especially on Windows. This doesn't fix the problem entirely, but it should amerliorate it to a large extent. * Make file suppressions only apply to the file they are in. This allows putting all the "badness" into one file. #57809 * Add check to make sure input is a regular file and not a directory #56520 * Add support for relative paths in sub directories #53494 * Manage ConTeXt environments separately from LaTeX environments #51179 * Change argument order to avoid undefined behavior in va_start() * New warnings and features * Add regex for unescaped optional arguments inside optional arguments #56657 * Support RC settings on the command line #56486 * Warn about phrases that match DashExcpt _except_ for the hyphens #58886 * Add CmdSpaceStyle option to Ignore spacing problems after commands #60809, #60380 * Add support for finding chktexrc files in XDG locations #61405 * Add new warning when ChkTeX gets confused about mathmode * Improved documentation * Make chktexrc somewhat literate and creating ChkTeXRC.tex as well. * Make "keywords" link to the appropriate chktexrc variable documentation * Add note about chktexrc and link to documentation in the help message #50004 #61179 * Indicate that debug is a bit field instead of a level 1.7.6 (2016-09-09), released by Ivan Andrus * Properly copy and free strings. This caused incorrect file reporting in some cases #49000 * Add "verbatim" commands and environments from tipa #46734 * Avoid infinite loop when a regex matches an empty string * Fix crash on invalid regular expression * Add warnings for $$...$$ and $...$ #47044 * Update the banner to reflect current bug reporting contacts 1.7.5 (2015-12-07), released by Ivan Andrus * Track whether the previous line ended in a comment #45980 * Add a few source code environments to VerbEnvir * Don't show long line warning if the last line doesn't have a newline #46539 * Fix deweb's handling of file names #46043,#46042 * Use the exit status to indicate warnings were found #45979 * Consider OS X a UNIX 1.7.4 (2015-04-11), released by Ivan Andrus * Fixed undefined behavior (patch from TeXLive) 1.7.3 (2015-04-09), released by Ivan Andrus * Fixed memory leaks and a crashing bug #42813 * Added ConTeXt \start... \stop... tracking #44517 * Added DashExcpt list for exceptions to dash rules #42237 * Support \cite with two optional arguments (biblatex) #44413 * Removed warning about using \dots instead of .. #40731 This incorrectly warns about relative paths * Removed check for intro since it's common in file names #43013 * Turn off warning 19 by default #44226 Warning 19 is about Latin-1 quotes, but gives false positives for some utf-8 characters. 1.7.2 (2013-04-17), released by Ivan Andrus * Fixed display bug on platforms where sizeof(int) != sizeof(regoff_t) * Warn that .. should be \dots like lacheck does * Fixed warnings under clang * Incorporated several build related patches from TeX Live 1.7.1 (2012-08-22), released by Ivan Andrus * Improvements for TeX Live and CTAN * Fixed bug when checking for interword spacing * Added warning when a file has lines that are too long which can cause problems * Added ability to suppress user regular expression warnings by "naming" them * Added ability to suppress warnings for the rest of the file * Allow using PCRE or POSIX ERE or neither (at configure time). Regular expressions can be marked as PCRE or POSIX only. * Allow () to specify an optional argument in WipeArg to support \cmidrule[](){} * Allow regular expressions for Silent keyword, specified in [] for "case insensitive" * Added warning about \hline and vertical rules in tabular environments * I changed user warnings to be post WipeArg (like they were pre 1.7.0). I had changed them in 1.7.0 to be pre WipeArg so that I could match things like \label{...}, but this caused many false positives by matching in comments, etc. 1.7.0 (2012-05-28), released by Ivan Andrus * Added support for user defined regular expression based warnings * Added support for macros like \ensuremath and \text * Added support for suppressing messages on a single line 1.6.6 (2012-04-07), released by Ivan Andrus * Fixed some memory issues * Do not increase line number when the line was very long * Some fixes for TexLive 1.6.5 (??), released by Jean-Marc Lasgouttes * Fix bug where ChkTeX generates a warning about missing space before parenthesis when the parenthesis is at start of line. * Update ChkTeX.tex.in to use proper LaTeX2e markup. * Update the build machinery a bit. 1.6.4 (2007-10-20), released by Baruch Even * For some reason 1.6.3 did not include all the changes it was supposed to have, this release should fix it. One such issue is the MacOS X compilation. * Include some updates to the default chktexrc from Jean-Marc Lasgouttes. 1.6.3, released by Baruch Even * Support DESTDIR for installation to help distributions. * Apply old standing patch from Jean-Marc Lasgouttes to compile outside the directory. * Enable compilation on MacOS X. * Fix various coding issues. Original versions from Jens T. Berger Thielemann: ================================================= Modifications and additions since v1.6: * Improved the build system * Better fixes for memory access errors Modifications and additions since v1.5: * Fixed a crash when running from emacs * Fixed a crash when checking our own manual * Added \verb* support Modifications and additions since v1.4: ** New warnings * No space or similar in front/after parenthesis. * Demands a consistent quote style. * Double spaces in input which will not be rendered as one. * Punctuation malplaced regarding to math mode. * Warns about TeX primitives. * Space in front of footnotes. * Bogus \left and \right commands. ** Program * The abbreviation recognizer has (for the last time?) been redesigned. We now produce far less false warnings, catch more cases and do all this faster than before. Seems like a win. Done much of the same with the italic correction detection part, too. * Some bugs have been silently fixed. Hot spots in the program have been optimized; in certain cases this in fact doubles the speed! * Along with this goes more code elegance and utilization of macro processing and the C language. Take a look at Resource.[ch]. * It's possible to specify separate output-formats depending on whether you are sending the output to a file/pipe or to a terminal. * Column positions are finally correct; we now expand tabs correctly. * ChkTeX will now recursively search for \input'ed files, both in the document and on the commandline. See the chktexrc file for more info. * The debug switch is now more intelligent; if you wish to hack a bit on ChkTeX for yourself, it is possible to produce selective debugging output. The feature can also be disabled altogether. * MS-DOS and OS/2 version of the program is now more flexible and well-behaved, thanks to Gerd Boehm. * You may now say -wall to make all messages warnings, and turn them on. * Uses termcap on UNIX boxes; this should ensure that -v2 (or more precisely: %i and %I works regardless to what terminal you are using. ** Resource file * You may now specify both case-sensitive and case-insensitive user patterns in the chktexrc file. In addition; it is now possible to reset/clear lists. * You can now specify how many optional or required arguments WIPEARG should wipe; it also behaves somewhat more intelligently when the arguments stretch over multiple lines. * Global files will be read in addition to local ones. The searching order has also been reversed in order to make this more intelligent. ** Other * The documentation has been polished and should now be easier to use in practical situations. * check target in Makefile, so you can check that the installation succeeded. In fact, the Makefile has been enhanced in several other ways too, amongst other it is now GNU conforming. * deweb is now documented; you may say "man deweb" to get a few words of advice. The support script (chkweb) does now behave as the remaining package (accepting stdin input and flags). * I've written an Emacs hack which magically adds ChkTeX to the list of AUC-TeX commands; thus making the use of the program even more trivial. For those of you who don't wish to mess with Emacs, I've included a trivial lacheck <-> ChkTeX interface. This means that you now can use ChkTeX just as easily as lacheck when you're running AUC-TeX. * Added an ARexx script which lets ChkTeX talk to VBrowse, the message browser of Volker Barthelmann's freely distributable ANSI C compiler. The browser itself is available on Aminet as dev/c/vbcc.lha.