Symbol problems in Word 2004 for mac

A

Andreas Prilop

What you _could_ write is this:
[charset=x-user-defined] <font face="Symbol">Ä</font>

That happens to work because the "Ä" has the code 196 both on the Mac

No, no! "A with diaeresis" (Ä) is character x80 = 128 in MacRoman:
http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/ROMAN.TXT
and the PC (Unicode, ISO 8859-1).
But what about any character that isn't the same, say 182?
The numeric character reference ¶ would still work,
but with the character, you'd get transcoding problems.

The other way round! ¶ is the pilcrow or paragraph sign (¶),
which will be mapped to character xA6 = 166 in MacRoman.
 
A

Andreas Prilop

You have failed to realise that the purpose of this page is to demonstrate
the problems of using Symbol font in Web pages, and to provide Unicode
equivalents for as many Symbol characters as possible.

And you still fail to realize that there is an important difference
between
[charset=UTF-8] <font face="Symbol">Ä</font>
and
[charset=x-user-defined] <font face="Symbol">Ä</font>

The first breaks always, the second may work.

Other Usenauts may want to read carefully
http://ppewww.ph.gla.ac.uk/~flavell/charset/fontface-harmful.html#diplo
 
K

Klaus Linke

Right... I got confused because Word 2004 uses Unicode, and of course returns the Unicode character code för "Ä" = 196/C4.

So if you put in an "Ä", you use an Unicode text editor, save as plain text, and hope that the Apple Roman encoding doesn't enter the problem at all? And you have some (HTML) editor on the Mac that can save as ISO 8859-1?
I sure didn't manage to make that work on a Mac, at least not using Word 2004.

charset=x-user-defined means you make the browser guess the encoding? How does that work, and do you know some spec that tells browsers *how* to guess?

<html>¶</html>, saved in MacWord as plain text, gives me a HTML file showing the paragraph mark, whereas neither putting in the paragraph mark nor putting in the differential symbol (182 in Apple Roman) worked.

Regards,
Klaus




Andreas Prilop said:
What you _could_ write is this:
[charset=x-user-defined] <font face="Symbol">Ä</font>

That happens to work because the "Ä" has the code 196 both on the Mac

No, no! "A with diaeresis" (Ä) is character x80 = 128 in MacRoman:
http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/ROMAN.TXT
and the PC (Unicode, ISO 8859-1).
But what about any character that isn't the same, say 182?
The numeric character reference ¶ would still work,
but with the character, you'd get transcoding problems.

The other way round! ¶ is the pilcrow or paragraph sign (¶),
which will be mapped to character xA6 = 166 in MacRoman.
 
K

Klaus Linke

Hi Andreas,
I sure didn't manage to make that work on a Mac, at least not using Word 2004.
[...]

I don't quite understand what you mean. Perhaps you should post
in German to <news:de.comm.infosystems.www.authoring.misc> .

I'm pretty sure it is not the language I'm having problems with, thanks anyway!
<http://hutchinson.belmont.ma.us/tth/manual.cgi#tth_sEc12.3>
explains in detail what's wrong with Alan Wood's sample page.

Not sure if reading 100 kB of text that doesn't contain the string "x-user-defined" you mentioned will help. At least I don't have the time right now.

<html>Ƃ <font face="Symbol">¶</html> will display the correct characters: a paragraph mark, and a differential symbol. How should that file really look done properly with charset=x-user-defined?

Regards,
Klaus
 
A

Andreas Prilop

Not sure if reading 100 kB of text that doesn't contain the string "x-user-defined" you mentioned will help. At least I don't have the time right now.

It is necessary to _avoid_ any transcoding ISO-8859-1 <-> MacRoman.
Therefore you may not set the encoding (charset) to ISO-8859-1 or
to UTF-8. Instead you have two possibilities:

- Set the encoding (charset) to User-Defined.

- Set no encoding (charset) at all and *ask the Macintosh readers*
to choose manually "MacRoman" from the encoding menu.
<html>Ƃ <font face="Symbol">¶</html> will display the correct characters: a paragraph mark, and a differential symbol. How should that file really look done properly with charset=x-user-defined?

[Your lines are too long.]
The differential sign is *not* the correct character!
¶ is *only* the pilcrow/paragraph sign!
If a brower shows ¶ as something else, it is *broken*.
The charset parameter is irrelevant for !

Now I explain for the fifth time to you:

You must not use expressions but 8-bit characters.
<http://hutchinson.belmont.ma.us/tth/manual.cgi#tth_sEc12.3>

I give up!
 
K

Klaus Linke

Ähem... Typo:

<html>¶ <font face="Symbol">¶</html>

And I didn't want to sound sarcastic: If there's a better way, I'd like to know about it.

Klaus
 
K

Klaus Linke

I give up!

Since you didn't supply the one-line HTML file, I guess that's true.

Asking all Mac users to change their settings doesn't sound like a good solution.

The article <http://hutchinson.belmont.ma.us/tth/manual.cgi#tth_sEc12.3> doesn't mention numerical character references at all, much less discourages their use for symbol fonts.

The only relevant section I found starts with "Purists since the adoption of HMTL4.0 regard the selection of a glyph as governed by the process: (byte) code ®glyph-name ® font-glyph." (which seems to be your position) and ends with "But such arguments are usually a waste of breath." (which seems to apply to you, too).

A little bit above it says
"The HTML4.0 standard draws a strict (but often confused) distinction between the document "character set", sometimes referred to more recently as the character "repertoire"(which refers to all the characters that might be used in it) and the "document encoding" (which encodes a subset of the character set by mapping them to bytes). The confusion is compounded by the entrenched usage of the term "charset" to refer to the "document encoding" (not the character set). This usage is presumably a reflection of the prior lack of any significant distinction between the two."

