home *** CD-ROM | disk | FTP | other *** search
- /* COPYRIGHT (C) 1987 Kamal Al-Yahya */
- #include "setups.h"
- Eqn(buffer,out_file) /* srips TEX equations */
-
- FILE *out_file;
- char *buffer;
- {
- int c,d;
- int i;
- char w[MAXLINE], ww[MAXWORD];
- while ((c = *buffer++) != NULL)
- {
- if(c == '%')
- {
- while ((c = *buffer++) != NULL)
- if (c == '\n') break;
- }
- else if(c == '$')
- {
- if ((d = *buffer++) == '$')
- {
- putc(c,out_file); putc(d,out_file);
- while ((c = *buffer++) != NULL)
- {
- if(c != '$') putc(c,out_file);
- else
- {
- buffer++;
- fprintf(out_file,"$$ \n");
- break;
- }
- }
- }
- }
- /* check for LaTeX \begin{equation}, \begin{eqnarray}, and \begin{displaymath} */
- else if(c == '\\')
- {
- c = *buffer++;
- if (c == '[')
- {
- putc('\\',out_file); putc(c,out_file);
- while((c = *buffer++) != NULL)
- {
- if(c == '\\')
- {
- c = *buffer++;
- fprintf(out_file,"\\%c",c);
- if (c == ']')
- {
- putc('\n',out_file);
- break;
- }
- }
- else
- putc(c,out_file);
- }
- continue;
- }
- buffer--;
- buffer += get_buf_word(buffer,w);
- if (strcmp(w,"begin") == 0)
- {
- buffer++;
- i = get_buf_word(buffer,w);
- buffer += i;
- if (strcmp(w,"equation") == 0 || strcmp(w,"eqnarray")
- == 0 || strcmp(w,"displaymath") == 0)
- {
- fprintf(out_file,"\\begin{%s}",w);
- buffer++;
- while ((c = *buffer++) != NULL)
- {
- putc(c,out_file);
- if (c == '\\')
- {
- i = get_buf_word(buffer,ww);
- buffer += i;
- fprintf(out_file,"%s",ww);
- if (strcmp(ww,"end") == 0)
- {
- buffer++;
- i = get_buf_word(buffer,ww);
- buffer += i;
- fprintf(out_file,
- "{%s}\n",ww);
- buffer++;
- if (strcmp(ww,"equation")
- == 0 ||
- strcmp(ww,"eqnarray")
- == 0 ||
- strcmp(ww,"displaymath")
- == 0)
- break;
- }
- }
- }
- }
- }
- else if (strcmp(w,"def") == 0)
- {
- i = def(buffer,w);
- buffer += i;
- fprintf(out_file,"\\def%s\n",w);
- }
- else if (strcmp(w,"newcommand") == 0)
- {
- i = command(buffer,w);
- buffer += i;
- fprintf(out_file,"\\newcommand%s\n",w);
- }
- }
- }
- }
-