On Tue, Aug 15, 2000 at 12:09:52PM +1000, Martin Sevior wrote:
> 
> Committed. Including removal of wvLaTex.sed.
> 
> 
> On Mon, 14 Aug 2000, Martin Vermeer wrote:
> 
> > On Mon, Aug 14, 2000 at 10:36:00PM +1000, Martin Sevior wrote:
> > > 
> > > 
> > > On Mon, 14 Aug 2000, Martin Vermeer wrote:
> > > 
> > > > Great! These were needed.
> > > > 
> > > > Now there are still the Greek characters (iso-8859-7) ... not such a high 
> > > > priority, probably. Except for Greek people ;-)
> > > > 
> > > > If someone is willing to commit this (is anyone responsible for wv ?!?), 
> > > > I will do my earlier patches again and resubmit them.
> > > > 
> > > > And someone please remove wvLaTeX.sed from CVS. And commit wvCleanLaTeX.xml,
> > > > if it passes muster.
> > > > 
 
Well I checked the CVS and (LXR) but it appears only selected parts of the 
patches by me and Karl Ove have been committed. I don't know precisely
why, but here follows a patch of 

* My current text.c (working) which includes the latest LaTeX patch
  (added characters) by Karl Ove Hufthammer (i.e. only its text.c part).

* ...and the CVS of this point in time, Tue Aug 15 12:24:05 UTC 2000.

It's mainly reshuffling and adding LOTS of Unicode characters to the
LaTeX output. The Greek/math was tested and works.

I am sorry for this mess. This appears to be the easiest way to fix it.
 
Martin
-- 
Martin Vermeer [EMAIL PROTECTED]   Phone +358 9 295 55 215   Fax +358 9 295 55 200
Finnish Geodetic Institute    Geodeetinrinne 2    FIN-02430 Masala FINLAND
:wq
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 [EMAIL PROTECTED]
-                       */
-                       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 [EMAIL PROTECTED]
+                       */
+                       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 [EMAIL PROTECTED] 
+                        */
                        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: */

Reply via email to