Your insistence on setting the encoding (charset) to User-Defined seems to be a good example of that misunderstanding.

Regards,
Klaus
 
T

Tim Murray

Jeff Wiseman wrote:
BTW, I thought I had heard it was the MS PMincho font that was
needed to keep PP happy, but on my system, I've discovered that
it is actually the MS PGothic font that is needed to keep my PP
quiet. I've tried it with MS PMincho present and the others
missing but PP kept squawking. It wasn't until I installed MS
PGothic and removed MS PMincho that PP shut up about the missing
font.

If I remember correctly, this sounds different from what I had
heard before and from what Tim just said. Maybe something has
changed (wouldn't be a big surprise, now would it?)

I'm currently running OS 10.3.8 and Office 2004 for mac (think
it's version 11.1.0 but not sure since I've not figured out how
to tell what version of Office I have installed

You are correct. On my system, it is PGothic, not PMincho, that PowerPoint
complains about.
 
A

Alan Wood

Ähem... Typo:

<html>¶ <font face="Symbol">¶</html>

And I didn't want to sound sarcastic: If there's a better way, I'd like to
know about it.
________

Klaus

There is a better way - use Unicode. Do not specify a font, and use
∂.

The character you want is in Microsoft's WGL4 character set, and so this
will work with just about any browser under Windows. If you specify that
your encoding is UTF-8, then it will even work with Netscape 4.

It also works with I.E., iCab, Firefox, Opera and Safari under Mac OS X,
without users needing to do anything special.
 
K

Klaus Linke

Alan Wood said:
There is a better way - use Unicode. Do not specify a font, and use
∂.

The character you want is in Microsoft's WGL4 character set, and so this
will work with just about any browser under Windows. If you specify that
your encoding is UTF-8, then it will even work with Netscape 4.

It also works with I.E., iCab, Firefox, Opera and Safari under Mac OS X,
without users needing to do anything special.

I know! Symbol fonts are better avoided in Word (or any other Unicode app) too.

Below is a macro to turn the characters from the "Symbol" font into Unicode characters, if possible.
It's a bit slow on large documents, because characters from Symbol fonts can be hard to find in Word (... just one of the problems with them in Word), and it doesn't check if the symbol is available in the current (style's) font.

For some characters, there isn't a good correspondence in Unicode Standard v2.

For "Zapf Dingbats", there's also a mapping file available from unicode.org too which you might use to adapt the macro:
ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/zdingbat.txt
For other Symbol fonts, you may need to find out sensible mappings yourself.

As long as the "Symbol" font is installed on practically every machine under the sun, it'll make problems though.

Feel free to copy and distribute the macro.

Regards,
Klaus



Sub SymbolToUnicode2()
' replace characters from the "Symbol" font with corresponding
' Unicode characters (as far as possible), in all Story Ranges
Dim rngOld As Range
Set rngOld = Selection.Range.Duplicate
LoopStoryRanges "SymbolToUnicodeRange"
rngOld.Select
End Sub

Sub SymbolToUnicodeRange(rng As Range)
Dim rngFind As Range
Set rngFind = rng.Duplicate
With rngFind.Find
.Text = "[" & ChrW(&HF020) & "-" & ChrW(&HF0FF) & "]"
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchWildcards = True
End With
While rngFind.Find.Execute
rngFind.Select
With Dialogs(wdDialogInsertSymbol)
If .Font = "Symbol" Then
Select Case .CharNum
Case &H22, &HF022 ' # FOR ALL
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2200)
Case &H24, &HF024 ' # THERE EXISTS
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2203)
Case &H27, &HF027 ' # CONTAINS AS MEMBER
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H220B)
Case &H2A, &HF02A ' # ASTERISK OPERATOR
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2217)
Case &H2D, &HF02D ' # MINUS SIGN
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2212)
Case &H40, &HF040 ' # APPROXIMATELY EQUAL TO
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2245)
Case &H41, &HF041 ' # GREEK CAPITAL LETTER ALPHA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H391)
Case &H42, &HF042 ' # GREEK CAPITAL LETTER BETA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H392)
Case &H43, &HF043 ' # GREEK CAPITAL LETTER CHI
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3A7)
Case &H44, &HF044 ' # GREEK CAPITAL LETTER DELTA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H394)
Case &H44, &HF044 ' # INCREMENT
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2206)
Case &H45, &HF045 ' # GREEK CAPITAL LETTER EPSILON
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H395)
Case &H46, &HF046 ' # GREEK CAPITAL LETTER PHI
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3A6)
Case &H47, &HF047 ' # GREEK CAPITAL LETTER GAMMA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H393)
Case &H48, &HF048 ' # GREEK CAPITAL LETTER ETA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H397)
Case &H49, &HF049 ' # GREEK CAPITAL LETTER IOTA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H399)
Case &H4A, &HF04A ' # GREEK THETA SYMBOL
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3D1)
Case &H4B, &HF04B ' # GREEK CAPITAL LETTER KAPPA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H39A)
Case &H4C, &HF04C ' # GREEK CAPITAL LETTER LAMDA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H39B)
Case &H4D, &HF04D ' # GREEK CAPITAL LETTER MU
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H39C)
Case &H4E, &HF04E ' # GREEK CAPITAL LETTER NU
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H39D)
Case &H4F, &HF04F ' # GREEK CAPITAL LETTER OMICRON
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H39F)
Case &H50, &HF050 ' # GREEK CAPITAL LETTER PI
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3A0)
Case &H51, &HF051 ' # GREEK CAPITAL LETTER THETA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H398)
Case &H52, &HF052 ' # GREEK CAPITAL LETTER RHO
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3A1)
Case &H53, &HF053 ' # GREEK CAPITAL LETTER SIGMA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3A3)
Case &H54, &HF054 ' # GREEK CAPITAL LETTER TAU
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3A4)
Case &H55, &HF055 ' # GREEK CAPITAL LETTER UPSILON
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3A5)
Case &H56, &HF056 ' # GREEK SMALL LETTER FINAL SIGMA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3C2)
Case &H57, &HF057 ' # GREEK CAPITAL LETTER OMEGA, OHM SIGN
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2126)
Case &H58, &HF058 ' # GREEK CAPITAL LETTER XI
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H39E)
Case &H59, &HF059 ' # GREEK CAPITAL LETTER PSI
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3A8)
Case &H5A, &HF05A ' # GREEK CAPITAL LETTER ZETA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H396)
Case &H5C, &HF05C ' # THEREFORE
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2234)
Case &H5E, &HF05E ' # UP TACK
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H22A5)
Case &H60, &HF060 ' # RADICAL EXTENDER
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8E5)
Case &H61, &HF061 ' # GREEK SMALL LETTER ALPHA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3B1)
Case &H62, &HF062 ' # GREEK SMALL LETTER BETA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3B2)
Case &H63, &HF063 ' # GREEK SMALL LETTER CHI
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3C7)
Case &H64, &HF064 ' # GREEK SMALL LETTER DELTA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3B4)
Case &H65, &HF065 ' # GREEK SMALL LETTER EPSILON
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3B5)
Case &H66, &HF066 ' # GREEK SMALL LETTER PHI
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3C6)
Case &H67, &HF067 ' # GREEK SMALL LETTER GAMMA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3B3)
Case &H68, &HF068 ' # GREEK SMALL LETTER ETA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3B7)
Case &H69, &HF069 ' # GREEK SMALL LETTER IOTA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3B9)
Case &H6A, &HF06A ' # GREEK PHI SYMBOL
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3D5)
Case &H6B, &HF06B ' # GREEK SMALL LETTER KAPPA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3BA)
Case &H6C, &HF06C ' # GREEK SMALL LETTER LAMDA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3BB)
Case &H6D, &HF06D ' # MICRO SIGN, GREEK SMALL LETTER MU
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3BC)
Case &H6E, &HF06E ' # GREEK SMALL LETTER NU
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3BD)
Case &H6F, &HF06F ' # GREEK SMALL LETTER OMICRON
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3BF)
Case &H70, &HF070 ' # GREEK SMALL LETTER PI
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3C0)
Case &H71, &HF071 ' # GREEK SMALL LETTER THETA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3B8)
Case &H72, &HF072 ' # GREEK SMALL LETTER RHO
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3C1)
Case &H73, &HF073 ' # GREEK SMALL LETTER SIGMA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3C3)
Case &H74, &HF074 ' # GREEK SMALL LETTER TAU
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3C4)
Case &H75, &HF075 ' # GREEK SMALL LETTER UPSILON
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3C5)
Case &H76, &HF076 ' # GREEK PI SYMBOL
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3D6)
Case &H77, &HF077 ' # GREEK SMALL LETTER OMEGA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3C9)
Case &H78, &HF078 ' # GREEK SMALL LETTER XI
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3BE)
Case &H79, &HF079 ' # GREEK SMALL LETTER PSI
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3C8)
Case &H7A, &HF07A ' # GREEK SMALL LETTER ZETA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3B6)
Case &H7E, &HF07E ' # TILDE OPERATOR
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H223C)
Case &HA0, &HF0A0 ' # EURO SIGN
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H20AC)
Case &HA1, &HF0A1 ' # GREEK UPSILON WITH HOOK SYMBOL
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3D2)
Case &HA2, &HF0A2 ' # PRIME
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2032)
Case &HA3, &HF0A3 ' # LESS-THAN OR EQUAL TO
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2264)
Case &HA4, &HF0A4 ' # FRACTION SLASH, DIVISION SLASH
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2215)
Case &HA5, &HF0A5 ' # INFINITY
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H221E)
Case &HA6, &HF0A6 ' # LATIN SMALL LETTER F WITH HOOK
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H192)
Case &HA7, &HF0A7 ' # BLACK CLUB SUIT
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2663)
Case &HA8, &HF0A8 ' # BLACK DIAMOND SUIT
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2666)
Case &HA9, &HF0A9 ' # BLACK HEART SUIT
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2665)
Case &HAA, &HF0AA ' # BLACK SPADE SUIT
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2660)
Case &HAB, &HF0AB ' # LEFT RIGHT ARROW
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2194)
Case &HAC, &HF0AC ' # LEFTWARDS ARROW
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2190)
Case &HAD, &HF0AD ' # UPWARDS ARROW
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2191)
Case &HAE, &HF0AE ' # RIGHTWARDS ARROW
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2192)
Case &HAF, &HF0AF ' # DOWNWARDS ARROW
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2193)
Case &HB2, &HF0B2 ' # DOUBLE PRIME
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2033)
Case &HB3, &HF0B3 ' # GREATER-THAN OR EQUAL TO
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2265)
Case &HB4, &HF0B4 ' # MULTIPLICATION SIGN
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HD7)
Case &HB5, &HF0B5 ' # PROPORTIONAL TO
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H221D)
Case &HB6, &HF0B6 ' # PARTIAL DIFFERENTIAL
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2202)
Case &HB7, &HF0B7 ' # BULLET
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2022)
Case &HB8, &HF0B8 ' # DIVISION SIGN
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF7)
Case &HB9, &HF0B9 ' # NOT EQUAL TO
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2260)
Case &HBA, &HF0BA ' # IDENTICAL TO
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2261)
Case &HBB, &HF0BB ' # ALMOST EQUAL TO
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2248)
Case &HBC, &HF0BC ' # HORIZONTAL ELLIPSIS
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2026)
Case &HBD, &HF0BD ' # VERTICAL ARROW EXTENDER
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8E6)
Case &HBE, &HF0BE ' # HORIZONTAL ARROW EXTENDER
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8E7)
Case &HBF, &HF0BF ' # DOWNWARDS ARROW WITH CORNER LEFTWARDS
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H21B5)
Case &HC0, &HF0C0 ' # ALEF SYMBOL
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2135)
Case &HC1, &HF0C1 ' # BLACK-LETTER CAPITAL I
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2111)
Case &HC2, &HF0C2 ' # BLACK-LETTER CAPITAL R
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H211C)
Case &HC3, &HF0C3 ' # SCRIPT CAPITAL P
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2118)
Case &HC4, &HF0C4 ' # CIRCLED TIMES
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2297)
Case &HC5, &HF0C5 ' # CIRCLED PLUS
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2295)
Case &HC6, &HF0C6 ' # EMPTY SET
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2205)
Case &HC7, &HF0C7 ' # INTERSECTION
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2229)
Case &HC8, &HF0C8 ' # UNION
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H222A)
Case &HC9, &HF0C9 ' # SUPERSET OF
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2283)
Case &HCA, &HF0CA ' # SUPERSET OF OR EQUAL TO
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2287)
Case &HCB, &HF0CB ' # NOT A SUBSET OF
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2284)
Case &HCC, &HF0CC ' # SUBSET OF
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2282)
Case &HCD, &HF0CD ' # SUBSET OF OR EQUAL TO
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2286)
Case &HCE, &HF0CE ' # ELEMENT OF
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2208)
Case &HCF, &HF0CF ' # NOT AN ELEMENT OF
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2209)
Case &HD0, &HF0D0 ' # ANGLE
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2220)
Case &HD1, &HF0D1 ' # NABLA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2207)
Case &HD2, &HF0D2 ' # REGISTERED SIGN SERIF
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF6DA)
Case &HD3, &HF0D3 ' # COPYRIGHT SIGN SERIF
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF6D9)
Case &HD4, &HF0D4 ' # TRADE MARK SIGN SERIF
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF6DB)
Case &HD5, &HF0D5 ' # N-ARY PRODUCT
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H220F)
Case &HD6, &HF0D6 ' # SQUARE ROOT
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H221A)
Case &HD7, &HF0D7 ' # DOT OPERATOR
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H22C5)
Case &HD8, &HF0D8 ' # NOT SIGN
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HAC)
Case &HD9, &HF0D9 ' # LOGICAL AND
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2227)
Case &HDA, &HF0DA ' # LOGICAL OR
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2228)
Case &HDB, &HF0DB ' # LEFT RIGHT DOUBLE ARROW
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H21D4)
Case &HDC, &HF0DC ' # LEFTWARDS DOUBLE ARROW
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H21D0)
Case &HDD, &HF0DD ' # UPWARDS DOUBLE ARROW
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H21D1)
Case &HDE, &HF0DE ' # RIGHTWARDS DOUBLE ARROW
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H21D2)
Case &HDF, &HF0DF ' # DOWNWARDS DOUBLE ARROW
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H21D3)
Case &HE0, &HF0E0 ' # LOZENGE
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H25CA)
Case &HE1, &HF0E1 ' # LEFT-POINTING ANGLE BRACKET
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2329)
Case &HE2, &HF0E2 ' # REGISTERED SIGN SANS SERIF
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8E8)
Case &HE3, &HF0E3 ' # COPYRIGHT SIGN SANS SERIF
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8E9)
Case &HE4, &HF0E4 ' # TRADE MARK SIGN SANS SERIF
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8EA)
Case &HE5, &HF0E5 ' # N-ARY SUMMATION
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2211)
Case &HE6, &HF0E6 ' # LEFT PAREN TOP
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8EB)
Case &HE7, &HF0E7 ' # LEFT PAREN EXTENDER
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8EC)
Case &HE8, &HF0E8 ' # LEFT PAREN BOTTOM
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8ED)
Case &HE9, &HF0E9 ' # LEFT SQUARE BRACKET TOP
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8EE)
Case &HEA, &HF0EA ' # LEFT SQUARE BRACKET EXTENDER
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8EF)
Case &HEB, &HF0EB ' # LEFT SQUARE BRACKET BOTTOM
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8F0)
Case &HEC, &HF0EC ' # LEFT CURLY BRACKET TOP
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8F1)
Case &HED, &HF0ED ' # LEFT CURLY BRACKET MID
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8F2)
Case &HEE, &HF0EE ' # LEFT CURLY BRACKET BOTTOM
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8F3)
Case &HEF, &HF0EF ' # CURLY BRACKET EXTENDER
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8F4)
Case &HF1, &HF0F1 ' # RIGHT-POINTING ANGLE BRACKET
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H232A)
Case &HF2, &HF0F2 ' # INTEGRAL
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H222B)
Case &HF3, &HF0F3 ' # TOP HALF INTEGRAL
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2320)
Case &HF4, &HF0F4 ' # INTEGRAL EXTENDER
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8F5)
Case &HF5, &HF0F5 ' # BOTTOM HALF INTEGRAL
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2321)
Case &HF6, &HF0F6 ' # RIGHT PAREN TOP
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8F6)
Case &HF7, &HF0F7 ' # RIGHT PAREN EXTENDER
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8F7)
Case &HF8, &HF0F8 ' # RIGHT PAREN BOTTOM
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8F8)
Case &HF9, &HF0F9 ' # RIGHT SQUARE BRACKET TOP
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8F9)
Case &HFA, &HF0FA ' # RIGHT SQUARE BRACKET EXTENDER
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8FA)
Case &HFB, &HF0FB ' # RIGHT SQUARE BRACKET BOTTOM
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8FB)
Case &HFC, &HF0FC ' # RIGHT CURLY BRACKET TOP
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8FC)
Case &HFD, &HF0FD ' # RIGHT CURLY BRACKET MID
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8FD)
Case &HFE, &HF0FE ' # RIGHT CURLY BRACKET BOTTOM
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8FE)
End Select
End If
End With
rngFind.Collapse (wdCollapseEnd)
rngFind.End = rng.End
Wend
End Sub

