Copy link to clipboard
Copied
Hello all,
I am writing reusable modules in Structured FrameMaker. Part of the reusability comes from using a variable instead of a hard-coded machine name, so that the machine name does not require variants of the same text. Using the standard FrameMaker variables is out of the question, so I have introduced a BookVar element that takes an attribute to determine which value is selected. All possible attribute values for the BookVar element lead to an attribute of the Book, which is the highest element in my publishable document.
The problem is, that the name of the machine may contain a non-breaking space. I can enter the non-breaking space as the attribute value in the Book element, but when the BookVar that receives its value from the Book attribute is resolved the name does not contain the non-breaking space anymore. Is there a special character code that I can include in the value of an attribute ?
Thanks in advance for your solutions
Jang
Jang, my friend,
You can use the trusted old Alt+0160 to enter a non-breaking space as an attribute value. This works in documents as well, but there is no visual feedback compared to the Ctrl+SPACE method.
This leaves the question whether this character will survive the XML roundtripping. I seem to remember this was mentioned in some release notes, but I have to test it. (wait a few minutes) Yes it works! 9.0p255.
- Michael
Copy link to clipboard
Copied
Jang, my friend,
You can use the trusted old Alt+0160 to enter a non-breaking space as an attribute value. This works in documents as well, but there is no visual feedback compared to the Ctrl+SPACE method.
This leaves the question whether this character will survive the XML roundtripping. I seem to remember this was mentioned in some release notes, but I have to test it. (wait a few minutes) Yes it works! 9.0p255.
- Michael
Copy link to clipboard
Copied
Hello Michael,
Thanks for that code. I was trying the codes in the FrameMaker character set document, which dates back to version 7.0. It states an escape sequence, which does not work as it immediately closes the attributes panel. The other option, ctrl+space, did not work at all.
But now that the non-breaking space is recognized, Frame nicely cuts the machine name down the middle. Is there another Alt code (or something else that does not involve the Esc key) to indicate that an attribute value should not be hyphenated ? I could of course define the BookVar element as a Text Range and then suppress the hyphenation via the character designer. But if there is an easier way via the attribute that would save me a bundle of work...
Copy link to clipboard
Copied
Jang,
I guess you have to go the Text formatting rules way. There is no Unicode character I know that works a hyphenation suppressor. The FM internal character code for this is \x05 (try this!), but this would not help because it does not roundtrip unless you handle it separately with some R/W rules. Also, I guess this would be hard for your users.
- Michael
Copy link to clipboard
Copied
Hello again Michael,
I tried the \x05 and it works like a breeze ! Thanks again.
Apparently I was mistaken in assuming that I can suppress hyphenation via Text Range formatting, at least not if I want to keep my EDD free of any direct formatting. I can assign a character format, but in the Character Designer there seems to be no option to suppress hyphenation. This is handled on the paragraph level, and I do not want to suppress hyphenation for the entire paragraph just to keep my machine name from being cut down the middle.
As I am not using roundtripping to XML for this client, the trick with the \x05 in the attribute value, combined with the Alt-0160 for the non-breaking space, does exactly what I need it to do. If I need to get into roundtripping later, I will have to find some kind of trick to preserve the suppressed hyphenation - probably by introducing an extra attribute in the BookVar element that controls it (and then gets translated into the correct preceding \x05 code by the Read-Write rules).
Anyway, I already owed you a free dinner in Amsterdam, so now the drinks will be on me, too ! ![]()
Ciao
Jang
Get ready! An upgraded Adobe Community experience is coming in January.
Learn more