summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/chktex/chktexrc
blob: d829ffacb736a0b1fe03e5f2e71befb9432370d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
##  Example resource file for ChkTeX.
##
##  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.
##
## For more information visit https://www.nongnu.org/chktex/
##

## chktexrc file format
#
# The chktecrc file is essentially a bunch of variable assignments.
# There are two types of variables, those that take single items and
# those that take lists.
#
# In turn, there are two types of lists, case-sensitive and case-insentive.
# Case-sensitive lists are delimited by `{' and `}'
# while case-insensitive are delimited by `[' and `]'.
# Only some variables support case insensitive lists, since in many
# cases it doesn't make sense and would be unnecessarily slow.  Those
# variables that *do* support case-insensitive lists will be marked as
# such throughout the file.
#
# Variables can be set with or without an equals sign.  If included, the
# `=' causes the variable to be overwritten.  This is the only thing
# that makes sense for varibles taking a single item and so we always
# include it in that case.  For list variables, omitting the equals
# sign will cause the items in the list to be appended instead of
# overwriting the entire list.
#
# Below are all the ways in which a variable can be set.  Note that lists
# can span lines, though this is not shown here for brevity.
#
#
# VariableName = item
# # Overwrites
# VariableName = { Item1 Item2 ... }
# VariableName = [ item1 item2 ... ]
# VariableName = { Item1 Item2 ... } [ item item ... ]
# VariableName = [ item1 item2 ... ] { Item Item ... }
# # Appends
# VariableName { Item3 Item4 ... }
# VariableName [ item3 item4 ... ]
# VariableName { Item3 Item4 ... } [ item item ... ]
# VariableName [ item3 item4 ... ] { Item Item ... }
#
#
# Comments begin with `#', and continue for the end of the line.
# Blank lines plus leading and trailing spaces are ignored.
# Items are separated by spaces.
# Newlines are considered spaces, but can't be escaped.
# You can use double quotes `"' to surround an item with spaces, or you can
# escape spaces as described later.
#
# Detection of tokens like `}' are somewhat context sensitve---they
# have to be preceded by a space (or newline).  This allows them to be
# part of an item without escaping.  Since some variables require such
# characters, this generally makes life easier.
#
# To include characters that might otherwise interfere, escape
# sequences are provided.  They are similar to those in C, but use
# `!' instead of `\' for obvious reasons.
# The entire list is below.
#
#   Sequence    Resulting character 
#   `! '        Space 
#   `!"'        `"' 
#   `!#'        `#' 
#   `!!'        `!' 
#   `!{'        `{' 
#   `!}'        `}' 
#   `!['        `[' 
#   `!]'        `]' 
#   `!='        `=' 
#   `!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'     NNN must be a decimal number (000 - 255), all
#                  three characters must be included.
#                  Unspecified results if NNN > 377. 
#   `!NNN'      NNN must be a octal number (000 - 377), all
#                  three characters must be included.
#                  Unspecified results if NNN > 377.

## Available Settings
#
# All avaiable settings follow.
#

## QuoteStyle
#
# The type of quote-style you are using.  There are currently two
# styles:
#
#  Traditional:
#      "An example," he said, "would be great."
#
#  Logical:
#      "An example", he said, "would be great".
#
QuoteStyle = Logical


## TabSize
#
# The width of a tab.  This is used for formatting the error message.
# Only positive integers are allowed.
#
TabSize = 8


## CmdSpaceStyle
#
# How to treat a command is followed by punction.  In all cases the
# warnings are also governed by the main warning settings, namely
# warnings 12 and 13 about interword and intersentence spacings.
#
# If set to Ignore, then it won't print any warnings when pucntuation
# follows a command.
#
#
# If CmdSpaceStyle is set to InterWord, then it will print warnings
# when interword spacing should (potentially) be used.  For example,
# without a command the following will trigger warning 12
#
#     `I've seen a UFOs, etc. in my life.'
#
# And if set to InterWord, so will
#
#     `I've seen a UFOs, \etc. in my life.'
#
#
# If set to InterSentence, then it will print warnings when
# intersentence spacing should (potentially) be used.  For example,
# without a command the following will trigger warning 13
#
#     `I've seen an UFO! Right over there!'
#
# And if set to InterSentence, so will
#
#     `I've seen an \UFO! Right over there!'
#
#
# Setting CmdSpaceStyle to Both will cause warnings to be printed in
# both cases.
#
CmdSpaceStyle = Ignore