Private Sub LoopStoryRanges(myMacro As String)
Dim myStoryRange As Range
For Each myStoryRange In ActiveDocument.StoryRanges
Application.Run myMacro, myStoryRange
While Not (myStoryRange.NextStoryRange Is Nothing)
Set myStoryRange = myStoryRange.NextStoryRange
Application.Run myMacro, myStoryRange
Wend
Next myStoryRange
End Sub
 
K

Klaus Linke

Sorry, the macro doesn't work in MacWord.

"Run" can't pass arguments to a macro on the Mac (which could be rather easily worked around).
More importantly, symbols can't be found through their code.
Say, Insert > Symbol says the code of an "alpha" from the Symbol font is 61537, then searching for ^u61537, or for ChrW(61537) in a macro, doesn't seem to work.

I'll try to find out how the Mac handles symbol fonts, but right now it doesn't look good.

Klaus
 
K

Klaus Linke

Duh! MacWord uses Unicode for the Symbol font, if the symbol was inserted from "Insert > Symbol".
Symbols created that way can be found by copy/pasting the character into "Find what":
The Greek alpha can also be found with ^u945 (and ^u913 -- capital Alpha -- too, if the search is case-insensitive).
The "Insert > Symbol" dialog shows the wrong (PC) code of 61537 (U+F061), not the "real" code 945 (U+03B1).
VBA -- AscW(Selection.Text) -- shows the code as 40 (same as in WinWord).

