mirror of
https://github.com/super-linter/super-linter.git
synced 2024-11-25 10:10:56 -05:00
add latex support
This commit is contained in:
parent
cc903ad583
commit
e1bc1df9e7
13 changed files with 2190 additions and 13 deletions
13
.automation/test/latex/README.md
Normal file
13
.automation/test/latex/README.md
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
# LaTeX Test Cases
|
||||||
|
This folder holds the test cases for **LaTeX**.
|
||||||
|
|
||||||
|
## Additional Docs
|
||||||
|
No Additional information is needed for this test case.
|
||||||
|
|
||||||
|
## Good Test Cases
|
||||||
|
The test cases denoted: `LANGUAGE_good_FILE.EXTENSION` are all valid, and should pass successfully when linted.
|
||||||
|
- **Note:** They are linted utilizing the default linter rules.
|
||||||
|
|
||||||
|
## Bad Test Cases
|
||||||
|
The test cases denoted: `LANGUAGE_bad_FILE.EXTENSION` are **NOT** valid, and should trigger errors when linted.
|
||||||
|
- **Note:** They are linted utilizing the default linter rules.
|
237
.automation/test/latex/latex_bad_1.tex
Normal file
237
.automation/test/latex/latex_bad_1.tex
Normal file
|
@ -0,0 +1,237 @@
|
||||||
|
Note: This file was written with only two purposes in mind:
|
||||||
|
o To test the program upon it
|
||||||
|
o To show off some of the features
|
||||||
|
|
||||||
|
Most of the file does thus consist of lots of pseudo-commands, which
|
||||||
|
are nonsense in a TeXnical manner.
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
% Warning 1
|
||||||
|
|
||||||
|
\foo This is an error.
|
||||||
|
So is this \foo
|
||||||
|
\smallskip This is a not. $\foo Neither$ is this.
|
||||||
|
|
||||||
|
\startsection[title={Testing ConTeXt}]
|
||||||
|
These should now be an error.
|
||||||
|
\stoptext
|
||||||
|
|
||||||
|
% Warning 2
|
||||||
|
|
||||||
|
This is a faulty reference to \ref{foo}
|
||||||
|
This is not a faulty reference to~\ref{foo}
|
||||||
|
|
||||||
|
% Warning 3
|
||||||
|
|
||||||
|
$[(ab)^{-1}]^{-2}$ is not beautiful
|
||||||
|
${{[{(ab)}^{-1}]}}^{-2}$ is beautiful
|
||||||
|
|
||||||
|
% Warning 4-6, 28
|
||||||
|
|
||||||
|
Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
|
||||||
|
Testing {\it italic\/} in this {\em sentence,} as {\em you see}.
|
||||||
|
|
||||||
|
% LaTeX2e
|
||||||
|
|
||||||
|
Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
|
||||||
|
Testing \textem{italic\/} in this \textit{sentence}, as \textem{you see}.
|
||||||
|
|
||||||
|
% Warning 7
|
||||||
|
|
||||||
|
This \'is a test of $\hat{j}$ accents.
|
||||||
|
This \'{\i}s a test of $\hat{\jmath}$ accents.
|
||||||
|
|
||||||
|
% Warning 8
|
||||||
|
|
||||||
|
It wasn't anything - just a 2---3 star--shots.
|
||||||
|
It wasn't anything --- just a 2--3 star-shots.
|
||||||
|
It's just a start-shot.
|
||||||
|
is also used to send cross-calls (xc) and cross-traps (xt) to other
|
||||||
|
% From Knuths TeXbook Chapter 14
|
||||||
|
% "How TeX Breaks Paragraphs into Lines", fourth paragraph:
|
||||||
|
in plain TeX---are the key
|
||||||
|
|
||||||
|
% Using DashExcpt
|
||||||
|
The Birch--Swinnerton-Dyer conjecture is correct.
|
||||||
|
The Birch--Swinnerton--Dyer conjecture is not correct.
|
||||||
|
The Birch-Swinnerton-Dyer conjecture is not correct (but not caught).
|
||||||
|
|
||||||
|
% Warning 9-10
|
||||||
|
|
||||||
|
% Brackets:
|
||||||
|
|
||||||
|
)}{[])} }}}]]])))
|
||||||
|
{[]} ((([[[{{{}}}]]])))
|
||||||
|
|
||||||
|
% Envs:
|
||||||
|
|
||||||
|
\begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo}
|
||||||
|
|
||||||
|
\begin{foo} \begin{bar} \end{bar}\end{foo}
|
||||||
|
|
||||||
|
% Warning 11
|
||||||
|
|
||||||
|
Foo...bar. $1,...,3$. $1+...+3$. $1,\cdots,3$. $1\cdot\ldots\cdot3$.
|
||||||
|
Foo\dots bar. $1,\ldots,3$. $1+\cdots+3$. $1,\ldots,3$. $1\cdot\cdots\cdot3$.
|
||||||
|
|
||||||
|
% Warning 12
|
||||||
|
|
||||||
|
1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
|
||||||
|
1st.\ foo Inc.\ ab.cd.\ foo ab.cd.\ Foo.\ bar baz., billy.; bob.:\ joe.!\ frank.?\ james..\ george
|
||||||
|
|
||||||
|
% Warning 13
|
||||||
|
|
||||||
|
Look at THIS! It's an error.
|
||||||
|
Look at THIS\@! It's an error. D. E. Knuth.
|
||||||
|
|
||||||
|
% Warning 14
|
||||||
|
|
||||||
|
\hat
|
||||||
|
\hat{a}
|
||||||
|
|
||||||
|
% Warning 18,19
|
||||||
|
|
||||||
|
Is this an "example", or is it an <20>example<6C>.
|
||||||
|
Is this an `example', or is it an `example'.
|
||||||
|
|
||||||
|
% Warning 20
|
||||||
|
|
||||||
|
That bug is \unknown\ to me.
|
||||||
|
% That bug is \unknown\ to me.
|
||||||
|
|
||||||
|
% Warning 21
|
||||||
|
|
||||||
|
\LaTeX\ is an extension of \TeX\. Right?
|
||||||
|
\LaTeX\ is an extension of \TeX. Right?
|
||||||
|
|
||||||
|
% Warning 23
|
||||||
|
|
||||||
|
```Hello', I heard him said'', she remembered.
|
||||||
|
``\,`Hello', I heard him said'', she remembered.
|
||||||
|
|
||||||
|
% Warning 24
|
||||||
|
|
||||||
|
Indexing text \index{text} is fun!
|
||||||
|
Indexing text\index{text} is fun!
|
||||||
|
Indexing text%
|
||||||
|
\index{text} is fun!
|
||||||
|
Indexing text
|
||||||
|
\index{text} is fun!
|
||||||
|
|
||||||
|
% Warning 25
|
||||||
|
|
||||||
|
$5\cdot10^10$
|
||||||
|
$5\cdot10^{10}$
|
||||||
|
|
||||||
|
% Warning 26
|
||||||
|
|
||||||
|
Do you understand ?
|
||||||
|
Do you understand?
|
||||||
|
|
||||||
|
% Warning 27
|
||||||
|
|
||||||
|
\input latex_bad_2.tex
|
||||||
|
\input latex_bad_2
|
||||||
|
|
||||||
|
% Warning 29
|
||||||
|
The program opens a screen sized 640x200 pixels
|
||||||
|
The program opens a screen sized $640\times200$ pixels
|
||||||
|
|
||||||
|
% Warning 30
|
||||||
|
|
||||||
|
White is a beautiful colour.
|
||||||
|
White is a beautiful colour.
|
||||||
|
|
||||||
|
% Warning 31
|
||||||
|
\begin{verbatim}
|
||||||
|
\this is
|
||||||
|
\end{verbatim} foo bar
|
||||||
|
|
||||||
|
% Warning 32-34
|
||||||
|
|
||||||
|
This is either an 'example`, an ''example`` or an `"`example'`'.
|
||||||
|
This is either an `example', an ``example'' or an ``example''.
|
||||||
|
|
||||||
|
% Warning 35
|
||||||
|
|
||||||
|
$sin^2 + cos^2 = 1$
|
||||||
|
$\sin^2 + \cos^2 = 1$
|
||||||
|
|
||||||
|
% Warning 36-37
|
||||||
|
|
||||||
|
This( an example( Nuff said )), illustrates( ``my'' )point.
|
||||||
|
This (an example (Nuff said)), illustrates (``my'') point.
|
||||||
|
|
||||||
|
% Warning 38
|
||||||
|
``An example,'' he said, ``would be great.''
|
||||||
|
``An example'', he said, ``would be great''.
|
||||||
|
|
||||||
|
% Warning 39
|
||||||
|
|
||||||
|
For output codes, see table ~\ref{tab:fmtout}.
|
||||||
|
For output codes, see table~\ref{tab:fmtout}.
|
||||||
|
|
||||||
|
% Warning 40
|
||||||
|
$\this,$ and $$this$$.
|
||||||
|
$\this$, and $$this.$$
|
||||||
|
|
||||||
|
% Warning 41
|
||||||
|
foo \above qux
|
||||||
|
\frac{foo}{qux}
|
||||||
|
|
||||||
|
% Warning 42
|
||||||
|
This is a footnote \footnote{foo}.
|
||||||
|
This is a footnote\footnote{foo}.
|
||||||
|
|
||||||
|
% Warning 43
|
||||||
|
Here is a mistake $\left{x\right}$.
|
||||||
|
This one triggers warning 22 $\left\{x\right\}$.
|
||||||
|
Here \chktex\ doesn't complain $\left\lbrace x\right\rbrace$.
|
||||||
|
|
||||||
|
% Warning 44 -- user regex -- default message
|
||||||
|
You should always write a good intro.
|
||||||
|
You should always write a good introduction.
|
||||||
|
|
||||||
|
% Warning 44 -- user regex -- user message
|
||||||
|
For every $p\not|n$ you have an ugly prime which doesn't divide $n$.
|
||||||
|
For every $p\nmid n$ you have a cute prime which doesn't divide $n$.
|
||||||
|
|
||||||
|
% Math mode check
|
||||||
|
\ensuremath{sin x\text{is not the same as sin x, but is the same as $sin x$}}
|
||||||
|
Also, $x(3)\text{ is not x(3) but it is $x(3)$}$
|
||||||
|
|
||||||
|
This is\\% a comment. Nothing here should be checked(right)?
|
||||||
|
a broken line.
|
||||||
|
But this is not a \% comment, so we should find this error(right)?
|
||||||
|
|
||||||
|
Here(on this line only)is a warning $sin(x)$ suppressed. % chktex 36 chktex 35
|
||||||
|
Here(on this line only)is a warning $sin(x)$ suppressed. % CHKTEX 35 36
|
||||||
|
|
||||||
|
In section~\ref{sec:3} we have a warning.
|
||||||
|
In section~\ref{sec:4} it is suppressed. % chktex -1
|
||||||
|
% In section~\ref{sec:5} we don't have a warning.
|
||||||
|
|
||||||
|
\begin{tabular*}{1.0\linewidth}[h]{|c|cc|}
|
||||||
|
a & b \\
|
||||||
|
\hline
|
||||||
|
c & d
|
||||||
|
\end{tabular*}
|
||||||
|
|
||||||
|
% Verb check
|
||||||
|
|
||||||
|
\verb@\this is )() lots of errors, etc. Or what?@
|
||||||
|
\verb#
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
\this is
|
||||||
|
\end{verbatim} FOO
|
||||||
|
|
||||||
|
% Warning 16,15
|
||||||
|
|
||||||
|
$$(
|
||||||
|
|
||||||
|
% Local Variables:
|
||||||
|
% require-final-newline: nil
|
||||||
|
% End:
|
||||||
|
% There should be no newline at the end of this file to test bug #46539
|
1
.automation/test/latex/latex_bad_2.tex
Normal file
1
.automation/test/latex/latex_bad_2.tex
Normal file
|
@ -0,0 +1 @@
|
||||||
|
\this is a test of whether the file is actually inputted...
|
237
.automation/test/latex/latex_good_1.tex
Normal file
237
.automation/test/latex/latex_good_1.tex
Normal file
|
@ -0,0 +1,237 @@
|
||||||
|
Note: This file was written with only two purposes in mind:
|
||||||
|
o To test the program upon it
|
||||||
|
o To show off some of the features
|
||||||
|
|
||||||
|
Most of the file does thus consist of lots of pseudo-commands, which
|
||||||
|
are nonsense in a TeXnical manner.
|
||||||
|
|
||||||
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
|
|
||||||
|
% Warning 1
|
||||||
|
|
||||||
|
\foo\ This is an error.
|
||||||
|
So is this \foo\
|
||||||
|
\smallskip This is a not. $\foo Neither$ is this.
|
||||||
|
|
||||||
|
\startsection[title={Testing ConTeXt}]
|
||||||
|
These should now be an error.
|
||||||
|
\stopsection
|
||||||
|
|
||||||
|
% Warning 2
|
||||||
|
|
||||||
|
%This is a faulty reference to~\ref{foo}
|
||||||
|
This is not a faulty reference to~\ref{foo}
|
||||||
|
|
||||||
|
% Warning 3
|
||||||
|
|
||||||
|
%$[(ab)^{-1}]^{-2}$ is not beautiful
|
||||||
|
${{[{(ab)}^{-1}]}}^{-2}$ is beautiful
|
||||||
|
|
||||||
|
% Warning 4-6, 28
|
||||||
|
|
||||||
|
%Testing {\it italic} in \/ this {\em sentence\/}, as {\em you \/ see\/}.
|
||||||
|
Testing {\it italic\/} in this {\em sentence,} as {\em you see}.
|
||||||
|
|
||||||
|
% LaTeX2e
|
||||||
|
|
||||||
|
%Testing \textem{italic} in \/ this \textit{sentence\/}, as \textem{you \/ see\/}.
|
||||||
|
Testing \textem{italic} in this \textit{sentence}, as \textem{you see}.
|
||||||
|
|
||||||
|
% Warning 7
|
||||||
|
|
||||||
|
%This \'is a test of $\hat{j}$ accents.
|
||||||
|
This \'{\i}s a test of $\hat{\jmath}$ accents.
|
||||||
|
|
||||||
|
% Warning 8
|
||||||
|
|
||||||
|
%It wasn't anything - just a 2---3 star--shots.
|
||||||
|
It wasn't anything --- just a 2--3 star-shots.
|
||||||
|
It's just a start-shot.
|
||||||
|
is also used to send cross-calls (xc) and cross-traps (xt) to other
|
||||||
|
% From Knuths TeXbook Chapter 14
|
||||||
|
% "How TeX Breaks Paragraphs into Lines", fourth paragraph:
|
||||||
|
in plain TeX---are the key
|
||||||
|
|
||||||
|
% Using DashExcpt
|
||||||
|
The Birch--Swinnerton-Dyer conjecture is correct.
|
||||||
|
%The Birch--Swinnerton--Dyer conjecture is not correct.
|
||||||
|
The Birch-Swinnerton-Dyer conjecture is not correct (but not caught).
|
||||||
|
|
||||||
|
% Warning 9-10
|
||||||
|
|
||||||
|
% Brackets:
|
||||||
|
|
||||||
|
%)}{[])} }}}]]])))
|
||||||
|
{[]} ((([[[{{{}}}]]])))
|
||||||
|
|
||||||
|
% Envs:
|
||||||
|
|
||||||
|
%\begin{quux} \begin{baz} \end{quux} \end{baz} \end{asoi} \begin{dobedo}
|
||||||
|
|
||||||
|
\begin{foo} \begin{bar} \end{bar}\end{foo}
|
||||||
|
|
||||||
|
% Warning 11
|
||||||
|
|
||||||
|
%Foo...bar. $1,...,3$. $1+...+3$. $1,\cdots,3$. $1\cdot\ldots\cdot3$.
|
||||||
|
Foo\dots bar. $1,\ldots,3$. $1+\cdots+3$. $1,\ldots,3$. $1\cdot\cdots\cdot3$.
|
||||||
|
|
||||||
|
% Warning 12
|
||||||
|
|
||||||
|
%1st. Foo Inc. Ab.cd. foo ab.cd. Foo. bar baz., billy.; bob.: joe.! frank.? james.. george
|
||||||
|
1st.\ foo Inc.\ ab.cd.\ foo ab.cd.\ Foo.\ bar baz., billy.; bob.:\ joe.!\ frank.?\ james..\ george
|
||||||
|
|
||||||
|
% Warning 13
|
||||||
|
|
||||||
|
%Look at THIS! It's an error.
|
||||||
|
Look at THIS\@! It's an error. D. E. Knuth.
|
||||||
|
|
||||||
|
% Warning 14
|
||||||
|
|
||||||
|
%\hat
|
||||||
|
\hat{a}
|
||||||
|
|
||||||
|
% Warning 18,19
|
||||||
|
|
||||||
|
%Is this an "example", or is it an <20>example<6C>.
|
||||||
|
Is this an `example', or is it an `example'.
|
||||||
|
|
||||||
|
% Warning 20
|
||||||
|
|
||||||
|
%That bug is \unknown\ to me.
|
||||||
|
% That bug is \unknown\ to me.
|
||||||
|
|
||||||
|
% Warning 21
|
||||||
|
|
||||||
|
\LaTeX\ is an extension of \TeX\. Right?
|
||||||
|
\LaTeX\ is an extension of \TeX. Right?
|
||||||
|
|
||||||
|
% Warning 23
|
||||||
|
|
||||||
|
%```Hello', I heard him said'', she remembered.
|
||||||
|
``\,`Hello', I heard him said'', she remembered.
|
||||||
|
|
||||||
|
% Warning 24
|
||||||
|
|
||||||
|
%Indexing text \index{text} is fun!
|
||||||
|
Indexing text\index{text} is fun!
|
||||||
|
Indexing text%
|
||||||
|
\index{text} is fun!
|
||||||
|
%Indexing text
|
||||||
|
% \index{text} is fun!
|
||||||
|
|
||||||
|
% Warning 25
|
||||||
|
|
||||||
|
%$5\cdot10^10$
|
||||||
|
$5\cdot10^{10}$
|
||||||
|
|
||||||
|
% Warning 26
|
||||||
|
|
||||||
|
%Do you understand ?
|
||||||
|
Do you understand?
|
||||||
|
|
||||||
|
% Warning 27
|
||||||
|
|
||||||
|
\input laetx_good_2.tex
|
||||||
|
\input latex_good_2
|
||||||
|
|
||||||
|
% Warning 29
|
||||||
|
%The program opens a screen sized 640x200 pixels
|
||||||
|
The program opens a screen sized $640\times200$ pixels
|
||||||
|
|
||||||
|
% Warning 30
|
||||||
|
|
||||||
|
%White is a beautiful colour.
|
||||||
|
White is a beautiful colour.
|
||||||
|
|
||||||
|
% Warning 31
|
||||||
|
\begin{verbatim}
|
||||||
|
\this is
|
||||||
|
\end{verbatim} %foo bar
|
||||||
|
|
||||||
|
% Warning 32-34
|
||||||
|
|
||||||
|
%This is either an 'example`, an ''example`` or an `"`example'`'.
|
||||||
|
This is either an `example', an ``example'' or an ``example''.
|
||||||
|
|
||||||
|
% Warning 35
|
||||||
|
|
||||||
|
%$sin^2 + cos^2 = 1$
|
||||||
|
$\sin^2 + \cos^2 = 1$
|
||||||
|
|
||||||
|
% Warning 36-37
|
||||||
|
|
||||||
|
%This( an example( Nuff said )), illustrates( ``my'' )point.
|
||||||
|
This (an example (Nuff said)), illustrates (``my'') point.
|
||||||
|
|
||||||
|
% Warning 38
|
||||||
|
%``An example,'' he said, ``would be great.''
|
||||||
|
``An example'', he said, ``would be great''.
|
||||||
|
|
||||||
|
% Warning 39
|
||||||
|
|
||||||
|
%For output codes, see table ~\ref{tab:fmtout}.
|
||||||
|
For output codes, see table~\ref{tab:fmtout}.
|
||||||
|
|
||||||
|
% Warning 40
|
||||||
|
%$\this,$ and $$this$$.
|
||||||
|
$\this$, and \[this.\]
|
||||||
|
|
||||||
|
% Warning 41
|
||||||
|
%foo \above\ qux
|
||||||
|
\frac{foo}{qux}
|
||||||
|
|
||||||
|
% Warning 42
|
||||||
|
%This is a footnote \footnote{foo}.
|
||||||
|
This is a footnote\footnote{foo}.
|
||||||
|
|
||||||
|
% Warning 43
|
||||||
|
%Here is a mistake $\left{x\right}$.
|
||||||
|
%This one triggers warning 22 $\left\{x\right\}$.
|
||||||
|
Here \chktex\ doesn't complain $\left\lbrace x\right\rbrace$.
|
||||||
|
|
||||||
|
% Warning 44 -- user regex -- default message
|
||||||
|
%You should always write a good intro.
|
||||||
|
You should always write a good introduction.
|
||||||
|
|
||||||
|
% Warning 44 -- user regex -- user message
|
||||||
|
%For every $p\not|n$ you have an ugly prime which doesn't divide $n$.
|
||||||
|
For every $p\nmid n$ you have a cute prime which doesn't divide $n$.
|
||||||
|
|
||||||
|
% Math mode check
|
||||||
|
\ensuremath{\sin\ x\text{is not the same as \sin\ x, but is the same as $\sin x$}}
|
||||||
|
Also, $x(3)\text{ is not x (3) but it is $x(3)$}$
|
||||||
|
|
||||||
|
This is\\% a comment. Nothing here should be checked(right)?
|
||||||
|
a broken line.
|
||||||
|
But this is not a \% comment, so we should find this error (right)?
|
||||||
|
|
||||||
|
Here(on this line only)is a warning $sin(x)$ suppressed. % chktex 36 chktex 35
|
||||||
|
%Here (on this line only)is a warning $sin(x)$ suppressed. % CHKTEX 35 36
|
||||||
|
|
||||||
|
%In section~\ref{sec:3} we have a warning.
|
||||||
|
In section~\ref{sec:4} it is suppressed. % chktex -1
|
||||||
|
% In section~\ref{sec:5} we don't have a warning.
|
||||||
|
|
||||||
|
% \begin{tabular*}{1.0\linewidth}[h]{|c|cc|}
|
||||||
|
% a & b \\
|
||||||
|
% \hline
|
||||||
|
% c & d
|
||||||
|
% \end{tabular*}
|
||||||
|
|
||||||
|
% Verb check
|
||||||
|
|
||||||
|
\verb@\this is )() lots of errors, etc. Or what?@
|
||||||
|
%\verb#
|
||||||
|
|
||||||
|
\begin{verbatim}
|
||||||
|
\this is
|
||||||
|
\end{verbatim}
|
||||||
|
|
||||||
|
% Warning 16,15
|
||||||
|
|
||||||
|
\[\]
|
||||||
|
|
||||||
|
% Local Variables:
|
||||||
|
% require-final-newline: nil
|
||||||
|
% End:
|
||||||
|
% There should be no newline at the end of this file to test bug #46539
|
1
.automation/test/latex/latex_good_2.tex
Normal file
1
.automation/test/latex/latex_good_2.tex
Normal file
|
@ -0,0 +1 @@
|
||||||
|
\this\ is a test of whether the file is actually inputted\ldots
|
802
.github/linters/chktexrc
vendored
Normal file
802
.github/linters/chktexrc
vendored
Normal file
|
@ -0,0 +1,802 @@
|
||||||
|
##
|
||||||
|
## ChkTeX, example resource file for ChkTeX.
|
||||||
|
## Copyright (C) 1995-96 Jens T. Berger Thielemann
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify
|
||||||
|
## it under the terms of the GNU General Public License as published by
|
||||||
|
## the Free Software Foundation; either version 2 of the License, or
|
||||||
|
## (at your option) any later version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful,
|
||||||
|
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
## GNU General Public License for more details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License
|
||||||
|
## along with this program; if not, write to the Free Software
|
||||||
|
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
##
|
||||||
|
## Contact the author at:
|
||||||
|
## Jens Berger
|
||||||
|
## Spektrumvn. 4
|
||||||
|
## N-0666 Oslo
|
||||||
|
## Norway
|
||||||
|
## E-mail: <jensthi@ifi.uio.no>
|
||||||
|
##
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Note: The format has changed slightly (again). The { ... }
|
||||||
|
# syntax does now mean case-sensitive comparing, while [ ... ] means
|
||||||
|
# case-insensitive comparing of the keywords. Case-insensitive
|
||||||
|
# comparing of the keywords is only supported on a few of the
|
||||||
|
# keywords (it's not meaningful in all contexts, and it slows ChkTeX
|
||||||
|
# down). Keywords supporting this are marked throughout the file.
|
||||||
|
#
|
||||||
|
# You may also reset a list by saying "KEYWORD = { ... }"; it will
|
||||||
|
# then be set equal to the contents of the list you specify.
|
||||||
|
#
|
||||||
|
# Comments begin with `#', and continues for the rest of the line.
|
||||||
|
# Blank lines plus leading and trailing spaces are of course ignored.
|
||||||
|
#
|
||||||
|
# The general format of this file is the following:
|
||||||
|
#
|
||||||
|
# KEYWORD { item item ...} [ item item ... ] /* Adds items */
|
||||||
|
#
|
||||||
|
# KEYWORD [ item item ...] { item item ... } /* Adds items */
|
||||||
|
#
|
||||||
|
# KEYWORD = item
|
||||||
|
#
|
||||||
|
# KEYWORD = { item item ... } /* Clears list before adding */
|
||||||
|
#
|
||||||
|
# KEYWORD = [ item item ... ] /* Clears list before adding */
|
||||||
|
#
|
||||||
|
# This does _not_ mean that you may alternate the forms; certain
|
||||||
|
# keywords demands a list, other a single value. You thus have to
|
||||||
|
# look at the examples of their use.
|
||||||
|
#
|
||||||
|
# Please also note that if you specify a list-keyword twice, we'll
|
||||||
|
# concatenate the lists. If you specify a item-keyword twice, we'll
|
||||||
|
# kill the previous value.
|
||||||
|
#
|
||||||
|
# We are slightly context-sensitive when detecting tokens like "}"
|
||||||
|
# and "]"; they have to be preceded by a space. This generally makes
|
||||||
|
# life easier.
|
||||||
|
#
|
||||||
|
# Items are separated by spaces. Newlines are considered as spaces,
|
||||||
|
# but can't be escaped. You may surround items with quotes (`"') to
|
||||||
|
# easily put spaces into them.
|
||||||
|
#
|
||||||
|
# Escape sequences available:
|
||||||
|
#
|
||||||
|
# Sequence Resulting character
|
||||||
|
# ! A space (type `! ', not just a exclamation mark)
|
||||||
|
# !" "
|
||||||
|
# !# #
|
||||||
|
# !! !
|
||||||
|
# !{ {
|
||||||
|
# !} }
|
||||||
|
# ![ [
|
||||||
|
# !] ]
|
||||||
|
# != =
|
||||||
|
# !b Backspace
|
||||||
|
# !n New line
|
||||||
|
# !r Carriage return
|
||||||
|
# !t Tab
|
||||||
|
# !f Form feed
|
||||||
|
# !xNN NN must be a hexadecimal number (00 - ff),
|
||||||
|
# _both_ characters must be included.
|
||||||
|
# !dNNN DDD must be a decimal number (000 - 255), all
|
||||||
|
# three characters must be included. Unspecified
|
||||||
|
# results if DDD > 255.
|
||||||
|
# !NNN DDD must be a octal number (000 - 377), all
|
||||||
|
# three characters must be included. Unspecified
|
||||||
|
# results if DDD > 377.
|
||||||
|
#
|
||||||
|
# Minor note: As you can see, most of these escape sequences are
|
||||||
|
# equal to those in C (with some extensions); however, we use !
|
||||||
|
# instead of \ as escape character for obvious reasons.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Quick summary of keywords follows. Keywords marked with a * accept
|
||||||
|
# keywords accepting case-insensitive lists.
|
||||||
|
#
|
||||||
|
# Abbrev* - A list of abbreviations not automatically caught.
|
||||||
|
# CenterDots - Commands/characters which should have \cdots in
|
||||||
|
# between.
|
||||||
|
# CmdLine - Default commandline options. These will be
|
||||||
|
# processed before the ones you give on the command
|
||||||
|
# line.
|
||||||
|
# HyphDash \
|
||||||
|
# NumDash - Number of dashes allowed in different contexts.
|
||||||
|
# WordDash /
|
||||||
|
# IJAccent - Commands which puts an accent _over_ their
|
||||||
|
# argument.
|
||||||
|
# Italic - Commands immediately turning on italic mode.
|
||||||
|
# ItalCmd - Commands putting their argument into italic.
|
||||||
|
# Linker - Commands which should have a non-breaking space in
|
||||||
|
# front.
|
||||||
|
# LowDots - Commands/characters which should have \ldots in
|
||||||
|
# between.
|
||||||
|
# MathEnvir - Environments which turn on math mode.
|
||||||
|
# MathCmd - Commands which turn on math mode.
|
||||||
|
# TextCmd - Commands which turn off math mode.
|
||||||
|
# MathRoman - Mathematical operators with LaTeX replacement
|
||||||
|
# defined.
|
||||||
|
# NoCharNext - Insists on that certain commands aren't followed by
|
||||||
|
# certain characters.
|
||||||
|
# NonItalic - Commands immediately turning off italic mode.
|
||||||
|
# NotPreSpaced- Commands which should not have a space in front of
|
||||||
|
# them.
|
||||||
|
# Primitives - Primitive TeX commands.
|
||||||
|
# PostLink - Commands which generates a page reference.
|
||||||
|
# OutFormat - Formats to use for output. See the -f & -v switch
|
||||||
|
# in the main doc.
|
||||||
|
# QuoteStyle - Either "Traditional" or "Logical". See main doc,
|
||||||
|
# warning 38.
|
||||||
|
# Silent - These commands do not produce any textual output;
|
||||||
|
# and are thus allowed to have a space after them.
|
||||||
|
# TabSize - Tab size you are using.
|
||||||
|
# TeXInputs - Paths to search \input and \include files for.
|
||||||
|
# UserWarn* - These strings will be searched for throughout the
|
||||||
|
# text.
|
||||||
|
# VerbEnvir - Environments which contents should be ignored.
|
||||||
|
# VerbClear - String we will overwrite unwanted data with.
|
||||||
|
# WipeArg - Commands (with arguments) which should be ignored
|
||||||
|
# in the checking.
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Enter which type of quote-style you are using here. Currently, we
|
||||||
|
# support the following styles:
|
||||||
|
#
|
||||||
|
# Style Example of use
|
||||||
|
# Traditional "An example," he said, "would be great."
|
||||||
|
# Logical "An example", he said, "would be great".
|
||||||
|
#
|
||||||
|
|
||||||
|
QuoteStyle = Logical
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Enter here what interval you have between your tabs. Only regular
|
||||||
|
# intervals are supported.
|
||||||
|
#
|
||||||
|
|
||||||
|
TabSize = 8
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Here, you can put default commandline options; most users would for
|
||||||
|
# instance like to put -v2 here.
|
||||||
|
#
|
||||||
|
|
||||||
|
CmdLine
|
||||||
|
{
|
||||||
|
-v2
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# These patterns will be searched for through the text; no matter
|
||||||
|
# whether they appear as normal text, commands or whatever.
|
||||||
|
# Currently case-sensitive. They are not found in comments.
|
||||||
|
#
|
||||||
|
# I usually define a special command like this:
|
||||||
|
#
|
||||||
|
# \def\unknown{\large\bf??}
|
||||||
|
#
|
||||||
|
# which I use whenever there is some information I don't have at the
|
||||||
|
# moment of writing. Thus, it makes sense to search for it.
|
||||||
|
#
|
||||||
|
# You should be able to develop your own uses for this.
|
||||||
|
#
|
||||||
|
|
||||||
|
UserWarn
|
||||||
|
{
|
||||||
|
|
||||||
|
\unknown
|
||||||
|
###
|
||||||
|
#
|
||||||
|
# Another example; one should write \chktex or Chk\TeX - never ChkTeX.
|
||||||
|
#
|
||||||
|
###
|
||||||
|
|
||||||
|
ChkTeX
|
||||||
|
}
|
||||||
|
[
|
||||||
|
|
||||||
|
###
|
||||||
|
#
|
||||||
|
# You may put case-insensitive patterns here.
|
||||||
|
#
|
||||||
|
###
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
#
|
||||||
|
# These patterns will be searched for, no matter whether they appear
|
||||||
|
# as normal text, commands or arguments. However, they will _not_
|
||||||
|
# match in verbatim environments.
|
||||||
|
#
|
||||||
|
# Remember that you have to escape (with a !) the following
|
||||||
|
# characters: "#!= as well as spaces and {}[] if they are proceeded by
|
||||||
|
# a space.
|
||||||
|
#
|
||||||
|
# Since these are PCRE regular expressions, you can use (?i) to make
|
||||||
|
# the expression case insensitive. See the man pages (man pcresyntax)
|
||||||
|
# or the nicely formatted http://perldoc.perl.org/perlre.html for
|
||||||
|
# documentation on the regular expression syntax. Note however that
|
||||||
|
# some the features of perl regular expression are not available such
|
||||||
|
# as running code (callouts), and replacing.
|
||||||
|
#
|
||||||
|
# An initial PCRE comment (?# ... ) can be used change what is
|
||||||
|
# displayed, thereby reminding yourself how to fix the problem.
|
||||||
|
#
|
||||||
|
###
|
||||||
|
UserWarnRegex
|
||||||
|
{
|
||||||
|
|
||||||
|
(?!#Always! use! \nmid)\\not! *(\||\\mid)
|
||||||
|
|
||||||
|
# capitalize section when saying Section 6.
|
||||||
|
(?!#-1:Capitalize! before! references)PCRE:\b(chapter|(sub)?section|theorem|lemma|proposition|corollary|appendix)~\\ref
|
||||||
|
(?!#1:Capitalize! before! references)POSIX:([^[:alnum:]]|^)(chapter|(sub)?section|theorem|lemma|proposition|corollary|appendix)~\\ref
|
||||||
|
|
||||||
|
# spell it out.
|
||||||
|
# PCRE:(?i)\bintro\b(?!#Spell! it! out.! This! comment! is! not! used.)
|
||||||
|
# POSIX:([^[:alnum:]]|^)intro([^[:alnum:]]|$)
|
||||||
|
|
||||||
|
# Pretty tables--see http://texdoc.net/texmf-dist/doc/latex/booktabs/booktabs.pdf
|
||||||
|
(?!#-2:Use! \toprule,! midrule,! or! \bottomrule! from! booktabs)\\hline
|
||||||
|
# This relies on it being on a single line, and not having anything
|
||||||
|
# else on that line. With PCRE we could match balanced [] and {},
|
||||||
|
# but I wonder if it's worth the complexity...
|
||||||
|
(?!#-2:Vertical! rules! in! tables! are! ugly)\\begin\{(array|tabularx?\*?)\}(\[.*\])?\{.*\|.*\}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Here you can list the path of where ChkTeX should look for files it
|
||||||
|
# \inputs. The // postfix is now supported; if you append a double
|
||||||
|
# path-separator we'll recursively search that directory directories.
|
||||||
|
# MS-DOS users must append \\ instead, e.g. "C:\EMTEX\\".
|
||||||
|
#
|
||||||
|
# If you under either MS-DOS or UNIX wish to search an entire
|
||||||
|
# partition or the complete directory tree, you must use *three*
|
||||||
|
# slashes, e.g. "c:\\\" or "///". This may be considered to be a bug.
|
||||||
|
#
|
||||||
|
# By default, we'll search the current directory (not recursively,
|
||||||
|
# put "//" in the list for this); any paths specified below will be
|
||||||
|
# searched in addition to this.
|
||||||
|
#
|
||||||
|
|
||||||
|
TeXInputs
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Here you may specify more output formats for use with the -v option,
|
||||||
|
# it simply indexes into this list. Remember to use ! instead of \,
|
||||||
|
# though.
|
||||||
|
#
|
||||||
|
# For explanation of how % fields expand; look at ChkTeX.{dvi,ps,pdf}.
|
||||||
|
#
|
||||||
|
# We will by default select entry number _two_ in this list (we count
|
||||||
|
# from 0), and -v without any parameter selects entry number _three_.
|
||||||
|
#
|
||||||
|
|
||||||
|
OutFormat
|
||||||
|
{
|
||||||
|
|
||||||
|
# -v0; silent mode
|
||||||
|
%f%b%l%b%c%b%n%b%m!n
|
||||||
|
|
||||||
|
# -v1; normal mode
|
||||||
|
"%k %n in %f line %l: %m!n%r%s%t!n%u!n"
|
||||||
|
|
||||||
|
# -v2; fancy mode
|
||||||
|
"%k %n in %f line %l: %m!n%r%i%s%I%t!n!n"
|
||||||
|
|
||||||
|
# -v3; lacheck mode
|
||||||
|
"!"%f!", line %l: %m!n"
|
||||||
|
|
||||||
|
# -v4; verbose lacheck mode
|
||||||
|
"!"%f!", line %l: %m!n%r%s%t!n%u!n"
|
||||||
|
|
||||||
|
# -v5; no line number, ease auto-test
|
||||||
|
"%k %n in %f: %m!n%r%s%t!n%u!n"
|
||||||
|
|
||||||
|
# -v6; emacs compilation mode
|
||||||
|
"!"%f!", line %l.%c:(#%n) %m!n"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# These commands should be ignored when detecting whether a command
|
||||||
|
# is ended by a space. You can specify regular expressions in the []
|
||||||
|
# section in case you have many custom macros that can be safely
|
||||||
|
# terminated with a space.
|
||||||
|
#
|
||||||
|
|
||||||
|
Silent
|
||||||
|
{
|
||||||
|
\rm \em \bf \it \sl \sf \sc \tt \selectfont
|
||||||
|
\rmfamily \sffamily \ttfamily \mdseries \bfseries
|
||||||
|
\slshape \scshape \relax
|
||||||
|
\vskip \pagebreak \nopagebreak
|
||||||
|
|
||||||
|
\textrm \textem \textbf \textit \textsl \textsf \textsc \texttt
|
||||||
|
|
||||||
|
\clearpage \ddots \dotfill \flushbottom \fussy \indent \linebreak
|
||||||
|
\onecolumn \pagebreak \pushtabs \poptabs \scriptsize \sloppy
|
||||||
|
\twocolumn \vdots
|
||||||
|
\today \kill \newline \thicklines \thinlines
|
||||||
|
|
||||||
|
\columnsep \space \item \tiny \footnotesize \small \normalsize
|
||||||
|
\normal \large \Large \LARGE \huge \Huge \printindex
|
||||||
|
|
||||||
|
\newpage \listoffigures \listoftables \tableofcontents
|
||||||
|
\maketitle \makeindex
|
||||||
|
|
||||||
|
\hline \hrule \vrule
|
||||||
|
|
||||||
|
\centering
|
||||||
|
|
||||||
|
\bigskip \medskip \smallskip
|
||||||
|
|
||||||
|
\noindent \expandafter
|
||||||
|
|
||||||
|
\makeatletter \makeatother
|
||||||
|
|
||||||
|
\columnseprule
|
||||||
|
|
||||||
|
\textwidth \textheight \hsize \vsize
|
||||||
|
|
||||||
|
\if \fi \else
|
||||||
|
|
||||||
|
\csname \endcsname
|
||||||
|
|
||||||
|
\z@ \p@ \@warning \typeout
|
||||||
|
|
||||||
|
\dots \ldots \input \endinput \nextline \leavevmode \cdots
|
||||||
|
\appendix \listfiles \and \quad
|
||||||
|
\hskip \vfill \vfil \hfill \hfil \topmargin \oddsidemargin
|
||||||
|
\frenchspacing \nonfrenchspacing
|
||||||
|
\begingroup \endgroup \par
|
||||||
|
|
||||||
|
\vrefwarning \upshape \headheight \headsep \hoffset \voffset
|
||||||
|
\cdot \qquad
|
||||||
|
\left \right
|
||||||
|
\qedhere
|
||||||
|
|
||||||
|
\xspace
|
||||||
|
|
||||||
|
\addlinespace \cr \fill \frontmatter
|
||||||
|
\toprule \midrule \bottomrule
|
||||||
|
|
||||||
|
}[
|
||||||
|
# Here you can put regular expressions to match Silent macros. It was
|
||||||
|
# designed for the case where you have many custom macros sharing a
|
||||||
|
# common prefix, but can of course be used for other things.
|
||||||
|
|
||||||
|
# Support ConTeXt to at least some extent
|
||||||
|
\\start.* \\stop.*
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Here, you can specify the length of various dashes. We sort the
|
||||||
|
# dash according to which type of characters that are on the left and
|
||||||
|
# right of it. We are only conclusive if they are the same.
|
||||||
|
#
|
||||||
|
# We associate as follows:
|
||||||
|
#
|
||||||
|
# Name Type of character on each side
|
||||||
|
# HyphDash Alphabetic (foo-bar)
|
||||||
|
# NumDash Numeric (2--3)
|
||||||
|
# WordDash Space (like this --- see?)
|
||||||
|
#
|
||||||
|
# Below you specify how many dashes which are legal in each case. We
|
||||||
|
# define 0 as a magic constant which always generates an error. You
|
||||||
|
# may specify more than one legal dash-length.
|
||||||
|
#
|
||||||
|
# Let's look at an example. You use the following dash-syntax:
|
||||||
|
#
|
||||||
|
# foo-bar
|
||||||
|
# 2--3
|
||||||
|
# like this---see?
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# HYPHDASH { 1 3 } # Either a hyphen, or inter-word
|
||||||
|
# NUMDASH { 2 } # Between words
|
||||||
|
# WORDDASH { 0 } # We never use this
|
||||||
|
#
|
||||||
|
|
||||||
|
HyphDash
|
||||||
|
{
|
||||||
|
1 3
|
||||||
|
}
|
||||||
|
|
||||||
|
NumDash
|
||||||
|
{
|
||||||
|
2
|
||||||
|
}
|
||||||
|
|
||||||
|
WordDash
|
||||||
|
{
|
||||||
|
3
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Here are exceptions to the dash rules above. For example, an
|
||||||
|
# n-dash -- between words is usually wrong, but in some cases it is
|
||||||
|
# correct, such as when naming a theorem. The Birch--Swinnerton-Dyer
|
||||||
|
# conjecture is one example where the difference matters. You can
|
||||||
|
# tell that Birch is one person and Swinnerton-Dyer is another.
|
||||||
|
#
|
||||||
|
# Adding line suppressions for these is possible, but can quickly
|
||||||
|
# become tedious if a certain theorem is referenced often. For this
|
||||||
|
# reason exceptions can be specified here. They are case-sensitive.
|
||||||
|
#
|
||||||
|
|
||||||
|
DashExcpt
|
||||||
|
{
|
||||||
|
Birch--Swinnerton-Dyer
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# This keyword indicates commands whose argument isn't LaTeX code,
|
||||||
|
# and thus should be ignored.
|
||||||
|
#
|
||||||
|
# After the command, you may place arguments that you wish that
|
||||||
|
# should be wiped in the process; use [] for optional arguments, {}
|
||||||
|
# for required ones and * if the command supports an alternative
|
||||||
|
# variant. These should be separated from the command with a colon.
|
||||||
|
# Some commands (e.g. \cmidrule) use () to delimit and optional
|
||||||
|
# argument and so this syntax is supported as well.
|
||||||
|
#
|
||||||
|
# For instance, if you would like to wipe the \newcommand command,
|
||||||
|
# you would declare it as \newcommand:*[][]{}
|
||||||
|
#
|
||||||
|
# These commands may be "executed" before they're wiped, so you will
|
||||||
|
# typically also wish to list filehandling commands and similar here.
|
||||||
|
#
|
||||||
|
|
||||||
|
WipeArg
|
||||||
|
{
|
||||||
|
\label:{} \ref:{} \eqref:{} \vref:{} \pageref:{} \index:[]{}
|
||||||
|
\cite:[][]{} \nocite:{}
|
||||||
|
\input:{} \verbatiminput:[]{} \listinginput:[]{}{}
|
||||||
|
\verbatimtabinput:[]{} \include:{} \includeonly:{}
|
||||||
|
\bibitem:[]{}
|
||||||
|
\cline:{} \cmidrule:[](){}
|
||||||
|
\href:{}{}
|
||||||
|
# Cleveref -- there are many others that could be here as well...
|
||||||
|
\cref:*{} \cpageref:*{} \crefrange:*{}{} \cpagerefrange:*{}{}
|
||||||
|
\Cref:*{} \Cpageref:*{} \Crefrange:*{}{} \Cpagerefrange:*{}{}
|
||||||
|
# natbib
|
||||||
|
\citet:*[][]{} \citep:*[][]{} \citealt:*{} \citealp:*[]{} \citeauthor:*{}
|
||||||
|
\Citet:*[][]{} \Citep:*[][]{} \Citealt:*{} \Citealp:*[]{} \Citeauthor:{}
|
||||||
|
\citetext:{} \citeyear:*{} \citeyearpar:{}
|
||||||
|
# tipa which uses "
|
||||||
|
\textipa:{}
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# These environments contain material which will be typeset as
|
||||||
|
# mathematics by LaTeX. This turns on/off some warnings.
|
||||||
|
#
|
||||||
|
# We will automagically append a * to each keyword.
|
||||||
|
#
|
||||||
|
|
||||||
|
MathEnvir
|
||||||
|
{
|
||||||
|
displaymath math eqnarray array equation
|
||||||
|
align alignat gather flalign multline
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# These commands contain material which will be typeset as mathematics
|
||||||
|
# by LaTeX. The commands are assumed to have one mandatory argument
|
||||||
|
# which is in math mode. This turns on/off some warnings.
|
||||||
|
#
|
||||||
|
|
||||||
|
MathCmd
|
||||||
|
{
|
||||||
|
\ensuremath
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# These commands contain material which will _not_ be typeset as
|
||||||
|
# mathematics by LaTeX even if it would otherwise be in mathmode. The
|
||||||
|
# commands are assumed to have one mandatory argument which is in text
|
||||||
|
# mode. This turns on/off some warnings.
|
||||||
|
#
|
||||||
|
|
||||||
|
TextCmd
|
||||||
|
{
|
||||||
|
\text \intertext \shortintertext \mbox
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# These environments contains material which contents should be
|
||||||
|
# ignored.
|
||||||
|
#
|
||||||
|
# We will automagically append a * to each keyword.
|
||||||
|
#
|
||||||
|
|
||||||
|
VerbEnvir
|
||||||
|
{
|
||||||
|
verbatim comment listing verbatimtab rawhtml errexam picture texdraw
|
||||||
|
filecontents pgfpicture tikzpicture minted lstlisting IPA ignore
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# ChkTeX does automagically catch most abbreviations; the ones we
|
||||||
|
# need to list here, are those which are most likely to be followed
|
||||||
|
# by a word with an upper-case letter (that is not the beginning of a
|
||||||
|
# new sentence).
|
||||||
|
#
|
||||||
|
# The case-insensitive abbreviations are not really case-insensitive,
|
||||||
|
# it seems to be more practical to only let the first character be
|
||||||
|
# case-insensitive, while the remaining are case-sensitive.
|
||||||
|
#
|
||||||
|
# To speed up the searching process somewhat, we require that these
|
||||||
|
# end in a `.', this should not be a problem.
|
||||||
|
#
|
||||||
|
# Much of this work (both the abbreviations below, and the regexps
|
||||||
|
# necessary to catch the remaining automatically) have been provided
|
||||||
|
# by Russ Bubley, <russ@scs.leeds.ac.uk>.
|
||||||
|
#
|
||||||
|
|
||||||
|
Abbrev
|
||||||
|
{
|
||||||
|
# Ordinals
|
||||||
|
1st. 2nd. 3rd. 4th.
|
||||||
|
# Titles
|
||||||
|
Mr. Mrs. Miss. Ms. Dr. Prof. St.
|
||||||
|
|
||||||
|
#
|
||||||
|
# Days
|
||||||
|
# Mon. Tue. Wed. Thu. Fri. Sat. Sun.
|
||||||
|
#
|
||||||
|
# Months
|
||||||
|
# Jan. Feb. Mar. Apr. May. Jun. Jul. Aug. Sep. Oct. Nov. Dec.
|
||||||
|
#
|
||||||
|
# Letters
|
||||||
|
# Kt. Jr.
|
||||||
|
#
|
||||||
|
# Corporate
|
||||||
|
# Co. Ltd.
|
||||||
|
#
|
||||||
|
# Addresses
|
||||||
|
# Rd. Dr. St. Ave. Cres. Gdns. Sq. Circ. Terr. Pl. Arc. La. Clo. Ho. Est. Gn.
|
||||||
|
#
|
||||||
|
# Misc.
|
||||||
|
# oe. pbab. ps. rsvp. Tx.
|
||||||
|
}
|
||||||
|
[
|
||||||
|
###
|
||||||
|
#
|
||||||
|
# The first letter is case-insensitive in the abbrevs in this
|
||||||
|
# list. Due to the nature of the checking algorithm used for
|
||||||
|
# this, entries consisting of only one character will be
|
||||||
|
# silently ignored.
|
||||||
|
#
|
||||||
|
##
|
||||||
|
|
||||||
|
# Latin
|
||||||
|
# cf. "et al." etc. qed. qv. viz.
|
||||||
|
#
|
||||||
|
# Corporate
|
||||||
|
# inc. plc.
|
||||||
|
#
|
||||||
|
# Misc
|
||||||
|
# fax. pcs. qty. tel. misc.
|
||||||
|
]
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Commands which accent characters, meaning that \i or \j (\imath and
|
||||||
|
# \jmath in mathmode) should be used instead of `i' and `j'
|
||||||
|
#
|
||||||
|
|
||||||
|
IJAccent
|
||||||
|
{
|
||||||
|
\hat \check \breve \acute \grave \tilde \bar \vec \dot \ddot
|
||||||
|
|
||||||
|
\' \` \^ \" \~ \= \. \u \v \H \t
|
||||||
|
|
||||||
|
###
|
||||||
|
#
|
||||||
|
# The remaining accent commands (\c,\d,\b) put their accent _under_
|
||||||
|
# the character, not above, and should thus be used with normal i's
|
||||||
|
# and j's.
|
||||||
|
#
|
||||||
|
###
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Commands which, when the group is terminated, needs italic
|
||||||
|
# correction.
|
||||||
|
#
|
||||||
|
|
||||||
|
Italic
|
||||||
|
{
|
||||||
|
\it \em \sl
|
||||||
|
\itshape \slshape
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Commands which makes the font non-italic.
|
||||||
|
#
|
||||||
|
|
||||||
|
NonItalic
|
||||||
|
{
|
||||||
|
\bf \rm \sf \tt \sc
|
||||||
|
\upshape
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Commands which put their argument into italic (and thus possibly
|
||||||
|
# needs italic correction in the end).
|
||||||
|
#
|
||||||
|
# This is currently empty, since \textit, \textsl and \emph do that
|
||||||
|
# automatically.
|
||||||
|
#
|
||||||
|
|
||||||
|
ItalCmd
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# These commands all have in common that a pagebreak right in front
|
||||||
|
# of them is highly undesirable; thus there should be no space in
|
||||||
|
# front of them.
|
||||||
|
#
|
||||||
|
|
||||||
|
PostLink
|
||||||
|
{
|
||||||
|
\index \label
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# These commands should not have a space in front of them for various
|
||||||
|
# reasons. I.e. much the same as POSTLINK, but produces another
|
||||||
|
# warning.
|
||||||
|
#
|
||||||
|
|
||||||
|
NotPreSpaced
|
||||||
|
{
|
||||||
|
\footnote \footnotemark \/
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# The commands listed here, should be prepended with a `~', as in
|
||||||
|
# "look in table~\ref{foo}", to avoid the references being split
|
||||||
|
# across lines.
|
||||||
|
#
|
||||||
|
|
||||||
|
Linker
|
||||||
|
{
|
||||||
|
\ref \vref \pageref \eqref \cite
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Commands/characters which should have \cdots in between, e.g.
|
||||||
|
# $1+2+3+\cdots+n$.
|
||||||
|
#
|
||||||
|
|
||||||
|
CenterDots
|
||||||
|
{
|
||||||
|
= + - \cdot \div & \times \geq \leq < >
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Commands/characters which should have \ldots in between, e.g.
|
||||||
|
# $1,2,3,\ldots,n$.
|
||||||
|
#
|
||||||
|
|
||||||
|
LowDots
|
||||||
|
{
|
||||||
|
. , ;
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# In maths mode, there are certain aliases for mathematical operators
|
||||||
|
# like sin, cos, etc. Ignore the leading backslash in the commands,
|
||||||
|
# and so forth. You should list these below.
|
||||||
|
#
|
||||||
|
|
||||||
|
MathRoman
|
||||||
|
{
|
||||||
|
log lg ln lim limsup liminf sin arcsin sinh cos arccos cosh tan
|
||||||
|
arctan tanh cot coth sec csc max min sup inf arg ker dim hom det
|
||||||
|
exp Pr gcd deg bmod pmod mod
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# These TeX commands have become unnecessary, as there are LaTeX
|
||||||
|
# commands that does the same. Purists should thus avoid these in
|
||||||
|
# their code.
|
||||||
|
#
|
||||||
|
# (These are a spell-corrected version of those lacheck uses).
|
||||||
|
#
|
||||||
|
|
||||||
|
Primitives
|
||||||
|
{
|
||||||
|
\above \advance \catcode \chardef \closein \closeout \copy \count
|
||||||
|
\countdef \cr \crcr \csname \delcode \dimendef \dimen \divide
|
||||||
|
\expandafter \font \hskip \vskip \openout
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Format: \command:characters
|
||||||
|
#
|
||||||
|
# We'll emit a warning if any of characters are found after the
|
||||||
|
# command.
|
||||||
|
#
|
||||||
|
|
||||||
|
NoCharNext
|
||||||
|
{
|
||||||
|
\left:{}$ \right:{}$
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# We're killing \verb@...@ commands and the arguments of the commands
|
||||||
|
# listed above in WipeArg by overwriting them with a string or a
|
||||||
|
# single character.
|
||||||
|
#
|
||||||
|
# This should not contain an alphabetic character (in case the user
|
||||||
|
# writes (\foo\verb@bar@), neither should it contain be one of
|
||||||
|
# LaTeX's reserved characters (`#$%&~_^\{}'), or any parenthesis
|
||||||
|
# character ('()[]{}'). If possible, don't use a punctuation
|
||||||
|
# character, either, or any spacing character.
|
||||||
|
#
|
||||||
|
# The asterisk is also unsuitable, as some commands behave in another
|
||||||
|
# way if they are appended with an asterisk. Which more or less
|
||||||
|
# leaves us with the pipe.
|
||||||
|
#
|
||||||
|
# Please note that this may also be a _string_, which will be
|
||||||
|
# repeated until the proper length is reached.
|
||||||
|
#
|
||||||
|
|
||||||
|
VerbClear = "|"
|
||||||
|
|
||||||
|
#
|
||||||
|
# All for now - have fun.
|
||||||
|
#
|
||||||
|
#####################################################################
|
14
Dockerfile
14
Dockerfile
|
@ -59,6 +59,7 @@ RUN apk add --update --no-cache \
|
||||||
gcc \
|
gcc \
|
||||||
git git-lfs\
|
git git-lfs\
|
||||||
go \
|
go \
|
||||||
|
gnupg \
|
||||||
icu-libs \
|
icu-libs \
|
||||||
jq \
|
jq \
|
||||||
libc-dev libxml2-dev libxml2-utils \
|
libc-dev libxml2-dev libxml2-utils \
|
||||||
|
@ -73,7 +74,7 @@ RUN apk add --update --no-cache \
|
||||||
R \
|
R \
|
||||||
readline-dev \
|
readline-dev \
|
||||||
ruby ruby-dev ruby-bundler ruby-rdoc \
|
ruby ruby-dev ruby-bundler ruby-rdoc \
|
||||||
gnupg
|
zip
|
||||||
|
|
||||||
########################################
|
########################################
|
||||||
# Copy dependencies files to container #
|
# Copy dependencies files to container #
|
||||||
|
@ -248,6 +249,16 @@ RUN luarocks install luacheck
|
||||||
COPY --from=lintr-lib /usr/lib/R/library/ /home/r-library
|
COPY --from=lintr-lib /usr/lib/R/library/ /home/r-library
|
||||||
RUN R -e "install.packages(list.dirs('/home/r-library',recursive = FALSE), repos = NULL, type = 'source')"
|
RUN R -e "install.packages(list.dirs('/home/r-library',recursive = FALSE), repos = NULL, type = 'source')"
|
||||||
|
|
||||||
|
##################
|
||||||
|
# Install chktex #
|
||||||
|
##################
|
||||||
|
RUN wget --tries=5 http://mirrors.ctan.org/support/chktex.zip -O chktex.zip -q \
|
||||||
|
&& unzip chktex.zip \
|
||||||
|
&& cd chktex \
|
||||||
|
&& ./configure && make \
|
||||||
|
&& mv chktex /usr/bin \
|
||||||
|
&& cd .. && rm -rf chktex*
|
||||||
|
|
||||||
###########################################
|
###########################################
|
||||||
# Load GitHub Env Vars for GitHub Actions #
|
# Load GitHub Env Vars for GitHub Actions #
|
||||||
###########################################
|
###########################################
|
||||||
|
@ -288,6 +299,7 @@ ENV ACTIONS_RUNNER_DEBUG=${ACTIONS_RUNNER_DEBUG} \
|
||||||
VALIDATE_JAVASCRIPT_STANDARD=${VALIDATE_JAVASCRIPT_STANDARD} \
|
VALIDATE_JAVASCRIPT_STANDARD=${VALIDATE_JAVASCRIPT_STANDARD} \
|
||||||
VALIDATE_JSON=${VALIDATE_JSON} \
|
VALIDATE_JSON=${VALIDATE_JSON} \
|
||||||
VALIDATE_KOTLIN=${VALIDATE_KOTLIN} \
|
VALIDATE_KOTLIN=${VALIDATE_KOTLIN} \
|
||||||
|
VALIDATE_LATEX=${VALIDATE_LATEX} \
|
||||||
VALIDATE_LUA=${VALIDATE_LUA} \
|
VALIDATE_LUA=${VALIDATE_LUA} \
|
||||||
VALIDATE_MD=${VALIDATE_MD} \
|
VALIDATE_MD=${VALIDATE_MD} \
|
||||||
VALIDATE_OPENAPI=${VALIDATE_OPENAPI} \
|
VALIDATE_OPENAPI=${VALIDATE_OPENAPI} \
|
||||||
|
|
|
@ -60,6 +60,7 @@ Developers on **GitHub** can call the **GitHub Action** to lint their code base
|
||||||
| **JavaScript** | [eslint](https://eslint.org/) [standard js](https://standardjs.com/) |
|
| **JavaScript** | [eslint](https://eslint.org/) [standard js](https://standardjs.com/) |
|
||||||
| **JSON** | [jsonlint](https://github.com/zaach/jsonlint) |
|
| **JSON** | [jsonlint](https://github.com/zaach/jsonlint) |
|
||||||
| **Kotlin** | [ktlint](https://github.com/pinterest/ktlint) |
|
| **Kotlin** | [ktlint](https://github.com/pinterest/ktlint) |
|
||||||
|
| **LaTeX** | [ChkTex](https://www.nongnu.org/chktex/) |
|
||||||
| **Lua** | [luacheck](https://github.com/luarocks/luacheck) |
|
| **Lua** | [luacheck](https://github.com/luarocks/luacheck) |
|
||||||
| **Markdown** | [markdownlint](https://github.com/igorshubovych/markdownlint-cli#readme) |
|
| **Markdown** | [markdownlint](https://github.com/igorshubovych/markdownlint-cli#readme) |
|
||||||
| **OpenAPI** | [spectral](https://github.com/stoplightio/spectral) |
|
| **OpenAPI** | [spectral](https://github.com/stoplightio/spectral) |
|
||||||
|
@ -214,6 +215,7 @@ But if you wish to select or exclude specific linters, we give you full control
|
||||||
| **VALIDATE_JSON** | `true` | Flag to enable or disable the linting process of the JSON language. |
|
| **VALIDATE_JSON** | `true` | Flag to enable or disable the linting process of the JSON language. |
|
||||||
| **VALIDATE_JSX** | `true` | Flag to enable or disable the linting process for jsx files (Utilizing: eslint) |
|
| **VALIDATE_JSX** | `true` | Flag to enable or disable the linting process for jsx files (Utilizing: eslint) |
|
||||||
| **VALIDATE_KOTLIN** | `true` | Flag to enable or disable the linting process of the Kotlin language. |
|
| **VALIDATE_KOTLIN** | `true` | Flag to enable or disable the linting process of the Kotlin language. |
|
||||||
|
| **VALIDATE_LATEX** | `true` | Flag to enable or disable the linting process of the LaTeX language. |
|
||||||
| **VALIDATE_LUA** | `true` | Flag to enable or disable the linting process of the language. |
|
| **VALIDATE_LUA** | `true` | Flag to enable or disable the linting process of the language. |
|
||||||
| **VALIDATE_MD** | `true` | Flag to enable or disable the linting process of the Markdown language. |
|
| **VALIDATE_MD** | `true` | Flag to enable or disable the linting process of the Markdown language. |
|
||||||
| **VALIDATE_OPENAPI** | `true` | Flag to enable or disable the linting process of the OpenAPI language. |
|
| **VALIDATE_OPENAPI** | `true` | Flag to enable or disable the linting process of the OpenAPI language. |
|
||||||
|
|
802
TEMPLATES/chktexrc
Normal file
802
TEMPLATES/chktexrc
Normal file
|
@ -0,0 +1,802 @@
|
||||||
|
##
|
||||||
|
## ChkTeX, example resource file for ChkTeX.
|
||||||
|
## Copyright (C) 1995-96 Jens T. Berger Thielemann
|
||||||
|
##
|
||||||
|
## This program is free software; you can redistribute it and/or modify
|
||||||
|
## it under the terms of the GNU General Public License as published by
|
||||||
|
## the Free Software Foundation; either version 2 of the License, or
|
||||||
|
## (at your option) any later version.
|
||||||
|
##
|
||||||
|
## This program is distributed in the hope that it will be useful,
|
||||||
|
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
## GNU General Public License for more details.
|
||||||
|
##
|
||||||
|
## You should have received a copy of the GNU General Public License
|
||||||
|
## along with this program; if not, write to the Free Software
|
||||||
|
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
##
|
||||||
|
## Contact the author at:
|
||||||
|
## Jens Berger
|
||||||
|
## Spektrumvn. 4
|
||||||
|
## N-0666 Oslo
|
||||||
|
## Norway
|
||||||
|
## E-mail: <jensthi@ifi.uio.no>
|
||||||
|
##
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Note: The format has changed slightly (again). The { ... }
|
||||||
|
# syntax does now mean case-sensitive comparing, while [ ... ] means
|
||||||
|
# case-insensitive comparing of the keywords. Case-insensitive
|
||||||
|
# comparing of the keywords is only supported on a few of the
|
||||||
|
# keywords (it's not meaningful in all contexts, and it slows ChkTeX
|
||||||
|
# down). Keywords supporting this are marked throughout the file.
|
||||||
|
#
|
||||||
|
# You may also reset a list by saying "KEYWORD = { ... }"; it will
|
||||||
|
# then be set equal to the contents of the list you specify.
|
||||||
|
#
|
||||||
|
# Comments begin with `#', and continues for the rest of the line.
|
||||||
|
# Blank lines plus leading and trailing spaces are of course ignored.
|
||||||
|
#
|
||||||
|
# The general format of this file is the following:
|
||||||
|
#
|
||||||
|
# KEYWORD { item item ...} [ item item ... ] /* Adds items */
|
||||||
|
#
|
||||||
|
# KEYWORD [ item item ...] { item item ... } /* Adds items */
|
||||||
|
#
|
||||||
|
# KEYWORD = item
|
||||||
|
#
|
||||||
|
# KEYWORD = { item item ... } /* Clears list before adding */
|
||||||
|
#
|
||||||
|
# KEYWORD = [ item item ... ] /* Clears list before adding */
|
||||||
|
#
|
||||||
|
# This does _not_ mean that you may alternate the forms; certain
|
||||||
|
# keywords demands a list, other a single value. You thus have to
|
||||||
|
# look at the examples of their use.
|
||||||
|
#
|
||||||
|
# Please also note that if you specify a list-keyword twice, we'll
|
||||||
|
# concatenate the lists. If you specify a item-keyword twice, we'll
|
||||||
|
# kill the previous value.
|
||||||
|
#
|
||||||
|
# We are slightly context-sensitive when detecting tokens like "}"
|
||||||
|
# and "]"; they have to be preceded by a space. This generally makes
|
||||||
|
# life easier.
|
||||||
|
#
|
||||||
|
# Items are separated by spaces. Newlines are considered as spaces,
|
||||||
|
# but can't be escaped. You may surround items with quotes (`"') to
|
||||||
|
# easily put spaces into them.
|
||||||
|
#
|
||||||
|
# Escape sequences available:
|
||||||
|
#
|
||||||
|
# Sequence Resulting character
|
||||||
|
# ! A space (type `! ', not just a exclamation mark)
|
||||||
|
# !" "
|
||||||
|
# !# #
|
||||||
|
# !! !
|
||||||
|
# !{ {
|
||||||
|
# !} }
|
||||||
|
# ![ [
|
||||||
|
# !] ]
|
||||||
|
# != =
|
||||||
|
# !b Backspace
|
||||||
|
# !n New line
|
||||||
|
# !r Carriage return
|
||||||
|
# !t Tab
|
||||||
|
# !f Form feed
|
||||||
|
# !xNN NN must be a hexadecimal number (00 - ff),
|
||||||
|
# _both_ characters must be included.
|
||||||
|
# !dNNN DDD must be a decimal number (000 - 255), all
|
||||||
|
# three characters must be included. Unspecified
|
||||||
|
# results if DDD > 255.
|
||||||
|
# !NNN DDD must be a octal number (000 - 377), all
|
||||||
|
# three characters must be included. Unspecified
|
||||||
|
# results if DDD > 377.
|
||||||
|
#
|
||||||
|
# Minor note: As you can see, most of these escape sequences are
|
||||||
|
# equal to those in C (with some extensions); however, we use !
|
||||||
|
# instead of \ as escape character for obvious reasons.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# Quick summary of keywords follows. Keywords marked with a * accept
|
||||||
|
# keywords accepting case-insensitive lists.
|
||||||
|
#
|
||||||
|
# Abbrev* - A list of abbreviations not automatically caught.
|
||||||
|
# CenterDots - Commands/characters which should have \cdots in
|
||||||
|
# between.
|
||||||
|
# CmdLine - Default commandline options. These will be
|
||||||
|
# processed before the ones you give on the command
|
||||||
|
# line.
|
||||||
|
# HyphDash \
|
||||||
|
# NumDash - Number of dashes allowed in different contexts.
|
||||||
|
# WordDash /
|
||||||
|
# IJAccent - Commands which puts an accent _over_ their
|
||||||
|
# argument.
|
||||||
|
# Italic - Commands immediately turning on italic mode.
|
||||||
|
# ItalCmd - Commands putting their argument into italic.
|
||||||
|
# Linker - Commands which should have a non-breaking space in
|
||||||
|
# front.
|
||||||
|
# LowDots - Commands/characters which should have \ldots in
|
||||||
|
# between.
|
||||||
|
# MathEnvir - Environments which turn on math mode.
|
||||||
|
# MathCmd - Commands which turn on math mode.
|
||||||
|
# TextCmd - Commands which turn off math mode.
|
||||||
|
# MathRoman - Mathematical operators with LaTeX replacement
|
||||||
|
# defined.
|
||||||
|
# NoCharNext - Insists on that certain commands aren't followed by
|
||||||
|
# certain characters.
|
||||||
|
# NonItalic - Commands immediately turning off italic mode.
|
||||||
|
# NotPreSpaced- Commands which should not have a space in front of
|
||||||
|
# them.
|
||||||
|
# Primitives - Primitive TeX commands.
|
||||||
|
# PostLink - Commands which generates a page reference.
|
||||||
|
# OutFormat - Formats to use for output. See the -f & -v switch
|
||||||
|
# in the main doc.
|
||||||
|
# QuoteStyle - Either "Traditional" or "Logical". See main doc,
|
||||||
|
# warning 38.
|
||||||
|
# Silent - These commands do not produce any textual output;
|
||||||
|
# and are thus allowed to have a space after them.
|
||||||
|
# TabSize - Tab size you are using.
|
||||||
|
# TeXInputs - Paths to search \input and \include files for.
|
||||||
|
# UserWarn* - These strings will be searched for throughout the
|
||||||
|
# text.
|
||||||
|
# VerbEnvir - Environments which contents should be ignored.
|
||||||
|
# VerbClear - String we will overwrite unwanted data with.
|
||||||
|
# WipeArg - Commands (with arguments) which should be ignored
|
||||||
|
# in the checking.
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Enter which type of quote-style you are using here. Currently, we
|
||||||
|
# support the following styles:
|
||||||
|
#
|
||||||
|
# Style Example of use
|
||||||
|
# Traditional "An example," he said, "would be great."
|
||||||
|
# Logical "An example", he said, "would be great".
|
||||||
|
#
|
||||||
|
|
||||||
|
QuoteStyle = Logical
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Enter here what interval you have between your tabs. Only regular
|
||||||
|
# intervals are supported.
|
||||||
|
#
|
||||||
|
|
||||||
|
TabSize = 8
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Here, you can put default commandline options; most users would for
|
||||||
|
# instance like to put -v2 here.
|
||||||
|
#
|
||||||
|
|
||||||
|
CmdLine
|
||||||
|
{
|
||||||
|
-v2
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# These patterns will be searched for through the text; no matter
|
||||||
|
# whether they appear as normal text, commands or whatever.
|
||||||
|
# Currently case-sensitive. They are not found in comments.
|
||||||
|
#
|
||||||
|
# I usually define a special command like this:
|
||||||
|
#
|
||||||
|
# \def\unknown{\large\bf??}
|
||||||
|
#
|
||||||
|
# which I use whenever there is some information I don't have at the
|
||||||
|
# moment of writing. Thus, it makes sense to search for it.
|
||||||
|
#
|
||||||
|
# You should be able to develop your own uses for this.
|
||||||
|
#
|
||||||
|
|
||||||
|
UserWarn
|
||||||
|
{
|
||||||
|
|
||||||
|
\unknown
|
||||||
|
###
|
||||||
|
#
|
||||||
|
# Another example; one should write \chktex or Chk\TeX - never ChkTeX.
|
||||||
|
#
|
||||||
|
###
|
||||||
|
|
||||||
|
ChkTeX
|
||||||
|
}
|
||||||
|
[
|
||||||
|
|
||||||
|
###
|
||||||
|
#
|
||||||
|
# You may put case-insensitive patterns here.
|
||||||
|
#
|
||||||
|
###
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
###
|
||||||
|
#
|
||||||
|
# These patterns will be searched for, no matter whether they appear
|
||||||
|
# as normal text, commands or arguments. However, they will _not_
|
||||||
|
# match in verbatim environments.
|
||||||
|
#
|
||||||
|
# Remember that you have to escape (with a !) the following
|
||||||
|
# characters: "#!= as well as spaces and {}[] if they are proceeded by
|
||||||
|
# a space.
|
||||||
|
#
|
||||||
|
# Since these are PCRE regular expressions, you can use (?i) to make
|
||||||
|
# the expression case insensitive. See the man pages (man pcresyntax)
|
||||||
|
# or the nicely formatted http://perldoc.perl.org/perlre.html for
|
||||||
|
# documentation on the regular expression syntax. Note however that
|
||||||
|
# some the features of perl regular expression are not available such
|
||||||
|
# as running code (callouts), and replacing.
|
||||||
|
#
|
||||||
|
# An initial PCRE comment (?# ... ) can be used change what is
|
||||||
|
# displayed, thereby reminding yourself how to fix the problem.
|
||||||
|
#
|
||||||
|
###
|
||||||
|
UserWarnRegex
|
||||||
|
{
|
||||||
|
|
||||||
|
(?!#Always! use! \nmid)\\not! *(\||\\mid)
|
||||||
|
|
||||||
|
# capitalize section when saying Section 6.
|
||||||
|
(?!#-1:Capitalize! before! references)PCRE:\b(chapter|(sub)?section|theorem|lemma|proposition|corollary|appendix)~\\ref
|
||||||
|
(?!#1:Capitalize! before! references)POSIX:([^[:alnum:]]|^)(chapter|(sub)?section|theorem|lemma|proposition|corollary|appendix)~\\ref
|
||||||
|
|
||||||
|
# spell it out.
|
||||||
|
# PCRE:(?i)\bintro\b(?!#Spell! it! out.! This! comment! is! not! used.)
|
||||||
|
# POSIX:([^[:alnum:]]|^)intro([^[:alnum:]]|$)
|
||||||
|
|
||||||
|
# Pretty tables--see http://texdoc.net/texmf-dist/doc/latex/booktabs/booktabs.pdf
|
||||||
|
(?!#-2:Use! \toprule,! midrule,! or! \bottomrule! from! booktabs)\\hline
|
||||||
|
# This relies on it being on a single line, and not having anything
|
||||||
|
# else on that line. With PCRE we could match balanced [] and {},
|
||||||
|
# but I wonder if it's worth the complexity...
|
||||||
|
(?!#-2:Vertical! rules! in! tables! are! ugly)\\begin\{(array|tabularx?\*?)\}(\[.*\])?\{.*\|.*\}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Here you can list the path of where ChkTeX should look for files it
|
||||||
|
# \inputs. The // postfix is now supported; if you append a double
|
||||||
|
# path-separator we'll recursively search that directory directories.
|
||||||
|
# MS-DOS users must append \\ instead, e.g. "C:\EMTEX\\".
|
||||||
|
#
|
||||||
|
# If you under either MS-DOS or UNIX wish to search an entire
|
||||||
|
# partition or the complete directory tree, you must use *three*
|
||||||
|
# slashes, e.g. "c:\\\" or "///". This may be considered to be a bug.
|
||||||
|
#
|
||||||
|
# By default, we'll search the current directory (not recursively,
|
||||||
|
# put "//" in the list for this); any paths specified below will be
|
||||||
|
# searched in addition to this.
|
||||||
|
#
|
||||||
|
|
||||||
|
TeXInputs
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Here you may specify more output formats for use with the -v option,
|
||||||
|
# it simply indexes into this list. Remember to use ! instead of \,
|
||||||
|
# though.
|
||||||
|
#
|
||||||
|
# For explanation of how % fields expand; look at ChkTeX.{dvi,ps,pdf}.
|
||||||
|
#
|
||||||
|
# We will by default select entry number _two_ in this list (we count
|
||||||
|
# from 0), and -v without any parameter selects entry number _three_.
|
||||||
|
#
|
||||||
|
|
||||||
|
OutFormat
|
||||||
|
{
|
||||||
|
|
||||||
|
# -v0; silent mode
|
||||||
|
%f%b%l%b%c%b%n%b%m!n
|
||||||
|
|
||||||
|
# -v1; normal mode
|
||||||
|
"%k %n in %f line %l: %m!n%r%s%t!n%u!n"
|
||||||
|
|
||||||
|
# -v2; fancy mode
|
||||||
|
"%k %n in %f line %l: %m!n%r%i%s%I%t!n!n"
|
||||||
|
|
||||||
|
# -v3; lacheck mode
|
||||||
|
"!"%f!", line %l: %m!n"
|
||||||
|
|
||||||
|
# -v4; verbose lacheck mode
|
||||||
|
"!"%f!", line %l: %m!n%r%s%t!n%u!n"
|
||||||
|
|
||||||
|
# -v5; no line number, ease auto-test
|
||||||
|
"%k %n in %f: %m!n%r%s%t!n%u!n"
|
||||||
|
|
||||||
|
# -v6; emacs compilation mode
|
||||||
|
"!"%f!", line %l.%c:(#%n) %m!n"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# These commands should be ignored when detecting whether a command
|
||||||
|
# is ended by a space. You can specify regular expressions in the []
|
||||||
|
# section in case you have many custom macros that can be safely
|
||||||
|
# terminated with a space.
|
||||||
|
#
|
||||||
|
|
||||||
|
Silent
|
||||||
|
{
|
||||||
|
\rm \em \bf \it \sl \sf \sc \tt \selectfont
|
||||||
|
\rmfamily \sffamily \ttfamily \mdseries \bfseries
|
||||||
|
\slshape \scshape \relax
|
||||||
|
\vskip \pagebreak \nopagebreak
|
||||||
|
|
||||||
|
\textrm \textem \textbf \textit \textsl \textsf \textsc \texttt
|
||||||
|
|
||||||
|
\clearpage \ddots \dotfill \flushbottom \fussy \indent \linebreak
|
||||||
|
\onecolumn \pagebreak \pushtabs \poptabs \scriptsize \sloppy
|
||||||
|
\twocolumn \vdots
|
||||||
|
\today \kill \newline \thicklines \thinlines
|
||||||
|
|
||||||
|
\columnsep \space \item \tiny \footnotesize \small \normalsize
|
||||||
|
\normal \large \Large \LARGE \huge \Huge \printindex
|
||||||
|
|
||||||
|
\newpage \listoffigures \listoftables \tableofcontents
|
||||||
|
\maketitle \makeindex
|
||||||
|
|
||||||
|
\hline \hrule \vrule
|
||||||
|
|
||||||
|
\centering
|
||||||
|
|
||||||
|
\bigskip \medskip \smallskip
|
||||||
|
|
||||||
|
\noindent \expandafter
|
||||||
|
|
||||||
|
\makeatletter \makeatother
|
||||||
|
|
||||||
|
\columnseprule
|
||||||
|
|
||||||
|
\textwidth \textheight \hsize \vsize
|
||||||
|
|
||||||
|
\if \fi \else
|
||||||
|
|
||||||
|
\csname \endcsname
|
||||||
|
|
||||||
|
\z@ \p@ \@warning \typeout
|
||||||
|
|
||||||
|
\dots \ldots \input \endinput \nextline \leavevmode \cdots
|
||||||
|
\appendix \listfiles \and \quad
|
||||||
|
\hskip \vfill \vfil \hfill \hfil \topmargin \oddsidemargin
|
||||||
|
\frenchspacing \nonfrenchspacing
|
||||||
|
\begingroup \endgroup \par
|
||||||
|
|
||||||
|
\vrefwarning \upshape \headheight \headsep \hoffset \voffset
|
||||||
|
\cdot \qquad
|
||||||
|
\left \right
|
||||||
|
\qedhere
|
||||||
|
|
||||||
|
\xspace
|
||||||
|
|
||||||
|
\addlinespace \cr \fill \frontmatter
|
||||||
|
\toprule \midrule \bottomrule
|
||||||
|
|
||||||
|
}[
|
||||||
|
# Here you can put regular expressions to match Silent macros. It was
|
||||||
|
# designed for the case where you have many custom macros sharing a
|
||||||
|
# common prefix, but can of course be used for other things.
|
||||||
|
|
||||||
|
# Support ConTeXt to at least some extent
|
||||||
|
\\start.* \\stop.*
|
||||||
|
|
||||||
|
]
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Here, you can specify the length of various dashes. We sort the
|
||||||
|
# dash according to which type of characters that are on the left and
|
||||||
|
# right of it. We are only conclusive if they are the same.
|
||||||
|
#
|
||||||
|
# We associate as follows:
|
||||||
|
#
|
||||||
|
# Name Type of character on each side
|
||||||
|
# HyphDash Alphabetic (foo-bar)
|
||||||
|
# NumDash Numeric (2--3)
|
||||||
|
# WordDash Space (like this --- see?)
|
||||||
|
#
|
||||||
|
# Below you specify how many dashes which are legal in each case. We
|
||||||
|
# define 0 as a magic constant which always generates an error. You
|
||||||
|
# may specify more than one legal dash-length.
|
||||||
|
#
|
||||||
|
# Let's look at an example. You use the following dash-syntax:
|
||||||
|
#
|
||||||
|
# foo-bar
|
||||||
|
# 2--3
|
||||||
|
# like this---see?
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# HYPHDASH { 1 3 } # Either a hyphen, or inter-word
|
||||||
|
# NUMDASH { 2 } # Between words
|
||||||
|
# WORDDASH { 0 } # We never use this
|
||||||
|
#
|
||||||
|
|
||||||
|
HyphDash
|
||||||
|
{
|
||||||
|
1 3
|
||||||
|
}
|
||||||
|
|
||||||
|
NumDash
|
||||||
|
{
|
||||||
|
2
|
||||||
|
}
|
||||||
|
|
||||||
|
WordDash
|
||||||
|
{
|
||||||
|
3
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Here are exceptions to the dash rules above. For example, an
|
||||||
|
# n-dash -- between words is usually wrong, but in some cases it is
|
||||||
|
# correct, such as when naming a theorem. The Birch--Swinnerton-Dyer
|
||||||
|
# conjecture is one example where the difference matters. You can
|
||||||
|
# tell that Birch is one person and Swinnerton-Dyer is another.
|
||||||
|
#
|
||||||
|
# Adding line suppressions for these is possible, but can quickly
|
||||||
|
# become tedious if a certain theorem is referenced often. For this
|
||||||
|
# reason exceptions can be specified here. They are case-sensitive.
|
||||||
|
#
|
||||||
|
|
||||||
|
DashExcpt
|
||||||
|
{
|
||||||
|
Birch--Swinnerton-Dyer
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# This keyword indicates commands whose argument isn't LaTeX code,
|
||||||
|
# and thus should be ignored.
|
||||||
|
#
|
||||||
|
# After the command, you may place arguments that you wish that
|
||||||
|
# should be wiped in the process; use [] for optional arguments, {}
|
||||||
|
# for required ones and * if the command supports an alternative
|
||||||
|
# variant. These should be separated from the command with a colon.
|
||||||
|
# Some commands (e.g. \cmidrule) use () to delimit and optional
|
||||||
|
# argument and so this syntax is supported as well.
|
||||||
|
#
|
||||||
|
# For instance, if you would like to wipe the \newcommand command,
|
||||||
|
# you would declare it as \newcommand:*[][]{}
|
||||||
|
#
|
||||||
|
# These commands may be "executed" before they're wiped, so you will
|
||||||
|
# typically also wish to list filehandling commands and similar here.
|
||||||
|
#
|
||||||
|
|
||||||
|
WipeArg
|
||||||
|
{
|
||||||
|
\label:{} \ref:{} \eqref:{} \vref:{} \pageref:{} \index:[]{}
|
||||||
|
\cite:[][]{} \nocite:{}
|
||||||
|
\input:{} \verbatiminput:[]{} \listinginput:[]{}{}
|
||||||
|
\verbatimtabinput:[]{} \include:{} \includeonly:{}
|
||||||
|
\bibitem:[]{}
|
||||||
|
\cline:{} \cmidrule:[](){}
|
||||||
|
\href:{}{}
|
||||||
|
# Cleveref -- there are many others that could be here as well...
|
||||||
|
\cref:*{} \cpageref:*{} \crefrange:*{}{} \cpagerefrange:*{}{}
|
||||||
|
\Cref:*{} \Cpageref:*{} \Crefrange:*{}{} \Cpagerefrange:*{}{}
|
||||||
|
# natbib
|
||||||
|
\citet:*[][]{} \citep:*[][]{} \citealt:*{} \citealp:*[]{} \citeauthor:*{}
|
||||||
|
\Citet:*[][]{} \Citep:*[][]{} \Citealt:*{} \Citealp:*[]{} \Citeauthor:{}
|
||||||
|
\citetext:{} \citeyear:*{} \citeyearpar:{}
|
||||||
|
# tipa which uses "
|
||||||
|
\textipa:{}
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# These environments contain material which will be typeset as
|
||||||
|
# mathematics by LaTeX. This turns on/off some warnings.
|
||||||
|
#
|
||||||
|
# We will automagically append a * to each keyword.
|
||||||
|
#
|
||||||
|
|
||||||
|
MathEnvir
|
||||||
|
{
|
||||||
|
displaymath math eqnarray array equation
|
||||||
|
align alignat gather flalign multline
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# These commands contain material which will be typeset as mathematics
|
||||||
|
# by LaTeX. The commands are assumed to have one mandatory argument
|
||||||
|
# which is in math mode. This turns on/off some warnings.
|
||||||
|
#
|
||||||
|
|
||||||
|
MathCmd
|
||||||
|
{
|
||||||
|
\ensuremath
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# These commands contain material which will _not_ be typeset as
|
||||||
|
# mathematics by LaTeX even if it would otherwise be in mathmode. The
|
||||||
|
# commands are assumed to have one mandatory argument which is in text
|
||||||
|
# mode. This turns on/off some warnings.
|
||||||
|
#
|
||||||
|
|
||||||
|
TextCmd
|
||||||
|
{
|
||||||
|
\text \intertext \shortintertext \mbox
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# These environments contains material which contents should be
|
||||||
|
# ignored.
|
||||||
|
#
|
||||||
|
# We will automagically append a * to each keyword.
|
||||||
|
#
|
||||||
|
|
||||||
|
VerbEnvir
|
||||||
|
{
|
||||||
|
verbatim comment listing verbatimtab rawhtml errexam picture texdraw
|
||||||
|
filecontents pgfpicture tikzpicture minted lstlisting IPA ignore
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# ChkTeX does automagically catch most abbreviations; the ones we
|
||||||
|
# need to list here, are those which are most likely to be followed
|
||||||
|
# by a word with an upper-case letter (that is not the beginning of a
|
||||||
|
# new sentence).
|
||||||
|
#
|
||||||
|
# The case-insensitive abbreviations are not really case-insensitive,
|
||||||
|
# it seems to be more practical to only let the first character be
|
||||||
|
# case-insensitive, while the remaining are case-sensitive.
|
||||||
|
#
|
||||||
|
# To speed up the searching process somewhat, we require that these
|
||||||
|
# end in a `.', this should not be a problem.
|
||||||
|
#
|
||||||
|
# Much of this work (both the abbreviations below, and the regexps
|
||||||
|
# necessary to catch the remaining automatically) have been provided
|
||||||
|
# by Russ Bubley, <russ@scs.leeds.ac.uk>.
|
||||||
|
#
|
||||||
|
|
||||||
|
Abbrev
|
||||||
|
{
|
||||||
|
# Ordinals
|
||||||
|
1st. 2nd. 3rd. 4th.
|
||||||
|
# Titles
|
||||||
|
Mr. Mrs. Miss. Ms. Dr. Prof. St.
|
||||||
|
|
||||||
|
#
|
||||||
|
# Days
|
||||||
|
# Mon. Tue. Wed. Thu. Fri. Sat. Sun.
|
||||||
|
#
|
||||||
|
# Months
|
||||||
|
# Jan. Feb. Mar. Apr. May. Jun. Jul. Aug. Sep. Oct. Nov. Dec.
|
||||||
|
#
|
||||||
|
# Letters
|
||||||
|
# Kt. Jr.
|
||||||
|
#
|
||||||
|
# Corporate
|
||||||
|
# Co. Ltd.
|
||||||
|
#
|
||||||
|
# Addresses
|
||||||
|
# Rd. Dr. St. Ave. Cres. Gdns. Sq. Circ. Terr. Pl. Arc. La. Clo. Ho. Est. Gn.
|
||||||
|
#
|
||||||
|
# Misc.
|
||||||
|
# oe. pbab. ps. rsvp. Tx.
|
||||||
|
}
|
||||||
|
[
|
||||||
|
###
|
||||||
|
#
|
||||||
|
# The first letter is case-insensitive in the abbrevs in this
|
||||||
|
# list. Due to the nature of the checking algorithm used for
|
||||||
|
# this, entries consisting of only one character will be
|
||||||
|
# silently ignored.
|
||||||
|
#
|
||||||
|
##
|
||||||
|
|
||||||
|
# Latin
|
||||||
|
# cf. "et al." etc. qed. qv. viz.
|
||||||
|
#
|
||||||
|
# Corporate
|
||||||
|
# inc. plc.
|
||||||
|
#
|
||||||
|
# Misc
|
||||||
|
# fax. pcs. qty. tel. misc.
|
||||||
|
]
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Commands which accent characters, meaning that \i or \j (\imath and
|
||||||
|
# \jmath in mathmode) should be used instead of `i' and `j'
|
||||||
|
#
|
||||||
|
|
||||||
|
IJAccent
|
||||||
|
{
|
||||||
|
\hat \check \breve \acute \grave \tilde \bar \vec \dot \ddot
|
||||||
|
|
||||||
|
\' \` \^ \" \~ \= \. \u \v \H \t
|
||||||
|
|
||||||
|
###
|
||||||
|
#
|
||||||
|
# The remaining accent commands (\c,\d,\b) put their accent _under_
|
||||||
|
# the character, not above, and should thus be used with normal i's
|
||||||
|
# and j's.
|
||||||
|
#
|
||||||
|
###
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Commands which, when the group is terminated, needs italic
|
||||||
|
# correction.
|
||||||
|
#
|
||||||
|
|
||||||
|
Italic
|
||||||
|
{
|
||||||
|
\it \em \sl
|
||||||
|
\itshape \slshape
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Commands which makes the font non-italic.
|
||||||
|
#
|
||||||
|
|
||||||
|
NonItalic
|
||||||
|
{
|
||||||
|
\bf \rm \sf \tt \sc
|
||||||
|
\upshape
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Commands which put their argument into italic (and thus possibly
|
||||||
|
# needs italic correction in the end).
|
||||||
|
#
|
||||||
|
# This is currently empty, since \textit, \textsl and \emph do that
|
||||||
|
# automatically.
|
||||||
|
#
|
||||||
|
|
||||||
|
ItalCmd
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# These commands all have in common that a pagebreak right in front
|
||||||
|
# of them is highly undesirable; thus there should be no space in
|
||||||
|
# front of them.
|
||||||
|
#
|
||||||
|
|
||||||
|
PostLink
|
||||||
|
{
|
||||||
|
\index \label
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# These commands should not have a space in front of them for various
|
||||||
|
# reasons. I.e. much the same as POSTLINK, but produces another
|
||||||
|
# warning.
|
||||||
|
#
|
||||||
|
|
||||||
|
NotPreSpaced
|
||||||
|
{
|
||||||
|
\footnote \footnotemark \/
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# The commands listed here, should be prepended with a `~', as in
|
||||||
|
# "look in table~\ref{foo}", to avoid the references being split
|
||||||
|
# across lines.
|
||||||
|
#
|
||||||
|
|
||||||
|
Linker
|
||||||
|
{
|
||||||
|
\ref \vref \pageref \eqref \cite
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Commands/characters which should have \cdots in between, e.g.
|
||||||
|
# $1+2+3+\cdots+n$.
|
||||||
|
#
|
||||||
|
|
||||||
|
CenterDots
|
||||||
|
{
|
||||||
|
= + - \cdot \div & \times \geq \leq < >
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Commands/characters which should have \ldots in between, e.g.
|
||||||
|
# $1,2,3,\ldots,n$.
|
||||||
|
#
|
||||||
|
|
||||||
|
LowDots
|
||||||
|
{
|
||||||
|
. , ;
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# In maths mode, there are certain aliases for mathematical operators
|
||||||
|
# like sin, cos, etc. Ignore the leading backslash in the commands,
|
||||||
|
# and so forth. You should list these below.
|
||||||
|
#
|
||||||
|
|
||||||
|
MathRoman
|
||||||
|
{
|
||||||
|
log lg ln lim limsup liminf sin arcsin sinh cos arccos cosh tan
|
||||||
|
arctan tanh cot coth sec csc max min sup inf arg ker dim hom det
|
||||||
|
exp Pr gcd deg bmod pmod mod
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# These TeX commands have become unnecessary, as there are LaTeX
|
||||||
|
# commands that does the same. Purists should thus avoid these in
|
||||||
|
# their code.
|
||||||
|
#
|
||||||
|
# (These are a spell-corrected version of those lacheck uses).
|
||||||
|
#
|
||||||
|
|
||||||
|
Primitives
|
||||||
|
{
|
||||||
|
\above \advance \catcode \chardef \closein \closeout \copy \count
|
||||||
|
\countdef \cr \crcr \csname \delcode \dimendef \dimen \divide
|
||||||
|
\expandafter \font \hskip \vskip \openout
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# Format: \command:characters
|
||||||
|
#
|
||||||
|
# We'll emit a warning if any of characters are found after the
|
||||||
|
# command.
|
||||||
|
#
|
||||||
|
|
||||||
|
NoCharNext
|
||||||
|
{
|
||||||
|
\left:{}$ \right:{}$
|
||||||
|
}
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
#
|
||||||
|
# We're killing \verb@...@ commands and the arguments of the commands
|
||||||
|
# listed above in WipeArg by overwriting them with a string or a
|
||||||
|
# single character.
|
||||||
|
#
|
||||||
|
# This should not contain an alphabetic character (in case the user
|
||||||
|
# writes (\foo\verb@bar@), neither should it contain be one of
|
||||||
|
# LaTeX's reserved characters (`#$%&~_^\{}'), or any parenthesis
|
||||||
|
# character ('()[]{}'). If possible, don't use a punctuation
|
||||||
|
# character, either, or any spacing character.
|
||||||
|
#
|
||||||
|
# The asterisk is also unsuitable, as some commands behave in another
|
||||||
|
# way if they are appended with an asterisk. Which more or less
|
||||||
|
# leaves us with the pipe.
|
||||||
|
#
|
||||||
|
# Please note that this may also be a _string_, which will be
|
||||||
|
# repeated until the proper length is reached.
|
||||||
|
#
|
||||||
|
|
||||||
|
VerbClear = "|"
|
||||||
|
|
||||||
|
#
|
||||||
|
# All for now - have fun.
|
||||||
|
#
|
||||||
|
#####################################################################
|
|
@ -34,6 +34,7 @@ For some linters it is also possible to override rules on a case by case level w
|
||||||
- [Javascript standard](#javascript-standard)
|
- [Javascript standard](#javascript-standard)
|
||||||
- [JSON](#json)
|
- [JSON](#json)
|
||||||
- [Kotlin](#kotlin)
|
- [Kotlin](#kotlin)
|
||||||
|
- [LaTeX](#latex)
|
||||||
- [Lua](#lua)
|
- [Lua](#lua)
|
||||||
- [Markdown](#markdown)
|
- [Markdown](#markdown)
|
||||||
- [OpenAPI](#openapi)
|
- [OpenAPI](#openapi)
|
||||||
|
@ -602,6 +603,48 @@ import package.b.*
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
## LaTeX
|
||||||
|
|
||||||
|
- [ChkTex](https://www.nongnu.org/chktex/)
|
||||||
|
|
||||||
|
### ChkTex Config file
|
||||||
|
|
||||||
|
- `.github/linters/chktexrc`
|
||||||
|
- You can pass multiple rules and overwrite default rules
|
||||||
|
- File should be located at: `.github/linters/.luacheckrc`
|
||||||
|
- See [ChkTex](https://ctan.kako-dev.de/systems/doc/chktex/ChkTeX.pdf) docs for additional
|
||||||
|
behaviors
|
||||||
|
|
||||||
|
### ChkTex disable single line
|
||||||
|
|
||||||
|
Disable warnings on each line:
|
||||||
|
|
||||||
|
```latex
|
||||||
|
$[0,\infty)$ % chktex 8 chktex 9
|
||||||
|
```
|
||||||
|
### ChkTex disable code block
|
||||||
|
|
||||||
|
Use the `ignore`-environment to ignore all warnings within it.
|
||||||
|
Make sure that "ignore" is contained in your chektexrc files "VerbEnvir" setting.
|
||||||
|
|
||||||
|
```latex
|
||||||
|
\newenvironment{ignore}{}{}
|
||||||
|
|
||||||
|
\begin{ignore}
|
||||||
|
$[0,\infty)$
|
||||||
|
\end{ignore}
|
||||||
|
```
|
||||||
|
|
||||||
|
### ChkTex disable entire file
|
||||||
|
|
||||||
|
Disable warning for the rest of the file:
|
||||||
|
|
||||||
|
```latex
|
||||||
|
% chktex-file 18
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Lua
|
## Lua
|
||||||
|
|
||||||
- [luarocks](https://github.com/luarocks/luacheck)
|
- [luarocks](https://github.com/luarocks/luacheck)
|
||||||
|
|
|
@ -327,9 +327,6 @@ function BuildFileList() {
|
||||||
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
||||||
##########################################################
|
##########################################################
|
||||||
READ_ONLY_CHANGE_FLAG=1
|
READ_ONLY_CHANGE_FLAG=1
|
||||||
########################
|
|
||||||
# Get the Golang files #
|
|
||||||
########################
|
|
||||||
############################
|
############################
|
||||||
# Get the TypeScript files #
|
# Get the TypeScript files #
|
||||||
############################
|
############################
|
||||||
|
@ -355,6 +352,18 @@ function BuildFileList() {
|
||||||
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
||||||
##########################################################
|
##########################################################
|
||||||
READ_ONLY_CHANGE_FLAG=1
|
READ_ONLY_CHANGE_FLAG=1
|
||||||
|
#######################
|
||||||
|
# Get the LaTeX files #
|
||||||
|
#######################
|
||||||
|
elif [ "${FILE_TYPE}" == "tex" ]; then
|
||||||
|
################################
|
||||||
|
# Append the file to the array #
|
||||||
|
################################
|
||||||
|
FILE_ARRAY_LATEX+=("${FILE}")
|
||||||
|
##########################################################
|
||||||
|
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
||||||
|
##########################################################
|
||||||
|
READ_ONLY_CHANGE_FLAG=1
|
||||||
####################
|
####################
|
||||||
# Get the R files #
|
# Get the R files #
|
||||||
####################
|
####################
|
||||||
|
@ -370,9 +379,6 @@ function BuildFileList() {
|
||||||
###########################
|
###########################
|
||||||
# Get the Terraform files #
|
# Get the Terraform files #
|
||||||
###########################
|
###########################
|
||||||
###########################
|
|
||||||
# Get the Terraform files #
|
|
||||||
###########################
|
|
||||||
elif [ "${FILE_TYPE}" == "tf" ]; then
|
elif [ "${FILE_TYPE}" == "tf" ]; then
|
||||||
################################
|
################################
|
||||||
# Append the file to the array #
|
# Append the file to the array #
|
||||||
|
@ -428,9 +434,9 @@ function BuildFileList() {
|
||||||
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
# Set the READ_ONLY_CHANGE_FLAG since this could be exec #
|
||||||
##########################################################
|
##########################################################
|
||||||
READ_ONLY_CHANGE_FLAG=1
|
READ_ONLY_CHANGE_FLAG=1
|
||||||
############################
|
##################################
|
||||||
# Get the Protocol Buffers files #
|
# Get the Protocol Buffers files #
|
||||||
############################
|
##################################
|
||||||
elif [ "${FILE_TYPE}" == "dart" ]; then
|
elif [ "${FILE_TYPE}" == "dart" ]; then
|
||||||
################################
|
################################
|
||||||
# Append the file to the array #
|
# Append the file to the array #
|
||||||
|
|
|
@ -69,6 +69,9 @@ JAVASCRIPT_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${JAVASCRIPT_FILE_NAME}" # Pa
|
||||||
JAVASCRIPT_STANDARD_LINTER_RULES='' # ENV string to pass when running js standard
|
JAVASCRIPT_STANDARD_LINTER_RULES='' # ENV string to pass when running js standard
|
||||||
# Default linter path
|
# Default linter path
|
||||||
LINTER_RULES_PATH="${LINTER_RULES_PATH:-.github/linters}" # Linter Path Directory
|
LINTER_RULES_PATH="${LINTER_RULES_PATH:-.github/linters}" # Linter Path Directory
|
||||||
|
# LaTeX Vars
|
||||||
|
LATEX_FILE_NAME='chktexrc' # Name of the file
|
||||||
|
LATEX_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${LATEX_FILE_NAME}" # Path to the Lua lint rules
|
||||||
# Lua Vars
|
# Lua Vars
|
||||||
LUA_FILE_NAME='.luacheckrc' # Name of the file
|
LUA_FILE_NAME='.luacheckrc' # Name of the file
|
||||||
LUA_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${LUA_FILE_NAME}" # Path to the Lua lint rules
|
LUA_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${LUA_FILE_NAME}" # Path to the Lua lint rules
|
||||||
|
@ -130,7 +133,7 @@ YAML_LINTER_RULES="${DEFAULT_RULES_LOCATION}/${YAML_FILE_NAME}" # Path to the ya
|
||||||
#######################################
|
#######################################
|
||||||
# Linter array for information prints #
|
# Linter array for information prints #
|
||||||
#######################################
|
#######################################
|
||||||
LINTER_ARRAY=('ansible-lint' 'arm-ttk' 'asl-validator' 'cfn-lint' 'checkstyle' 'clj-kondo' 'coffeelint'
|
LINTER_ARRAY=('ansible-lint' 'arm-ttk' 'asl-validator' 'cfn-lint' 'checkstyle' 'chktex' 'clj-kondo' 'coffeelint'
|
||||||
'dart' 'dockerfilelint' 'dotenv-linter' 'editorconfig-checker' 'eslint' 'flake8' 'golangci-lint'
|
'dart' 'dockerfilelint' 'dotenv-linter' 'editorconfig-checker' 'eslint' 'flake8' 'golangci-lint'
|
||||||
'hadolint' 'htmlhint' 'jsonlint' 'ktlint' 'lintr' 'lua' 'markdownlint' 'npm-groovy-lint' 'perl' 'protolint'
|
'hadolint' 'htmlhint' 'jsonlint' 'ktlint' 'lintr' 'lua' 'markdownlint' 'npm-groovy-lint' 'perl' 'protolint'
|
||||||
'pwsh' 'pylint' 'raku' 'rubocop' 'shellcheck' 'spectral' 'standard' 'stylelint' 'sql-lint'
|
'pwsh' 'pylint' 'raku' 'rubocop' 'shellcheck' 'spectral' 'standard' 'stylelint' 'sql-lint'
|
||||||
|
@ -141,7 +144,7 @@ LINTER_ARRAY=('ansible-lint' 'arm-ttk' 'asl-validator' 'cfn-lint' 'checkstyle' '
|
||||||
#############################
|
#############################
|
||||||
LANGUAGE_ARRAY=('ANSIBLE' 'ARM' 'BASH' 'CLOUDFORMATION' 'CLOJURE' 'COFFEESCRIPT' 'CSS'
|
LANGUAGE_ARRAY=('ANSIBLE' 'ARM' 'BASH' 'CLOUDFORMATION' 'CLOJURE' 'COFFEESCRIPT' 'CSS'
|
||||||
'DART' 'DOCKERFILE' 'DOCKERFILE_HADOLINT' 'EDITORCONFIG' 'ENV' 'GO' 'GROOVY' 'HTML'
|
'DART' 'DOCKERFILE' 'DOCKERFILE_HADOLINT' 'EDITORCONFIG' 'ENV' 'GO' 'GROOVY' 'HTML'
|
||||||
'JAVA' 'JAVASCRIPT_ES' 'JAVASCRIPT_STANDARD' 'JSON' 'JSX' 'KOTLIN' 'LUA' 'MARKDOWN'
|
'JAVA' 'JAVASCRIPT_ES' 'JAVASCRIPT_STANDARD' 'JSON' 'JSX' 'KOTLIN' 'LATEX' 'LUA' 'MARKDOWN'
|
||||||
'OPENAPI' 'PERL' 'PHP_BUILTIN' 'PHP_PHPCS' 'PHP_PHPSTAN' 'PHP_PSALM' 'POWERSHELL'
|
'OPENAPI' 'PERL' 'PHP_BUILTIN' 'PHP_PHPCS' 'PHP_PHPSTAN' 'PHP_PSALM' 'POWERSHELL'
|
||||||
'PROTOBUF' 'PYTHON_PYLINT' 'PYTHON_FLAKE8' 'R' 'RAKU' 'RUBY' 'STATES' 'SQL' 'TERRAFORM'
|
'PROTOBUF' 'PYTHON_PYLINT' 'PYTHON_FLAKE8' 'R' 'RAKU' 'RUBY' 'STATES' 'SQL' 'TERRAFORM'
|
||||||
'TERRAFORM_TERRASCAN' 'TSX' 'TYPESCRIPT_ES' 'TYPESCRIPT_STANDARD' 'XML' 'YAML')
|
'TERRAFORM_TERRASCAN' 'TSX' 'TYPESCRIPT_ES' 'TYPESCRIPT_STANDARD' 'XML' 'YAML')
|
||||||
|
@ -189,6 +192,7 @@ VALIDATE_JAVASCRIPT_STANDARD="${VALIDATE_JAVASCRIPT_STANDARD}" # Boolean t
|
||||||
VALIDATE_JSON="${VALIDATE_JSON}" # Boolean to validate language
|
VALIDATE_JSON="${VALIDATE_JSON}" # Boolean to validate language
|
||||||
VALIDATE_JSX="${VALIDATE_JSX}" # Boolean to validate language
|
VALIDATE_JSX="${VALIDATE_JSX}" # Boolean to validate language
|
||||||
VALIDATE_KOTLIN="${VALIDATE_KOTLIN}" # Boolean to validate language
|
VALIDATE_KOTLIN="${VALIDATE_KOTLIN}" # Boolean to validate language
|
||||||
|
VALIDATE_LATEX ="${VALIDATE_LATEX}" # Boolean to validate language
|
||||||
VALIDATE_LUA="${VALIDATE_LUA}" # Boolean to validate language
|
VALIDATE_LUA="${VALIDATE_LUA}" # Boolean to validate language
|
||||||
VALIDATE_MARKDOWN="${VALIDATE_MD:-}" # Boolean to validate language
|
VALIDATE_MARKDOWN="${VALIDATE_MD:-}" # Boolean to validate language
|
||||||
VALIDATE_OPENAPI="${VALIDATE_OPENAPI}" # Boolean to validate language
|
VALIDATE_OPENAPI="${VALIDATE_OPENAPI}" # Boolean to validate language
|
||||||
|
@ -287,6 +291,7 @@ FILE_ARRAY_JAVASCRIPT_STANDARD=() # Array of files to check
|
||||||
FILE_ARRAY_JSON=() # Array of files to check
|
FILE_ARRAY_JSON=() # Array of files to check
|
||||||
FILE_ARRAY_JSX=() # Array of files to check
|
FILE_ARRAY_JSX=() # Array of files to check
|
||||||
FILE_ARRAY_KOTLIN=() # Array of files to check
|
FILE_ARRAY_KOTLIN=() # Array of files to check
|
||||||
|
FILE_ARRAY_LATEX=() # Array of files to check
|
||||||
FILE_ARRAY_LUA=() # Array of files to check
|
FILE_ARRAY_LUA=() # Array of files to check
|
||||||
FILE_ARRAY_MARKDOWN=() # Array of files to check
|
FILE_ARRAY_MARKDOWN=() # Array of files to check
|
||||||
FILE_ARRAY_OPENAPI=() # Array of files to check
|
FILE_ARRAY_OPENAPI=() # Array of files to check
|
||||||
|
@ -356,6 +361,8 @@ ERRORS_FOUND_JSX=0 # Count of errors found
|
||||||
export ERRORS_FOUND_JSX # Workaround SC2034
|
export ERRORS_FOUND_JSX # Workaround SC2034
|
||||||
ERRORS_FOUND_KOTLIN=0 # Count of errors found
|
ERRORS_FOUND_KOTLIN=0 # Count of errors found
|
||||||
export ERRORS_FOUND_KOTLIN # Workaround SC2034
|
export ERRORS_FOUND_KOTLIN # Workaround SC2034
|
||||||
|
ERRORS_FOUND_LATEX=0 # Count of errors found
|
||||||
|
export ERRORS_FOUND_LATEX=0 # Workaround SC2034
|
||||||
ERRORS_FOUND_LUA=0 # Count of errors found
|
ERRORS_FOUND_LUA=0 # Count of errors found
|
||||||
export ERRORS_FOUND_LUA=0 # Workaround SC2034
|
export ERRORS_FOUND_LUA=0 # Workaround SC2034
|
||||||
ERRORS_FOUND_MARKDOWN=0 # Count of errors found
|
ERRORS_FOUND_MARKDOWN=0 # Count of errors found
|
||||||
|
@ -1195,6 +1202,8 @@ GetLinterRules "HTML"
|
||||||
GetLinterRules "JAVA"
|
GetLinterRules "JAVA"
|
||||||
# Get JavaScript rules
|
# Get JavaScript rules
|
||||||
GetLinterRules "JAVASCRIPT"
|
GetLinterRules "JAVASCRIPT"
|
||||||
|
# Get LATEX rules
|
||||||
|
GetLinterRules "LATEX"
|
||||||
# Get LUA rules
|
# Get LUA rules
|
||||||
GetLinterRules "LUA"
|
GetLinterRules "LUA"
|
||||||
# Get Markdown rules
|
# Get Markdown rules
|
||||||
|
@ -1543,6 +1552,17 @@ if [ "${VALIDATE_KOTLIN}" == "true" ]; then
|
||||||
LintCodebase "KOTLIN" "ktlint" "ktlint" ".*\.\(kt\|kts\)\$" "${FILE_ARRAY_KOTLIN[@]}"
|
LintCodebase "KOTLIN" "ktlint" "ktlint" ".*\.\(kt\|kts\)\$" "${FILE_ARRAY_KOTLIN[@]}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
#################
|
||||||
|
# LATEX LINTING #
|
||||||
|
#################
|
||||||
|
if [ "${VALIDATE_LATEX}" == "true" ]; then
|
||||||
|
########################
|
||||||
|
# Lint the LATEX files #
|
||||||
|
########################
|
||||||
|
# LintCodebase "FILE_TYPE" "LINTER_NAME" "LINTER_CMD" "FILE_TYPES_REGEX" "FILE_ARRAY"
|
||||||
|
LintCodebase "LATEX" "chktex" "chktex -l ${LATEX_LINTER_RULES}" ".*\.\(tex\)\$" "${FILE_ARRAY_LATEX[@]}"
|
||||||
|
fi
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# LUA LINTING #
|
# LUA LINTING #
|
||||||
###############
|
###############
|
||||||
|
|
|
@ -625,6 +625,7 @@ function RunTestCases() {
|
||||||
TestCodebase "JAVASCRIPT_STANDARD" "standard" "standard ${JAVASCRIPT_STANDARD_LINTER_RULES}" ".*\.\(js\)\$" "javascript"
|
TestCodebase "JAVASCRIPT_STANDARD" "standard" "standard ${JAVASCRIPT_STANDARD_LINTER_RULES}" ".*\.\(js\)\$" "javascript"
|
||||||
TestCodebase "JSON" "jsonlint" "jsonlint" ".*\.\(json\)\$" "json"
|
TestCodebase "JSON" "jsonlint" "jsonlint" ".*\.\(json\)\$" "json"
|
||||||
TestCodebase "KOTLIN" "ktlint" "ktlint" ".*\.\(kt\|kts\)\$" "kotlin"
|
TestCodebase "KOTLIN" "ktlint" "ktlint" ".*\.\(kt\|kts\)\$" "kotlin"
|
||||||
|
TestCodebase "LATEX" "ChkTex" "chktex -l ${LATEX_LINTER_RULES}" ".*\.\(tex\)\$" "latex"
|
||||||
TestCodebase "LUA" "lua" "luacheck" ".*\.\(lua\)\$" "lua"
|
TestCodebase "LUA" "lua" "luacheck" ".*\.\(lua\)\$" "lua"
|
||||||
TestCodebase "MARKDOWN" "markdownlint" "markdownlint -c ${MARKDOWN_LINTER_RULES}" ".*\.\(md\)\$" "markdown"
|
TestCodebase "MARKDOWN" "markdownlint" "markdownlint -c ${MARKDOWN_LINTER_RULES}" ".*\.\(md\)\$" "markdown"
|
||||||
TestCodebase "PERL" "perl" "perlcritic" ".*\.\(pl\|pm\|t\)\$" "perl"
|
TestCodebase "PERL" "perl" "perlcritic" ".*\.\(pl\|pm\|t\)\$" "perl"
|
||||||
|
|
Loading…
Reference in a new issue