## CmdLine
#
# Default command-line options.  For instance, you might like to put
# `-v2' here.
#
CmdLine
{
}


## UserWarn
#
# Arbitrary strings to warn about.  You can put here to help you find
# your own little foibles.  See also UserWarnRegex.
#
# These patterns will be searched for throughout the text; regardless
# of whether they appear as normal text, commands, in math mode, etc.
# They are *not* found in comments.
#
# Suppose you define a special command like this:
#    \def\unknown{\large\bf??}
# which you use whenever you don't have some information at the time
# of writing.  Thus, it makes sense to warn on it, and this is a
# convenient way to do so.
#
UserWarn
{
    \unknown
    # One should write \chktex or Chk\TeX - never ChkTeX.
    ChkTeX
}
[ # You may put case-insensitive patterns here.
]


## UserWarnRegex
#
# A more sophisticated version of UserWarn using regular
# expressions.  Use of these will be automatically disabled if ChkTeX
# was built without regular expression support.  Because ChkTeX can be
# with support for either POSIX or PCRE flavors of regular expression,
# some of the following will not apply in all cases.  An expression
# can be defined only when PCRE is enabled by prepending the
# expression with `PCRE:' and similarly with `POSIX:'.
#
# 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 (see VerbEnvir).
#
# Remember that you have to escape (with a `!') the characters
# `"#!=', as well as spaces and `{}[]' if they are
# proceeded by a space.
#
# When using 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-style comment `(?# ... )' can be used
# to change what is displayed, thereby reminding yourself how to fix
# the problem.  This works even for POSIX expressions.
#
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 introduction
    # 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?\*?)\}(\[.*\])?\{.*\|.*\}

    (?!#-3:Optional! arguments! []! inside! optional! arguments! []! must! be! enclosed! in! {})\[(?!![^\]\[{}]*{(?!![^\]\[{}]*}))[^\]]*\[

}


## TeXInputs
#
# A list of paths where ChkTeX should look for files it `\input's.
# By default, the current directory is searched (not recursively, use
# `//' for that, see below).
#
# A `//' postfix is supported:
# if you append a double path-separator we'll recursively search that
# directory's directories.  MS-DOS users must append `\\'
# instead, e.g. `C:\EMTEX\\'.  In order to search an
# entire directory tree, you must use *three* slashes,
# e.g. `c:\\\' or `///'.
#
TeXInputs
{
}


## OutFormat
#
# Output formats which can be selected from the command-line.  The
# `-v' option simply indexes into this list.  By default, entry number
# *two* in this list is chosen (counting from 0), and `-v'
# without any parameter selects entry number *three*.
#
# For explanation of the `%' format specifiers see the
# documentation of the `--format' command-line argument
# in the manual.
#
# Recall that to use `!' is the escape character, not `\'.
#
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"
}


## Silent
#
# Commands which should not trigger a warning if terminated by a space.
# This warning will not trigger in math mode.
#
# You can also 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 \itshape
    \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

    \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 \bigskip \medskip \smallskip
    \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 use with 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.*
]


## HyphDash
#
# The number of dashes allowed between two alphabetic characters.
# Use 0 to always return an error.  For example:
#      foo-bar 
#      Use of two--dashes is not usually allowed in English. 
#      like this---see?
#
# For English, this will often be a single dash (hyphen).  If you like
# m-dashes with no spaces between them and the surrounding words, then
# it should include 3 as well.  There *are* cases when an n-dash
# is valid between two alphabetic characters.  See DashExcpt.
#
HyphDash { 1 3 }