If you try to apply a different font (say Arial) to the Symbol alpha, it doesn't work.
But if you copy it, and then paste as "Unformatted text" into some text in "Arial", you get an Arial (Unicode) alpha. Saving as Unicode text also saves the Symbol alpha as a Unicode alpha.

If an "a" was formatted in the Symbol font, it's still an "a" and can be found searching for "a".
Copy/paste into "Find what" pastes a Greek alpha, and then doesn't find anything. "Paste Special" still yields an Unicode alpha U+03B1, as does saving as Unicode text.

My macro doesn't make much sense on the Mac, since the codes are already Unicode. What's missing is a simple way to apply another font (say, Arial).

I opened a few old PC docs that use the Symbol font on the Mac, and in one doc, neither "a" nor the Greek Unicode alpha ^u945 nor ^u61537 (the PC code) finds the Symbol alpha... So there are probably still a few complications to discover.

Regards,
Klaus
 
P

Paul Berkowitz

That's only Word 2004, Klaus. Word X and earlier did not use Unicode but
rather had a so-called Symbol font, and did not have Unicode available at
all. I don't know what "Symbol font" really was, however.

--
Paul Berkowitz
MVP MacOffice
Entourage FAQ Page: <http://www.entourage.mvps.org/faq/index.html>
AppleScripts for Entourage: <http://macscripter.net/scriptbuilders/>

