src/Tools/8bit/c-sources/isa2latex/conv-main.c
author wenzelm
Fri, 29 May 1998 13:50:21 +0200
changeset 4987 257aeccdefc3
parent 4170 6b8bbcc9f05f
permissions -rw-r--r--
tuned;
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1826
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     1
/*  Title:      Tools/8bit/c-sources/isa2latex/conv-main.c
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     2
    ID:         $Id$
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     3
    Author:     Franz Regensburger
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     4
    Copyright   1996 TU Muenchen
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     5
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     6
converter for isabelle files
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     7
main file (ANSI-C)
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     8
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
     9
   derived from
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    10
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    11
      spec2latex: Version from 30.3.93
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    12
      Authors  Franz Huber, B. Rumpe, David v. Oheimb 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    13
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    14
   New or changed features:
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    15
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    16
     - flex is used to scan for multi character sequences
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    17
     - automatic generation of flex source from user translation tables
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    18
     - semantics of modes have changed, see the manpage 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    19
     - flag for latex2e
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    20
*/         
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    21
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    22
#include <stdio.h>
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    23
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    24
/*
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    25
 * VERSION:
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    26
 */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    27
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    28
void version(void) {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    29
  fprintf(stderr, "Isabelle Converter, Version 1.4, 30 May 1996\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    30
}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    31
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    32
#include "conv-defs.h"
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    33
#include "conv-tables.h"
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    34
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    35
extern char *translateHi(int ch, int code);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    36
extern char *translateLow(int ch);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    37
extern char *translateLong(int ch);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    38
extern void reset_tabs(void);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    39
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    40
extern int yylex(void);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    41
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    42
FILE* finput;                /* input file, default = stdin */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    43
FILE* foutput;               /* output file,default = stdout */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    44
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    45
int use2e = FALSE;           /* generate latex2e output */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    46
int bigTabs = FALSE;         /* flag for big tabs */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    47
int tabBlanks = TABBLANKS;   /* number of blanks subsituted for a tab */
4170
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
    48
char isa_env_beg0[200],      /* latex command to begin isa environment */
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
    49
     isa_env_beg1[200];
1826
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    50
char isa_env_end[200];       /* latex command to end   isa environment */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    51
int cc;                      /* character counter in line  */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    52
int tabcount;                /* counter for tab positions  */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    53
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    54
int destCode = DEFAULT_DEST; /* default destination */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    55
int convMode = DEFAULT_MODE; /* default conversion mode  */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    56
int accept_ASCII = FALSE;    /* accept ASCII input for 8bit characters */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    57
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    58
/*
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    59
 * einfache Fehlerbehandlung:
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    60
 */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    61
 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    62
void error(char* s, char* t) {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    63
  fprintf(stderr, "Error! %s: %s\n", s, t);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    64
}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    65
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    66
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    67
/*
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    68
 * erklaert Programmbenutzung:
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    69
 */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    70
 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    71
void usage(void) {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    72
  fprintf(stderr, "Isabelle converter. Valid Options:\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    73
  fprintf(stderr, "<file>:    input file other than stdin\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    74
  fprintf(stderr, "-o <file>: output file other than stdout\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    75
  fprintf(stderr, "-a:        generate 7 bit ASCII representation\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    76
  fprintf(stderr, "-A:        accept ASCII representation of graphical characters (unsafe)\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    77
  fprintf(stderr, "-i:        generate LaTeX representation (default)\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    78
  fprintf(stderr, "           (for inclusion into other LaTeX documents)\n"); 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    79
  fprintf(stderr, "-s:        generate standalone LaTeX document\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    80
  fprintf(stderr, "-x:        allows mixture of specifications and given LaTeX parts\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    81
  fprintf(stderr, "-e:        generate LaTeX2e code (if option -s given)\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    82
  fprintf(stderr, "-t <num>:  set tabulator every <num> characters\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    83
  fprintf(stderr, "           (for conversion to LaTeX; default: 8)\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    84
  fprintf(stderr, "-b:        'BigTabs'; generates bigger tabbings\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    85
  fprintf(stderr, "           than standard for the LaTeX conversion\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    86
  fprintf(stderr, "-f <strg>: use another font than the default cmr-font when converting\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    87
  fprintf(stderr, "           to LaTeX. <strg> is the font-string in LaTeX syntax\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    88
  fprintf(stderr, "-v:        show version number and release date\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    89
  fprintf(stderr, "-h(elp):   print this message\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    90
}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    91
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    92
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    93
/*
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    94
 * main programm
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    95
 */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    96
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    97
int main(int argc, char* argv[]) {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    98
  char *s;                /* pointer to traverse components of argv */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
    99
  char texFont[200];      /* string for TeX font change if destCode==TO_LaTeX */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   100
  int i,j;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   101
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   102
  /*
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   103
   * initialize users font string:
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   104
   */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   105
  texFont[0] = '\0';
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   106
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   107
  finput = stdin;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   108
  foutput = stdout;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   109
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   110
  /*
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   111
   * process command line
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   112
   */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   113
  while (--argc > 0) {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   114
    s = *++argv;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   115
    if (*s++ == '-')
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   116
      switch (*s) {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   117
        case 'v':
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   118
          version();
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   119
          exit(0);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   120
        case 'h':
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   121
          usage();
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   122
          exit(0);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   123
        case 'a':
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   124
          destCode = TO_7bit;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   125
          break;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   126
        case 'A':
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   127
          accept_ASCII = TRUE;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   128
          break;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   129
        case 'i':
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   130
          destCode = TO_LaTeX;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   131
	  convMode = INCLUDE;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   132
          break;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   133
        case 's':
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   134
          destCode = TO_LaTeX;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   135
	  convMode = STANDALONE;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   136
          break;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   137
        case 'x':
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   138
          destCode = TO_LaTeX;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   139
	  convMode = MIXED;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   140
          break;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   141
        case 'e':
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   142
          use2e = TRUE;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   143
          break;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   144
        case 'b':
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   145
          bigTabs = TRUE;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   146
          break;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   147
        case 'f':
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   148
          if (--argc)
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   149
            strncpy(texFont, *++argv, 200);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   150
          else
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   151
            error("No font specified with -f option, using default", s);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   152
          break;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   153
        case 'o':
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   154
          if (--argc) {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   155
            if ((foutput = fopen(*++argv, "w")) == NULL) {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   156
             error("Creating output file", *argv);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   157
              exit(-1);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   158
            }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   159
          } else {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   160
            error("No output file specified for option", s);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   161
            usage();
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   162
            exit(-1);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   163
          }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   164
          break;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   165
        case 't':
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   166
          { int temp;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   167
            if (--argc) {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   168
              if (temp = atoi(*++argv))
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   169
			    tabBlanks = temp;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   170
			  else {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   171
                error("Not a valid tabulator value", *argv);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   172
                exit(-1);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   173
              }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   174
            } else {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   175
              error("No value specified for option", s);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   176
              usage();
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   177
              exit(-1);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   178
            }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   179
		  }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   180
          break;
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   181
        default:
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   182
          error("Unknown option", s);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   183
          usage();
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   184
          exit(-1);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   185
      } /* switch */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   186
    else
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   187
      /*
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   188
       * no further parameters with "-"; therefore we see input file:
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   189
       */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   190
       if ((finput = fopen(--s, "r")) == NULL) {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   191
         error("Opening input file", s);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   192
         exit(-1);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   193
        }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   194
  }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   195
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   196
  /*
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   197
   * if destination is TO_LaTeX and mode is STANDALONE then produce LaTeX header
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   198
   */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   199
  
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   200
  if (convMode == STANDALONE) {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   201
    if (use2e){
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   202
      fprintf(foutput, 
4170
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   203
	 "\\documentclass[]{article}\n");
1826
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   204
      fprintf(foutput, 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   205
	 "\\usepackage{latexsym,amssymb,isa2latex}\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   206
    } else {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   207
      fprintf(foutput, 
4170
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   208
	 "\\documentstyle[10pt,latexsym,amssymb,isa2latex]{article}\n");
1826
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   209
    }
4170
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   210
      fprintf(foutput, "\\topmargin-8ex\n"
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   211
	               "\\oddsidemargin0ex\n"
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   212
	               "\\textheight158ex\n"
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   213
	               "\\begin{document}\n");
1826
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   214
  }
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   215
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   216
  if(texFont[0] != '\0') /* adjust font definition */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   217
    fprintf(foutput, "%s\n", texFont);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   218
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   219
  /*
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   220
   * prepare a tabbing environment with tabstops every 'tabBlanks' blanks:
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   221
  strcpy(isa_env_beg, "{\\isamode\\begin{tabbing}");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   222
  for (i = 0; i < NUM_TABS; i++) {
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   223
    for (j = 0; j < tabBlanks; j++)
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   224
      strcat(isa_env_beg, bigTabs ? BIG_TABBING_UNIT : NORMAL_TABBING_UNIT);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   225
    strcat(isa_env_beg, "\\=");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   226
  }
4170
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   227
  strcat(isa_env_beg, "\\kill{}\\hspace{-1.2ex}\n");
1826
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   228
  strcpy(isa_env_end, "\n\\end{tabbing}}");
4170
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   229
   */
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   230
  strcpy(isa_env_beg0, "{\\isabegin{}\\noindent ");
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   231
  strcpy(isa_env_beg1, "{\\isabegin{\\isamodify}\\noindent ");
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   232
  strcpy(isa_env_end , "\\isaend}\\noindent ");
1826
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   233
  
4170
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   234
  if (convMode == STANDALONE || (convMode == INCLUDE) && (destCode != TO_7bit))
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   235
    fprintf(foutput, isa_env_beg0);
1826
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   236
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   237
  /*
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   238
   * start the conversion: use lexer in all modes to do the job.
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   239
   */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   240
  
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   241
  reset_tabs();
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   242
  yylex();
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   243
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   244
  /*
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   245
   * output footers
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   246
   */
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   247
4170
6b8bbcc9f05f several minor improvements
oheimb
parents: 1826
diff changeset
   248
  if(convMode == STANDALONE || (convMode == INCLUDE) && (destCode != TO_7bit))
1826
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   249
    fprintf(foutput, isa_env_end);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   250
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   251
  if(convMode == STANDALONE) 
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   252
      fprintf(foutput, "\\end{document}\n");
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   253
  return(0);
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   254
}
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   255
2a2c0dbeb4ac Initial revision
oheimb
parents:
diff changeset
   256