From 2422dcbcb0a22c0f3dd99534b628cdc54593c790 Mon Sep 17 00:00:00 2001 From: Julian Smart Date: Mon, 22 Nov 2004 20:50:14 +0000 Subject: [PATCH] Licence for Lacheck unclear, so removing from CVS git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30714 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- utils/tex2rtf/tools/lacheck.1 | 86 ---- utils/tex2rtf/tools/lacheck.exe | Bin 27231 -> 0 bytes utils/tex2rtf/tools/lacheck.lex | 812 -------------------------------- utils/tex2rtf/tools/lacheck.rea | 9 - utils/tex2rtf/tools/lacheck.txt | 136 ------ 5 files changed, 1043 deletions(-) delete mode 100644 utils/tex2rtf/tools/lacheck.1 delete mode 100755 utils/tex2rtf/tools/lacheck.exe delete mode 100644 utils/tex2rtf/tools/lacheck.lex delete mode 100644 utils/tex2rtf/tools/lacheck.rea delete mode 100644 utils/tex2rtf/tools/lacheck.txt diff --git a/utils/tex2rtf/tools/lacheck.1 b/utils/tex2rtf/tools/lacheck.1 deleted file mode 100644 index 1d4b1c8ea5..0000000000 --- a/utils/tex2rtf/tools/lacheck.1 +++ /dev/null @@ -1,86 +0,0 @@ -.TH "LaCheck" "1" "May 23, 1991" -.SH NAME -lacheck - A consistency checker for LaTeX documents. -.SH SYNOPSIS -.B "lacheck " -.I "filename" -[ -.I .tex -] -.SH DESCRIPTION -lacheck is a general purpose consistency checker for LaTeX documents. -It reads a LaTeX document and displays warning messages, if it finds -bad sequences. It should be noted, that the badness is -.I "very " -subjective. -.LP -The things checked are: -.LP -Mismatched groups (braces), environments and math mode -delimiters. When a mismatch is found, line numbers for -.I "both" -start and end of the mismatch is given. The error messages comes in -pairs, one for the end match and one for the beginning, marked with -\`<-\' and \`->\' respectively. -.LP -Bad spacing. This is: missing a \`\\ \' after an abbreviation, missing -an \`\\@\' before a punctuation mark in a paragraph that is ended by an -capital letter, double spaces like \` \~\', bad usage of ellipsis -(like using ... instead of \\ldots, or using \\ldots where \\cdots -should be used) -.LP -lacheck will read files that are input using \\input or \\include. -Files with suffix \`.sty\' are omitted, as they probably will cause -errors. -.LP -lacheck may be invoked from within Emacs(1) using compile: - -To run: -.B "M-x compile " -, and then -.B "C-x `" -to parse the messages - -.SH OUTPUT -The output is UNIX-error like, and may be parsed using Emacs(1) -compile mode. Here is a sample: - -.PD 0 -lacheck compiler -.TP -"/usr/mef/compiler.tex", line 34: missing \`\\\\\\\\ \' after "etc." -.TP -"/usr/mef/compiler.tex", line 179: double space at " ~" -.TP -"/usr/mef/compiler.tex", line 186: <- unmatched "}" -.TP -"/usr/mef/compiler.tex", line 181: -> unmatched "$$" -.PD 1 -.LP -A control space \`\\ \' should be inserted at line 34, to prevent an -end-of-sentence space. -Also, at line 179, the first space of the sequence " ~" should -probably be deleted. -The last two lines is an example, where the user mistyped, and -probably inserted an extra "}" somewhere. - -.SH DIAGNOSTICS -Some special cases should be explained. In cases where a sentence ends -with something that lacheck thinks is an abbreviation an missing \`\\ -\' error may also occur, if the following sentence begins with a -capital letter. -.LP -A mismatch error may cause more to follow, due to the chosen -algorithm. In such cases just correct the -.I "first" -error and run lacheck again -.LP -Braces, environments and math mode must be balanced within a file. -.SH SEE ALSO -tex(1), Emacs(1), latex(1) -.SH BUGS -Lots... Ideas for improvements and bug reports are very welcome. -Such should be -directed to the author. -.SH AUTHOR -Kresten Krab Thorup, Email diff --git a/utils/tex2rtf/tools/lacheck.exe b/utils/tex2rtf/tools/lacheck.exe deleted file mode 100755 index ba08d0a54b4464bc321beb514556db37979d1943..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27231 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 diff --git a/utils/tex2rtf/tools/lacheck.lex b/utils/tex2rtf/tools/lacheck.lex deleted file mode 100644 index e2ca8f42dc..0000000000 --- a/utils/tex2rtf/tools/lacheck.lex +++ /dev/null @@ -1,812 +0,0 @@ -/* -*- Mode: C -*- - * - * lacheck.lex - A consistency checker checker for LaTeX documents - * - * Copyright (C) 1991 Kresten Krab Thorup (krab@iesd.auc.dk). - * - * $Locker$ - * $Revision$ - * Author : Kresten Krab Thorup - * Created On : Sun May 26 18:11:58 1991 - * Last Modified By: Kresten Krab Thorup - * Last Modified On: Thu May 30 02:29:57 1991 - * Update Count : 16 - * - * HISTORY - * 30-May-1991 (Last Mod: Thu May 30 02:22:33 1991 #15) Kresten Krab Thorup - * Added check for `$${punct}' and `{punct}$' constructions - * 30-May-1991 (Last Mod: Wed May 29 10:31:35 1991 #6) Kresten Krab Thorup - * Improved (dynamical) stack management from Andreas Stolcke ... - * - * 26-May-1991 Kresten Krab Thorup - * Initial distribution version. - */ -%{ -#include -#include -#include - -extern char *realloc(); - -#ifdef NEED_STRSTR -char *strstr(); -#endif - -#define GROUP_STACK_SIZE 10 -#define INPUT_STACK_SIZE 10 - -#define PROGNAME "LaCheck" - - /* macros */ - -#define CG_NAME gstack[gstackp-1].s_name -#define CG_TYPE gstack[gstackp-1].s_type -#define CG_LINE gstack[gstackp-1].s_line -#define CG_FILE gstack[gstackp-1].s_file - -char *bg_command(); -void pop(); -void push(); -void g_checkend(); -void e_checkend(); -void f_checkend(); -void input_file(); -void print_bad_match(); -int check_top_level_end(); - - /* global variables */ - -char returnval[100]; -int line_count = 1; -int warn_count = 0; -char *file_name; -char verb_char; - - /* the group stack */ - -typedef struct tex_group - { - unsigned char *s_name; - int s_type; - int s_line; - char *s_file; - } tex_group; - -tex_group *gstack; -int gstack_size = GROUP_STACK_SIZE; -int gstackp = 0; - -typedef struct input_ - { - YY_BUFFER_STATE stream; - char *name; - int linenum; - } input_; - -input_ *istack; -int istack_size = INPUT_STACK_SIZE; -int istackp = 0; - -int def_count = 0; - -%} - -%x B_ENVIRONMENT E_ENVIRONMENT VERBATIM INCLUDE MATH COMMENT VERB DEF -%x AFTER_DISPLAY - -b_group ("{"|\\bgroup) -e_group ("}"|\\egroup) - -b_math \\\( -e_math \\\) -math \$ - -b_display \\\[ -e_display \\\] -display \$\$ - -non_par_ws ([ \t]+\n?[ \t]*|[ \t]*\n[ \t]*|[ \t]*\n?[ \t]+) - -ws [ \n\t] -space ({ws}|\~|\\space) -hard_space (\~|\\space) - -u_letter [A-ZFXE] -l_letter [a-zfxe] -punct [\!\.\?] -atoz [a-zA-Z] -letter (u_letter|l_letter) - -c_bin ("-"|"+"|"\\cdot"|"\\oplus"|"\\otimes"|"\\times") -l_bin (",") - -general_abbrev {letter}+{punct} - -non_abbrev {u_letter}{u_letter}+{punct} - -font_spec (rm|bf|sl|it|tt|em|mediumseries|normalshape) - -primitive \\(above|advance|catcode|chardef|closein|closeout|copy|count|countdef|cr|crcr|csname|delcode|dimendef|dimen|divide|expandafter|font|hskp|vskip|openout) - -symbol ("$"("\\"{atoz}+|.)"$"|"\\#"|"\\$"|"\\%"|"\\ref") - -%% - -"\\\\" { ; } - -"\\\%" { ; } - -"%"[^\n]* { ; } - -\n { line_count++; } - -"\\\{" { ; } - -"\\\}" { ; } - -"\\\$" { ; } - -{b_group} { push( "{", 0, line_count);} - -{e_group} { g_checkend(0); } - -"\\"[exg]?def[^\{] BEGIN(DEF); - -{b_group} { ++def_count; } - -{e_group} { --def_count; - if(def_count == 0) - BEGIN(INITIAL); } - -. { ; } - -{b_math} { - if(CG_TYPE == 4 || CG_TYPE == 5) - print_bad_match(yytext,4); - else - { - push( yytext, 4, line_count); - }} - -{e_math} { g_checkend(4); } - -{b_display} { - if(CG_TYPE == 4 || CG_TYPE == 5) - print_bad_match(yytext,5); - else - { - push( yytext, 5, line_count); - }} - - -{e_display} { g_checkend(5); - BEGIN(AFTER_DISPLAY);} - -{punct} { - - printf( "\"%s\", line %d: puctation mark \"%s\" should be placed before end of displaymath\n", - file_name, line_count, yytext); - ++warn_count ; - - BEGIN(INITIAL); } - -. { BEGIN(INITIAL); } - -\n { ++line_count; - BEGIN(INITIAL); } - -{punct}/("\$"|"\\)") { if (CG_TYPE == 4) - { - printf( "\"%s\", line %d: puctation mark \"%s\" should be placed after end of math mode\n", - file_name, line_count, yytext); - ++warn_count ; - }} - -{math} { - - if(CG_TYPE == 5) - print_bad_match(yytext, 4); - else - - if(CG_TYPE == 4) - { - e_checkend(4, yytext); - } - else - { - push( yytext, 4, line_count); - }} - - -{display} { - - if(CG_TYPE == 4) - print_bad_match(yytext,5); - else - - if(CG_TYPE == 5) - { - e_checkend(5, yytext); - BEGIN(AFTER_DISPLAY); - } - else - { - push( yytext, 5, line_count); - }} - -\\begingroup/[^a-zA-Z] { - { - push((unsigned char *)"\\begingroup", 1, line_count); - }} - - -\\endgroup/[^a-zA-Z] { - { - g_checkend(1); - }} - - -\\begin[ \t]*"{" { BEGIN(B_ENVIRONMENT); } - -\\begin[ \t]*/\n { - { - - printf("\"%s\", line %i: {argument} missing for \\begin\n", - file_name, line_count) ; - ++warn_count; - }} - -[^\}\n]+ { - { - if (strcmp( yytext, "verbatim" ) == 0 ) - { - input(); - BEGIN(VERBATIM); - } - else - { - push(yytext, 2, line_count); - input(); - BEGIN(INITIAL); - } - }} - -\\end[ \t]*\{verbatim\} { BEGIN(INITIAL); } - -. { ; } - -\n { ++line_count; } - - -\\verb. { - sscanf (yytext, "\\verb%c", &verb_char ); - BEGIN(VERB); - } - -. { - if ( *yytext == verb_char ) - BEGIN(INITIAL); - if ( *yytext == '\n' ) - ++line_count; - } - - -\\end[ \t]*"{" { BEGIN(E_ENVIRONMENT); } - -\\end[ \t]*/\n { - { - printf("\"%s\", line %i: {argument} missing for \\end\n", - file_name, line_count) ; - ++warn_count; - }} - - -[^\}\n]+ { - { - e_checkend(2, yytext); - input(); - - BEGIN(INITIAL); - }} - - -{ws}([a-zfxe]".")*[a-zA-ZfxeFXE]*[a-zfxe]"."/{non_par_ws}+[a-zfxe] { - { - if ( *yytext == '\n' ) - ++line_count; - - printf( "\"%s\", line %d: missing `\\ ' after \"%s\"\n", - file_name, line_count, ++yytext); - ++warn_count ; - }} - -([a-zfxe]".")*[a-zA-ZfxeFXE]*[a-zfxe]"."/{non_par_ws}+[a-zfxe] { - { - printf( "\"%s\", line %d: missing `\\ ' after \"%s\"\n", - file_name, line_count, yytext); - ++warn_count ; - }} - -{ws}{non_abbrev}/{non_par_ws}{u_letter} { - { - if ( *yytext == '\n' ) - ++line_count; - printf("\"%s\", line %d: missing `\\\@' before punctation mark in \"%s\"\n", - file_name, line_count, ++yytext); - ++warn_count ; - }} - -{non_abbrev}/{non_par_ws}{u_letter} { - { - printf("\"%s\", line %d: missing `\\\@' before `.' in \"%s\"\n", - file_name, line_count, yytext); - ++warn_count ; - }} - -({hard_space}{space}|{space}{hard_space}) { - - printf("\"%s\", line %d: double space at \"%s\"\n", - file_name, line_count, yytext); - ++warn_count; - } - -{c_bin}{ws}?(\\(\.|\,|\;|\:))*{ws}?\\ldots{ws}?(\\(\.|\,|\;|\:))*{ws}?{c_bin} { - printf("\"%s\", line %d: \\ldots should be \\cdots in \"%s\"\n", - file_name, line_count, yytext); - ++warn_count; - } - -[^\\]{l_bin}{ws}?(\\(\.|\,|\;|\:))*{ws}?\\cdots{ws}?(\\(\.|\,|\;|\:))*{ws}?[^\\]{l_bin} { - printf("\"%s\", line %d: \\cdots should be \\ldots in \"%s\"\n", - file_name, line_count, yytext); - ++warn_count; - } - -{c_bin}{ws}?(\\(\.|\,|\;|\:))*{ws}?"."+{ws}?(\\(\.|\,|\;|\:))*{ws}?{c_bin} { - printf("\"%s\", line %d: Dots should be \\cdots in \"%s\"\n", - file_name, line_count, yytext); - ++warn_count; - } - -[^\\]{l_bin}{ws}?(\\(\.|\,|\;|\:))*{ws}?"."+{ws}?(\\(\.|\,|\;|\:))*{ws}?[^\\]{l_bin} { - printf("\"%s\", line %d: Dots should be \\ldots in \"%s\"\n", - file_name, line_count, yytext); - ++warn_count; - } - - -\.\.\. { - printf("\"%s\", line %d: Dots should be ellipsis \"%s\"\n", - file_name, line_count, yytext); - ++warn_count; - } - - /* - * - * The `~' one is not too good, perhaps it shoud be an option. - * - */ - /* - {l_letter}" "{symbol} { - - printf("\"%s\", line %d: perhaps you should insert a `~' before%s\n", - file_name, line_count, ++yytext); - } - */ - - /* - {primitive}/[^a-zA-Z] { - { - printf("\"%s\", line %d: Don't use \"%s\" in LaTeX documents\n", - file_name, line_count, yytext); - ++warn_count ; - }} - */ - -\\{font_spec}/[ \t]*"{" { - { - printf("\"%s\", line %d: Fontspecifiers don't take arguments. \"%s\"\n", - file_name, line_count, yytext); - ++warn_count; - /* (void) input(); */ - }} - - -\\([a-zA-Z\@]+\@[a-zA-Z\@]*|[a-zA-Z\@]*\@[a-zA-Z\@]+) { - { - printf("\"%s\", line %d: Do not use @ in LaTeX macro names. \"%s\"\n", - file_name, line_count, yytext); - ++warn_count; - }} - - -"%" { BEGIN(COMMENT); } - -\n { BEGIN(INITIAL); ++line_count; } - -. { ; } - - -\\(input|include)([ \t]|"{") { BEGIN(INCLUDE); } - -[^\}\n]+ { - { - if ( strstr(yytext,"\.sty") == NULL ) - { - input_file(yytext); - } - else - { - printf("\"%s\", line %d: Style file \`%s\' omitted.\n", - file_name, - line_count, - yytext); - input(); - } - BEGIN(INITIAL); - }} - -<> { - if (--istackp < 0) - yyterminate(); - - else - { - fclose(yyin); - f_checkend(file_name); - yy_switch_to_buffer(istack[istackp].stream); - free(file_name); - line_count = istack[istackp].linenum; - file_name = istack[istackp].name; - input(); - BEGIN(INITIAL); - } - - } - - -. { ; } -%% -int main( argc, argv ) -int argc; -char *argv[]; -{ - /* allocate initial stacks */ - gstack = (tex_group *)malloc(gstack_size * sizeof(tex_group)); - istack = (input_ *)malloc(istack_size * sizeof(input_)); - if ( gstack == NULL || istack == NULL ) { - fprintf(stderr, "%s: not enough memory for stacks\n", PROGNAME); - exit(3); - } - - if(argc > 1) - { - if ( (file_name = malloc(strlen(argv[1]) + 5)) == NULL ) { - fprintf(stderr, "%s: out of memory\n", PROGNAME); - exit(3); - } - - strcpy(file_name, argv[1]); - - if ((yyin = fopen( file_name, "r")) != NULL ) - { - push(file_name, 3, 1); - yylex(); - f_checkend(file_name); - } - else { - strcat(file_name, ".tex" ); - if ((yyin = fopen( file_name, "r")) != NULL ) - { - push(file_name, 3, 1); - yylex(); - f_checkend(file_name); - } - else - fprintf(stderr, - "%s: Could not open : %s\n",PROGNAME, argv[1]); - } - } - else - { - printf("\n* %s *\n\n",PROGNAME); - printf("\t...a consistency checker for LaTeX documents.\n\n"); - - printf("Usage:\n\tlacheck filename[.tex] \n\n\n"); - - printf("\tFrom within Emacs:\n\n\t"); - printf("M-x compile \n\tlacheck filename[.tex] "); - printf("\n\n\tUse C-x ` to step through the messages.\n\n"); - printf("\n\tThe found context is displayed in \"double quotes\"\n\n"); - printf("Remark:\n\tAll messages are only warnings!\n\n"); - printf("\tYour document may be right though LaCheck tells\n"); - printf("\tsomthing else.\n\n"); - } - return(0); -} - -#ifdef NEED_STRSTR -char * -strstr(string, substring) - register char *string; /* String to search. */ - char *substring; /* Substring to try to find in string. */ -{ - register char *a, *b; - - /* First scan quickly through the two strings looking for a - * single-character match. When it's found, then compare the - * rest of the substring. - */ - - b = substring; - if (*b == 0) { - return string; - } - for ( ; *string != 0; string += 1) { - if (*string != *b) { - continue; - } - a = string; - while (1) { - if (*b == 0) { - return string; - } - if (*a++ != *b++) { - break; - } - } - b = substring; - } - return (char *) 0; -} -#endif /* NEED_STRSTR */ - -void push(p_name, p_type, p_line) -unsigned char *p_name; -int p_type; -int p_line; -{ - if ( gstackp == gstack_size ) { /* extend stack */ - gstack_size *= 2; - gstack = (tex_group *)realloc(gstack, gstack_size * sizeof(tex_group)); - if ( gstack == NULL ) { - fprintf(stderr, "%s: stack out of memory", PROGNAME); - exit(3); - } - } - - if ( (gstack[gstackp].s_name = - (unsigned char *)malloc(strlen(p_name) + 1)) == NULL || - (gstack[gstackp].s_file = - (char *)malloc(strlen(file_name) + 1)) == NULL ) { - fprintf(stderr, "%s: out of memory\n", PROGNAME); - exit(3); - } - - strcpy(gstack[gstackp].s_name,p_name); - gstack[gstackp].s_type = p_type; - gstack[gstackp].s_line = p_line; - strcpy(gstack[gstackp].s_file,file_name); - ++gstackp; - -} - -void input_file(file_nam) -char *file_nam; -{ - char *tmp_file_name; - FILE *tmp_yyin; - - if ( (tmp_file_name = malloc(strlen(file_nam) + 5)) == NULL ) { - fprintf(stderr, "%s: out of memory\n", PROGNAME); - exit(3); - } - strcpy(tmp_file_name,file_nam); - - if (istackp == istack_size) { /* extend stack */ - istack_size *= 2; - istack = (input_ *)realloc(istack, istack_size * sizeof(input_)); - if ( istack == NULL ) { - fprintf(stderr, "%s: \\input stack out of memory\n", PROGNAME); - exit(3); - } - } - - istack[istackp].stream = YY_CURRENT_BUFFER; - istack[istackp].linenum = line_count; - istack[istackp].name = file_name; - ++istackp; - - if ((tmp_yyin = fopen( file_nam, "r")) != NULL ) - { - yyin = tmp_yyin; - yy_switch_to_buffer(yy_create_buffer(yyin,YY_BUF_SIZE)); - file_name = tmp_file_name; - push(file_name, 3, 1); - line_count = 1; - } - else { - (void) strcat(tmp_file_name, ".tex"); - if ((tmp_yyin = fopen( tmp_file_name , "r")) != NULL ) - { - yyin = tmp_yyin; - yy_switch_to_buffer(yy_create_buffer(yyin,YY_BUF_SIZE)); - file_name = tmp_file_name; - push(file_name, 3, 1); - line_count = 1; - } - else - { - --istackp; - fclose(tmp_yyin); - free(tmp_file_name); - printf("\"%s\", line %d: Could not open \"%s\"\n", - file_name, - line_count, - file_nam); - input(); - } - } -} - -void pop() -{ - if ( gstackp == 0 ) - { - fprintf(stderr, "%s: Stack underflow\n", PROGNAME); - exit(4); - } - --gstackp; - - free(gstack[gstackp].s_name); - free(gstack[gstackp].s_file); -} - -char *bg_command(name) -char *name; -{ - - switch (CG_TYPE) { - - case 2: - (void) strcpy( returnval, "\\begin\{" ); - (void) strcat( returnval, (char *) name); - (void) strcat( returnval, "}" ); - break; - - case 3: - (void) strcpy( returnval, "beginning of file " ); - (void) strcat( returnval, (char *) name); - break; - - case 4: - (void) strcpy( returnval, "math begin " ); - (void) strcat( returnval, (char *) name); - break; - - case 5: - (void) strcpy( returnval, "display math begin " ); - (void) strcat( returnval, (char *) name); - break; - - default: - (void) strcpy( returnval, name ); - - } - - return ((char *)returnval); -} - -char *eg_command(name,type) -int type; -char *name; -{ - - switch (type) { - - case 2: - (void) strcpy( returnval, "\\end{" ); - (void) strcat( returnval, (char *) name); - (void) strcat( returnval, "}" ); - break; - - case 3: - (void) strcpy( returnval, "end of file " ); - (void) strcat( returnval, (char *) name); - break; - - case 4: - (void) strcpy( returnval, "math end " ); - (void) strcat( returnval, (char *) name); - break; - - case 5: - (void) strcpy( returnval, "display math end " ); - (void) strcat( returnval, (char *) name); - break; - - default: - (void) strcpy( returnval, name ); - break; - } - - return ((char *)returnval); -} - - -void g_checkend(n) -int n; -{ - if ( check_top_level_end(yytext,n) == 1 ) - if ( CG_TYPE != n ) - print_bad_match(yytext,n); - else - pop(); -} - -void e_checkend(n, name) -int n; -char *name; -{ - if ( check_top_level_end(name,n) == 1 ) - { - if ( CG_TYPE != n || strcmp( CG_NAME, name ) != 0 ) - print_bad_match(name,n); - - pop(); - - } -} - -void f_checkend(name) -char *name; -{ - if ( check_top_level_end(name,3) == 1 ) - { - if ( CG_TYPE != 3 || strcmp( CG_NAME, name ) != 0 ) - - while( CG_TYPE != 3 ) - { - print_bad_match(name,3); - pop(); - } - - pop(); - } -} - -void print_bad_match(end_command,type) -char *end_command; -int type; -{ - printf("\"%s\", line %i: <- unmatched \"%s\"\n", - file_name, - line_count, - eg_command( end_command , type) ) ; - - printf("\"%s\", line %i: -> unmatched \"%s\"\n", - CG_FILE, - CG_LINE, - bg_command( CG_NAME ) ) ; - warn_count += 2; -} - -int check_top_level_end(end_command,type) -char *end_command; -int type; -{ - if ( gstackp == 0 ) - { - printf("\"%s\", line %i: \"%s\" found at top level\n", - file_name, - line_count, - eg_command( end_command, type )) ; - ++warn_count; - return(0); - } - else - return(1); -} - - - diff --git a/utils/tex2rtf/tools/lacheck.rea b/utils/tex2rtf/tools/lacheck.rea deleted file mode 100644 index 8970e87746..0000000000 --- a/utils/tex2rtf/tools/lacheck.rea +++ /dev/null @@ -1,9 +0,0 @@ -To compile, do as folows: - - flex -8 lacheck.lex - cc lex.yy.c -ll -O -o lacheck - -This should make a executable file called lacheck. -Further documentation is in the manualpage. - -/Kresten diff --git a/utils/tex2rtf/tools/lacheck.txt b/utils/tex2rtf/tools/lacheck.txt deleted file mode 100644 index c844bc993f..0000000000 --- a/utils/tex2rtf/tools/lacheck.txt +++ /dev/null @@ -1,136 +0,0 @@ - - -LaCheck(1) Unix Programmer's Manual LaCheck(1) - - -NAME - lacheck - A consistency checker for LaTeX documents. - -SYNOPSIS - lacheck filename [ .tex ] - -------- --- - -DESCRIPTION - lacheck is a general purpose consistency checker for LaTeX documents. It - reads a LaTeX document and displays warning messages, if it finds bad - sequences. It should be noted, that the badness is very subjective. - ---- - - The things checked are: - - Mismatched groups (braces), environments and math mode delimiters. When - a mismatch is found, line numbers for both start and end of the mismatch - ---- - is given. The error messages comes in pairs, one for the end match and - one for the beginning, marked with `<-' and `->' respectively. - - Bad spacing. This is: missing a `\ ' after an abbreviation, missing an - `\@' before a punctuation mark in a paragraph that is ended by an capital - letter, double spaces like ` \~', bad usage of ellipsis (like using ... - instead of \ldots, or using \ldots where \cdots should be used) - - lacheck will read files that are input using \input or \include. Files - with suffix `.sty' are omitted, as they probably will cause errors. - - lacheck may be invoked from within Emacs(1) using compile: - - To run: M-x compile , and then C-x ` to parse the messages - - -OUTPUT - The output is UNIX-error like, and may be parsed using Emacs(1) compile - mode. Here is a sample: - - lacheck compiler - "/usr/mef/compiler.tex", line 34: missing `\\\\ ' after "etc." - "/usr/mef/compiler.tex", line 179: double space at " ~" - "/usr/mef/compiler.tex", line 186: <- unmatched "}" - "/usr/mef/compiler.tex", line 181: -> unmatched "$$" - - A control space `\ ' should be inserted at line 34, to prevent an end-of- - sentence space. Also, at line 179, the first space of the sequence " ~" - should probably be deleted. The last two lines is an example, where the - user mistyped, and probably inserted an extra "}" somewhere. - - -DIAGNOSTICS - Some special cases should be explained. In cases where a sentence ends - with something that lacheck thinks is an abbreviation an missing `\ ' - error may also occur, if the following sentence begins with a capital - letter. - - A mismatch error may cause more to follow, due to the chosen algorithm. - In such cases just correct the first error and run lacheck again - ----- - - - - May 23, 1991 1 - - - - -LaCheck(1) Unix Programmer's Manual LaCheck(1) - - - Braces, environments and math mode must be balanced within a file. - -SEE ALSO - tex(1), Emacs(1), latex(1) - -BUGS - Lots... Ideas for improvements and bug reports are very welcome. Such - should be directed to the author. - -AUTHOR - Kresten Krab Thorup, Email - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - May 23, 1991 2 - - -- 2.45.2