Please "Reply To Newsgroup" to reply to this message. Emails will be
ignored.

PLEASE always state which version of Microsoft Office you are using -
**2004**, X or 2001. It's often impossible to answer your questions
otherwise.
 
P

Phillip M. Jones, CE.T.

Paul said:
That's only Word 2004, Klaus. Word X and earlier did not use Unicode but
rather had a so-called Symbol font, and did not have Unicode available at
all. I don't know what "Symbol font" really was, however.

Open FontBook on OSX.3 and scroll down until you see Symbol.

you'll see the characters in symbol font.

--
------------------------------------------------------------------------
Phillip M. Jones, CET |MEMBER:VPEA (LIFE) ETA-I, NESDA,ISCET, Sterling
616 Liberty Street |Who's Who. PHONE:276-632-5045, FAX:276-632-0868
Martinsville Va 24112 |[email protected], ICQ11269732, AIM pjonescet
------------------------------------------------------------------------

If it's "fixed", don't "break it"!

mailto:p[email protected]

<http://www.kimbanet.com/~pjones/default.htm>
<http://www.kimbanet.com/~pjones/90th_Birthday/index.htm>
<http://www.kimbanet.com/~pjones/Fulcher/default.html>
<http://www.kimbanet.com/~pjones/Harris/default.htm>
<http://www.kimbanet.com/~pjones/Jones/default.htm>

<http://vpea.exis.net>
 
M

matt neuburg

Phillip M. Jones said:
Open FontBook on OSX.3 and scroll down until you see Symbol.

you'll see the characters in symbol font.

Actually, this is not a very useful way to learn what characters are
really in what font. Use UnicodeChecker, or the Character Palette. m.
 
P

Priyanka Singhal [MSFT]

Tim Murray said:
You are correct. On my system, it is PGothic, not PMincho, that PowerPoint
complains about.

MS P Gothic is default font for Japanese characters in PPT and for Word it
is MS Mincho .
That is the reason that those are required fonts . Wanderer, I guess your
problem is solved , if not please drop me a mail ,and I will be glad to help
you .
 
J

John McGhie [MVP - Word and Word Macintosh]

Hi Klaus:

I see you're using ChrW in that macro. Did you test it on a Mac?

I am not sure it will work on the Mac (the results are not guaranteed: I
think Mac Word VBA ChrW function attempts to coerce the character to the
closest Mac International character).

Cheers

Alan Wood said:
There is a better way - use Unicode. Do not specify a font, and use
∂.

The character you want is in Microsoft's WGL4 character set, and so this
will work with just about any browser under Windows. If you specify that
your encoding is UTF-8, then it will even work with Netscape 4.

It also works with I.E., iCab, Firefox, Opera and Safari under Mac OS X,
without users needing to do anything special.