## NumDash
#
# The number of dashes allowed between two numeric characters.
# Use 0 to always return an error.  This does *not* apply in
# math mode.  For example:
#      123--456 is a range 
#      $12-4$ \% okay because it's in math mode
#
# For English, this should be 2 because an n-dash is used to indicate
# a range of numbers and subtraction should be in math mode where this
# does not apply.
#
NumDash  { 2 }


## WordDash
#
# The number of dashes allowed between two space characters.
# Use 0 to always return an error.  For example:
#      not like - this,  
#      or like -- this.  
#      like this --- see?
#
WordDash { 3 }


## DashExcpt
#
# 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 based
# on the dashes used.
#
# 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.
#
# Unfortunately, there are no warnings if the dashes are surrounded by differing
# types of characters.  For example:
#      like this ---see? (space and alphabet)  
#      a--123            (number and alphabet) 
#      a.--b.            (other character, namely `.')
# Similarly, no warnings are issued if the hyphenation is correct,
# according to the other rules, for example:
#      Birch-Swinnerton-Dyer
#
DashExcpt
{
    Birch--Swinnerton-Dyer
}


## WipeArg
#
# Commands whose arguments aren't LaTeX code, and thus should be
# ignored.
#
# After the command, you may place arguments (separated from the
# command with a colon) that should be wiped.  Use `[]' for optional
# arguments, `{}' for required ones, and `*' if the command supports a
# star variant.  Some commands (e.g. `\cmidrule') use `()' to
# delimit an 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:*[][]{}' since it has a
# star variant, two optional arguments, and one required argument.
#
# These commands may be ``evaluated'' before they're wiped, so you will
# typically list filehandling commands and similar here.
#
WipeArg
{
    \label:{} \ref:{} \eqref:{} \vref:{} \pageref:{} \index:[]{}
    \cite:[][]{} \nocite:{}
    \input:{} \verbatiminput:[]{} \listinginput:[]{}{}
    \graphicspath:{}
    \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:{}
    # biblatex - not including special commands
    \autocite:*[][]{} \autocites:*[][]{} \Autocite:*[][]{} \Autocites:*[][]{}
    \parencite:*[][]{} \parencites:*[][]{} \Parencite:*[][]{} \Parencites:*[][]{}
    \footcite:*{} \footcites:*[][]{} \Footcite:*[][]{} \Footcites:*[][]{}
    \textcite:*{} \textcites:*[][]{} \Textcite:*[][]{} \Textcites:*[][]{}
    \citeauthor:*{} \citeauthors:*[][]{} \Citeauthor:*[][]{} \Citeauthors:*[][]{}
    \citeyear:*{} \citeyears:*[][]{} \Citeyear:*[][]{} \Citeyears:*[][]{}
    \citetitle:*{} \citetitles:*[][]{} \Citetitle:*[][]{} \Citetitles:*[][]{}
    # tipa which uses "
    \textipa:{}
    # LuaTeX
    \directlua:{} \luaescapestring:{}
}


## MathEnvir
#
# Environments which typeset their contents as mathematics.
# This turns on/off some warnings.
#
# A `*' variant is automatically added for each keyword.
#
MathEnvir
{
    displaymath math eqnarray array equation
    align alignat gather flalign multline
    dmath dgroup darray
}


## TextEnvir
#
# Environments which typeset their contents as text, for use inside
# mathematics.  This turns on/off some warnings.
#
TextEnvir
{
    dsuspend
}


## MathCmd
#
# Commands whose argument will be typeset as mathematics.
# The commands are assumed to have one mandatory argument which is in
# math mode.  This turns on/off some warnings.
#
MathCmd
{
    \ensuremath
}


## TextCmd
#
# Commands whose argument will *not* be typeset as
# mathematics even if it would otherwise be in math mode.
# 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 \condition
}


