This is the history file for the beta revisions for Mif2Go package 33. Rev 54, hist54n, June 6, 2009 ---------------------------------------------------------------------- In 53, we changed our own context-sensitive help from WinHelp to MS HTML Help. However, when you unzip the distribution and double-click on the CHM, you get a "Security Warning" from Windows, and see the contents pane but nothing in the topic pane. You need to either tell Windows to stop worrying about CHMs, or right-click the CHM in Explorer, select Properties, and click Unblock. Details in: http://support.microsoft.com/kb/902225 **For HTML (build 287r), Seraphim Larsen had a crash for no apparent reason while converting a table to DITA. We fixed the allocation error that caused it. It also turned out that when a table title had a newlink, xrefs to it used the newlink, but the table ID itself was still the (earlier) FileID/UniqueID combination, so the link was broken. We now map such newlinks to the original table ID instead. In addition, Seraphim reported a variety of problems with setting conditional attributes in tables and where they overlapped character formats. We cleared up all of those. He also was using specializations with elements derived from title, which imposed some restrictions on them. The restictions on contained elements were handled correctly, mainly by wrapping the forbidden elements (xref and indexterm) in a ph, which made them valid there. But the restrictions on attributes, specifically conditional attrs such as platform and product, did not result in the same workaround for the derived elements, though they did for title itself. We added: [DITAOptions] ; NoCondAttrs = space-delimited list of elements for which conditional ; attributes (such as props and audience) are disallowed. These are ; elements derived from title; title and glossterm always disallow ; them, and need not be included in the list. Any such attributes ; needed are set in a ph nested inside the element, which is valid. ; This applies to all attributes mentioned in [ConditionAttributes]. NoCondAttrs= Julie Bruce noticed that in her XHTML output, nested lists were going under the ul/ol of the parent list, raather than under the li where they belonged. We fixed that. She also wanted a way to strip some tables but not all of them, without using markers. We found that we already could do that, based on table formats as she wanted, with configuration macros: [TableBeforeMacros] columns2=<$$[Tables]StripTable=1> [TableAfterMacros] columns2=<$$[Tables]StripTable=0> David Fass reported that when using [HTMLStyles] Raw, the paragraph still contained anchors. We changed that so that any such anchors are postponed to the next non-Raw paragraph. Mark Melvin was getting a crash that we couldn't duplicate until we replicated his directory structure exactly. Then we found it was caused by a path that was exactly 128 chars long in the header of the .lst file, which caused a bogus empty line to become the first file name. We increased the size of the line buffer for that file. We corrected a problem with updating links to split files, where the name of the split file is not known in advance. Our fixup method replaced the whole href attribute, even if it contained a path that should have been retained. We now change only the filename (and hash, if any), retaining the original path (including CHM-type paths). Céline Deguire wanted to convert some names to lowercase and change spaces in them to underscores. We realized that a few more macro expression operators were needed to do that easily, so we added: lower Converts its operand to lowercase: ($$string lower) upper Converts its operand to uppercase: ($$string upper) replace with Converts each instance in its first operand of its second operand to its third operand: ($$string replace " " with "_") In the process, we also noticed problems with the strip operand and the ternary conditional expression (x ? y : z) and fixed those. We have added support for the display of Frame condition indicators, such as color, underline, and strikethrough, in HTML/XHTML outputs using CSS: [ConditionOptions] ; UseConditionalFlagging = No (default, do not include flags) ; or Yes (set flags per conditions) UseConditionalFlagging=No ; CSSFlagsFile = name of CSS file to use for flagging classes for ; HTML outputs. If not specified, related settings below ignored. CSSFlagsFile=flags.css ; WriteFlagsFile = Yes (default, write in output directory) or ; No (do not write) WriteFlagsFile=Yes ; ReferenceFlagsFile = Yes (default, reference after main CSS file ; in output document head) or No (do not reference). ReferenceFlagsFile=Yes Shortly after we did that, Grahame Fuller posted on HATT asking if we had a way to assign classes based on Unicode character ranges. We didn't, but could see how with a bit more work the condition class mechanism could be used for that too. So we added: [CSS] ; UseCharRangeClasses = No (default) or Yes (to activate use of settings ; in [CharacterRangeClasses] for marking spans by Unicode char range) UseCharRangeClasses=No [CharacterRangeClasses] ; starting U+ code point (four or five hex digits) = class name, ; - (exclude from all classes), or * (allow in any class). Class ; applies to the character specified and all following to the next ; setting. Any text after the first word or symbol is a comment. ; The initial state is * (for allow in any); the last should be -. 0021=latin common symbols 0030=* digits 003A=latin alpha, some symbols 00A5=* Yen sign 00A6=latin latin-1, diacritics, more non-asian 2000=* lots of punctuation 2E80=- rest of the world The example is for Grahame's case, where he wanted to flag the English remaining in a Japanese translation, so that a better set of glyphs could be used for it than are provided by Mincho or other Japanese fonts. But the feature clearly has broader uses, like this example that flage Cyrillic in an English doc: [CharacterRangeClasses] 21=- 400=russian 514=- 2000=* 3000=- Gord Douglas ran into trouble creating a CHM from Frame 8, in Russian. HTML Help does not support Unicode well, even in the topic pane where it may appear to. We added conversion from Unicode to the Windows code pages that HH does support, based on the existing HelpFile Language setting: [MSHtmlHelpOptions] ; HelpFileLanguage = LCID to put in project file, default is for : US English. Note that even if the .chm is being used in other ; locales, this setting is required for the HelpFileTitle to ; display instead of just "HTML Help". The supported locales ; are 0x409 English, 0x408 Greek, 0x419 Russian, 0x41F Turkish, ; 0x405 Czech (used for Central European), 0x411 Japanese, ; 0x404 Chinese (Traditional), 0x804 Chinese (Simplified), ; and 0x412 Korean. Each sets an associated code page for all ; files, and overrides [HTMLOptions]Encoding and XMLEncoding. ;HelpFileLanguage=0x409 English (United States) With the wonderful assistance of Grahame Fuller's colleague Judy Bayne, without whose expertise in Japanese Help we would have been lost, we also added Asian code page support for HTML Help. This required two more DLLs, which are now in the Beta section as icu401.zip (about 6MB). They should be unzipped and installed in \windows\system32. Note that if you are not using Japanese, Chinese, or Korean code pages, you do not need them. In addition, Naomi Yamamoto, working with Judy on this, saw that when we inserted commas in the index when combining levels, we were using Latin commas, even when the text was Japanese. We've corrected that, so that when the Japanese locale is in use, we add the Japanese double-byte comma U+3001 instead. Michael Limanni at IBM reported a problem in DITA output, where if a stripped table immediately followed the topic title, the body element was closed after it (and reopened for the following item). This happened because we were deciding what wrapper elements to close based on the current level, and since the body wasn't open yet, that was the topic level. We decided to remove the automatic closing for stripped tables, so that the normal parenting mechanisms determine what to close. Michael also wanted to replace overline and changebar overrides with DITA tags so that he could map them to @rev attributes. We added those as "pseudotags" for him: [Typographics] ; UseTypographicStyles = No (default) or Yes (use tags below if set UseTypographicStyles=No ; typographic tag (b, i, u, strike, sub, sup) = tag to use instead, ; possibly followed by attributes. Replaces overrides if used ; while [HTMLOptions]AllowOverrides=Yes, UseTypographicElements=Yes, ; and UseFormatTypographics=No. Both "over" for overline and "chbar" ; for changebar also are usable as pseudotags here. Then Michael noticed that when he used the setting to add IDs to all elements (needed by InVision), he occasionally got duplicate IDs for tables and the element interpolated as parent for them. We've fixed this bug. Michael had another project that contained tables with lots of empty cells, for which he did *not* want the empty paragraphs in them to appear. So he set RemoveEmptyTableParagraphs=Yes in [Tables]... but that resulted in some graphics in those cells also disappearing, which he wanted to keep. The reason was that the graphics were run-in to the (empty) paragraphs, so when the empty paragraphs disappeared, their graphics did too. We consider this to be correct behavior, but to accomodate Michael we added: [Graphics] ; RetainRuninImagesForEmptyParagraphs = No (default) or Yes (for IBM) RetainRuninImagesForEmptyParagraphs=No Gary Etzel told us that in his CHM index, many entries were acting like See Also entries to other parts of the index instead of going to the content they were meant to reference. He was using Structured Frame, and it turns out that we were incorrectly deleting the IDs of the index entries when they immediately followed a structured cross-reference. We've fixed this bug. Alison White discovered that when she had an xref or hyperlink in a table, the title attribute she set for the table in a marker was ignored. Without the link, it worked. An error in the code that checked for link attribute markers was removing all other attribute markers as well. It's fixed now. **For RTF (build 293c), Adrienne Conway sent us a Word RTF file that would not open in Word. We found that a chunk was missing from a table title autonumber; a similar bug affected header autonumbers. We fixed these coding errors. We also modified conditional table row processing as required to work with the new design introduced for DITA conditional attribute support for table rows in the HTML module. Michael Long reported that when [WordOptions]Template was set, the formatting did not work very well. We had "optimized" it for use with Word templates by removing most of the original formatting, just leaving format names. This was a bad idea; we've backed it out. Ian Saunders used [WordStyles]Delete to remove a format, and got a crash. It turns out that we were still doing some autonumber processing on deleted formats. We stopped doing that. For MIF (build 207a), we changed the way conditional table rows are processed to solve some of Seraphim Larsen's problems. For the plugin (m2rbook, build 111a), Blane Dabney reported that when he produced PDFs using runfm for some files, he got only a .ps, not a PDF, if Print to File was set. This is actually correct, but not likely to be what anyone really wants, so we now set Print to File off for PDF output. In addition, he saw conflicting settings for Acrobat, where both Generate Acrobat Data and Start Page were selected. We now ensure that print is always set for All Pages. =======================================================================