home *** CD-ROM | disk | FTP | other *** search
- /* $VER: translate.c 2.1 (05.06.94)
- */
-
- #include "global.h"
-
- /**********************************************************************
- * Translating ISO-Latin1 -> LaTeX code *
- **********************************************************************/
- char *translate_to_latex(const char *input)
- {
- static char output[512];
- int i = 0, pos = 0;
-
- while (input[i])
- {
- switch (input[i])
- {
- case '-':
- output[pos++] = '-';
- output[pos++] = '-';
- break;
- case '#':
- output[pos++] = '\\';
- output[pos++] = '#';
- break;
- case '$':
- output[pos++] = '\\';
- output[pos++] = '$';
- break;
- case '%':
- output[pos++] = '\\';
- output[pos++] = '%';
- break;
- case '&':
- output[pos++] = '\\';
- output[pos++] = '&';
- break;
- case '[':
- output[pos++] = '$';
- output[pos++] = '[';
- output[pos++] = '$';
- break;
- case '\\':
- strcpy(&output[pos], "$\\backslash$");
- pos += 12;
- break;
- case ']':
- output[pos++] = '$';
- output[pos++] = ']';
- output[pos++] = '$';
- break;
- case '¡':
- output[pos++] = '!';
- output[pos++] = '`';
- break;
- case '£':
- output[pos++] = '\\';
- output[pos++] = 'i';
- output[pos++] = 't';
- output[pos++] = '\\';
- output[pos++] = '$';
- break;
- case '§':
- output[pos++] = '{';
- output[pos++] = '\\';
- output[pos++] = 'S';
- output[pos++] = '}';
- break;
- case '¿':
- output[pos++] = '?';
- output[pos++] = '`';
- break;
- case 'À':
- output[pos++] = '\\';
- output[pos++] = '`';
- output[pos++] = 'A';
- break;
- case 'Á':
- output[pos++] = '\\';
- output[pos++] = '\'';
- output[pos++] = 'A';
- break;
- case 'Â':
- output[pos++] = '\\';
- output[pos++] = '^';
- output[pos++] = 'A';
- break;
- case 'Ã':
- output[pos++] = '\\';
- output[pos++] = '~';
- output[pos++] = 'A';
- break;
- case 'Ä':
- output[pos++] = '\\';
- output[pos++] = '"';
- output[pos++] = 'A';
- break;
- case 'Å':
- output[pos++] = '\\';
- output[pos++] = 'A';
- output[pos++] = 'A';
- output[pos++] = '{';
- output[pos++] = '}';
- break;
- case 'Æ':
- output[pos++] = '\\';
- output[pos++] = 'A';
- output[pos++] = 'E';
- output[pos++] = '{';
- output[pos++] = '}';
- break;
- case 'Ç':
- output[pos++] = '\\';
- output[pos++] = 'c';
- output[pos++] = ' ';
- output[pos++] = 'C';
- break;
- case 'È':
- output[pos++] = '\\';
- output[pos++] = '`';
- output[pos++] = 'E';
- break;
- case 'É':
- output[pos++] = '\\';
- output[pos++] = '\'';
- output[pos++] = 'E';
- break;
- case 'Ê':
- output[pos++] = '\\';
- output[pos++] = '^';
- output[pos++] = 'E';
- break;
- case 'Ë':
- output[pos++] = '\\';
- output[pos++] = '"';
- output[pos++] = 'E';
- break;
- case 'Ì':
- output[pos++] = '\\';
- output[pos++] = '`';
- output[pos++] = 'I';
- break;
- case 'Í':
- output[pos++] = '\\';
- output[pos++] = '\'';
- output[pos++] = 'I';
- break;
- case 'Î':
- output[pos++] = '\\';
- output[pos++] = '^';
- output[pos++] = 'I';
- break;
- case 'Ï':
- output[pos++] = '\\';
- output[pos++] = '"';
- output[pos++] = 'I';
- break;
- case 'Ñ':
- output[pos++] = '\\';
- output[pos++] = '~';
- output[pos++] = 'N';
- break;
- case 'Ò':
- output[pos++] = '\\';
- output[pos++] = '`';
- output[pos++] = 'O';
- break;
- case 'Ó':
- output[pos++] = '\\';
- output[pos++] = '\'';
- output[pos++] = 'O';
- break;
- case 'Õ':
- output[pos++] = '\\';
- output[pos++] = '~';
- output[pos++] = 'O';
- break;
- case 'Ö':
- output[pos++] = '\\';
- output[pos++] = '"';
- output[pos++] = 'O';
- break;
- case 'Ô':
- output[pos++] = '\\';
- output[pos++] = '^';
- output[pos++] = 'O';
- break;
- case 'Ø':
- output[pos++] = '\\';
- output[pos++] = 'O';
- output[pos++] = '{';
- output[pos++] = '}';
- break;
- case 'Ù':
- output[pos++] = '\\';
- output[pos++] = '`';
- output[pos++] = 'U';
- break;
- case 'Ú':
- output[pos++] = '\\';
- output[pos++] = '\'';
- output[pos++] = 'U';
- break;
- case 'Û':
- output[pos++] = '\\';
- output[pos++] = '^';
- output[pos++] = 'U';
- break;
- case 'Ü':
- output[pos++] = '\\';
- output[pos++] = '"';
- output[pos++] = 'U';
- break;
- case 'Ý':
- output[pos++] = '\\';
- output[pos++] = '\'';
- output[pos++] = 'Y';
- break;
- case 'ß':
- output[pos++] = '\\';
- output[pos++] = 's';
- output[pos++] = 's';
- output[pos++] = '{';
- output[pos++] = '}';
- break;
- case 'à':
- output[pos++] = '\\';
- output[pos++] = '`';
- output[pos++] = 'a';
- break;
- case 'á':
- output[pos++] = '\\';
- output[pos++] = '\'';
- output[pos++] = 'a';
- break;
- case 'â':
- output[pos++] = '\\';
- output[pos++] = '^';
- output[pos++] = 'a';
- break;
- case 'ã':
- output[pos++] = '\\';
- output[pos++] = '~';
- output[pos++] = 'a';
- break;
- case 'ä':
- output[pos++] = '\\';
- output[pos++] = '"';
- output[pos++] = 'a';
- break;
- case 'å':
- output[pos++] = '\\';
- output[pos++] = 'a';
- output[pos++] = 'a';
- output[pos++] = '{';
- output[pos++] = '}';
- break;
- case 'æ':
- output[pos++] = '\\';
- output[pos++] = 'a';
- output[pos++] = 'e';
- output[pos++] = '{';
- output[pos++] = '}';
- break;
- case 'ç':
- output[pos++] = '\\';
- output[pos++] = 'c';
- output[pos++] = ' ';
- output[pos++] = 'c';
- break;
- case 'è':
- output[pos++] = '\\';
- output[pos++] = '`';
- output[pos++] = 'e';
- break;
- case 'é':
- output[pos++] = '\\';
- output[pos++] = '\'';
- output[pos++] = 'e';
- break;
- case 'ê':
- output[pos++] = '\\';
- output[pos++] = '^';
- output[pos++] = 'e';
- break;
- case 'ë':
- output[pos++] = '\\';
- output[pos++] = '"';
- output[pos++] = 'e';
- break;
- case 'ì':
- output[pos++] = '\\';
- output[pos++] = '`';
- output[pos++] = '\\';
- output[pos++] = 'i';
- output[pos++] = '{';
- output[pos++] = '}';
- break;
- case 'í':
- output[pos++] = '\\';
- output[pos++] = '\'';
- output[pos++] = '\\';
- output[pos++] = 'i';
- output[pos++] = '{';
- output[pos++] = '}';
- break;
- case 'î':
- output[pos++] = '\\';
- output[pos++] = '^';
- output[pos++] = '\\';
- output[pos++] = 'i';
- output[pos++] = '{';
- output[pos++] = '}';
- break;
- case 'ï':
- output[pos++] = '\\';
- output[pos++] = '"';
- output[pos++] = '\\';
- output[pos++] = 'i';
- output[pos++] = '{';
- output[pos++] = '}';
- break;
- case 'ñ':
- output[pos++] = '\\';
- output[pos++] = '~';
- output[pos++] = 'n';
- break;
- case 'ò':
- output[pos++] = '\\';
- output[pos++] = '`';
- output[pos++] = 'o';
- break;
- case 'ó':
- output[pos++] = '\\';
- output[pos++] = '\'';
- output[pos++] = 'o';
- break;
- case 'ô':
- output[pos++] = '\\';
- output[pos++] = '^';
- output[pos++] = 'o';
- break;
- case 'õ':
- output[pos++] = '\\';
- output[pos++] = '~';
- output[pos++] = 'o';
- break;
- case 'ö':
- output[pos++] = '\\';
- output[pos++] = '"';
- output[pos++] = 'o';
- break;
- case 'ø':
- output[pos++] = '\\';
- output[pos++] = 'o';
- output[pos++] = '{';
- output[pos++] = '}';
- break;
- case 'ù':
- output[pos++] = '\\';
- output[pos++] = '`';
- output[pos++] = 'u';
- break;
- case 'ú':
- output[pos++] = '\\';
- output[pos++] = '\'';
- output[pos++] = 'u';
- break;
- case 'û':
- output[pos++] = '\\';
- output[pos++] = '^';
- output[pos++] = 'u';
- break;
- case 'ü':
- output[pos++] = '\\';
- output[pos++] = '"';
- output[pos++] = 'u';
- break;
- case 'ý':
- output[pos++] = '\\';
- output[pos++] = '\'';
- output[pos++] = 'y';
- break;
- case 'ÿ':
- output[pos++] = '\\';
- output[pos++] = '"';
- output[pos++] = 'y';
- break;
- default:
- output[pos++] = input[i];
- break;
- }
- i++;
- }
- output[pos] = '\0';
-
- return output;
- }
-