diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/kamal/DeTeX.c |
Initial commit
Diffstat (limited to 'support/kamal/DeTeX.c')
-rw-r--r-- | support/kamal/DeTeX.c | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/support/kamal/DeTeX.c b/support/kamal/DeTeX.c new file mode 100644 index 0000000000..804c3172c9 --- /dev/null +++ b/support/kamal/DeTeX.c @@ -0,0 +1,67 @@ +/* COPYRIGHT (C) 1987 Kamal Al-Yahya */ +#include "setups.h" +DeTeX(buffer,out_file) /* stripping TEX commands */ + +char *buffer; +FILE *out_file; +{ +int c,cc; +char w[MAXWORD]; + +while ((c = *buffer++) != NULL) + { + switch (c) + { +/* detect TeX commands (backslash) */ + case '\\': + c=' ' ; /* "erase" the backslash */ + putc(c,out_file); + cc = *buffer++; + if (cc == '\n') putc(cc,out_file); + else if (cc == '[') buffer += display(buffer); + else if (cc == '(') buffer += formula(buffer); + else if (cc == '$' || cc == '%') + break; +/* check for LaTeX \begin{equation}, \begin{eqnarray}, and \begin{displaymath} */ + else + { + buffer--; + buffer += get_buf_word(buffer,w); + if (strcmp(w,"begin") == 0) + { + buffer++; + buffer += get_buf_word(buffer,w); + if (strcmp(w,"equation") == 0 || + strcmp(w,"eqnarray") == 0 || + strcmp(w,"displaymath") == 0) + buffer += begin_to_end(buffer,w); + } + } + break; + + case '$': + buffer += dollar(buffer,out_file); + break; + case '%': + buffer += comment(buffer); + break; +/* erase these character */ + case '{': + c=' '; + case '}': + c=' '; + case '_': + c=' '; + case '^': + c=' '; + case '&': + c=' '; + case '#': + c=' '; +/* default is doing nothing: pass the character to the output */ + default: + putc(c,out_file); + break; + } + } +} |