## VerbEnvir
#
# Environments containing non-LaTeX content of some kind, and
# therefore should not trigger any warnings.
#
# A `*' variant is automatically added for each keyword.
#
VerbEnvir
{
    verbatim comment listing verbatimtab rawhtml errexam picture texdraw
    filecontents pgfpicture tikzpicture minted lstlisting IPA
}


## Abbrev
#
# Abbreviations not automatically handled by ChkTeX.
#
# ChkTeX automagically catches 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 which is not the beginning of a new
# sentence.
#
# The case-insensitive abbreviations are not fully case-insensitive.
# Rather, only the first character is case-insensitive, while the
# remaining characters are case-sensitive.
#
# To speed up the searching process somewhat, we require that these
# end in a `.' which should not be a problem in practice.
#
# Much of this work (both the abbreviations below, and the regular
# expressions 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.
]


## IJAccent
#
# Commands which add accents above characters.  This means that `\i' or `\j'
# (`\imath' and `\jmath' in mathmode) should be used instead of `i' and `j'.
#
# Other accent commands such as `\c', `\d', and `\b', put their accent under
# the character, and thus should be used with normal `i's and `j's.
#
IJAccent
{
    \hat \check \breve \acute \grave \tilde \bar \vec \dot \ddot
    \' \` \^ \" \~ \= \. \u \v \H \t
}


## Italic
#
# Commands which need italic correction when the group is terminated.
#
Italic
{
    \it \em \sl \itshape \slshape
}


## NonItalic
#
# Commands which makes the font non-italic.
#
NonItalic
{
    \bf \rm \sf \tt \sc
    \upshape
}


## ItalCmd
#
# 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'
# automatically add italic corecction.
#
ItalCmd
{
}


## PostLink
#
# Commands in front of which a page break is highly undesirable.
# Thus there should be no space in front of them.
#
PostLink
{
    \index \label
}


## NotPreSpaced
#
# Commands that should not have a space in front of them for various
# reasons.  Much the same as PostLink, but produces a different warning.
#
NotPreSpaced
{
    \footnote \footnotemark \/
}


## Linker
#
# Commands that should be prepended with a `~'.  For example
#     `look in table~\ref{foo}'
# to avoid the references being split across lines.
#
Linker
{
    \ref \vref \pageref \eqref \cite
}


## CenterDots
#
# Commands or characters which should have `\cdots' in between.
# For example, $1+2+3+\cdots+n$.
#
CenterDots
{
    = + - \cdot \div & \times \geq \leq < >
}


## LowDots
#
# Commands or characters which should have `\ldots' in between.
# For example, $1,2,3,\ldots,n$.
#
LowDots
{
    . , ;
}


## MathRoman
#
# Words that should appear in roman (upright) in math mode.  There are
# certain aliases for mathematical operators (like sin or cos) that
# appear in roman rather than the usual italic (slanted) font.
#
# These entries do not need a leading slash since the mistake is often
# to *not* include the leading slash.
#
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
}


## Primitives
#
# Commands that are used in TeX but have become unnecessary in
# LaTeX, as there are LaTeX commands which do the same.  Purists
# should thus avoid these in their code.
#
Primitives
{
   \above \advance \catcode \chardef \closein \closeout \copy \count
   \countdef \cr \crcr \csname \delcode \dimendef \dimen \divide
   \expandafter \font \hskip \vskip \openout
}


## NoCharNext
#
# Commands and a set of characters that should *not* follow them.  For
# example, in math mode, `\left' should be followed by a delimiter
# which is to change size.  Therefore, it should not be followed by the
# end of math mode `$' or a grouping character `{' or `}'.
#
# The format is `\command:characters'.
#
NoCharNext
{
   \left:{}$ \right:{}$
}


## VerbClear
#
# The character to replace verbatim text with.
#
# The arguments of commands listed in WipeArg, as well as
# `\verb+...+' commands, are replaced with an innocuous character
# to prevent that data from inadvertantly producing a warning.
#
# 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 or any spacing characters either.  All of these characters
# have warnings associated with them and thus could cause spurious
# warnings to appear.
#
# 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 = "|"


## That's all for now - Happy LaTeXing!