static void applemac_enc(int index) { char *s; s = applemac_2_ansi[index]; if (s[0]!='0'){ fprintRTF("\\'%s",s); return; } s = applemac_2_sym[index]; if (s[0]!='0'){ int num=RtfFontNumber("Symbol"); fprintRTF("{\\f%d\\'%s}",num,s); return; } if (0xDE) { /* U+64257 LATIN SMALL LIGATURE FI */ fprintRTF("fi"); return; } if (index + 128 == 0xDF) { /* U+64258 LATIN SMALL LIGATURE FL */ fprintRTF("fl"); return; } if (index + 128 == 0xF0) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xF5) { /* U+305 LATIN SMALL LETTER DOTLESS I */ fprintRTF("i"); return; } if (index + 128 == 0xF9) { /* U+728 BREVE */ int num = RtfFontNumber("MT Extra"); fprintRTF("{\\f%d\\'28}", num); return; } if (index + 128 == 0xFA) { /* U+729 DOT ABOVE */ put_dot_char(' '); return; } if (index + 128 == 0xFB) { /* U+730 RING ABOVE */ put_ring_char(' '); return; } if (index + 128 == 0xFD) { /* U+733 DOUBLE ACUTE ACCENT */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xFE) { /* U+731 OGONEK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xFF) { /* U+711 CARON */ /* fprintRTF("TRANSLATION");*/ return; } }
/****************************************************************************** purpose: converts symbols with grave accents (\`{a}) from LaTeX to RTF ******************************************************************************/ void CmdGraveChar(int code) { int n = RtfFontNumber("STIXGeneral"); char *cParam = getBraceParam(); if (strstr(cParam, "\\i")) { fprintRTF("\\'ec"); free(cParam); return; } switch (cParam[0]) { case 'A': fprintRTF("\\'c0"); break; case 'E': fprintRTF("\\'c8"); break; case 'I': fprintRTF("\\'cc"); break; case 'O': fprintRTF("\\'d2"); break; case 'U': fprintRTF("\\'d9"); break; case 'a': fprintRTF("\\'e0"); break; case 'e': fprintRTF("\\'e8"); break; case 'i': fprintRTF("\\'ec"); break; case 'o': fprintRTF("\\'f2"); break; case 'u': fprintRTF("\\'f9"); break; case 'N': fprintRTF("\\u504N"); break; case 'n': fprintRTF("\\u505n"); break; case '\0': fprintRTF(" \\u768\\'60"); break; default: fprintRTF("{\\f%d",n); fprintRTF("\\u768\\'60}"); /* unicode combining character 0x0300 */ ConvertString(cParam); break; } free(cParam); }
/***************************************************************************** purpose: converts \U{i} ... probably specific to ot2 ******************************************************************************/ void CmdWideBreveChar(int code) { int n = RtfFontNumber("STIXGeneral"); char *cParam = getBraceParam(); switch (cParam[0]) { case 'U': CmdUnicodeChar(0x040E); break; case 'I': CmdUnicodeChar(0x0419); break; case 'i': CmdUnicodeChar(0x0439); break; case 'u': CmdUnicodeChar(0x0439); break; default: fprintRTF("{\\f%d",n); fprintRTF("\\u774u}"); /* unicode combining character 0x0306 */ ConvertString(cParam); break; } free(cParam); }
static void latin9_enc(int index) { char *s; s = latin9_2_ansi[index]; if (s[0]!='0'){ fprintRTF("\\'%s",s); return; } s = latin9_2_sym[index]; if (s[0]!='0'){ int sym=RtfFontNumber("Symbol"); fprintRTF("{\\f%d\\'%s}",sym,s); return; } if (index + 128 == 0xA4) { /* U+8364 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xB4) { /* U+381 LATIN CAPITAL LETTER Z WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xB8) { /* U+382 LATIN SMALL LETTER Z WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } }
static void put_dot_char(char c) { int num = RtfFontNumber("MT Extra"); fprintRTF("{\\field{\\*\\fldinst EQ \\\\O(%c",c); fprintRTF("%c\\\\S(\\f%d\\'26))}", g_field_separator, num); fprintRTF("{\\fldrslt }}"); }
/****************************************************************************** purpose: converts \H{o} ******************************************************************************/ void CmdDoubleAcuteChar(int code) { int n = RtfFontNumber("STIXGeneral"); char *cParam = getBraceParam(); switch (cParam[0]) { case 'O': putUnicodeChar(0x01,0x50,'O'); break; case 'o': putUnicodeChar(0x01,0x51,'o'); break; case 'U': putUnicodeChar(0x01,0x70,'U'); break; case 'u': putUnicodeChar(0x01,0x71,'u'); break; case '\0': putUnicodeChar(0x02,0xDD,'"'); break; default: fprintRTF("{\\f%d",n); fprintRTF("\\u779\"}"); /* unicode combining character 0x030B */ ConvertString(cParam); break; } free(cParam); }
static void put_breve_char(char c) { int num = RtfFontNumber("MT Extra"); int upsize = CurrentFontSize()/2; fprintRTF("{\\field{\\*\\fldinst EQ \\\\O(%c",c); fprintRTF("%c\\\\S(\\up%d\\f%d \\\\())}", g_field_separator, upsize, num); fprintRTF("{\\fldrslt }}"); }
/****************************************************************************** purpose: converts \.{o} and \dot{o} from LaTeX to RTF need something that looks like \\O(a,\\S(\f2\'26)) in RTF file ******************************************************************************/ void CmdDotChar(int code) { int n = RtfFontNumber("STIXGeneral"); char *cParam = getBraceParam(); switch (cParam[0]) { case 'A': fprintRTF("\\u550A"); break; case 'a': fprintRTF("\\u551a"); break; case 'C': fprintRTF("\\u266C"); break; case 'c': fprintRTF("\\u267c"); break; case 'E': fprintRTF("\\u278E"); break; case 'e': fprintRTF("\\u279e"); break; case 'G': fprintRTF("\\u288G"); break; case 'g': fprintRTF("\\u289g"); break; case 'I': fprintRTF("\\u304I"); break; case 'O': fprintRTF("\\u558O"); break; case 'o': fprintRTF("\\u559o"); break; case 'Z': fprintRTF("\\u379Z"); break; case 'z': fprintRTF("\\u380z"); break; case '\0': putUnicodeChar(0x02,0xD9,'.'); break; default: fprintRTF("{\\f%d",n); fprintRTF("\\u775.}"); /* unicode combining character 0x0307 */ ConvertString(cParam); break; } free(cParam); }
/***************************************************************************** purpose: converts \vec{o} from LaTeX to RTF ******************************************************************************/ void CmdVecChar(int code) { int n = RtfFontNumber("STIXGeneral"); char *cParam = getBraceParam(); fprintRTF("{\\f%d ",n); putUnicodeChar(0x20,0xD7,'-'); /* COMBINING RIGHT ARROW ABOVE */ fprintRTF("}"); ConvertString(cParam); free(cParam); }
static void cp850_enc(int index) { char *s; s = cp850_2_ansi[index]; if (s[0]!='0'){ fprintRTF("\\'%s",s); return; } s = cp850_2_sym[index]; if (s[0]!='0'){ int sym=RtfFontNumber("Symbol"); fprintRTF("{\\f%d\\'%s}",sym,s); return; } if (index + 128 == 0xB0) { /* U+9617 LIGHT SHADE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xB1) { /* U+9618 MEDIUM SHADE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xB2) { /* U+9619 DARK SHADE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xD5) { /* U+305 LATIN SMALL LETTER DOTLESS I */ fprintRTF("i"); return; } if (index + 128 == 0xDB) { /* U+9608 FULL BLOCK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xDC) { /* U+9604 LOWER HALF BLOCK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xDF) { /* U+9600 UPPER HALF BLOCK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xF7) { /* U+731 OGONEK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xFA) { /* U+729 DOT ABOVE */ put_dot_char(' '); return; } if (index + 128 == 0xFE) { /* U+9632 BLACK SQUARE */ /* fprintRTF("TRANSLATION");*/ return; } }
/***************************************************************************** purpose: converts \u{o} and \breve{o} ******************************************************************************/ void CmdBreveChar(int code) { int n = RtfFontNumber("STIXGeneral"); char *cParam = getBraceParam(); switch (cParam[0]) { case 'A': putUnicodeChar(0x01,0x02,'A'); break; case 'a': putUnicodeChar(0x01,0x03,'a'); break; case 'E': putUnicodeChar(0x01,0x14,'E'); break; case 'e': putUnicodeChar(0x01,0x15,'e'); break; case 'G': putUnicodeChar(0x01,0x1e,'G'); break; case 'g': putUnicodeChar(0x01,0x1f,'g'); break; case 'I': putUnicodeChar(0x01,0x2c,'I'); break; case 'i': putUnicodeChar(0x01,0x2d,'i'); break; case 'O': putUnicodeChar(0x01,0x4e,'O'); break; case 'o': putUnicodeChar(0x01,0x4f,'o'); break; case 'U': putUnicodeChar(0x01,0x6c,'U'); break; case 'c': putUnicodeChar(0x01,0x0D,'c'); break; case '\0': putUnicodeChar(0x02,0xD8,'u'); break; default: fprintRTF("{\\f%d",n); fprintRTF("\\u774u}"); /* unicode combining character 0x0306 */ ConvertString(cParam); break; } free(cParam); }
static void latin5_enc(int index) { char *s; s = latin5_2_ansi[index]; if (s[0]!='0'){ fprintRTF("\\'%s",s); return; } s = latin5_2_sym[index]; if (s[0]!='0'){ int sym=RtfFontNumber("Symbol"); fprintRTF("{\\f%d\\'%s}",sym,s); return; } if (index + 128 == 0xD0) { /* U+286 LATIN CAPITAL LETTER G WITH BREVE */ put_breve_char('G'); return; } if (index + 128 == 0xDD) { /* U+304 LATIN CAPITAL LETTER I WITH DOT ABOVE */ put_dot_char('I'); return; } if (index + 128 == 0xDE) { /* U+350 LATIN CAPITAL LETTER S WITH CEDILLA */ put_cedilla_char('S'); return; } if (index + 128 == 0xEA) { /* U+281 LATIN SMALL LETTER E WITH OGONEK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xEC) { /* U+279 LATIN SMALL LETTER E WITH DOT ABOVE */ put_dot_char('e'); return; } if (index + 128 == 0xEF) { /* U+299 LATIN SMALL LETTER I WITH MACRON */ put_macron_char('i'); return; } if (index + 128 == 0xF0) { /* U+287 LATIN SMALL LETTER G WITH BREVE */ put_breve_char('g'); return; } if (index + 128 == 0xFD) { /* U+305 LATIN SMALL LETTER DOTLESS I */ fprintRTF("i"); return; } if (index + 128 == 0xFE) { /* U+351 LATIN SMALL LETTER S WITH CEDILLA */ put_cedilla_char('s'); return; } }
/****************************************************************************** purpose: converts \~{n} from LaTeX to RTF ******************************************************************************/ void CmdTildeChar(int code) { int n = RtfFontNumber("STIXGeneral"); char *cParam = getBraceParam(); if (strstr(cParam, "\\i")) { fprintRTF("\\u297i"); free(cParam); return; } switch (cParam[0]) { case 'A': fprintRTF("\\'c3"); break; case 'O': fprintRTF("\\'d5"); break; case 'a': fprintRTF("\\'e3"); break; case 'o': fprintRTF("\\'f5"); break; case 'n': fprintRTF("\\'f1"); break; case 'N': fprintRTF("\\'d1"); break; case 'I': fprintRTF("\\u296I"); break; case 'U': fprintRTF("\\u360U"); break; case 'u': fprintRTF("\\u361u"); break; case '\0': fprintRTF("\\'7e"); break; default: fprintRTF("{\\f%d",n); fprintRTF("\\u771\\'7e}"); /* unicode combining character 0x0303 */ ConvertString(cParam); break; } free(cParam); }
static void latin1_enc(int index) { char *s; s = latin1_2_ansi[index]; if (s[0]!='0'){ fprintRTF("\\'%s",s); return; } s = latin1_2_sym[index]; if (s[0]!='0'){ int sym=RtfFontNumber("Symbol"); fprintRTF("{\\f%d\\'%s}",sym,s); return; } }
/****************************************************************************** purpose: converts \r accents from LaTeX to RTF ******************************************************************************/ void CmdRingChar(int code) { int n = RtfFontNumber("STIXGeneral"); char *cParam; if (code == 1) { char c, d; c = getTexChar(); d = getTexChar(); if (c!='2' || d != '3') { fprintf(stderr, "sorry only \\accent23 is supported \n"); return; } } cParam = getBraceParam(); switch (cParam[0]) { case 'A': fprintRTF("\\'c5"); break; case 'a': fprintRTF("\\'e5"); break; case 'U': putUnicodeChar(0x01,0x6E,'U'); break; case 'u': putUnicodeChar(0x01,0x6F,'u'); break; case 'w': putUnicodeChar(0x01,0x98,'w'); break; case 'y': putUnicodeChar(0x01,0x99,'y'); break; case '\0': fprintRTF("\\'b0"); break; default: fprintRTF("{\\f%d",n); fprintRTF("\\u778\\'b0}"); /* unicode combining character 0x030A */ ConvertString(cParam); break; } free(cParam); }
static void cp1252_enc(int index) { char *s; s = cp1252_2_ansi[index]; if (s[0]!='0'){ fprintRTF("\\'%s",s); return; } s = cp1252_2_sym[index]; if (s[0]!='0'){ int sym=RtfFontNumber("Symbol"); fprintRTF("{\\f%d\\'%s}",sym,s); return; } if (index + 128 == 0x80) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x81) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x8D) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x8E) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x8F) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x90) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x9D) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x9E) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } }
static void decmulti_enc(int index) { char *s; s = decmulti_2_ansi[index]; if (s[0]!='0'){ fprintRTF("\\'%s",s); return; } s = decmulti_2_sym[index]; if (s[0]!='0'){ int sym=RtfFontNumber("Symbol"); fprintRTF("{\\f%d\\'%s}",sym,s); return; } if (index + 128 == 0xA0) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xA4) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xA6) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xAC) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xAD) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xAE) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xAF) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xB4) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xB8) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xBE) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xD0) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xDE) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xF0) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xFE) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xFF) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } }
/****************************************************************************** purpose: converts symbols with acute accents (\'{a}) from LaTeX to RTF ******************************************************************************/ void CmdAcuteChar(int code) { int n = RtfFontNumber("STIXGeneral"); char *cParam = getBraceParam(); if (strstr(cParam, "\\i")) { fprintRTF("\\'ed"); free(cParam); return; } switch (cParam[0]) { case 'A': fprintRTF("\\'c1"); break; case 'E': fprintRTF("\\'c9"); break; case 'I': fprintRTF("\\'cd"); break; case 'O': fprintRTF("\\'d3"); break; case 'U': fprintRTF("\\'da"); break; case 'a': fprintRTF("\\'e1"); break; case 'e': fprintRTF("\\'e9"); break; case 'i': fprintRTF("\\'ed"); break; case 'o': fprintRTF("\\'f3"); break; case 'u': fprintRTF("\\'fa"); break; case 'y': fprintRTF("\\'fd"); break; case 'Y': fprintRTF("\\'dd"); break; case 'C': fprintRTF("\\u262C"); break; case 'c': fprintRTF("\\u263c"); break; case 'G': fprintRTF("\\u500G"); break; case 'g': fprintRTF("\\u501g"); break; case 'L': fprintRTF("\\u313L"); break; case 'l': fprintRTF("\\u314l"); break; case 'N': fprintRTF("\\u323N"); break; case 'n': fprintRTF("\\u324n"); break; case 'R': fprintRTF("\\u340R"); break; case 'r': fprintRTF("\\u341r"); break; case 'S': fprintRTF("\\u346S"); break; case 's': fprintRTF("\\u347s"); break; case 'Z': fprintRTF("\\u377Z"); break; case 'z': fprintRTF("\\u378z"); break; case '\0': fprintRTF("\\'b4"); break; default: fprintRTF("{\\f%d",n); fprintRTF("\\u769\\'b4}"); /* unicode combining character 0x0301 */ ConvertString(cParam); break; } free(cParam); }
/****************************************************************************** purpose: converts special symbols from LaTeX to RTF ******************************************************************************/ void CmdMacronChar(int code) { int n = RtfFontNumber("STIXGeneral"); char *cParam = getBraceParam(); if (strstr(cParam, "\\i")) { putUnicodeChar(0x01,0x2B,'i'); free(cParam); return; } switch (cParam[0]) { case 'A': putUnicodeChar(0x01,0x00,'A'); break; case 'a': putUnicodeChar(0x01,0x01,'a'); break; case 'E': putUnicodeChar(0x01,0x12,'E'); break; case 'e': putUnicodeChar(0x01,0x13,'e'); break; case 'I': putUnicodeChar(0x01,0x2A,'l'); break; case 'i': putUnicodeChar(0x01,0x2B,'i'); break; case 'G': putUnicodeChar(0x1E,0x20,'G'); break; case 'g': putUnicodeChar(0x1E,0x21,'g'); break; case 'O': putUnicodeChar(0x01,0x4C,'O'); break; case 'o': putUnicodeChar(0x01,0x4D,'o'); break; case 'U': putUnicodeChar(0x01,0x6A,'U'); break; case 'u': putUnicodeChar(0x01,0x6B,'u'); break; case 'Y': putUnicodeChar(0x02,0x32,'Y'); break; case 'y': putUnicodeChar(0x02,0x33,'y'); break; case '\0': fprintRTF("\\'5f"); break; default: fprintRTF("{\\f%d",n); fprintRTF("\\u772\\'5f}"); /* unicode combining character 0x0304 */ ConvertString(cParam); break; } free(cParam); }
static void cp1250_enc(int index) { char *s; s = cp1250_2_ansi[index]; if (s[0]!='0'){ fprintRTF("\\'%s",s); return; } s = cp1250_2_sym[index]; if (s[0]!='0'){ int sym=RtfFontNumber("Symbol"); fprintRTF("{\\f%d\\'%s}",sym,s); return; } if (index + 128 == 0x80) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x81) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x83) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x88) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x8C) { /* U+346 LATIN CAPITAL LETTER S WITH ACUTE */ put_acute_char('S'); return; } if (index + 128 == 0x8D) { /* U+356 LATIN CAPITAL LETTER T WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x8E) { /* U+381 LATIN CAPITAL LETTER Z WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x8F) { /* U+377 LATIN CAPITAL LETTER Z WITH ACUTE */ put_acute_char('Z'); return; } if (index + 128 == 0x90) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x98) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x9C) { /* U+347 LATIN SMALL LETTER S WITH ACUTE */ put_acute_char('s'); return; } if (index + 128 == 0x9D) { /* U+357 LATIN SMALL LETTER T WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x9E) { /* U+382 LATIN SMALL LETTER Z WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x9F) { /* U+378 LATIN SMALL LETTER Z WITH ACUTE */ put_acute_char('z'); return; } if (index + 128 == 0xA1) { /* U+711 CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xA2) { /* U+728 BREVE */ int num = RtfFontNumber("MT Extra"); fprintRTF("{\\f%d\\'28}", num); return; } if (index + 128 == 0xA3) { /* U+321 LATIN CAPITAL LETTER L WITH STROKE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xA5) { /* U+260 LATIN CAPITAL LETTER A WITH OGONEK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xAA) { /* U+350 LATIN CAPITAL LETTER S WITH CEDILLA */ put_cedilla_char('S'); return; } if (index + 128 == 0xAC) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xAF) { /* U+379 LATIN CAPITAL LETTER Z WITH DOT ABOVE */ put_dot_char('Z'); return; } if (index + 128 == 0xB2) { /* U+731 OGONEK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xB3) { /* U+322 LATIN SMALL LETTER L WITH STROKE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xB9) { /* U+261 LATIN SMALL LETTER A WITH OGONEK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xBA) { /* U+351 LATIN SMALL LETTER S WITH CEDILLA */ put_cedilla_char('s'); return; } if (index + 128 == 0xBC) { /* U+317 LATIN CAPITAL LETTER L WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xBD) { /* U+733 DOUBLE ACUTE ACCENT */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xBE) { /* U+318 LATIN SMALL LETTER L WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xBF) { /* U+380 LATIN SMALL LETTER Z WITH DOT ABOVE */ put_dot_char('z'); return; } if (index + 128 == 0xC0) { /* U+340 LATIN CAPITAL LETTER R WITH ACUTE */ put_acute_char('R'); return; } if (index + 128 == 0xC3) { /* U+258 LATIN CAPITAL LETTER A WITH BREVE */ put_breve_char('A'); return; } if (index + 128 == 0xC5) { /* U+313 LATIN CAPITAL LETTER L WITH ACUTE */ put_acute_char('L'); return; } if (index + 128 == 0xC6) { /* U+262 LATIN CAPITAL LETTER C WITH ACUTE */ put_acute_char('C'); return; } if (index + 128 == 0xC8) { /* U+268 LATIN CAPITAL LETTER C WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xCA) { /* U+280 LATIN CAPITAL LETTER E WITH OGONEK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xCC) { /* U+282 LATIN CAPITAL LETTER E WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xCF) { /* U+270 LATIN CAPITAL LETTER D WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xD0) { /* U+272 LATIN CAPITAL LETTER D WITH STROKE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xD1) { /* U+323 LATIN CAPITAL LETTER N WITH ACUTE */ put_acute_char('N'); return; } if (index + 128 == 0xD2) { /* U+327 LATIN CAPITAL LETTER N WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xD5) { /* U+336 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xD8) { /* U+344 LATIN CAPITAL LETTER R WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xD9) { /* U+366 LATIN CAPITAL LETTER U WITH RING ABOVE */ put_ring_char('U'); return; } if (index + 128 == 0xDB) { /* U+368 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xDE) { /* U+354 LATIN CAPITAL LETTER T WITH CEDILLA */ put_cedilla_char('T'); return; } if (index + 128 == 0xE0) { /* U+341 LATIN SMALL LETTER R WITH ACUTE */ put_acute_char('r'); return; } if (index + 128 == 0xE3) { /* U+259 LATIN SMALL LETTER A WITH BREVE */ put_breve_char('a'); return; } if (index + 128 == 0xE5) { /* U+314 LATIN SMALL LETTER L WITH ACUTE */ put_acute_char('l'); return; } if (index + 128 == 0xE6) { /* U+263 LATIN SMALL LETTER C WITH ACUTE */ put_acute_char('c'); return; } if (index + 128 == 0xE8) { /* U+269 LATIN SMALL LETTER C WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xEA) { /* U+281 LATIN SMALL LETTER E WITH OGONEK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xEC) { /* U+283 LATIN SMALL LETTER E WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xEF) { /* U+271 LATIN SMALL LETTER D WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xF0) { /* U+273 LATIN SMALL LETTER D WITH STROKE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xF1) { /* U+324 LATIN SMALL LETTER N WITH ACUTE */ put_acute_char('n'); return; } if (index + 128 == 0xF2) { /* U+328 LATIN SMALL LETTER N WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xF5) { /* U+337 LATIN SMALL LETTER O WITH DOUBLE ACUTE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xF8) { /* U+345 LATIN SMALL LETTER R WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xF9) { /* U+367 LATIN SMALL LETTER U WITH RING ABOVE */ put_ring_char('u'); return; } if (index + 128 == 0xFB) { /* U+369 LATIN SMALL LETTER U WITH DOUBLE ACUTE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xFE) { /* U+355 LATIN SMALL LETTER T WITH CEDILLA */ put_cedilla_char('t'); return; } if (index + 128 == 0xFF) { /* U+729 DOT ABOVE */ put_dot_char(' '); return; } }
static void cp865_enc(int index) { char *s; s = cp865_2_ansi[index]; if (s[0]!='0'){ fprintRTF("\\'%s",s); return; } s = cp865_2_sym[index]; if (s[0]!='0'){ int sym=RtfFontNumber("Symbol"); fprintRTF("{\\f%d\\'%s}",sym,s); return; } if (index + 128 == 0x9E) { /* U+8359 PESETA SIGN */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xA9) { /* U+8976 REVERSED NOT SIGN */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xB0) { /* U+9617 LIGHT SHADE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xB1) { /* U+9618 MEDIUM SHADE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xB2) { /* U+9619 DARK SHADE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xDB) { /* U+9608 FULL BLOCK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xDC) { /* U+9604 LOWER HALF BLOCK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xDD) { /* U+9612 LEFT HALF BLOCK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xDE) { /* U+9616 RIGHT HALF BLOCK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xDF) { /* U+9600 UPPER HALF BLOCK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xF8) { /* U+8728 RING OPERATOR */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xFA) { /* U+8729 BULLET OPERATOR */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xFC) { /* U+8319 SUPERSCRIPT LATIN SMALL LETTER N */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xFE) { /* U+9632 BLACK SQUARE */ /* fprintRTF("TRANSLATION");*/ return; } }
/****************************************************************************** purpose: \^{o} and \hat{o} symbols from LaTeX to RTF ******************************************************************************/ void CmdHatChar(int code) { int n = RtfFontNumber("STIXGeneral"); char *cParam = getBraceParam(); switch (cParam[0]) { case 'a': fprintRTF("\\'e2"); break; case 'A': fprintRTF("\\'c2"); break; case 'e': fprintRTF("\\'ea"); break; case 'E': fprintRTF("\\'ca"); break; case 'i': fprintRTF("\\'ee"); break; case 'I': fprintRTF("\\'ce"); break; case 'o': fprintRTF("\\'f4"); break; case 'O': fprintRTF("\\'d4"); break; case 'u': fprintRTF("\\'fb"); break; case 'U': fprintRTF("\\'db"); break; case 'C': fprintRTF("\\u264C"); break; case 'c': fprintRTF("\\u265c"); break; case 'G': fprintRTF("\\u284G"); break; case 'g': fprintRTF("\\u285g"); break; case 'H': fprintRTF("\\u292H"); break; case 'h': fprintRTF("\\u293h"); break; case 'J': fprintRTF("\\u308J"); break; case 'S': fprintRTF("\\u348S"); break; case 's': fprintRTF("\\u349s"); break; case 'W': fprintRTF("\\u372W"); break; case 'w': fprintRTF("\\u373w"); break; case 'Y': fprintRTF("\\u374Y"); break; case 'y': fprintRTF("\\u375y"); break; case '\0': fprintRTF("\\'5e"); break; default: fprintRTF("{\\f%d",n); fprintRTF("\\u770\\'5e}"); /* unicode combining character 0x0302 */ ConvertString(cParam); break; } free(cParam); }
static void cp852_enc(int index) { char *s; s = cp852_2_ansi[index]; if (s[0]!='0'){ fprintRTF("\\'%s",s); return; } s = cp852_2_sym[index]; if (s[0]!='0'){ int sym=RtfFontNumber("Symbol"); fprintRTF("{\\f%d\\'%s}",sym,s); return; } if (index + 128 == 0x85) { /* U+367 LATIN SMALL LETTER U WITH RING ABOVE */ put_ring_char('u'); return; } if (index + 128 == 0x86) { /* U+263 LATIN SMALL LETTER C WITH ACUTE */ put_acute_char('c'); return; } if (index + 128 == 0x88) { /* U+322 LATIN SMALL LETTER L WITH STROKE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x8A) { /* U+336 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x8B) { /* U+337 LATIN SMALL LETTER O WITH DOUBLE ACUTE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x8D) { /* U+377 LATIN CAPITAL LETTER Z WITH ACUTE */ put_acute_char('Z'); return; } if (index + 128 == 0x8F) { /* U+262 LATIN CAPITAL LETTER C WITH ACUTE */ put_acute_char('C'); return; } if (index + 128 == 0x91) { /* U+313 LATIN CAPITAL LETTER L WITH ACUTE */ put_acute_char('L'); return; } if (index + 128 == 0x92) { /* U+314 LATIN SMALL LETTER L WITH ACUTE */ put_acute_char('l'); return; } if (index + 128 == 0x95) { /* U+317 LATIN CAPITAL LETTER L WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x96) { /* U+318 LATIN SMALL LETTER L WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x97) { /* U+346 LATIN CAPITAL LETTER S WITH ACUTE */ put_acute_char('S'); return; } if (index + 128 == 0x98) { /* U+347 LATIN SMALL LETTER S WITH ACUTE */ put_acute_char('s'); return; } if (index + 128 == 0x9B) { /* U+356 LATIN CAPITAL LETTER T WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x9C) { /* U+357 LATIN SMALL LETTER T WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x9D) { /* U+321 LATIN CAPITAL LETTER L WITH STROKE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0x9F) { /* U+269 LATIN SMALL LETTER C WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xA4) { /* U+260 LATIN CAPITAL LETTER A WITH OGONEK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xA5) { /* U+261 LATIN SMALL LETTER A WITH OGONEK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xA6) { /* U+381 LATIN CAPITAL LETTER Z WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xA7) { /* U+382 LATIN SMALL LETTER Z WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xA8) { /* U+280 LATIN CAPITAL LETTER E WITH OGONEK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xA9) { /* U+281 LATIN SMALL LETTER E WITH OGONEK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xAA) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xAB) { /* U+378 LATIN SMALL LETTER Z WITH ACUTE */ put_acute_char('z'); return; } if (index + 128 == 0xAC) { /* U+268 LATIN CAPITAL LETTER C WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xAD) { /* U+351 LATIN SMALL LETTER S WITH CEDILLA */ put_cedilla_char('s'); return; } if (index + 128 == 0xB0) { /* U+9617 LIGHT SHADE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xB1) { /* U+9618 MEDIUM SHADE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xB2) { /* U+9619 DARK SHADE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xB7) { /* U+282 LATIN CAPITAL LETTER E WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xB8) { /* U+350 LATIN CAPITAL LETTER S WITH CEDILLA */ put_cedilla_char('S'); return; } if (index + 128 == 0xBD) { /* U+379 LATIN CAPITAL LETTER Z WITH DOT ABOVE */ put_dot_char('Z'); return; } if (index + 128 == 0xBE) { /* U+380 LATIN SMALL LETTER Z WITH DOT ABOVE */ put_dot_char('z'); return; } if (index + 128 == 0xC6) { /* U+258 LATIN CAPITAL LETTER A WITH BREVE */ put_breve_char('A'); return; } if (index + 128 == 0xC7) { /* U+259 LATIN SMALL LETTER A WITH BREVE */ put_breve_char('a'); return; } if (index + 128 == 0xD0) { /* U+273 LATIN SMALL LETTER D WITH STROKE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xD1) { /* U+272 LATIN CAPITAL LETTER D WITH STROKE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xD2) { /* U+270 LATIN CAPITAL LETTER D WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xD4) { /* U+271 LATIN SMALL LETTER D WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xD5) { /* U+327 LATIN CAPITAL LETTER N WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xD8) { /* U+283 LATIN SMALL LETTER E WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xDB) { /* U+9608 FULL BLOCK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xDC) { /* U+9604 LOWER HALF BLOCK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xDD) { /* U+354 LATIN CAPITAL LETTER T WITH CEDILLA */ put_cedilla_char('T'); return; } if (index + 128 == 0xDE) { /* U+366 LATIN CAPITAL LETTER U WITH RING ABOVE */ put_ring_char('U'); return; } if (index + 128 == 0xDF) { /* U+9600 UPPER HALF BLOCK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xE3) { /* U+323 LATIN CAPITAL LETTER N WITH ACUTE */ put_acute_char('N'); return; } if (index + 128 == 0xE4) { /* U+324 LATIN SMALL LETTER N WITH ACUTE */ put_acute_char('n'); return; } if (index + 128 == 0xE5) { /* U+328 LATIN SMALL LETTER N WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xE8) { /* U+340 LATIN CAPITAL LETTER R WITH ACUTE */ put_acute_char('R'); return; } if (index + 128 == 0xEA) { /* U+341 LATIN SMALL LETTER R WITH ACUTE */ put_acute_char('r'); return; } if (index + 128 == 0xEB) { /* U+368 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xEE) { /* U+355 LATIN SMALL LETTER T WITH CEDILLA */ put_cedilla_char('t'); return; } if (index + 128 == 0xF1) { /* U+733 DOUBLE ACUTE ACCENT */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xF3) { /* U+711 CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xF4) { /* U+728 BREVE */ int num = RtfFontNumber("MT Extra"); fprintRTF("{\\f%d\\'28}", num); return; } if (index + 128 == 0xF7) { /* U+731 OGONEK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xFA) { /* U+729 DOT ABOVE */ put_dot_char(' '); return; } if (index + 128 == 0xFB) { /* U+369 LATIN SMALL LETTER U WITH DOUBLE ACUTE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xFC) { /* U+344 LATIN CAPITAL LETTER R WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xFD) { /* U+345 LATIN SMALL LETTER R WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xFE) { /* U+9632 BLACK SQUARE */ /* fprintRTF("TRANSLATION");*/ return; } }
/***************************************************************************** purpose: converts \c{c} from LaTeX to RTF ******************************************************************************/ void CmdCedillaChar(int code) { int n = RtfFontNumber("STIXGeneral"); char *cParam = getBraceParam(); switch (cParam[0]) { case 'C': fprintRTF("\\'c7"); break; case 'c': fprintRTF("\\'e7"); break; case 'G': putUnicodeChar(0x01,0x22,'G'); break; case 'g': putUnicodeChar(0x01,0x23,'g'); break; case 'K': putUnicodeChar(0x01,0x36,'K'); break; case 'k': putUnicodeChar(0x01,0x37,'k'); break; case 'L': putUnicodeChar(0x01,0x3B,'L'); break; case 'l': putUnicodeChar(0x01,0x3C,'l'); break; case 'N': putUnicodeChar(0x01,0x45,'N'); break; case 'n': putUnicodeChar(0x01,0x46,'n'); break; case 'R': putUnicodeChar(0x01,0x56,'R'); break; case 'r': putUnicodeChar(0x01,0x57,'r'); break; case 'S': putUnicodeChar(0x01,0x5E,'S'); break; case 's': putUnicodeChar(0x01,0x5F,'s'); break; case 'T': putUnicodeChar(0x01,0x62,'T'); break; case 't': putUnicodeChar(0x01,0x63,'t'); break; case 'E': putUnicodeChar(0x02,0x28,'E'); break; case 'e': putUnicodeChar(0x02,0x29,'e'); break; case '\0': fprintRTF("\\'b8"); break; default: fprintRTF("{\\f%d",n); fprintRTF("\\u807\\'b8}"); /* unicode combining character 0x0327 */ ConvertString(cParam); break; } free(cParam); }
static void next_enc(int index) { char *s; s = next_2_ansi[index]; if (s[0]!='0'){ fprintRTF("\\'%s",s); return; } s = next_2_sym[index]; if (s[0]!='0'){ int sym=RtfFontNumber("Symbol"); fprintRTF("{\\f%d\\'%s}",sym,s); return; } if (index + 128 == 0xAE) { /* U+64257 LATIN SMALL LIGATURE FI */ fprintRTF("fi"); return; } if (index + 128 == 0xAF) { /* U+64258 LATIN SMALL LIGATURE FL */ fprintRTF("fl"); return; } if (index + 128 == 0xC1) { /* U+715 MODIFIER LETTER GRAVE ACCENT */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xC6) { /* U+728 BREVE */ int num = RtfFontNumber("MT Extra"); fprintRTF("{\\f%d\\'28}", num); return; } if (index + 128 == 0xC7) { /* U+729 DOT ABOVE */ put_dot_char(' '); return; } if (index + 128 == 0xCA) { /* U+730 RING ABOVE */ put_ring_char(' '); return; } if (index + 128 == 0xCD) { /* U+733 DOUBLE ACUTE ACCENT */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xCE) { /* U+731 OGONEK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xCF) { /* U+711 CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xE8) { /* U+321 LATIN CAPITAL LETTER L WITH STROKE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xF5) { /* U+305 LATIN SMALL LETTER DOTLESS I */ fprintRTF("i"); return; } if (index + 128 == 0xF8) { /* U+322 LATIN SMALL LETTER L WITH STROKE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xFE) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xFF) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } }
/***************************************************************************** purpose : converts characters with diaeresis, e.g., \"{a} or \ddot{a} ******************************************************************************/ void CmdUmlauteChar(int code) { int n = RtfFontNumber("STIXGeneral"); char *cParam = getBraceParam(); if (strstr(cParam, "\\i")) { fprintRTF("\\'ef"); free(cParam); return; } switch (cParam[0]) { case 'A': fprintRTF("\\'c4"); break; case 'E': fprintRTF("\\'cb"); break; case 'I': fprintRTF("\\'cf"); break; case 'O': fprintRTF("\\'d6"); break; case 'U': fprintRTF("\\'dc"); break; case 'a': fprintRTF("\\'e4"); break; case 'e': fprintRTF("\\'eb"); break; case 'i': fprintRTF("\\'ef"); break; case 'o': fprintRTF("\\'f6"); break; case 'u': fprintRTF("\\'fc"); break; case 'y': fprintRTF("\\'ff"); break; case 'Y': putUnicodeChar(0x01,0x78,'Y'); break; case 'H': putUnicodeChar(0x1E,0x26,'H'); break; case 'h': putUnicodeChar(0x1E,0x27,'h'); break; case 'W': putUnicodeChar(0x1E,0x83,'W'); break; case 'w': putUnicodeChar(0x1E,0x84,'w'); break; case 'X': putUnicodeChar(0x1E,0x8C,'X'); break; case 'x': putUnicodeChar(0x1E,0x8D,'x'); break; case 't': putUnicodeChar(0x1E,0x97,'t'); break; case '\0': fprintRTF(" \\u776."); break; default: fprintRTF("{\\f%d",n); fprintRTF("\\u776.}"); /* unicode combining character 0x308*/ ConvertString(cParam); break; } free(cParam); }
static void latin4_enc(int index) { char *s; s = latin4_2_ansi[index]; if (s[0]!='0'){ fprintRTF("\\'%s",s); return; } s = latin4_2_sym[index]; if (s[0]!='0'){ int sym=RtfFontNumber("Symbol"); fprintRTF("{\\f%d\\'%s}",sym,s); return; } if (index + 128 == 0xA1) { /* U+260 LATIN CAPITAL LETTER A WITH OGONEK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xA2) { /* U+312 LATIN SMALL LETTER KRA */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xA3) { /* U+342 LATIN CAPITAL LETTER R WITH CEDILLA */ put_cedilla_char('R'); return; } if (index + 128 == 0xA5) { /* U+296 LATIN CAPITAL LETTER I WITH TILDE */ put_tilde_char('I'); return; } if (index + 128 == 0xA6) { /* U+315 LATIN CAPITAL LETTER L WITH CEDILLA */ put_cedilla_char('L'); return; } if (index + 128 == 0xAA) { /* U+274 LATIN CAPITAL LETTER E WITH MACRON */ put_macron_char('E'); return; } if (index + 128 == 0xAB) { /* U+290 LATIN CAPITAL LETTER G WITH CEDILLA */ put_cedilla_char('G'); return; } if (index + 128 == 0xAC) { /* U+358 LATIN CAPITAL LETTER T WITH STROKE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xAE) { /* U+381 LATIN CAPITAL LETTER Z WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xB1) { /* U+261 LATIN SMALL LETTER A WITH OGONEK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xB2) { /* U+731 OGONEK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xB3) { /* U+343 LATIN SMALL LETTER R WITH CEDILLA */ put_cedilla_char('r'); return; } if (index + 128 == 0xB5) { /* U+297 LATIN SMALL LETTER I WITH TILDE */ put_tilde_char('i'); return; } if (index + 128 == 0xB6) { /* U+316 LATIN SMALL LETTER L WITH CEDILLA */ put_cedilla_char('l'); return; } if (index + 128 == 0xB7) { /* U+711 CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xBA) { /* U+275 LATIN SMALL LETTER E WITH MACRON */ put_macron_char('e'); return; } if (index + 128 == 0xBB) { /* U+291 LATIN SMALL LETTER G WITH CEDILLA */ put_cedilla_char('g'); return; } if (index + 128 == 0xBC) { /* U+359 LATIN SMALL LETTER T WITH STROKE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xBD) { /* U+330 LATIN CAPITAL LETTER ENG */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xBE) { /* U+382 LATIN SMALL LETTER Z WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xBF) { /* U+331 LATIN SMALL LETTER ENG */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xC0) { /* U+256 LATIN CAPITAL LETTER A WITH MACRON */ put_macron_char('A'); return; } if (index + 128 == 0xC7) { /* U+302 LATIN CAPITAL LETTER I WITH OGONEK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xC8) { /* U+268 LATIN CAPITAL LETTER C WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xCA) { /* U+280 LATIN CAPITAL LETTER E WITH OGONEK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xCC) { /* U+278 LATIN CAPITAL LETTER E WITH DOT ABOVE */ put_dot_char('E'); return; } if (index + 128 == 0xCF) { /* U+298 LATIN CAPITAL LETTER I WITH MACRON */ put_macron_char('I'); return; } if (index + 128 == 0xD0) { /* U+272 LATIN CAPITAL LETTER D WITH STROKE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xD1) { /* U+325 LATIN CAPITAL LETTER N WITH CEDILLA */ put_cedilla_char('N'); return; } if (index + 128 == 0xD2) { /* U+332 LATIN CAPITAL LETTER O WITH MACRON */ put_macron_char('O'); return; } if (index + 128 == 0xD3) { /* U+310 LATIN CAPITAL LETTER K WITH CEDILLA */ put_cedilla_char('K'); return; } if (index + 128 == 0xD9) { /* U+370 LATIN CAPITAL LETTER U WITH OGONEK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xDD) { /* U+360 LATIN CAPITAL LETTER U WITH TILDE */ put_tilde_char('U'); return; } if (index + 128 == 0xDE) { /* U+362 LATIN CAPITAL LETTER U WITH MACRON */ put_macron_char('U'); return; } if (index + 128 == 0xE0) { /* U+257 LATIN SMALL LETTER A WITH MACRON */ put_macron_char('a'); return; } if (index + 128 == 0xE7) { /* U+303 LATIN SMALL LETTER I WITH OGONEK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xE8) { /* U+269 LATIN SMALL LETTER C WITH CARON */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xEA) { /* U+281 LATIN SMALL LETTER E WITH OGONEK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xEC) { /* U+279 LATIN SMALL LETTER E WITH DOT ABOVE */ put_dot_char('e'); return; } if (index + 128 == 0xEF) { /* U+299 LATIN SMALL LETTER I WITH MACRON */ put_macron_char('i'); return; } if (index + 128 == 0xF0) { /* U+273 LATIN SMALL LETTER D WITH STROKE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xF1) { /* U+326 LATIN SMALL LETTER N WITH CEDILLA */ put_cedilla_char('n'); return; } if (index + 128 == 0xF2) { /* U+333 LATIN SMALL LETTER O WITH MACRON */ put_macron_char('o'); return; } if (index + 128 == 0xF3) { /* U+311 LATIN SMALL LETTER K WITH CEDILLA */ put_cedilla_char('k'); return; } if (index + 128 == 0xF9) { /* U+371 LATIN SMALL LETTER U WITH OGONEK */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xFD) { /* U+361 LATIN SMALL LETTER U WITH TILDE */ put_tilde_char('u'); return; } if (index + 128 == 0xFE) { /* U+363 LATIN SMALL LETTER U WITH MACRON */ put_macron_char('u'); return; } if (index + 128 == 0xFF) { /* U+729 DOT ABOVE */ put_dot_char(' '); return; } }
static void latin3_enc(int index) { char *s; s = latin3_2_ansi[index]; if (s[0]!='0'){ fprintRTF("\\'%s",s); return; } s = latin3_2_sym[index]; if (s[0]!='0'){ int sym=RtfFontNumber("Symbol"); fprintRTF("{\\f%d\\'%s}",sym,s); return; } if (index + 128 == 0xA1) { /* U+294 LATIN CAPITAL LETTER H WITH STROKE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xA2) { /* U+728 BREVE */ int num = RtfFontNumber("MT Extra"); fprintRTF("{\\f%d\\'28}", num); return; } if (index + 128 == 0xA5) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xA6) { /* U+292 LATIN CAPITAL LETTER H WITH CIRCUMFLEX */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xA9) { /* U+304 LATIN CAPITAL LETTER I WITH DOT ABOVE */ put_dot_char('I'); return; } if (index + 128 == 0xAA) { /* U+350 LATIN CAPITAL LETTER S WITH CEDILLA */ put_cedilla_char('S'); return; } if (index + 128 == 0xAB) { /* U+286 LATIN CAPITAL LETTER G WITH BREVE */ put_breve_char('G'); return; } if (index + 128 == 0xAC) { /* U+308 LATIN CAPITAL LETTER J WITH CIRCUMFLEX */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xAE) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xAF) { /* U+379 LATIN CAPITAL LETTER Z WITH DOT ABOVE */ put_dot_char('Z'); return; } if (index + 128 == 0xB1) { /* U+295 LATIN SMALL LETTER H WITH STROKE */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xB6) { /* U+293 LATIN SMALL LETTER H WITH CIRCUMFLEX */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xB9) { /* U+305 LATIN SMALL LETTER DOTLESS I */ fprintRTF("i"); return; } if (index + 128 == 0xBA) { /* U+351 LATIN SMALL LETTER S WITH CEDILLA */ put_cedilla_char('s'); return; } if (index + 128 == 0xBB) { /* U+287 LATIN SMALL LETTER G WITH BREVE */ put_breve_char('g'); return; } if (index + 128 == 0xBC) { /* U+309 LATIN SMALL LETTER J WITH CIRCUMFLEX */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xBE) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xBF) { /* U+380 LATIN SMALL LETTER Z WITH DOT ABOVE */ put_dot_char('z'); return; } if (index + 128 == 0xC3) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xC5) { /* U+266 LATIN CAPITAL LETTER C WITH DOT ABOVE */ put_dot_char('C'); return; } if (index + 128 == 0xC6) { /* U+264 LATIN CAPITAL LETTER C WITH CIRCUMFLEX */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xD0) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xD5) { /* U+288 LATIN CAPITAL LETTER G WITH DOT ABOVE */ put_dot_char('G'); return; } if (index + 128 == 0xD8) { /* U+284 LATIN CAPITAL LETTER G WITH CIRCUMFLEX */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xDD) { /* U+364 LATIN CAPITAL LETTER U WITH BREVE */ put_breve_char('U'); return; } if (index + 128 == 0xDE) { /* U+348 LATIN CAPITAL LETTER S WITH CIRCUMFLEX */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xE3) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xE5) { /* U+267 LATIN SMALL LETTER C WITH DOT ABOVE */ put_dot_char('c'); return; } if (index + 128 == 0xE6) { /* U+265 LATIN SMALL LETTER C WITH CIRCUMFLEX */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xF0) { /* U+65535 unknown */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xF5) { /* U+289 LATIN SMALL LETTER G WITH DOT ABOVE */ put_dot_char('g'); return; } if (index + 128 == 0xF8) { /* U+285 LATIN SMALL LETTER G WITH CIRCUMFLEX */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xFD) { /* U+365 LATIN SMALL LETTER U WITH BREVE */ put_breve_char('u'); return; } if (index + 128 == 0xFE) { /* U+349 LATIN SMALL LETTER S WITH CIRCUMFLEX */ /* fprintRTF("TRANSLATION");*/ return; } if (index + 128 == 0xFF) { /* U+729 DOT ABOVE */ put_dot_char(' '); return; } }
/****************************************************************************** purpose: converts \v{a} need something that looks like \\O(a,\\S(\f1\'da)) in RTF file ******************************************************************************/ void CmdCaronChar(int code) { int n = RtfFontNumber("STIXGeneral"); char *cParam = getBraceParam(); switch (cParam[0]) { case 'C': putUnicodeChar(0x01,0x0C,'C'); break; case 'c': putUnicodeChar(0x01,0x0D,'c'); break; case 'D': putUnicodeChar(0x01,0x0E,'D'); break; case 'd': putUnicodeChar(0x01,0x0F,'d'); break; case 'E': putUnicodeChar(0x01,0x1A,'E'); break; case 'e': putUnicodeChar(0x01,0x1B,'e'); break; case 'L': putUnicodeChar(0x01,0x3D,'L'); break; case 'l': putUnicodeChar(0x01,0x3E,'l'); break; case 'N': putUnicodeChar(0x01,0x47,'N'); break; case 'n': putUnicodeChar(0x01,0x48,'n'); break; case 'R': putUnicodeChar(0x01,0x58,'R'); break; case 'r': putUnicodeChar(0x01,0x59,'r'); break; case 'S': putUnicodeChar(0x01,0x60,'S'); break; case 's': putUnicodeChar(0x01,0x61,'s'); break; case 'T': putUnicodeChar(0x01,0x64,'T'); break; case 't': putUnicodeChar(0x01,0x65,'t'); break; case 'Z': putUnicodeChar(0x01,0x7D,'Z'); break; case 'z': putUnicodeChar(0x01,0x7E,'z'); break; case 'A': putUnicodeChar(0x01,0xCD,'A'); break; case 'a': putUnicodeChar(0x01,0xCE,'a'); break; case 'I': putUnicodeChar(0x01,0xCF,'I'); break; case 'i': putUnicodeChar(0x01,0xD0,'i'); break; case 'O': putUnicodeChar(0x01,0xD1,'O'); break; case 'o': putUnicodeChar(0x01,0xD2,'o'); break; case 'U': putUnicodeChar(0x01,0xD3,'U'); break; case 'u': putUnicodeChar(0x01,0xD4,'u'); break; case 'G': putUnicodeChar(0x01,0xE6,'G'); break; case 'g': putUnicodeChar(0x01,0xE7,'g'); break; case 'K': putUnicodeChar(0x01,0xE8,'K'); break; case 'k': putUnicodeChar(0x01,0xE9,'k'); break; case 'j': putUnicodeChar(0x01,0xF0,'j'); break; case 'H': putUnicodeChar(0x02,0x1E,'H'); break; case 'h': putUnicodeChar(0x02,0x1F,'h'); break; case '\0': putUnicodeChar(0x02,0xC7,'-'); break; default: fprintRTF("{\\f%d",n); fprintRTF("\\u780-}"); /* unicode combining character 0x030C */ ConvertString(cParam); break; } free(cParam); }
/****************************************************************************** purpose: converts chars with dots underneath \d{o} ******************************************************************************/ void CmdUnderdotChar(int code) { int n = RtfFontNumber("STIXGeneral"); char *cParam = getBraceParam(); if (strstr(cParam, "\\i")) { fprintRTF("\\u301i"); free(cParam); } switch (cParam[0]) { case 'B': putUnicodeChar(0x1E,0x04,'B'); break; case 'b': putUnicodeChar(0x1E,0x05,'b'); break; case 'D': putUnicodeChar(0x1E,0x0C,'D'); break; case 'd': putUnicodeChar(0x1E,0x0D,'d'); break; case 'H': putUnicodeChar(0x1E,0x24,'H'); break; case 'h': putUnicodeChar(0x1E,0x25,'h'); break; case 'K': putUnicodeChar(0x1E,0x32,'K'); break; case 'k': putUnicodeChar(0x1E,0x33,'k'); break; case 'L': putUnicodeChar(0x1E,0x36,'L'); break; case 'l': putUnicodeChar(0x1E,0x37,'l'); break; case 'M': putUnicodeChar(0x1E,0x42,'M'); break; case 'm': putUnicodeChar(0x1E,0x43,'m'); break; case 'N': putUnicodeChar(0x1E,0x46,'N'); break; case 'n': putUnicodeChar(0x1E,0x47,'n'); break; case 'R': putUnicodeChar(0x1E,0x5A,'R'); break; case 'r': putUnicodeChar(0x1E,0x5B,'r'); break; case 'S': putUnicodeChar(0x1E,0x62,'S'); break; case 's': putUnicodeChar(0x1E,0x63,'s'); break; case 'V': putUnicodeChar(0x1E,0x7E,'V'); break; case 'v': putUnicodeChar(0x1E,0x7F,'v'); break; case 'W': putUnicodeChar(0x1E,0x88,'W'); break; case 'w': putUnicodeChar(0x1E,0x89,'w'); break; case 'Z': putUnicodeChar(0x1E,0x92,'Z'); break; case 'z': putUnicodeChar(0x1E,0x93,'z'); break; case 'A': putUnicodeChar(0x1E,0xA0,'A'); break; case 'a': putUnicodeChar(0x1E,0xA1,'a'); break; case 'E': putUnicodeChar(0x1E,0xB8,'E'); break; case 'e': putUnicodeChar(0x1E,0xB9,'e'); break; case 'I': putUnicodeChar(0x1E,0xCA,'I'); break; case 'i': putUnicodeChar(0x1E,0xCB,'i'); break; case 'O': putUnicodeChar(0x1E,0xCC,'O'); break; case 'o': putUnicodeChar(0x1E,0xCD,'o'); break; case 'U': putUnicodeChar(0x1E,0xE4,'U'); break; case 'u': putUnicodeChar(0x1E,0xE5,'u'); break; case '\0': fprintRTF(" \\u803."); break; default: fprintRTF("{\\f%d",n); fprintRTF("\\u803.}"); /* unicode combining character 0x0323 */ ConvertString(cParam); break; } free(cParam); }