I know! Symbol fonts are better avoided in Word (or any other Unicode app)
too.

Below is a macro to turn the characters from the "Symbol" font into Unicode
characters, if possible.
It's a bit slow on large documents, because characters from Symbol fonts can
be hard to find in Word (... just one of the problems with them in Word), and
it doesn't check if the symbol is available in the current (style's) font.

For some characters, there isn't a good correspondence in Unicode Standard v2.

For "Zapf Dingbats", there's also a mapping file available from unicode.org
too which you might use to adapt the macro:
ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/zdingbat.txt
For other Symbol fonts, you may need to find out sensible mappings yourself.

As long as the "Symbol" font is installed on practically every machine under
the sun, it'll make problems though.

Feel free to copy and distribute the macro.

Regards,
Klaus



Sub SymbolToUnicode2()
' replace characters from the "Symbol" font with corresponding
' Unicode characters (as far as possible), in all Story Ranges
Dim rngOld As Range
Set rngOld = Selection.Range.Duplicate
LoopStoryRanges "SymbolToUnicodeRange"
rngOld.Select
End Sub

Sub SymbolToUnicodeRange(rng As Range)
Dim rngFind As Range
Set rngFind = rng.Duplicate
With rngFind.Find
.Text = "[" & ChrW(&HF020) & "-" & ChrW(&HF0FF) & "]"
.Forward = True
.Wrap = wdFindStop
.Format = False
.MatchWildcards = True
End With
While rngFind.Find.Execute
rngFind.Select
With Dialogs(wdDialogInsertSymbol)
If .Font = "Symbol" Then
Select Case .CharNum
Case &H22, &HF022 ' # FOR ALL
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2200)
Case &H24, &HF024 ' # THERE EXISTS
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2203)
Case &H27, &HF027 ' # CONTAINS AS MEMBER
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H220B)
Case &H2A, &HF02A ' # ASTERISK OPERATOR
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2217)
Case &H2D, &HF02D ' # MINUS SIGN
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2212)
Case &H40, &HF040 ' # APPROXIMATELY EQUAL TO
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2245)
Case &H41, &HF041 ' # GREEK CAPITAL LETTER ALPHA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H391)
Case &H42, &HF042 ' # GREEK CAPITAL LETTER BETA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H392)
Case &H43, &HF043 ' # GREEK CAPITAL LETTER CHI
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3A7)
Case &H44, &HF044 ' # GREEK CAPITAL LETTER DELTA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H394)
Case &H44, &HF044 ' # INCREMENT
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2206)
Case &H45, &HF045 ' # GREEK CAPITAL LETTER EPSILON
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H395)
Case &H46, &HF046 ' # GREEK CAPITAL LETTER PHI
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3A6)
Case &H47, &HF047 ' # GREEK CAPITAL LETTER GAMMA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H393)
Case &H48, &HF048 ' # GREEK CAPITAL LETTER ETA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H397)
Case &H49, &HF049 ' # GREEK CAPITAL LETTER IOTA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H399)
Case &H4A, &HF04A ' # GREEK THETA SYMBOL
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3D1)
Case &H4B, &HF04B ' # GREEK CAPITAL LETTER KAPPA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H39A)
Case &H4C, &HF04C ' # GREEK CAPITAL LETTER LAMDA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H39B)
Case &H4D, &HF04D ' # GREEK CAPITAL LETTER MU
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H39C)
Case &H4E, &HF04E ' # GREEK CAPITAL LETTER NU
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H39D)
Case &H4F, &HF04F ' # GREEK CAPITAL LETTER OMICRON
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H39F)
Case &H50, &HF050 ' # GREEK CAPITAL LETTER PI
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3A0)
Case &H51, &HF051 ' # GREEK CAPITAL LETTER THETA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H398)
Case &H52, &HF052 ' # GREEK CAPITAL LETTER RHO
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3A1)
Case &H53, &HF053 ' # GREEK CAPITAL LETTER SIGMA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3A3)
Case &H54, &HF054 ' # GREEK CAPITAL LETTER TAU
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3A4)
Case &H55, &HF055 ' # GREEK CAPITAL LETTER UPSILON
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3A5)
Case &H56, &HF056 ' # GREEK SMALL LETTER FINAL SIGMA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3C2)
Case &H57, &HF057 ' # GREEK CAPITAL LETTER OMEGA, OHM SIGN
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2126)
Case &H58, &HF058 ' # GREEK CAPITAL LETTER XI
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H39E)
Case &H59, &HF059 ' # GREEK CAPITAL LETTER PSI
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3A8)
Case &H5A, &HF05A ' # GREEK CAPITAL LETTER ZETA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H396)
Case &H5C, &HF05C ' # THEREFORE
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2234)
Case &H5E, &HF05E ' # UP TACK
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H22A5)
Case &H60, &HF060 ' # RADICAL EXTENDER
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8E5)
Case &H61, &HF061 ' # GREEK SMALL LETTER ALPHA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3B1)
Case &H62, &HF062 ' # GREEK SMALL LETTER BETA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3B2)
Case &H63, &HF063 ' # GREEK SMALL LETTER CHI
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3C7)
Case &H64, &HF064 ' # GREEK SMALL LETTER DELTA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3B4)
Case &H65, &HF065 ' # GREEK SMALL LETTER EPSILON
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3B5)
Case &H66, &HF066 ' # GREEK SMALL LETTER PHI
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3C6)
Case &H67, &HF067 ' # GREEK SMALL LETTER GAMMA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3B3)
Case &H68, &HF068 ' # GREEK SMALL LETTER ETA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3B7)
Case &H69, &HF069 ' # GREEK SMALL LETTER IOTA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3B9)
Case &H6A, &HF06A ' # GREEK PHI SYMBOL
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3D5)
Case &H6B, &HF06B ' # GREEK SMALL LETTER KAPPA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3BA)
Case &H6C, &HF06C ' # GREEK SMALL LETTER LAMDA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3BB)
Case &H6D, &HF06D ' # MICRO SIGN, GREEK SMALL LETTER MU
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3BC)
Case &H6E, &HF06E ' # GREEK SMALL LETTER NU
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3BD)
Case &H6F, &HF06F ' # GREEK SMALL LETTER OMICRON
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3BF)
Case &H70, &HF070 ' # GREEK SMALL LETTER PI
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3C0)
Case &H71, &HF071 ' # GREEK SMALL LETTER THETA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3B8)
Case &H72, &HF072 ' # GREEK SMALL LETTER RHO
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3C1)
Case &H73, &HF073 ' # GREEK SMALL LETTER SIGMA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3C3)
Case &H74, &HF074 ' # GREEK SMALL LETTER TAU
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3C4)
Case &H75, &HF075 ' # GREEK SMALL LETTER UPSILON
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3C5)
Case &H76, &HF076 ' # GREEK PI SYMBOL
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3D6)
Case &H77, &HF077 ' # GREEK SMALL LETTER OMEGA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3C9)
Case &H78, &HF078 ' # GREEK SMALL LETTER XI
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3BE)
Case &H79, &HF079 ' # GREEK SMALL LETTER PSI
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3C8)
Case &H7A, &HF07A ' # GREEK SMALL LETTER ZETA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3B6)
Case &H7E, &HF07E ' # TILDE OPERATOR
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H223C)
Case &HA0, &HF0A0 ' # EURO SIGN
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H20AC)
Case &HA1, &HF0A1 ' # GREEK UPSILON WITH HOOK SYMBOL
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H3D2)
Case &HA2, &HF0A2 ' # PRIME
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2032)
Case &HA3, &HF0A3 ' # LESS-THAN OR EQUAL TO
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2264)
Case &HA4, &HF0A4 ' # FRACTION SLASH, DIVISION SLASH
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2215)
Case &HA5, &HF0A5 ' # INFINITY
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H221E)
Case &HA6, &HF0A6 ' # LATIN SMALL LETTER F WITH HOOK
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H192)
Case &HA7, &HF0A7 ' # BLACK CLUB SUIT
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2663)
Case &HA8, &HF0A8 ' # BLACK DIAMOND SUIT
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2666)
Case &HA9, &HF0A9 ' # BLACK HEART SUIT
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2665)
Case &HAA, &HF0AA ' # BLACK SPADE SUIT
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2660)
Case &HAB, &HF0AB ' # LEFT RIGHT ARROW
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2194)
Case &HAC, &HF0AC ' # LEFTWARDS ARROW
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2190)
Case &HAD, &HF0AD ' # UPWARDS ARROW
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2191)
Case &HAE, &HF0AE ' # RIGHTWARDS ARROW
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2192)
Case &HAF, &HF0AF ' # DOWNWARDS ARROW
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2193)
Case &HB2, &HF0B2 ' # DOUBLE PRIME
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2033)
Case &HB3, &HF0B3 ' # GREATER-THAN OR EQUAL TO
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2265)
Case &HB4, &HF0B4 ' # MULTIPLICATION SIGN
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HD7)
Case &HB5, &HF0B5 ' # PROPORTIONAL TO
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H221D)
Case &HB6, &HF0B6 ' # PARTIAL DIFFERENTIAL
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2202)
Case &HB7, &HF0B7 ' # BULLET
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2022)
Case &HB8, &HF0B8 ' # DIVISION SIGN
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF7)
Case &HB9, &HF0B9 ' # NOT EQUAL TO
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2260)
Case &HBA, &HF0BA ' # IDENTICAL TO
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2261)
Case &HBB, &HF0BB ' # ALMOST EQUAL TO
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2248)
Case &HBC, &HF0BC ' # HORIZONTAL ELLIPSIS
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2026)
Case &HBD, &HF0BD ' # VERTICAL ARROW EXTENDER
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8E6)
Case &HBE, &HF0BE ' # HORIZONTAL ARROW EXTENDER
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8E7)
Case &HBF, &HF0BF ' # DOWNWARDS ARROW WITH CORNER LEFTWARDS
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H21B5)
Case &HC0, &HF0C0 ' # ALEF SYMBOL
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2135)
Case &HC1, &HF0C1 ' # BLACK-LETTER CAPITAL I
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2111)
Case &HC2, &HF0C2 ' # BLACK-LETTER CAPITAL R
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H211C)
Case &HC3, &HF0C3 ' # SCRIPT CAPITAL P
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2118)
Case &HC4, &HF0C4 ' # CIRCLED TIMES
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2297)
Case &HC5, &HF0C5 ' # CIRCLED PLUS
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2295)
Case &HC6, &HF0C6 ' # EMPTY SET
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2205)
Case &HC7, &HF0C7 ' # INTERSECTION
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2229)
Case &HC8, &HF0C8 ' # UNION
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H222A)
Case &HC9, &HF0C9 ' # SUPERSET OF
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2283)
Case &HCA, &HF0CA ' # SUPERSET OF OR EQUAL TO
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2287)
Case &HCB, &HF0CB ' # NOT A SUBSET OF
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2284)
Case &HCC, &HF0CC ' # SUBSET OF
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2282)
Case &HCD, &HF0CD ' # SUBSET OF OR EQUAL TO
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2286)
Case &HCE, &HF0CE ' # ELEMENT OF
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2208)
Case &HCF, &HF0CF ' # NOT AN ELEMENT OF
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2209)
Case &HD0, &HF0D0 ' # ANGLE
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2220)
Case &HD1, &HF0D1 ' # NABLA
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2207)
Case &HD2, &HF0D2 ' # REGISTERED SIGN SERIF
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF6DA)
Case &HD3, &HF0D3 ' # COPYRIGHT SIGN SERIF
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF6D9)
Case &HD4, &HF0D4 ' # TRADE MARK SIGN SERIF
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF6DB)
Case &HD5, &HF0D5 ' # N-ARY PRODUCT
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H220F)
Case &HD6, &HF0D6 ' # SQUARE ROOT
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H221A)
Case &HD7, &HF0D7 ' # DOT OPERATOR
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H22C5)
Case &HD8, &HF0D8 ' # NOT SIGN
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HAC)
Case &HD9, &HF0D9 ' # LOGICAL AND
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2227)
Case &HDA, &HF0DA ' # LOGICAL OR
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2228)
Case &HDB, &HF0DB ' # LEFT RIGHT DOUBLE ARROW
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H21D4)
Case &HDC, &HF0DC ' # LEFTWARDS DOUBLE ARROW
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H21D0)
Case &HDD, &HF0DD ' # UPWARDS DOUBLE ARROW
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H21D1)
Case &HDE, &HF0DE ' # RIGHTWARDS DOUBLE ARROW
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H21D2)
Case &HDF, &HF0DF ' # DOWNWARDS DOUBLE ARROW
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H21D3)
Case &HE0, &HF0E0 ' # LOZENGE
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H25CA)
Case &HE1, &HF0E1 ' # LEFT-POINTING ANGLE BRACKET
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2329)
Case &HE2, &HF0E2 ' # REGISTERED SIGN SANS SERIF
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8E8)
Case &HE3, &HF0E3 ' # COPYRIGHT SIGN SANS SERIF
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8E9)
Case &HE4, &HF0E4 ' # TRADE MARK SIGN SANS SERIF
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8EA)
Case &HE5, &HF0E5 ' # N-ARY SUMMATION
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2211)
Case &HE6, &HF0E6 ' # LEFT PAREN TOP
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8EB)
Case &HE7, &HF0E7 ' # LEFT PAREN EXTENDER
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8EC)
Case &HE8, &HF0E8 ' # LEFT PAREN BOTTOM
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8ED)
Case &HE9, &HF0E9 ' # LEFT SQUARE BRACKET TOP
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8EE)
Case &HEA, &HF0EA ' # LEFT SQUARE BRACKET EXTENDER
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8EF)
Case &HEB, &HF0EB ' # LEFT SQUARE BRACKET BOTTOM
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8F0)
Case &HEC, &HF0EC ' # LEFT CURLY BRACKET TOP
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8F1)
Case &HED, &HF0ED ' # LEFT CURLY BRACKET MID
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8F2)
Case &HEE, &HF0EE ' # LEFT CURLY BRACKET BOTTOM
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8F3)
Case &HEF, &HF0EF ' # CURLY BRACKET EXTENDER
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8F4)
Case &HF1, &HF0F1 ' # RIGHT-POINTING ANGLE BRACKET
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H232A)
Case &HF2, &HF0F2 ' # INTEGRAL
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H222B)
Case &HF3, &HF0F3 ' # TOP HALF INTEGRAL
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2320)
Case &HF4, &HF0F4 ' # INTEGRAL EXTENDER
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8F5)
Case &HF5, &HF0F5 ' # BOTTOM HALF INTEGRAL
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&H2321)
Case &HF6, &HF0F6 ' # RIGHT PAREN TOP
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8F6)
Case &HF7, &HF0F7 ' # RIGHT PAREN EXTENDER
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8F7)
Case &HF8, &HF0F8 ' # RIGHT PAREN BOTTOM
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8F8)
Case &HF9, &HF0F9 ' # RIGHT SQUARE BRACKET TOP
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8F9)
Case &HFA, &HF0FA ' # RIGHT SQUARE BRACKET EXTENDER
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8FA)
Case &HFB, &HF0FB ' # RIGHT SQUARE BRACKET BOTTOM
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8FB)
Case &HFC, &HF0FC ' # RIGHT CURLY BRACKET TOP
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8FC)
Case &HFD, &HF0FD ' # RIGHT CURLY BRACKET MID
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8FD)
Case &HFE, &HF0FE ' # RIGHT CURLY BRACKET BOTTOM
Selection.Font.Name = Selection.Style.Font.Name
Selection.Text = ChrW(&HF8FE)
End Select
End If
End With
rngFind.Collapse (wdCollapseEnd)
rngFind.End = rng.End
Wend
End Sub

