Index: text.c =================================================================== RCS file: /cvsroot/wv/text.c,v retrieving revision 1.44 diff -u -r1.44 text.c --- text.c 2000/08/15 02:09:24 1.44 +++ text.c 2000/08/15 12:18:22 @@ -566,24 +566,7 @@ case 30: case 31: case 45: - case 0x2013: - /* - soft-hyphen? Or en-dash? I find that making - this a soft-hyphen works very well, but makes - the occasional "hard" word-connection hyphen - (like the "-" in roller-coaster) disappear. - (Are these actually en-dashes? Dunno.) - How does MS Word distinguish between the 0x2013's - that signify soft hyphens and those that signify - word-connection hyphens? wvware should be able - to as well. -- MV 8.7.2000 - - U+2013 is the en-dash character and not a soft - hyphen. Soft hyphen is U+00AD. Changing to - "--". -- 2000-08-11 huftis@bigfoot.com - */ - printf("--"); - return(1); + case 12: case 13: case 14: @@ -592,6 +575,9 @@ case 34: printf("\""); return(1); + case 35: + printf("\\#"); /* MV 14.8.2000 */ + return(1); case 36: printf("\\$"); /* MV 14.8.2000 */ return(1); @@ -605,22 +591,10 @@ printf(">"); return(1); - case 0x2019: - printf("'"); /* Right single quote, Win */ - return(1); - case 0x2026: - printf("\\ldots"); /* ellipsis */ - return(1); - case 0x2215: - printf("/"); - return(1); case 0xF8E7: /* without this, things should work in theory, but not for me */ printf("_"); return(1); - case 0x2018: - printf("`"); /* left single quote, Win */ - return(1); /* Added some new Unicode characters. It's probably difficult to write these characters in AbiWord, though ... :( @@ -913,6 +887,434 @@ case 0x016A: printf("\\=U"); /* U with macron */ return(1); + + /* Greek (thanks Petr Vanicek!): */ + case 0x0391: + printf("$\\Alpha$"); + return(1); + case 0x0392: + printf("$\\Beta$"); + return(1); + case 0x0393: + printf("$\\Gamma$"); + return(1); + case 0x0394: + printf("$\\Delta$"); + return(1); + case 0x0395: + printf("$\\Epsilon$"); + return(1); + case 0x0396: + printf("$\\Zeta$"); + return(1); + case 0x0397: + printf("$\\Eta$"); + return(1); + case 0x0398: + printf("$\\Theta$"); + return(1); + case 0x0399: + printf("$\\Iota$"); + return(1); + case 0x039a: + printf("$\\Kappa$"); + return(1); + case 0x039b: + printf("$\\Lambda$"); + return(1); + case 0x039c: + printf("$\\Mu$"); + return(1); + case 0x039d: + printf("$\\Nu$"); + return(1); + case 0x039e: + printf("$\\Xi$"); + return(1); + case 0x039f: + printf("$\\Omicron$"); + return(1); + case 0x03a0: + printf("$\\Pi$"); + return(1); + case 0x03a1: + printf("$\\Rho$"); + return(1); + + case 0x03a3: + printf("$\\Sigma$"); + return(1); + case 0x03a4: + printf("$\\Tau$"); + return(1); + case 0x03a5: + printf("$\\Upsilon$"); + return(1); + case 0x03a6: + printf("$\\Phi$"); + return(1); + case 0x03a7: + printf("$\\Chi$"); + return(1); + case 0x03a8: + printf("$\\Psi$"); + return(1); + case 0x03a9: + printf("$\\Omega$"); + return(1); + + /* ...and lower case: */ + + case 0x03b1: + printf("$\\alpha$"); + return(1); + case 0x03b2: + printf("$\\beta$"); + return(1); + case 0x03b3: + printf("$\\gamma$"); + return(1); + case 0x03b4: + printf("$\\delta$"); + return(1); + case 0x03b5: + printf("$\\epsilon$"); + return(1); + case 0x03b6: + printf("$\\zeta$"); + return(1); + case 0x03b7: + printf("$\\eta$"); + return(1); + case 0x03b8: + printf("$\\theta$"); + return(1); + case 0x03b9: + printf("$\\iota$"); + return(1); + case 0x03ba: + printf("$\\kappa$"); + return(1); + case 0x03bb: + printf("$\\lambda$"); + return(1); + case 0x03bc: + printf("$\\mu$"); + return(1); + case 0x03bd: + printf("$\\nu$"); + return(1); + case 0x03be: + printf("$\\xi$"); + return(1); + case 0x03bf: + printf("$\\omicron$"); + return(1); + case 0x03c0: + printf("$\\pi$"); + return(1); + case 0x03c1: + printf("$\\rho$"); + return(1); + + case 0x03c3: + printf("$\\sigma$"); + return(1); + case 0x03c4: + printf("$\\tau$"); + return(1); + case 0x03c5: + printf("$\\upsilon$"); + return(1); + case 0x03c6: + printf("$\\phi$"); + return(1); + case 0x03c7: + printf("$\\chi$"); + return(1); + case 0x03c8: + printf("$\\psi$"); + return(1); + case 0x03c9: + printf("$\\omega$"); + return(1); + + /* More math, typical inline: */ + case 0x2111: + printf("$\\Im$"); + return(1); + case 0x2118: + printf("$\\wp$"); /* Weierstrass p */ + return(1); + case 0x211c: + printf("$\\Re$"); + return(1); + case 0x2135: + printf("$\\aleph$"); + return(1); + + case 0x2190: + printf("$\\leftarrow$"); + return(1); + case 0x2191: + printf("$\\uparrow$"); + return(1); + case 0x2192: + printf("$\\rightarrow$"); + return(1); + case 0x2193: + printf("$\\downarrow$"); + return(1); + case 0x21d0: + printf("$\\Leftarrow$"); + return(1); + case 0x21d1: + printf("$\\Uparrow$"); + return(1); + case 0x21d2: + printf("$\\Rightarrow$"); + return(1); + case 0x21d3: + printf("$\\Downarrow$"); + return(1); + case 0x21d4: + printf("$\\Leftrightarrow$"); + return(1); + + case 0x2200: + printf("$\\forall$"); + return(1); + case 0x2202: + printf("$\\partial$"); + return(1); + case 0x2203: + printf("$\\exists$"); + return(1); + case 0x2205: + printf("$\\emptyset$"); + return(1); + case 0x2207: + printf("$\\nabla$"); + return(1); + case 0x2208: + printf("$\\in$"); /* element of */ + return(1); + case 0x2209: + printf("$\\notin$"); /* not an element of */ + return(1); + case 0x220b: + printf("$\\ni$"); /* contains as member */ + return(1); + case 0x221a: + printf("$\\surd$"); /* sq root */ + return(1); + case 0x2212: + printf("$-$"); /* minus */ + return(1); + case 0x221d: + printf("$\\propto$"); + return(1); + case 0x221e: + printf("$\\infty$"); + return(1); + case 0x2220: + printf("$\\angle$"); + return(1); + case 0x2227: + printf("$\\land$"); /* logical and */ + return(1); + case 0x2228: + printf("$\\lor$"); /* logical or */ + return(1); + case 0x2229: + printf("$\\cap$"); /* intersection */ + return(1); + case 0x222a: + printf("$\\cup$"); /* union */ + return(1); + case 0x223c: + printf("$\\sim$"); /* similar to */ + return(1); + case 0x2248: + printf("$\\approx$"); + return(1); + case 0x2261: + printf("$\\equiv$"); + return(1); + case 0x2260: + printf("$\\neq$"); + return(1); + case 0x2264: + printf("$\\leq$"); + return(1); + case 0x2265: + printf("$\\geq$"); + return(1); + case 0x2282: + printf("$\\subset$"); + return(1); + case 0x2283: + printf("$\\supset$"); + return(1); + case 0x2284: + printf("$\\notsubset$"); + return(1); + case 0x2286: + printf("$\\subseteq$"); + return(1); + case 0x2287: + printf("$\\supseteq$"); + return(1); + case 0x2295: + printf("$\\oplus$"); /* circled plus */ + return(1); + case 0x2297: + printf("$\\otimes$"); + return(1); + case 0x22a5: + printf("$\\perp$"); /* perpendicular */ + return(1); + + + + + case 0x2660: + printf("$\\spadesuit$"); + return(1); + case 0x2663: + printf("$\\clubsuit$"); + return(1); + case 0x2665: + printf("$\\heartsuit$"); + return(1); + case 0x2666: + printf("$\\diamondsuit$"); + return(1); + + + case 0x01C7: + printf("LJ"); /* the LJ letter */ + return(1); + case 0x01C8: + printf("Lj"); /* the Lj letter */ + return(1); + case 0x01C9: + printf("lj"); /* the lj letter */ + return(1); + case 0x01CA: + printf("NJ"); /* the NJ letter */ + return(1); + case 0x01CB: + printf("Nj"); /* the Nj letter */ + return(1); + case 0x01CC: + printf("nj"); /* the nj letter */ + return(1); + case 0x01CD: + printf("\\v{A}"); /* A with caron */ + return(1); + case 0x01CE: + printf("\\v{a}"); /* a with caron */ + return(1); + case 0x01CF: + printf("\\v{I}"); /* I with caron */ + return(1); + case 0x01D0: + printf("\\v{\\i}"); /* i with caron (dotless) */ + return(1); + case 0x01D1: + printf("\\v{O}"); /* O with caron */ + return(1); + case 0x01D2: + printf("\\v{o}"); /* o with caron */ + return(1); + case 0x01D3: + printf("\\v{U}"); /* U with caron */ + return(1); + case 0x01D4: + printf("\\v{u}"); /* u with caron */ + return(1); + + case 0x01E6: + printf("\\v{G}"); /* G with caron */ + return(1); + case 0x01E7: + printf("\\v{g}"); /* g with caron */ + return(1); + case 0x01E8: + printf("\\v{K}"); /* K with caron */ + return(1); + case 0x01E9: + printf("\\v{k}"); /* k with caron */ + return(1); + + + case 0x01F0: + printf("\\v{\\j}"); /* j with caron (dotless) */ + return(1); + case 0x01F1: + printf("DZ"); /* the DZ letter */ + return(1); + case 0x01F2: + printf("Dz"); /* the Dz letter */ + return(1); + case 0x01F3: + printf("dz"); /* the dz letter */ + return(1); + case 0x01F4: + printf("\\'G"); /* G with acute */ + return(1); + case 0x01F5: + printf("\\'g"); /* g with acute */ + return(1); + + case 0x01FA: + printf("\\'{\\AA}"); /* Å with acute */ + return(1); + case 0x01FB: + printf("\\'{\\aa}"); /* å with acute */ + return(1); + case 0x01FC: + printf("\\'{\\AE}"); /* Æ with acute */ + return(1); + case 0x01FD: + printf("\\'{\\ae}"); /* æ with acute */ + return(1); + case 0x01FE: + printf("\\'{\\O}"); /* Ø with acute */ + return(1); + case 0x01FF: + printf("\\'{\\o}"); /* ø with acute */ + return(1); + + case 0x2010: + printf("-"); /* hyphen */ + return(1); + case 0x2011: + printf("-"); /* non-breaking hyphen (is there a way to get this in LaTeX?) */ + return(1); + case 0x2012: + printf("--"); /* figure dash (similar to en-dash) */ + return(1); + case 0x2013: + /* + soft-hyphen? Or en-dash? I find that making + this a soft-hyphen works very well, but makes + the occasional "hard" word-connection hyphen + (like the "-" in roller-coaster) disappear. + (Are these actually en-dashes? Dunno.) + How does MS Word distinguish between the 0x2013's + that signify soft hyphens and those that signify + word-connection hyphens? wvware should be able + to as well. -- MV 8.7.2000 + + U+2013 is the en-dash character and not a soft + hyphen. Soft hyphen is U+00AD. Changing to + "--". -- 2000-08-11 huftis@bigfoot.com + */ + printf("--"); + return(1); + case 0x016B: printf("\\=u"); /* u with macron */ return(1); @@ -975,32 +1377,172 @@ case 0x2014: printf("---"); /* em-dash */ + return(1); + case 0x2018: + printf("`"); /* left single quote, Win */ + return(1); + case 0x2019: + printf("'"); /* Right single quote, Win */ return(1); - case 0x201c: + case 0x201A: + printf("\\quotesinglbase{}"); /* single low 99 quotation mark */ + return(1); + case 0x201C: printf("``"); /* inverted double quotation mark */ return(1); - case 0x201d: + case 0x201D: printf("''"); /* double q.m. */ return(1); - case 0x201e: - printf("\\hbox{,,}"); /* below double q.m. */ + case 0x201E: + printf("\\quotedblbase{}"); /* double low 99 quotation mark */ return(1); case 0x2020: - printf("$\\dagger$"); + printf("\\dag{}"); /* dagger */ return(1); case 0x2021: - printf("$\\ddagger$"); + printf("\\ddag{}"); /* double dagger */ return(1); case 0x2022: - printf("$\\bullet$"); + printf("$\\bullet$"); /* bullet */ + return(1); + case 0x2023: + printf("$\\bullet$"); /* NOTE: Not a real triangular bullet */ + return(1); + + case 0x2024: + printf("."); /* One dot leader (for use in TOCs) */ return(1); + case 0x2025: + printf(".."); /* Two dot leader (for use in TOCs) */ + return(1); + case 0x2026: + printf("\\ldots"); /* ellipsis */ + return(1); + + case 0x2039: + printf("\\guilsinglleft{}"); /* single left angle quotation mark */ + return(1); + case 0x203A: + printf("\\guilsinglright{}"); /* single right angle quotation mark */ + return(1); + + case 0x203C: + printf("!!"); /* double exclamation mark */ + return(1); + + case 0x2215: + printf("$/$"); /* Division slash */ + return(1); + case 0x2030: printf("o/oo"); return(1); + case 0x20ac: - printf("\\euro"); /* No known implementation ;-) */ + printf("\\euro"); + /* No known implementation ;-) + + Shouldn't we use the package 'eurofont'? + -- 2000-08-15 huftis@bigfoot.com + */ return(1); + case 0x2160: + printf("I"); /* Roman numeral I */ + return(1); + case 0x2161: + printf("II"); /* Roman numeral II */ + return(1); + case 0x2162: + printf("III"); /* Roman numeral III */ + return(1); + case 0x2163: + printf("IV"); /* Roman numeral IV */ + return(1); + case 0x2164: + printf("V"); /* Roman numeral V */ + return(1); + case 0x2165: + printf("VI"); /* Roman numeral VI */ + return(1); + case 0x2166: + printf("VII"); /* Roman numeral VII */ + return(1); + case 0x2167: + printf("VIII"); /* Roman numeral VIII */ + return(1); + case 0x2168: + printf("IX"); /* Roman numeral IX */ + return(1); + case 0x2169: + printf("X"); /* Roman numeral X */ + return(1); + case 0x216A: + printf("XI"); /* Roman numeral XI */ + return(1); + case 0x216B: + printf("XII"); /* Roman numeral XII */ + return(1); + case 0x216C: + printf("L"); /* Roman numeral L */ + return(1); + case 0x216D: + printf("C"); /* Roman numeral C */ + return(1); + case 0x216E: + printf("D"); /* Roman numeral D */ + return(1); + case 0x216F: + printf("M"); /* Roman numeral M */ + return(1); + case 0x2170: + printf("i"); /* Roman numeral i */ + return(1); + case 0x2171: + printf("ii"); /* Roman numeral ii */ + return(1); + case 0x2172: + printf("iii"); /* Roman numeral iii */ + return(1); + case 0x2173: + printf("iv"); /* Roman numeral iv */ + return(1); + case 0x2174: + printf("v"); /* Roman numeral v */ + return(1); + case 0x2175: + printf("vi"); /* Roman numeral vi */ + return(1); + case 0x2176: + printf("vii"); /* Roman numeral vii */ + return(1); + case 0x2177: + printf("viii"); /* Roman numeral viii */ + return(1); + case 0x2178: + printf("ix"); /* Roman numeral ix */ + return(1); + case 0x2179: + printf("x"); /* Roman numeral x */ + return(1); + case 0x217A: + printf("xi"); /* Roman numeral xi */ + return(1); + case 0x217B: + printf("xiii"); /* Roman numeral xii */ + return(1); + case 0x217C: + printf("l"); /* Roman numeral l */ + return(1); + case 0x217D: + printf("c"); /* Roman numeral c */ + return(1); + case 0x217E: + printf("d"); /* Roman numeral d */ + return(1); + case 0x217F: + printf("m"); /* Roman numeral m */ + return(1); } /* Debugging aid: */