* 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.
* ClassPag handles single quotes and other special characters better in image names.
* The product configuration screen "Ad and Class Conversions (continued)" has a new field "Sort file Agency extends Description" to make the currently unused Agency field in 0-based columns 288-319 of the sort file a continuation of the description field in 0-based columns 72-101. Setting this field allows you to pass longer ad image names in the sort file. Trailing spaces in the description are preserved when appending the agency.
* The MIR interface has improved date parsing.
* Fixed a problem where banners that require an exact page from the back of the session could be placed if the calculated page number was negative.
* Banners now remember their requested page if you unplace them.
* ClassPag now allows full width ads with specific page requests to ignore bottom requests. When several full width ads request a bottom position on the same page, ClassPag now places all of the ads instead of placing just the first and leaving the others on overflow pages.
* Updated the banner configuration screen's tool tips for the template flags.
* Fixed a problem where ClassPag could place a square-off bottom banner below an ad that was manually placed in the requested position of the square-off.
* Improvements to the MIR interface.
* On products with market code classes, when "Place at top of columns" or "Place parent at top" on the "Classified Heading Placement" screen of the product configuration is set to "LEFTMOST", if a page has a market code block on the left and normal ads on the right, ClassPag will now place a column header above the leftmost column with normal ads.
* ClassPag can now import bill-only ads. The sort file has a new "BO" position request. The SCS Product XML can specify "bill_dummy" as "Bill". ClassPag will not place bill-only ads and will not include them in area estimates.
* The ad list windows in the page display will not let you drag killed or bill-only ads. Unselect "Search for running ads" to see bill-only ads.
* Fixed a problem where changing numeric values on product configuration screens on or after "Margins between Pages when Printing" could produce a warning about an expression error.
* Fixed a problem where ClassPag would not add previews to banners. ghostscript 9.22 and higher no longer provide a number of scripts, including quit.ps. pstoepsf.sh and some other ClassPag modules now use '-c quit' instead of quit.ps.
* Fixed a problem where ClassPag could place legal ad segments out of order in a class has ads with different widths.
--- 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.