summaryrefslogtreecommitdiff
path: root/support/kamal/DeTeX.c
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /support/kamal/DeTeX.c
Initial commit
Diffstat (limited to 'support/kamal/DeTeX.c')
-rw-r--r--support/kamal/DeTeX.c67
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;
+ }
+ }
+}