Jump to content

Special Characters Included in Both MacRoman Encoding and Latin-1 Encoding


Admin1676454018

Recommended Posts

  • 1 month later...

This is a corrected version of the post above, in which all of the entities got converted to their actual character values by the "helpful" vBulletin forum software. :( (This is ironic, considering that the whole point of the post is to explain how to use the entities themselves in JavaScript.)

 

 

Please use [noparse]

 and 

[/noparse] tag pairs when including code samples to avoid this problem. You may also need to use [noparse][noparse] and [/noparse][/noparse] tag pairs to ensure that markup is shown literally in the forum. (Note that for the numeric entities such as ¼ the only way I could get vBulletin to show the entity literally instead of parsing it and showing the ¼ character was to "fake it out" by modifying the size or colors of some, not all, of the characters in the entity itself.)

 

Don't be afraid to use the "Preview Post" button or edit your post to make sure the code looks right. Thanks!

 

CORRECTED POST FOLLOWS

 

Since almost all glyphs used in Western languages are included in both the Latin-1 encoding character set used on Windows, and in MacRoman on Mac, so FusionPro has no problem with them. However, in the great Tower of Babel that is character encoding, a few characters that are standard in Latin-1 (aka ISO-8859-1) fell through the cracks and did not get included in MacRoman encoding, including the fractional characters in question. The full list of such characters can be found here:

http://www.alanwood.net/demos/charsetdiffs.html#d

and here:

http://home.earthlink.net/~bobbau/platforms/specialchars/#non-mac

 

And there's some historical background here:

http://ppewww.ph.gla.ac.uk/~flavell/iso8859/iso8859-mac.html

and here:

http://meta.wikimedia.org/wiki/Help_talk:Special_characters

 

FusionPro does not include the fractional entities ("¼", "½", and "¾") in its entity.mac.def file, and you can't use numeric entities (such as "¼") either, because those characters are simply not mapped to any 8-bit ASCII values in Mac Roman encoding.

The named entities will still work on Windows, however, and since you're doing the actual composition there, the real issue is how to represent and specify these characters on Mac.

 

My recommendation is to use JavaScript to create rules that return entities designating the actual glyphs on Windows and substitute representations on Mac. You still won't be able to type them directly into the Text Editor, but you'll get the actual character symbol in your composed output on Windows, and an approximate representation on Mac.

 

For instance, you could create a rule called "Fraction 1/4" like so:

 
if (FusionPro.isMac)
 return "<superscript>1</superscript>/<subscript>4</subscript>";
//else
 return "¼";

(Make sure to check the "Treat returned strings as tagged text" checkbox

in the Rule Editor.)

The exact representation obviously depends on your superscript and subscript settings in the Paragraph Globals dialog on Mac. And superscript may affect your auto-leading. If you don't want to worry about this, you can simply return the string "1/4" on Mac.

 

If you can find a symbol font that shows the character in MacRoman encoding, you can also do a simple font substitution with a numeric entity. I haven't found such a font, but if you do, you could do something like this instead:

if (FusionPro.isMac)
 return "<font name=\"My Special Font\">&[size=3]#[/size]188;</font>";
//else
 return "¼";

The other caveat here is that this might not work with some older Mac fonts which do not contain the correct mappings under Latin-1, if they are brought over to Windows with Assets.dat. However, most modern fonts should have no problem. Even in the worst-case scenario, if the font does not contain the character, you can just switch the font on Windows, like so:

 
if (FusionPro.isMac)
 return "<superscript>1</superscript>/<subscript>4</subscript>";
//else
 return "<font name=\"Arial\">¼</font>";

If necessary, you could use a numeric entity on Windows as well. But I doubt you will have to do that.

Here's a generalized solution:

 

 function FractionCharacter(fraction)
 {
   switch (fraction)
   {
     case 1/4:
     case "1/4":
     case "14":
     case "¼":
     {
       if (FusionPro.isMac)
         return "<superscript>1</superscript>/<subscript>4</subscript>";
       //else
         return "¼";
     }
     case 1/2:
     case "1/2":
     case "12":
     case "½":
     {
       if (FusionPro.isMac)
         return "<superscript>1</superscript>/<subscript>2</subscript>";
       //else
         return "½";
     }
     case 3/4:
     case "3/4":
     case "34":
     case "¾":
     {
       if (FusionPro.isMac)
         return "<superscript>3</superscript>/<subscript>4</subscript>";
       //else
         return "¾";
     }
   }
   ReportError("No glyph for fraction " + fraction);
   return "";
 }

 

 

Using this function, you can create rules with names like "Fraction 1/4", and insert the corresponding variables in the Text Editor on either platform. If another solution becomes available in the future, or you want to try something different, you will only have to modify that single function.

Link to comment
Share on other sites

  • 8 years later...

I have been trying to add a square bullet using a script in front of a field using;

if (Field(“Certification 1”) == ""){

return "";

}else{

return "<p>◻" + Field(“Certification 1”) + "</p>";

}*

 

Is this format not supported? I'm still learning javascript & I may be a little lost with this.

Link to comment
Share on other sites

I have been trying to add a square bullet using a script in front of a field using;

if (Field(“Certification 1”) == ""){

return "";

}else{

return "<p>◻" + Field(“Certification 1”) + "</p>";

}*

 

Is this format not supported? I'm still learning javascript & I may be a little lost with this.

Your question is not directly relevant to platform-specific encoding. Please start a new thread.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...