Highlighted

How to get thin spaces in HTML Help output

Explorer ,
Mar 23, 2017

Copy link to clipboard

Copied

I have a project I'm still maintaining in Frame 12, producing CHM files as the output using the Publish command.

I find that any thin space in my Frame source is getting rendered as an ordinary space in the Help viewer. Is this a limitation of that old Microsoft HTML Help Viewer not rendering thin spaces properly?  Or is Frame not bothering to write   entities in its HTML output? And if so, how do I make it do that? (I don't see anything obvious in the Publish settings).

Views

818

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more

How to get thin spaces in HTML Help output

Explorer ,
Mar 23, 2017

Copy link to clipboard

Copied

I have a project I'm still maintaining in Frame 12, producing CHM files as the output using the Publish command.

I find that any thin space in my Frame source is getting rendered as an ordinary space in the Help viewer. Is this a limitation of that old Microsoft HTML Help Viewer not rendering thin spaces properly?  Or is Frame not bothering to write   entities in its HTML output? And if so, how do I make it do that? (I don't see anything obvious in the Publish settings).

Views

819

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Mar 23, 2017 0
Adobe Community Professional ,
Mar 23, 2017

Copy link to clipboard

Copied

You can do a quick test to see if CHMs are the cause by doing a test WebHelp output and having a look inside the HTML. I'd recommend looking inside the CHM's HTML files by decompiling the CHM (see Decompiling a Help File (Windows)  to do that) to have a look if your thin space appears in it.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Mar 23, 2017 0
Explorer ,
Mar 23, 2017

Copy link to clipboard

Copied

Ah fair point ...

actually I just opened the CHM with 7-Zip and looked in the .htm files in Notepad.  It's putting an   in instead of a thin space.

For example, I have a sentence in the Frame source like this:
"Valid range is from 100 ms to..." (where I have used 'Esc space t' thin space in Frame to give a thin space between the '100' and the 'ms'

In the CHM file this comes out as "Valid range is from 100<span class="hcp2"> </span>ms to..."

No idea what "hcp2" class is, it's not something I defined.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Mar 23, 2017 0
Adobe Community Professional ,
Mar 23, 2017

Copy link to clipboard

Copied

What's the WebHelp output give you in its HTML?

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Mar 23, 2017 0
Explorer ,
Mar 29, 2017

Copy link to clipboard

Copied

The WebHelp output is the same: a non-breaking space.

(In my post above, the blimmin' forum has rended the ampersand escape sequences I typed as actual non-breaking spaces, making for rather confusing reading!)

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Mar 29, 2017 0
Adobe Community Professional ,
Mar 29, 2017

Copy link to clipboard

Copied

No wonder it wasn't making too much sense to me ;>)

So you're getting "thin spaces" turned into "non-breaking spaces" - is that the situation?

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Mar 29, 2017 0
Explorer ,
Mar 29, 2017

Copy link to clipboard

Copied

Exactly.  Despite FrameMaker having admirably supported thin spaces (as well as n-spaces, m-spaces, numeric-spaces and non-breaking spaces) for donkeys years, it doesn't write them to its HTML Help or WebHelp output.

Which is ridiculous, cos there's been a thin-space character entity in HTML for aeons too.

So what I'm wondering is, is there a way I can explicitly stop this egregious typographic malfeasance, by changing a setting?

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Mar 29, 2017 0
Adobe Community Professional ,
Mar 29, 2017

Copy link to clipboard

Copied

Since I tend not to bother using much of any of those things in my FM content, I had no idea how FM deals with them - just for a laugh I created a FM12 doc with a Body paragraph tag in it with one one line with "regular" spaces and one with "thin" ones. Then I sucked it into a fresh RH11 project to see how it interpreted it in the resulting topics' HTML view - they [the thin spaces] all ended up being turned into a span style = "font-size": x-small;" and an ampersand number sign 160 [&#160] if that comes through this web interface.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Mar 29, 2017 0
Explorer ,
Mar 29, 2017

Copy link to clipboard

Copied

Character entity 160 is the non-breaking space.  (From the HTML 2.0 spec)

The thin space character entity was added in HTML 4.0, in 1997. Twenty years ago. /facepalms gently/

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Mar 29, 2017 0
Adobe Community Professional ,
Mar 29, 2017

Copy link to clipboard

Copied

LOL - go find the bug tracker/wish list form back on the main FM forums page.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Mar 29, 2017 0
Explorer ,
Mar 29, 2017

Copy link to clipboard

Copied

yeah I  could, and Adobe could ignore it for 2 years then lock the bugtracker and hide it so the URL just gives a DNS error.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Mar 29, 2017 0
Adobe Community Professional ,
Mar 29, 2017

Copy link to clipboard

Copied

Hmm...Tracker seems to work ok for me right now (YMMV)

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Mar 29, 2017 0
Explorer ,
Mar 29, 2017

Copy link to clipboard

Copied

Yes, that one works *now*... and they'll keep it open for a couple of years, ignore most of the submitted bugs, then close and delete it. As happened to several other bugs I submitted in the past.  NOT THAT I'M BITTER

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Mar 29, 2017 0
Most Valuable Participant ,
Mar 29, 2017

Copy link to clipboard

Copied

Jeff,

The Tracker system was just introduced at the start of this year. The old "Bugbase" was put into a read-only mode, but the old link to get to it was broken due to a re-drect. Messages to both the Engineering team and the Forum management have gone unanswered.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Mar 29, 2017 0
Adobe Employee ,
Mar 30, 2017

Copy link to clipboard

Copied

I have just tested this, and when I insert the thin space (\u2009) and publish it as a Responsive HTML5 help, it goes into the HTML5 as &thinsp;

<p dir="ltr" class="FM_Body">Thin space: 10&thinsp;ms</p>

When I publish it to CHM, it goes into the HTML as &#8201;

<p dir="ltr" class="FM_Body">Thin space: 10&#8201;ms</p>

You can insert a thin space (in FM 2017) with Insert > Character > Hex Input, type in 2009 and hit Return. You can also use \u2009 in the Find/Change dialog.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Mar 30, 2017 0
Explorer ,
Mar 30, 2017

Copy link to clipboard

Copied

Thanks for the reply, Stefan - we posted across each other there.

I opened one of my Frame12 source files in Frame2017 and created a CHM using the same .sts file.
I'm afraid it still comes out with my 'thin spaces' converted to 'non-breaking spaces'.

I have certainly never *told* it to do this myself, but I'm wondering if some default setting from Frame 12 is getting carried forward and making Frame 2017 behave the same way?

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Mar 30, 2017 0
Explorer ,
Mar 30, 2017

Copy link to clipboard

Copied

Oh! and now I posted across you twice

Right - so it seems likes the issue now is that the "thin spaces" I have in my document, inserted using "Esc spacebar t", are the problem, as they're not proper Unicode thin spaces.

But seriously, if you read Frame's own documentation ("Adding text and special characters > special spaces",  and then "Entering special characters"), it explicitly states that you should use the keyboard shortcut of "Esc spacebar t" to get a thin space. This help page is dated January 31, 2017.  It does not say to do "Insert > Character > Hex Input, type in 2009 and hit Return."

This is not good.

Surely it would not be too much trouble for Adobe to map the Esc-spacebar-t shortcut to insert the proper Unicode character?

Incidentally, do you know what is happening to Esc-spacebar-t when Frame creates PDF output?

I use it extensively and it looks fine in my PDFs, whereas in my CHMs it balloons horribly in width to a non-breaking space.

This is particularly important when my documents get translated to French: as you may be aware, there is a French typographic convention to add a "thin space" before several punctuation characters (such as colons and percentage signs) where this is not typically done in English typography. It looks like hell if the space is too wide
This French convention is also where the SI Units convention of having a space between the number and the unit symbol comes from (if you check the SI style guide from the BIPM)

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Mar 30, 2017 0
Explorer ,
Mar 30, 2017

Copy link to clipboard

Copied

When I have time later today, I'll try making the CHM in Frame 2017 (I'm currently using Frame12 for this, as the graphics break in 2017).

If the problem is still there in 2017 then I'll raise a bug on the tracker.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Mar 30, 2017 0
Adobe Employee ,
Mar 30, 2017

Copy link to clipboard

Copied

Please see my response above. With the correct Unicode thin space (u2009) it works in FM 2017 (and probably also in 2015, but I have not tested it).

Please also note that there are a couple of old reserved characters in FM for backward compatibility like FM's own thin space (\st). That is, while \u2009 is stored internally as the real Unicode glyph, \st is stored as an FM special character.

In FM 8 and above, I recommend to use only the correct Unicode character \u2009 (UNICODE THIN SPACE) and not FM's legacy \st anymore which is only there for backward compatibility with very old FM version (< 7.2).

You can search for \st and replace with \U2009 if you want to change it globally

By the way, the Unicode thin space \u2009 is not a non-breaking space. You might want to consider using the Unicode 202F ("NARROW NO-BREAK SPACE").

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Mar 30, 2017 0
Adobe Community Professional ,
Mar 30, 2017

Copy link to clipboard

Copied

I'd be tempted to implement instances of these as variables. It might at least make it easier to figure what they are later.

Name: U+2009 THIN SPACE
Def: \u2009

Name: U+202F NARROW NO-BREAK SPACE
Def: \u202f

Does FM recognize 202F as non-breaking?

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Mar 30, 2017 0
Explorer ,
Mar 30, 2017

Copy link to clipboard

Copied

Yes I can see the sense in that, Bob - when you've just got whitespace on the screen, it's rather tricky to tell what it is! Turning on Text Symbols is Frame doesn't help, there's no symbols of anything but the non-breaking space.

https://forums.adobe.com/people/Bob+Niland+%28Error+7103%29  wrote

I'd be tempted to implement instances of these as variables. It might at least make it easier to figure what they are later.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Mar 30, 2017 0
Explorer ,
Apr 04, 2017

Copy link to clipboard

Copied

I logged the bug FRMAKER-2586 about this. Maybe it will get sorted one day

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Apr 04, 2017 0
Explorer ,
Jan 25, 2019

Copy link to clipboard

Copied

Hello,

I am trying to use Stephans advise to search and replace from \st to \u202f

Result is a "?" rather a thin space. Is the font I am using the problem? I am using Whitney narrow medium.

I am using FM 2019 latest patches, Windows 10

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Jan 25, 2019 0
Explorer ,
Jan 25, 2019

Copy link to clipboard

Copied

I tried to search and replace \st to \u2009

This works fine.

Andreas

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Jan 25, 2019 0
Explorer ,
Jan 25, 2019

Copy link to clipboard

Copied

I have changed the font from Whitney to Arial. Arial supports the u202f

Seems to be a problem of my font.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Jan 25, 2019 0
Explorer ,
Mar 30, 2017

Copy link to clipboard

Copied

Well, I did a Find & Change in my Frame12 source from "\st" to "\u2009",

and created my HTML Help output,

and viewing the CHM source in notepad, I see my Frame thin spaces are correctly encoded in the HTML as ampersand-hash-8201;

Success!

Unfortunately, the Microsoft HTML Help Viewer, being a lobotomised version of IE4 (or something like that) still doesn't render it anywhere near "thin" enough for my taste, but it's a slight improvement  

Thanks for the tip, Stefan.

Likes

Translate

Translate

Report

Report
Community Guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
Reply
Loading...
Mar 30, 2017 0