* Horizontal pagination on a product with no agate fillers now places leading fillers in unusable spaces. This fixes a problem where ClassPag could place ads out of classification.
* Fixed a problem in horizontal pagination where ClassPag could leave ads unplaced if the horizontal class overflowed the pages in the session.
* Improved wrapping of wave2 ads. ClassPag no longer searches for legs in ads with a bounding box less than the width of a column. This makes ClassPag more tolerant of single-leg ads that do not draw text linearly down the ad. ClassPag now ignores positioning commands for drawing lines. This prevents non-linear underlines from creating wrap points.
* If "Scatter Fillers in Column" is enabled with horizontal pagination, ClassPag will shift fillers in their row to try to prevent placing two fillers consecutively in the same column.
* Fixed a problem where ClassPag did not place a header over a filler in horizontal pagination directly below a banner that was not in a horizontally paginated class.
* Improved the placement of multi-column class headers. ClassPag would sometimes create an extra row of class headers.
* When a banner defines a class header using "Split Overflow" of "C" for "Class", ClassPag now makes the header available as a column header in more places. If the class header should be used only in-column at the start of the class, use "M" for "Main" header.
* SCS 4GL applications, including ClassPag, are now updated to the next major version of the tiff and jpeg libraries. This increases the number of supported tiff preview formats in ads.
* More improvements in the placement of multi-column agate ads and headers.
* The "Classified Heading Specifications" screen of the product configuration has a new field "Equalize Header Depth" to adjust the depths of class header images entered as banners. If this field is set, if you load multiple versions of a class header as banner images, ClassPag finds the image with the smallest depth and sets all of the other images for the header to that depth if they are within the "Equalize Header Depth" of that image.
If you have configured ClassPag to combine small class headers into a wide header, it is important that the class header images for each width have the same depth. If you made the class headers manually and some headers are a few points deeper than the others, the "Equalize Header Depth" will reduce the larger headers so that ClassPag can place wide headers more easily.
* When ClassPag combines small headers into a wide header, if there is no wide header of the total width that fits in the space of the small headers, ClassPag now leaves the small headers. ClassPag used continue searching for wide headers with less than the total width, which would leave columns with no header.
* More improvements in the placement of multi-column agate ads and headers.
* The "Classified Heading Placement" screen of the product configuration has a new field "Place grand parent" to place grand parent headers at the tops of columns whenever placing parent headers.
* ClassPag combines small class headers into wide class headers in more cases.
* ClassPag has a new command "Position -> Combine headers" that combines class headers on the current page. This can be useful to clean up headers after you have dragged ads. This command ignores locks so you can use it after locking line ads on a page.
* Fixed a problem where a segmented ad that started a column that didn't have enough space for a full ad would sometimes not have a class header.
* This release of ClassPag is the first to be built with gcc-7.1.0.
* Autoscrolling in the page view now requires dragging further above or below the page area. Use the cursor icon change to tell when you have dragged far enough. This fixes a problem where autoscroll made it hard to place small ads at the top of a page.
* When the configuration allows ClassPag to combine class headers, ClassPag now considers that an in-line header is not required if a wide header from the same banner is already placed. This fixes a problem where locking the first page of a multi-page class could cause ClassPag to flow in-line headers at the start of the first unlocked page.
* Fixed a problem where mapclass could have uninitialized variables if Composition was not running.
* Improved the outext XML output. If it can not locate ads, it now shows the first few ads that it could not find, and it continues writing the XML.
* The outext XML can now locate fillers in linked products and now no longer tries to locate leading fillers created internally by ClassPag.
* Fixed a problem where locking the first page of a multi-page class could cause ClassPag to flow in-line headers at the start of the first unlocked page.
* Fixed a problem where ClassPag would sometimes not flow line ads over pre-placed banners.
* ClassPag now checks the Liner Flow Depth when placing small one-column display ads.
* When ClassPag places display ads during normal dummying, it now tries to stack equal width ads in sort order.
* Fixed a problem where ClassPag could raise line ads above the Liner Flow Depth.
* The "Display Ad Specifications" screen of the product configuration has a new field "Line up ads above... Second ad" to control how ClassPag justifies columns of line ads above banners and multi-column display ads. When "Line up ads above wide ads" is enabled, ClassPag aligns the first row of line ads above the banner or display ad and then adjusts the second row of line ads to their configured leading above the first row. This produces cleaner pages in columns with many line ads, especially when the line ads are all about the same size. Set the new "Second ad" field to "N" to disable the alignment of the second row of ads, which leaves the space distributed equally between the ads. This produces better results on pages where only a few line ads fit over square-offs or large display ads.
* ClassPag now tries to place fillers in more situations where a column of line ads is above a banner or multi-column display ad with an island position.
* ClassPag now considers a filler compatible with a line ad if the filler is in the parent class of the line ad and the parent class does not have a class header.
* This release of ClassPag is the first to be built with gcc-7.2.0.
* ClassPag now tries to equalize the leading in more situations where a column of line ads is above a banner or multi-column display ad with an island position.
* The "Randomize"/"Aleatorio" field of the classification database has a new value "Q" to prevent the class look-ahead from entering a classification. Use this if you have set a class look-ahead but have some special classes that need to remain separate.
Class headers in classes that stop the class look-ahead will show "StopClsLA" "Yes" in the box information window.
* ClassPag now implements the new material_id item in the SCS Product XML.
When reading an XML, if file_name_ref is empty, ClassPag will check the material_id. When writing an XML, ClassPag writes the image name (without a path but with an extension) to material_id.
ClassPag no longer writes file_name_ref, ad_vendor_id, or material_id items for internal ads.
ClassPag no longer writes eps_file_starting_offset and eps_file_ending_offset when they are 0.
* Fixed a problem where line ad classes could flow out of order below island ads.
* When ClassPag checks to flow line ads on a market code page, it now places fillers only if it has already started flowing line ads for that market code. This fixes a problem where a class nesting that flowed normal classes before market code classes could place fillers above island ads on market code pages.
* Fixed a problem where ClassPag would sometimes not write banners with long names in the XML.
* Fixed a problem where ClassPag would squeeze pages if it had to rebuild a page and the free space in a column was less than the difference between the worst case leading and the configured leading for the last ad.
* runcpag.sh has a new "perfr" option to show operating system level performance statistics using the "record" option of the "perf" utility.
* Improved the flow of normal line ads on market code pages. ClassPag will flow line ads and not place fillers in more situations.
* Fixed a problem where ClassPag could move island ads.
* Improved justification of line ads over manually placed island ads.
* runcpag.sh has a new tmppwd option to write the log file in /tmp/pwd/ instead of /tmp. This preserves the log when several sessions run at once.
* parallelized the regression tests in testcpag.sh.
* Changed setup.sh to restore SCRATCH if spicedef changes it.
* ClassPag now implements the description item in the SCS Product XML.
* This release of ClassPag is the first to be built with gcc-7.3.0.
* When ClassPag loads placement records, if it does not find a display or agate filler, it no longer retries using the first 10 characters of the ad number. This fixes a problem where killing a filler on a locked page could replace the killed filler with another filler with a similar name.
* Fixed the XML interface. It shifted the flags starting at column 128.
* Updated the CLA interface. Increased the number of commands supported by the SCS code from 10 to 20.
* The MIR interface now handles longer lines and has better tag parsing.
* The Ads -> Display Ads list on the Statistics screen now has horizontally scrollable lists that show additional fields.
* Fixed a warning about a missing sort file when importing an XML file.
--- Screen captures ---
Version 10.12 changes
Improved horizontal pagination.
Version 10.13 changes
Scattered fillers in horizontal pagination.
Version 10.14 changes
Improved header placement under banners.
Version 10.17 changes
Configuration for the new "Equalize Header Depth" parameter.
Version 10.18 changes
Example placing grandparent class headers above parent headers.
Configuration to set the "Place grand parent" parameter.
Version 10.25 changes
Improved justification of line ads above an island ad.
Configuration of the "Line up ads above... Second ad" parameter. This should usually be enabled, but if you regularly flow line ads over island ads, you might have better results disabling it.