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: */