Release: Xdata 6/7/126.96.36.199 for QuarkXPress 6/7/8
These notes cover all the 6/7/8-series Xdata releases.
Changes for Xdata 6/7/188.8.131.52
- Enabled the “Unicode” text encoding import option under QuarkXPress 8 (was only present under QuarkXPress 7).
- Fixed a problem where attempting to import a missing picture could produce a filename with trailing garbage characters in the Picture Usage dialog. (QuarkXPress 8, Mac OS X only)
Changes for Xdata 6/7/184.108.40.206
- Fixed a problem where the text in continued headers could be truncated.
Changes for Xdata 6/7/8.4.1
- Added new
aspectratiofillkeyword for positioning pictures which determines the scale in each dimension where the picture would just fit the box, applies the larger of the two to both dimensions (maintaining its aspect ratio), and then centers the picture in the box. Chances are good that some part of the graphic will be clipped, but there won’t be any white space “left over.” Example:
«set picpos of picture 1 to aspectratiofill»
This placement method is also available in Xdata’s General Preference dialog’s
Default Picture Position pop-up as Center, Size to Fill, w/o Distortion.
- Added support for Xcatalog’s new Unicode-supporting links. Documents built using this version of Xdata will require the use of Xcatalog 6/7/8.3.2 or later to properly view or manage any contained links.
- Added support for
<\z>, QuarkXPress 7’s undocumented zero-width space special character tag.
Changes for Xdata 6/7/220.127.116.11 (never publicly released)
- Fixed a problem in QuarkXPress 7 where applying a master page could leave the document’s active text thread in an invalid or incomplete state.
- Fixed a problem where non-tagged continuation text in headers could fail.
- Fixed a problem where soft hyphens appearing in a prototype weren’t being ignored in QuarkXPress 7/8 like they were in QuarkXPress 6.
- Addressed an issue where using keep-with-next in combination with anchored boxes was sometimes causing the imported text to flow incorrectly (each keep-with-next text block would jump to a new page).
Changes for Xdata 6/7/18.104.22.168
- Loosened a longstanding requirement that the character formatting of each Xdata statement, including the enclosing chevron marks (or chevron mark and paragraph mark), be consistent. The character style of the statement’s opening chevron mark is now what’s carried over to the formatted data record, and the formatting of the statement’s remainder is essentially ignored. We hope that this change will alleviate some of the frustration associated with writing and maintaining Xdata prototypes.
- Shrinking boxes to fit their content, which stopped functioning back in the 6/7.3.1 release, now works again.
- Fixed a problem introduced in 6/7.3.1 where subfield delimiters other than the (default) group character were being ignored when importing data from a file.
- Styled fields using
<@$p>will now properly restore the current paragraph’s character style when imported in QuarkXPress 8.0.
- Addressed an issue in Windows XP and Windows Vista where some users were being asked to reenter their serial number every time they launched QuarkXPress. (License information is now stored in
HKEY_CURRENT_USER\Software\Em Softwarerather than
HKEY_LOCAL_MACHINE\Software\Em Software. Note that this change will not affect existing installations.)
Changes for Xdata 6/7/8.4
- Added support for QuarkXPress 8.0.
- Added support for QuarkXPress 7’s picture background color settings (for line-art images) and changed Xdata’s default picture background color from white to none so that line-art images import with a transparent background as they did pre-QuarkXPress 7. (QuarkXPress 7+ only)
- Added full Unicode support for hidden marked text, headers/footers, story names and sub-story names.
- Added full Unicode support to the
askstatement. (QuarkXPress 7 only)
- Picture boxes that fail to load content will now appear with a large “?” for content, and the missing picture’s name will appear in the picture usage pane.
format(number, pattern)number formatting function (also abbreviable at
fmt), which works as follows:
- number is given as a string, containing a raw number to format.
All characters other than “-“, the decimal digits, and the decimal marks are removed from the string before processing. Any digits found before the first decimal mark are used as the “whole” part of the number, and any found afterwards are used as the “fractional” part.
- pattern is given as a string, containing the pattern describing how to format the given number, in a form similar to Excel numeric format strings. Some examples:
- Number, whole part only: “-#,##0” or “-0”
- Number, fractional part only:”.#” or “.00”
- Number, both whole and fractional part: “-#,##0.#” or “-0.#”
- Dollars and cents (2-digit precision for the fractional part): “-#,##0.00” or “-0.00”
- Social Security: “000-00-0000”
- Phone number: “000-0000” or “(000) 000-0000”
- Zip code: “00000-0000” or “00000”
(Date, time, and scientific formats are currently not supported.)
There are several characters that are treated specially when they are found in pattern: “-“, “#”, “0”, the (locale-dependent) thousands separator, and the (locale-dependent) decimal mark. Any other characters found in pattern will be placed literally, without further processing. The “-” character is treated differently only if it occurs before any other special character. If this is the case, then it will appear in the output only if the number given is negative. The “-” sign is never displayed unless it appears in the pattern. The first decimal mark to appear in pattern acts as a divider between the whole number pattern on the left, and the fractional number pattern on the right. All other decimal marks are treated as ordinary characters. All instances of the thousands separator are ignored, except that if one appears, it indicates that that mark should be inserted after every third digit in the whole number output, starting from the right.
The “0” and “#” marks are placeholders for the digits given by number. “0” is a hard placeholder (always must appear, “0” if no data exists), and “#” is a soft placeholder (appears only if there is a corresponding digit in number).
In the whole number pattern, placeholders are filled right-to-left. Any digits that do not have a placeholder are placed immediately to the left of the first placeholder found in the pattern. If no placeholder exists, then all the whole digits in number are ignored.
In the fractional number pattern, placeholders are filled in left-to-right. The number of fractional digits displayed must always be between the bounds [number of hard placeholders, number of placeholders]. If the number of actual digits falls between these bounds, then the digits will all be displayed and any extra soft placeholders will be removed. If digits are truncated because not enough placeholders exist, then the portion that is kept will be rounded, except when all its digits are “9”s, in which case the extra digits are simply truncated (The fractional part of the number is never allowed to carry over to the whole part.)
The decimal mark itself will only be displayed when both the whole number portion of the pattern is not empty, and data exists in the fractional part of the output. This behavior allows the format
function to be called separately to output the whole and fractional portions of number, e.g.
$«format(price, "-#,##0")».«format(price, ".00")»
".00"(in the second call to
format) won’t be output, since the whole number portion is empty.
- number is given as a string, containing a raw number to format.
- Added support for anchored tables.
Tables can be built in Xdata by inserting a table “fragment” (an anchored table of 1 or a few rows) directly into the prototype. The table template is just a regular XPress table with Xdata prototype code (or regular text, or nothing) in each of the cells. A table will be inserted into the main text flow whenever a table template is encountered during the import.
Xdata will copy all styling and other attributes found in the table fragment, including the size of the original cell unless its autofit setting is enabled. Xdata enhances the cell autofit setting so that
the cell will shrink to fit whatever content is produced by its prototype code. Xdata will never allow the imported box to exceed its prototype’s box’s size (the maximum autofit size is set to its
Xdata can piece tables fragments together so that large tables can be built from individual records in the prototype. Every time a table fragment is encountered while evaluating the prototype during import, Xdata checks to see if the last-created item was also a table. If it is, and the number of columns are equal, then the new fragment is merged into the previous table. Attributes common to the previous table and the new fragment (column width, column autofit, and the separating grid line) adopt the setting of the previous table.
Note that if any text intervenes between a previous table and the next table fragment, the two fragments will not be merged.
QuarkXPress does not automatically break anchored tables over column and page boundaries, so the prototype should not produce built-up tables larger than the column height of the main text
QuarkXPress doesn’t allow table headers/footers in anchored tables, so the prototype will have to have include logic to include such headers/footers using normal table fragments.
- Added per-import preference settings to the Xdata > Import from File… dialog. When selecting a data file, the data format (comma- or tab-delimited), the character encoding (WinLatin, MacRoman or, in QuarkXPress 7 only, Unicode) and the range of records to import may now be changed just for that import. Any changes made to those settings are active for that import only; the dialog will revert to the document’s import preference settings (Xdata > Preferences > Data…) the next time it is displayed.
- Added support for background blends.
- Xdata now supports anchored text boxes (single- or multi-column) containing arbitrary sub-prototypes (i.e., you can put any text, static or dynamic in the anchored text box), including shrinking the resulting box to fit in vertical, horizontal, and simultaneously vertical/horizontal fashion.
To import an anchored text box, simply place a text box of the maximum size needed into the prototype. This box may itself contain prototype code so that its contents will be dynamic. By default, the imported text boxes will not be automatically shrunk. This default can be overridden with a “set” command. Eight new symbols have been added to accommodate the text box auto-shrink features. The format of the set command has been extended to allow statements in this format:
set fit of textbox / textframe boxnumber to fithv / fith / fitv / manual
textframeare synonyms, and
numberis the text frame index in prototype (counted separately from picture frames), and
fitv(the default) shrinks the box vertically as far as possible without overflowing;
fithshrinks the box horizontally as far as possible without overflowing. This option is very time consuming when there is any line wrapping or the text box contains multiple columns;
fithvshrinks the box as far as it can, both vertically and horizontally, without causing any line wrap or overflow;
manualturns off all auto-shrinking.
Note that the symbols
pictureframehave been added as synonyms of
- Fixed a styled text import problem which could cause Unicode data to be
put styledincorrectly (where a bullet might be output as a quote character, for example).
- Fixed a problem where opening a document on a Mac/Intel machine that had previously been saved on a Mac/PPC machine (or vice versa) could cause Xdata’s import settings to display as invalid values. (QuarkXPress 7+ only)
- Worked around a problem (with the built-in DropShadow XT) that was causing imports containing anchored text or picture boxes to be extremely slow. (QuarkXPress 7 only)
- Fixed a headers/footers updating problem where text in (non-hidden) marked text was not being transferred properly, resulting in hidden spaces between each character of the resulting header’s text and the garbling of “special” (non-ASCII) characters. (QuarkXPress 7 only)
- Fixed a problem where saving documents in QuarkXPress 7/Windows would always corrupt named box names. (QuarkXPress 7/Windows only)
- Worked around a problem where QuarkXPress refused to load pictures that had a slash (“/”) in their filename.
- Fixed a problem where import preference settings (Xdata > Preferences > Data…) could display incorrectly for documents created prior to QuarkXPress 7. (QuarkXPress 7 only)
- Corrected the use of ellipses in Xdata menu entries.
- Fixed a crash in header/footer updating under QuarkXPress 6 for Windows.