Private Sub LoopStoryRanges(myMacro As String)
Dim myStoryRange As Range
For Each myStoryRange In ActiveDocument.StoryRanges
Application.Run myMacro, myStoryRange
While Not (myStoryRange.NextStoryRange Is Nothing)
Set myStoryRange = myStoryRange.NextStoryRange
Application.Run myMacro, myStoryRange
Wend
Next myStoryRange
End Sub

--

Please reply to the newsgroup to maintain the thread. Please do not email
me unless I ask you to.

John McGhie <[email protected]>
Microsoft MVP, Word and Word for Macintosh. Consultant Technical Writer
Sydney, Australia +61 4 1209 1410
 
K

Klaus Linke

I see you're using ChrW in that macro. Did you test it on a Mac?

Yes :) ... in Word2004.
I am not sure it will work on the Mac (the results are not guaranteed: I
think Mac Word VBA ChrW function attempts to coerce the character to the
closest Mac International character).

ChrW and AscW are VB(A) string stuff (nothing to do with Word) and work flawlessly even in Word X.
If something goes wrong, Word has messed up the character, and you'd need to look at the rest of the code to see what happened.

You may find even Word X is better than you assume. Say,
Selection.InsertAfter ChrW(i)
will insert the "proper" Unicode character. The only problem I saw is that Word might not be able to display the character (and shows an underscore).

Greetings,
Klaus
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top