Version 10.53
* Fixed a problem where ClassPag would not always place column headers below the reservation created by level pages.
* The readcsv interface -rc for reading SHP ADP classified TSV files now skips comments starting with '/', extracts the run date from the SDAT comment, keeps the last part of the image path (which usually has the last two digits of the order), and removes 'adt' extensions from the image path.
Version 10.54
* The product configuration screen "Display Ad Directories" has a new field "Preserve path when importing ads" to preserve sort file image names with paths for missing ads. Also, if the import does not find an ad in the display ad directory, it retries the original image name if the original name has a path.
If an interface sends some ads in a directory built by an expression and other ads with a path, enter the expression as the display ads directory and enter the root of the path in the alternate display ads directory ending with '/+'.
Ending an alternate display ad directory with '+' uses it as a prefix without stripping the path from the sort file.
* Added a getadspng.sh interface script for use as the "Get Ads Command" for the SHP interface.
Version 10.55
* readcsv now parses file name dates with the SHP interface.
* The makenwk.sh interface script has a new -x2 option to preserve the -## suffix in the file name of all ads.
Version 10.56
* Improved the automatic wrapping of PDF ads. ClassPag now wraps some PDF ads that it could not wrap before, including ads that grow down from 0 and ads that have commands before setting the final geometry.
* Updated processxml for new SCS Product XML ad types.
Version 10.57
* ClassPag now supports fractional ad scaling percentages.
This can help when reducing the heights of ad reservations by a precise value.
For example, if you needed to scale ads by 94.5%, you used to have to enter either 94 or 95 as the scale, and a 10 inch ad would end up 9.4 inches or 9.5 inches, which would differ by 0.05 inches (3.6 points) from the desired depth of 9.45 inches. You can now enter a scale factor of 94.5.
This change covers ad scale factors in the control record, in class records, and in the product configuration.
Version 10.58
* Updated "Pages->View page dummies" to work with PGLAdBoss v15.
* Updated the page display module to the version used by Layout.
This adds some additional Spanish translations.
Version 10.59
* The Setup -> Set Ad Colors window has a new DRAGGED context to assign a special color to dragged ads that are not locked.
* The SHP getadspng.sh interface script now accepts any three letter extension.
Version 10.60
* The DRAGGED color now overrides the class color.
Version 10.61
* The dialogs in Setup -> Set Class Colors and Setup -> Set Ad Colors no longer require setting all color entries. This makes it possible to use one method for setting borders and another method for setting backgrounds.
* The Setup -> Set Ad Colors window has a new "Apply Class" field that controls how the ad color interacts with the class color. The values are
BEFORE = apply the class color first and then the context color on top of it
AFTER = apply the context color first and then apply the class color on top of it
DEFBEFORE = like BEFORE but might ignore the class color based on product configuration settings
DEFAFTER = like AFTER but might ignore the class color based on product configuration settings (this is how ClassPag used to work)
DEF = same as DEFAFTER or leaving the field empty
NONE = do not apply the class color
* Updated the gs script in gs4-dist/gs4. The new script starts with "#!/bin/sh" instead of ":" and works better with some applications. If DISPLAY is not set, the new script no longer defaults to the vga device, which we no longer build into gs. If you have a /usr/local/bin/gs script, consider updating it with the new script.
Version 10.62
* The "Just" field in page name records (to control square-offs) has a new value "MFEXP" that works like "MEXP" to build pages to the specified width and height, but "MFEXP" only expands the height of full pages and leaves the partial page with normal leading.
* Square-offs that request a vertical overflow page now work better.
* The SHP getadspng.sh interface script now removes log files.
* The minimum supported operating system is now CentOS 6.
Version 10.63
* ClassPag places multi-column fillers in more places.
* The "Just" field in page name records (to control square-offs) options that expand square-offs now work better. Interactions with other options could have left some pages unexpanded.
Version 10.64
* ClassPag no longer strips image file name extensions that end with a dot and digits. This fixes a problem where ClassPag would not find ads with file names like '123.2.eps'.
* Square-offs can now request a page from the back by using a negative first or last page.
Version 10.65
* ClassPag now supports PDF images and dinks in live banners.
Expressions can write a file name into O_CPagCheckCacheImage and then read the result from I_CPagCheckCacheImage. ClassPag will search for the file.
If the file is EPS, ClassPag will return the full path.
If the file is PDF, ClassPag will return an EPS that Composition can use.
For example, to generate Composition to place an image, use
(O_CPagCheckCacheImage := "/u/displayads/autoa";
((I_CPagCheckCacheImage = "")? "":
("<zl 172t,171t,LogoFile:" // I_CPagCheckCacheImage // ">")))
To generate Composition to place a dink, use
(O_CPagDinkName := "9"; O_CPagCheckCacheImage := I_CPagDinkName;
((I_CPagCheckCacheImage = "")? "":
("<zl 172t,171t,LogoFile:" // I_CPagCheckCacheImage // ">")))
The Composition sequence "<zl,width,height,LogoFile:logo.eps>" places the logo with the specified width and height, which is useful if the logos are not always made to the exact size needed by the banner.
* ClassPag now supports unwrapping and segmenting multi-column ads created by QuarkXPress(R) for Windows 4.11 using the "Auto Segment Ads" value of "QXD4" on the "Legal and Segmented Ad Specifications" screen of the product configuration.
* When ClassPag unwraps and segments ads, it now uses the same test for the last segment of a column for generating pages and for previewing segments. This fixes a problem where the last segment of a column (according to the original wrapping) would show with "view box" but would not show on the page.
* When ClassPag unwraps and segments ads, if the configuration does not say to ignore the bounding box of all ads, ClassPag compares the bounding box of the wrapped EPS with the expected width from the number of columns that it detected in the wrapped EPS. If the results are within 25%, ClassPag scales the EPS according to that number of columns instead of scaling it to the width of 1 column. This fixes a problem where unwrapped segmented ads would be compressed by 50% or more. If the results are not within 25%, ClassPag leaves the ad unscaled, guessing that either the gutters in the EPS are not in proportion or that the EPS width is set to a large fixed value (in which case it is better to configure ClassPag to ignore the bounding box).
* Updated the SHP getadspng.sh interface script for a new naming convention.
Version 10.66
* ClassPag no longer does as many checks for missing images on middle segments of autosegmented ads, since all of the segments point to the same image. This greatly reduces the number of image searches on products with autosegmented ads.
* ClassPag now expands '$' environment symbols only at the start of file names instead of anywhere in file names. This saves an extra scan over every file name that ClassPag opens.
* When ClassPag checks for conflicts from segmented ads that cross page boundaries, it now shows the conflict only in segments near the page boundary instead of every segment.
* When ClassPag counts ads with missing images, it now checks the image of autosegmented ads only once.
* Improved "QXD4" segmentation. It now detects break points on lines that start with negative letter spacing.
* Fixed a problem with negative leading in Composition introduced in the previous version.
Version 10.67
* ClassPag now lines up ads if there are only two ads in the stack. It used to require more ads to divide the leading more ways.
* ClassPag distributes space a little better on squeezed pages with several one-column ads at the top of a column.
* ClassPag places multi-column fillers below ads in more cases instead of leaving them at the top of the ad stack.
* Updated SHP interface run date parsing in readcsv.
Version 10.68
* When "Justify Proportionally" (on the "Vertical Spacing Specifications" page of the product configuration) is turned off, ClassPag now equalizes the leading between one column ads more accurately.
* The "Classified Heading Specifications" page of the product configuration has a new field "Fixed leading below" that keeps the leading below class headers inside columns at the default value when "Justify Proportionally" is turned off. The default value of the field is "N" to add space below class headers when justifying columns of ads.
* ClassPag now aligns tops of pages better that have columns that start with two class headers.
* Fixed a problem where the process to align ads at the bottom of columns or above multi-column ads could shift extra leading high enough in the ad stack to affect the alignment of ads near the top of the column.
Version 10.69
* Improved justification of one column ads on the top stack when "Justify Proportionally" is turned off.
* Improved justification of single column class headers between wide ads. ClassPag no longer sometimes raises the headers up to the ad above them.
* Improved justification of single column ads above a single column island ad.
* The product configuration field "Line up ads above wide ads... Second ad" on the "Display Ad Specifications" page now defaults to "N" because it creates an inconsistent look with both proportional and equal spaced vertical justification. Also, ClassPag now ignores this field of "Line up ads above wide ads" is "N".
* Fixed a problem aligning ads above wide ads where the second ad from the bottom could end up with too much space above it.
Version 10.70
* The "Add Leading" field in page name record (to control square-offs) has a second option to set leading between one-column ads. "YES", "DEF" and empty are the default and place leading as before. "MIN" reduces the leading to the configured leading and leaves any extra leading above the bottom ad. "MIN" can be useful to produce grids if the ads have modular sizes. "MIN" will not have its full effect on squeezed pages in columns where ads have less than their configured leading.
Version 10.71
* Improved the page name "Add Leading" "MIN" setting. When a column has a wide ad at the bottom, the leading now goes above the wide ad. When a column ends with a class header and a single ad, the leading now goes above the class header.
Version 10.72
* The "Flow parent under display ads" field on the "Classified Heading Placement" page of the product configuration no longer places a 1000 parent header if the top ad has class structure 1000 -> 1200 -> 1240 and the ad below it has class structure 1000 -> 1400. This fixes a problem where ClassPag could place unneeded parent headers.
* ClassPag is more consistent placing parent headers and main headers during drags when the product configuration requests them.
Version 10.73
* Fixed a problem where ClassPag could place headers at the bottom of a column in products that have only multi-column parent class headers.
Version 10.74
* The "Wide Filler Look Ahead" field on the "Display Ad Dummying Style" page of the product configuration now defaults its the maximum value (currently 100). It used to default to the display ad look ahead. The larger value helps ClassPag find better fillers in products with a large number of multi-column agate fillers.
* Fixed a 4GL issue that could cause postscript errors in banner logos with two consecutive backslashes in their postscript data.
Version 10.75
* Fixed a problem where ClassPag could place ads under incompatible headers when shifting large ads to the tops of columns.
Version 10.76
* The "Screen Display Preferences" page of the product configuration has a new field "Width of Ad Preview Image Inner Border" to set the width of the inner box for ads with preview images.
By default, when an ad has a preview image, ClassPag shows an outer border of 1 pixel in the border color and an inner border of twice the configured border width minus 1 in the box color, and then insets the preview image by twice the border width. This allows you to see both the border and box color of ads with previews.
For users who want a more consistent outer border between ads with and without images, the new field allows you to set the width of the inner border, and ClassPag will create an outer border with the normal outer border width as set by "Width of Ad Borders in Pixels".
Setting the new field "Width of Ad Preview Image Inner Border" to 0 or leaving it empty keeps the default.
Setting it larger than 0 uses that value for the inner border and the normal value for the outer border.
Setting it to -1 creates a normal outer border and no inner border.
* This release of ClassPag is the first to be built with gcc-8.3.0. See http://gcc.gnu.org/
Version 10.77
* ClassPag now joins horizontal cut rules for one column ads above multi-column ads or for all ads when 'Preserve Rule Spacing' is enabled in the product configuration when the ads are not squeezed.
In those cases, the horizontal rule is at a fixed position instead of centered between the ads, so adjacent rules between adjacent ads will line up, even if the ads have different amounts of leading.
* The folio "Rotation Angle" can now be left empty. This makes it easier to modify old folios that have this field empty.
* Added an interface listads.sh script that takes a list of work areas and shows a list of ad image file names used by those work areas, one name per line. The names have no escapes or quotes. Here are examples with xargs and with tar.
listads.sh 1 | tr '\n' '\0' | xargs -0 ls -l | less
listads.sh 1 | tar --verbatim-files-from -T- -cjvf ads.tar
Version 10.78
* ClassPag now fills pages better in classes that have multi-column line ads in several widths. If the current ad is too wide to fit in the current column of the page, ClassPag will now try smaller ads before advancing to a new page.
Version 10.79
* The pagination tool bar has a new "Unkill ads" button. Clicking on the button opens an ad list showing killed ad. Dragging an ad from the list to a page will automatically unkill it. The "Unkill ads" button is hidden by default.
You can enable it by a right click on the tool bar or by setting "Unkill ad button" on the "Toolbar Button Preferences" page of the product configuration.
* Fixed a problem where ClassPag read only the first 6 characters of the 10 character Target Ad field in the sort file.
* Improved handling of target ad requests.
* Fixed an internal calculation with zoned ads.
* Improved recovery when redummying a page does not work.
Version 10.80
* Fixed a problem in the edition parameters form where it would sometimes not create page information records if you changed the page range.
* Fixed an ad depth calculation when clearing pages.
* Aligned titles on three pages of the product configuration.
Version 10.81
* The "Unkill ads" window now stays open after you unkill an ad.
This makes it faster to unkill several ads.
* When you kill ads, if the "Unkill ads" list is open, it refreshes to show the newly killed ads.
* Facing page requests now work more dependably when only one of the ads has an even or odd page request. ClassPag now assigns the opposite request to the facing ad.
Version 10.82
* When you use the tool bar button to kill an ad on a filler or banner, ClassPag now checks that you have edit permission on that item type.
* When ClassPag imports SCS Product XML files, it replaces embedded control characters and new lines in text fields with spaces. This fixes a problem where embedded new lines in text fields could pass through to the sort file.
Version 10.83
* Improved the text conversion when importing SCS Product XML files. This should produce better results on XML files with accented characters.
Version 10.84
* Auto-wrapping of long WORD5 ads now ignores lines that print spaces far away from the current location.
This fixes a problem where ClassPag did not auto-wrap an ad that started by printing a space at the bottom.
* This release of ClassPag is the first to be built with gcc-9.1.0. See http://gcc.gnu.org/
Version 10.85
* The "Start Request"/"Iniciar Solicitud" of the classification database and the classification fixup database has a new value "1" to restart on the first column of the first page. If you have several classes with only display ads, you can place them first, and then use a start request of "1" on the first class with line ads.
* The classification list has a new hotkey "Copy class title to seq number"/"Copiar titulo a orden" to set the sequence number of all of the classes in the open list (i.e. under the parent of the highlighted class) to their title. This can be useful to order a set of classes by their decriptive name.
* Fixed a problem where dummying classes using the Randomize "J" value would not have an effect with multi-pagination or level-pages.
Version 10.86
* ClassPag now supports series ads. Use the position request SR. The target ad should be the ad number of the first ad in the series.
ClassPag extracts the series number from the digit suffix of the ad number. Every series should have an ad with a .1 suffix that starts the series. If the target ad is blank and the ad number ends with a dot and a digit, the series target is the ad number with the digit replaced by 1.
If any ads in the series are placed, ClassPag will try to place the remaining ads on their corresponding pages. If no ads in the series are placed, ClassPag searches for a starting page that satisfies the requests of all of the ads in the series.
The ad information window shows "Target" with the target ad number and its page number in parentheses and "SeriesNu" with the number in the series. If the ad is not on the correct page for the series, the window will show a flag "SERIES_PAGE Pg #", where # is correct page for the series.
If you click the tool bar button "Move all pages of square-off" and drag any series ad, all of the ads in the series will move. The ads keep their column position, so if the new pages have ads, you need to check the pages have enough space in their corresponding columns.
* The loadtape.sh script now ignores pre-installation backups, so if you copy a new kit and then run maketar.sh -p, loadtape.sh will still find the new kit.
* Added a maketarp.sh that makes pre-installation backups of system files, currently /usr/local, /u/comp, /u/scs, and /u/scs_cpag.
Version 10.87
* Series ads with a KY request no longer unflow like line ads.
Version 10.88
* ClassPag has a new "TOP" option to update the sequence number only on top level classes. "TOP" works like "SEQ" on classes assigned to the parent of "******" and like "LOAD" on other classes. This can be useful when the order of the top level classes depends on the day of the week or on the number of ads in the various classes, but the line-level classes have different sequence numbers every day (for example, if the sequence numbers come from a sequential numbering of the classes with ads), so the "SEQ" option could scramble the low level classes.
You can use the "TOP" option in the "Class Loading"/"Cargar de Clases" screen of the product configuration in "Ask to Load Saved Class Nesting"/"Preguntar a cargar nidos de clases" and "Load Import Nesting"/"Cargar nido para importaciĆ³n" and in the second screen of the control record in the three "Fix Classes ... Type"/"Clases Cargadas ... Tipo" fields.
Version 10.89
* The class "Position Request" now supports "SR" series requests.
* Improved facing page requests. ClassPag now checks for enough open space on the page spread and is more careful with even and odd requests.
Version 10.90
* On pages with a mix of multi-column and single column ads, placing a filler at the bottom of a column with a multi-column ad no longer prevents ClassPag from placing single column ads.
* Horizontal pagination works better when an ad blocks the flow. Now only the bad ad goes to an overflow page, instead of all of the following ads, and the bad ad is easier to identify.
Version 10.91
* Merging now works when the main directory has an SCS Product XML.
Version 10.92
* The View Ad Directories command to add a font to composition can now add OpenType fonts if the server has a recent version of ttf2pt1.
Install ttf2pt1 with "sudo yum --enablerepo=epel install ttf2pt1".
ttf2pt1 on CentOS 7 and later supports TrueType and OpenType.
ttf2pt1 on CentOS 6 and earlier supports only TrueType.
Font conversion also requires installing the t1utils package as mentioned in the notes for Version 7.84.
* The View Ad Directories window has a new command "View composition font list" to show the list of fonts installed in composition. This is the same management window that used to be accessible only from inside the command to load a font.
* The "View composition font list" window in the "View Ad Directories" browser has new hotkeys to view a font in composition and to view all fonts in composition. This can be useful to check that fonts are loaded correctly.
* Editor windows now have a new "Command" toolbar button that opens the command menu. This used to require a complicated keystroke because the editor binds F12.
* The editor window "Command" menu has a new option to view ad directories. This lets you browse logos and manage composition fonts from inside the editor.
* If you use the "Select current file" command option from "View Ad Directories" browser inside an editor window, the full path of the selected file will be inserted at the current point in the editor buffer. This makes it easier to enter file names in expressions and in logo calls.
* The Square-Off window has a new "Status" column that shows the results.
Empty means that the square-off is marked inactive or is not in an active class.
"NoAds"/"NoAvs" means that the square-off did not select any ads.
"FewAds"/"PocoAv" means that the square-off did not select enough ads to satisfy the "Minimum Square-Off Ad Area" or "Minimum Square-Off Ad Count" on the "Display Ad Dummying Style" page of the product configuration.
"BadFit"/"MalCal" means that ClassPag could not calculate a good page fill.
"Over"/"Exce" means that the square-off overflowed its reserved area, possibly due to manually placed ads.
"OK" means that ClassPag built and placed the square-off successfully.
* The renamefont.sh utility script now works better with non-ascii characters. This script renames font files to match the name of the font that they contain, which can be useful before loading fonts into Composition or into ghostscript.
* Security changes in ghostscript 9.28 and higher are not compatible with the "PS Type" of "FPS" in Paper Definitions. After updating to gs 9.28, either change "FPS" to "PS" or (not recommended) add -dNOSAFER to the gs options in your viewer.
* Fixed a test in series ad placement.
Version 10.93
* ClassPag now checks for control record privileges when you try to create a new work area or to delete a non-import area. This should help prevent normal users from accidentally removing import folders.
* The privilege database has new fields "Run date param" to control access to the run date and ending date in the edition parameters and "Edition param" to control access to the edition in the edition parameters. This should help prevent accidentally changing the run date or edition with interfaces that always pass correct values. The fields default to "A".
Version 10.94
* ClassPag now does a better job of not splitting segmented ads across pages when "Can Cross Pages" is not enabled.
Version 10.95
* Fixed an issue unwrapping long foldable ads passed as multiple columns.
Version 10.96
* The control file has new fields for the expected sort file paper and edition. If you set either of these fields to a non-zero value, ClassPag will warn if the sort file or the current ClassPag edition has a different value. ClassPag checks the edition of the sort file at the time it was imported, the edition of the sort file currently in the work area, and the currently selected edition.
This can be an important check if you publish several editions per day and need the ClassPag edition, the sort file edition, and the control record settings to match.
The log file records the warnings as CHECK or WARN actions on the control file.
CHECK means that the edition matched.
WARN means that the edition did not match and ClassPag showed a warning.
The message text includes the action (READ, COPY, SAVE, PARAMS or PRINT) and the current and expected values.
Version 10.97
* To change letter spacing / kerning for a small sequence of unjustified text in Composition, for example, text in a folio, use
<xl><pc "/S{{-1 0 rmoveto pop pop}exch kshow} bind def">
<xl> = cancel letter spacing, since that will interfere with the kerning.
<pc ...> = redefine the Composition command to show text strings to move left one point between each character in the string.
Restore normal kerning with
<pc "/S{show}bind def">
* Spanish masculine and feminine ordinals (superscript o and a) now pass through from the SCS editor to Composition to Postscript output. This simplifies using those characters in Spanish ads, banners, and folios. The font must have been added to fontdef with a FNT metrics file generated by Formula Font Creator from Oct 2014 or later. Old fonts will have to be rebuilt to use those characters.
The Composition encoding now places those characters in the same position as the standard encoding so they should work no matter how the font is encoded.
* The NAC interface now maps bytes 176 (B0) and 186 (BA) to the masculine ordinal (superscript o) using <oc 189>, which is the location of that character in the composition character set.
It used to map 176 to a degree symbol, which is a superscript digit 0 instead of a superscript letter o, which is an underscore in the standard encoding.
* Fixed a problem where viewing a file in the directory browser in mapclass could get warnings about undefined variables.
Version 10.98
* The readcsv interface has a new -bc option for LAN BRN classified TSV files.
* The readnac interface now scans fontdef for ordinal characters. It will use ordinal characters when present and the degree symbol and a lower case 'a' when they are not present.
Version 10.99
* ClassPag now supports section relative page requests from the back with the syntax
"/" <section letter> "-" <digit>
For example, to request the third last page of section C, use '/C-3'.
* ClassPag now supports section relative double truck requests with the syntax
"/" <section letter> <code>
where code is "[" for the page before, "(" for the left hand page, ")" for the right hand page, and "]" for the page after.
Since the classified section might not include the entire book, ClassPag first scans the pages in the section to find the first page with extra columns. If no page has extra columns, ClassPag uses half of the relative page number of the last page of the section.
For example, to request the left double truck of section C, use '/C('.
* When ClassPag lines up ads, it no longer tries to align the bottoms of ads with TOP requests at the top of the page.
* The mailrpt.sh script has a new -me option to use the moai sendmail script /u/moai/email/sendmail.py.
* The readcsv interface has a fix for a test for dashes in class names.
* The ELP interface now supports CABE07, 08 and 09.
* ClassPag now supports ads that are HEIF images on CentOS 7 and higher when the heif-convert utility is installed.
* This release has some fixes suggested by the http://cppcheck.sourceforge.net/ static checker.
* This release of ClassPag is the first to be built with gcc-10.1.0 and was validated by its new static analyzer. See http://gcc.gnu.org/
Version 11.00
* The "Legal and Segmented Ad Specifications" screen of the product configuration has a new boolean field "PDF Text Pass". If you set this field to "Y" and if you have a version of pdftops-0.89.0 or later that includes the "-nosplash" option, when ClassPag wraps legal ads, it will scan the result of "pdftops -nosplash". The "-nosplash" option prevents pdftops from rasterizing PDFs with transparencies, which leaves more text for ClassPag to search for possible wrap points.
* The "Import Display Ads From Cardex" field on the "Ad Loading" screen of the product configuration has new values "A", "1", and "2".
"T" (as before) makes all cardex ads into display ads.
"F" (as before) does not warn if there is no cardex.
"A" makes all cardex ads into agate ads.
"1" makes all 1 column cardex ads into agate ads and leaves the rest as display ads.
"2" makes all 1 and 2 column cardex ads into agate ads and leaves the rest as display ads.
* Clean up HEIF support.
Version 11.01
* You can now control whether ClassPag uses generic-edition fillers.
The Editions setup has a new boolean field "Use generic fillers".
The default of "Y" allows ClassPag to use fillers from edition 0.
"N" uses only fillers for the current edition.
This simplifies setting up products where most editions can use generic fillers but a few special editions must use only edition-specific fillers.
* The ClassPag PDF segmentation "PDF Text Pass" option added in the previous release now supports the official pdftops "-rasterize" option.
Version 11.02
* The Product Configuration setup has a new "Copy and Copy All" command that opens a copy of the highlighted product configuration record, the same as the "Copy" command. If you write the record, it then asks to copy all of the records from other tables. This saves the steps of exiting to the main window, selecting the new product, returning to the Product Configuration setup, highlighting the original product, and using the "Copy All" command.
Version 11.03
* When you evaluate a banner composition expression, if any file names are quoted and ClassPag can find them, ClassPag warns if they have binary data.
Layers of type 'I' or 'F', where ClassPag copies in a file, can be binary.
Layers of type 'E', where Composition embeds a file as a logo, do not support binary data other than a preview.
* Fixed a problem where banner rebuilds could show warnings because pstoepsf.sh needed to run grep with --text.
Version 11.04
* ClassPag now supports binary eps files in composition in folios and banners. This requires SCS Composition from August 6, 2020, or later.
* When pstoepsf.sh detects a postscript error, it sometimes removes the original file. pstoepsf.sh has a new -keeperr option to keep the original file after errors to make errors easier to diagnose.
* pstoepsf.sh now reads options from PSTOEPSF_OPTIONS before options from the command line. You can use this to set options like -keeperr.
Version 11.05
* Increased the length of work area names from 35 characters to 45. This allows more flexible naming conventions for newspapers with a large number of products.
Version 11.06
* Work area names can now use the full 45 characters.
ClassPag no longer reserves 5 characters for a "/dev/" prefix.
* Print expressions that use strings like EditionName to build file names can now use f$edit(EditionName,"COLLAPSE,CLEANSHELL")
The COLLAPSE option removes all white space. The new CLEANSHELL option removes characters with special meanings.
* rcpuniq.sh now uses sshpass if you use the -pass option with sftp and scp. It used to require setting up passwordless ssh, which is still better when it is possible. The -pass option can simplify setup if a lot of users need to use a ClassPag print command that uses sftp or scp.
* rcpuniq.sh has a new -port option to set the file transfer port.
rcpuniq.sh also has a new -sshport option to set the port for ssh commands when using scp.
Version 11.07
* Fixed a leading calculation where ClassPag would sometimes not place enough leading above legal ads.
Version 11.08
* The "Legal and Segmented Ad Specifications" screen of the product configuration has a new field "Can Cross Ads" to control whether ClassPag can split legal ads into non-contiguous columns, for example, if a legal ad crosses a page and the following page has a full-page ad. The default value is "Y" to allow splits. Set "Can Cross Ads" to "N" to avoid splits.
* When a class has a mix of one and two column wide legal ads, ClassPag does a better job of placing one column ads below two column ads.
Version 11.09
* The length of user names has increased from 20 to 40 to improve access through Active Directory. If a user name does not have an exact match in the user database, ClassPag will temporarily retry with the user name truncated so if any existing users had long user names, they do not have to wait for system managers to update their name in the ClassPag user database.
* ClassPag now places class headers more consistently over wide agate ads.
* If the control record has expected sort file paper and edition codes and the current data does not match, when you view, print, or save, ClassPag will show a warning message and not continue. The log database will show the WARN action on the control file as before. The message text will have the prefix STOP.
Version 11.10
* The "Outext Export (Continued)" screen of the product configuration has a new field "Save Area Selectable" to control whether users can select a save area if they don't accept the save area generated by the save area name expression. If "Save Area Selectable" is "Y" or empty, users can select any save area as before. If "Save Area Selectable" is "N", users have no other choice if they do not accept the generated save area name. This can prevent errors with workflows that depend on saving sessions with specific naming conventions.
* The "Display Ad Dummying Style (Continued)" screen of the product configuration has a new field "Place Fillers below Headers" to control how ClassPag places fillers in a column where the only choice for placing a filler is over or under a class header. If the field is "Y" or empty, ClassPag will place the filler below the header as before. If the field is "N", ClassPag will place the filler above the header.
* Banner setup windows have a new hotkey "Clear composed postscript" to clear generated postscript in the banner text database. If bantext.dat is large and the system is idle, you can use this command to clean the records and then rebuild.sh to rebuild the database.
* Fixed a problem where ClassPag could split a legal ad into non-contiguous columns.
Version 11.11
* The runcpag.sh and menprof.sh launch scripts have a paginateonly option that can be set to yes or no. 'yes' runs 'Paginate' directly and exits when you close the pagination session. If the control record does not have an import date, ClassPag will import before paginating.
* The runcpag.sh and menprof.sh launch scripts have a productmode option that can be set to yes or no. 'yes' means that the top level menu item to copy a work area makes ClassPag move into that work area instead of copying the files to your current work area. With this option, ClassPag operates on work areas similarly to how Layout-8000 operates on product directories.
* Control records have a new 'PROD' directory type for work areas that correspond to calendar dates instead of to sessions. ClassPag does not let you copy into PROD directories or to save to PROD directories. ClassPag expects that the interface files in PROD directories are managed by an external application.
* ClassPag now warns about unmatched quotes in the output of expressions that do not have composition. This should help catch mistakes in print commands.
Version 11.12
* Improved autosegmenting from PDFs.
Version 11.13
* The "Legal and Segmented Ad Specifications" screen of the product configuration has a new boolean field "PDF BBox Pass". Set this field to "Y" to enable a new method of autosegmenting PDF. This method requires updating to a version of poppler pdftotext 20.11.0 or later that supports the "-cropbox" options.
* Improved the old method of autosegmenting PDFs. This fixes a problem where ClassPag would pick up a temporary change in position and create a long segment followed by many empty segments.
* When ClassPag imports XMLs, if the booking_id is empty, ClassPag uses the ad_vendor_id. When ClassPag writes XMLs, it now sets the ad_vendor_id to the booking_id instead of to the file_name_ref.
* The SCS Extended Product XML for wrapped ads now has the original ad number instead of the internal WRAPPEDAD# ad number.
* runcpag.sh and menprof.sh have a new productdir parameter to specify the root of the work directories. The directory needs to be an absolute path starting with a slash. For example, if the work directories are in /u/data, you can use "runcpag.sh productdir /u/data".
* runcpag.sh and menprof.sh now take the scratchdir without change if the directory productdir + "/" + scratchdir exists. For example, if you have a session directory in /u/data/2020/11/10/Main, you can use "runcpag.sh productdir /u/data scratchdir 2020/11/10/Main". Importing, Copying and Saving will not work if scratchdir has a slash.
Version 11.14
* Fixed a problem where wrapped ads in XML had an internal code in the ad_vendor_id.
Version 11.15
* More changes to the XML for wrapped ads. The ad type is now Agate instead of Display. The file_name_ref and material_id now match the original image instead of the wrapped image.
Version 11.16
* The "Start Request"/"Iniciar Solicitud" of the classification database and the classification fixup database has a new value "B" to start on a new page. "B" works like "P" to start the class on any new, empty page, except that "P" allows compatible ads, while "B" additionally allows top level banners and generic fillers.
Version 11.17
* Page requests now support sections. Use a request of "/" + the section name without a page number, for example, "/B" to request section B.
Version 11.18
* The "Start Request"/"Iniciar Solicitud" of the classification database and the classification fixup database has a new value "S" to start on a new section based on the section request of the initial ads. If any of the ads request a section, if the flow hasn't reached the first page of that section, it will advance to the first page.
* The SCS Extended Product XML output now includes ad records for dinks embedded in banners. It finds dinks embedded by banner layers that either use a dink request (Type "D", Image with the dink id) or an expression (Type "E", Image with an expression that uses I_CPagDinkName).
* The banner text dialog no longer warns about file names on dinks layers.
Version 11.19
* Class records have a new "Section" field with the name of a section to start on. If the flow hasn't reached the first page of that section, it will advance to the first page. The "Start Request" should be empty or "S".
* Composed text in banners is now stored in the current work area instead of in the shared banner database. Banner text records no longer have a "Location" field, and ClassPag builds banners as if every text record had the "Location" of "W". This should reduce the chances of conflicts when several sessions with live banners are active at once.
Version 11.20
* The "Request Checking" screen of the Product Configuration has a new boolean field "Degrade section requests" to control how ClassPag degrades section requests. The default is "N" not to degrade section requests. Use "Y" to degrade section requests so ads that do not fit inside their requested section can try pages after their section. They will still show as conflicts if they are not in their requested section.
* Fixed a problem where line ads with a section request would be dummied instead of flowing in column.
* ClassPag now sets CPAG_ERIC to /u/cpag/eric
Version 11.21
* If a class requests a section by name and the section does not exist, the flow will jump to overflow pages.
* ClassPag expressions can now display a message by writing to O_CPagPopUpMessage, for example
O_CPagPopUpMessage := "Hello"
This can be useful when writing and testing expressions.
* ClassPag expressions can now find the number of agate ads on a page by setting O_CPagClassPageNum and then reading I_CPagPageAgateAdCount, for example,
O_CPagClassPageNum := PageNumber;
O_CPagPopUpMessage := "Page " // PageNumber // " has " // I_CPagPageAgateAdCount // " ad" // ((I_CPagPageAgateAdCount = 1)? "": "s");
Version 11.22
* Improved "QXD4" segmentation. It now works with Quark 8.5.1.
* Setting 'XFontSize def' on the runcpag.sh launcher command line leaves XFontSize unset and lets spice pick a default value.
* The text editor now recognizes text as an expression if it contains "O_CPag" and an assignment statement. It used to check only for starting with an open paren or quote.
Version 11.23
* Fixed a test that prevented changing the capitalization of class nesting names. The nesting names can have mixed case, but the key is case insensitive.
* Fixed a problem introduced in 11.19 where newly created live banners would sometimes not have the composition prolog, which would cause postscript errors.
Version 11.24
* The control record has a new field "Ad Im Load Dir Exp" to set an expression for the directory to scan to convert image files into ads when "Load Ad Images On Import" is enabled. If "Ad Im Load Dir Exp" is empty, ClassPag defaults to the value in "Ad Image Load Directory Expression" on the "Ad Importing" screen of the product configuration.
* Fixed a problem introduced in 11.19 where the editor for composition in live banners would show the composition in the copy in the work area instead of the original template in /u/cpag. The live banner composition and expressions should always come from the templates in /u/cpag, and the generated EPS should be stored in the copy in the work area. For dink layers in live banners, the copy in the work area also stores the ad number in the session that matches the dink request.
Version 11.25
* The "Legal and Segmented Ad Specifications (Continued)" screen of the product configuration has new fields to control the auto segment clip adjustments for ads with images from Quark or PDF. The new fields are "Above Quark Segments", "Below Quark Segments", "Above PDF Segments", and "Below PDF Segments". Positive values show more of the ad above and below column breaks. If the fields are not empty, they override the default adjustment. The new fields can be useful in products that import ads from several sources.
Version 11.26
* ClassPag now counts even/left and odd/right side pages by looking at the book page numbers instead of the absolute page number. This should give better results if you always use 1 as the first page number in the edition parameters and then use Set Book Sizes to set the real page numbers.
Version 11.27
* Updated ERIC interface scripts with a revised dialog and improved site privilege checks.
Version 11.28
* ClassPag updates ERIC session locks when ERIC is enabled.
* The ClassPag pagination screen has a new command F12 -> Ads -> Check for new ads to check with ERIC for new, updated, or removed ads. This currently does not load the changes.
* Set the environment variable CPAG_ERIC_ENABLED to "yes" if ERIC is installed and running, to "em" to emulate ERIC for testing, or anything else if ERIC is not available.
* Fixed a problem introduced in version 11.19 that initialized the "Section" field for classification section requests to "F" instead of an empty string.
Version 11.29
* Update reports for 2021.
* Fix interface error with ERIC.
Version 11.30
* The ERIC function "F12 -> Ads -> Check for new ads" can now load the new ads.
* The /u/cpag/eric/cpag_interface.sh script can now be run from any directory.
Version 11.31
* The "Place wide headers" field on the "Classified Heading Placement" product configuration page has a new value "DISP" to place wide headers on display ads in the middle of a column while still placing 1-column class headers at the tops of columns.
* The ERIC interface script cpag_interface.sh has a new "refresh" option.
Version 11.32
* The "Full page ads can bleed" field on the "Ad Image Scaling" page of the product configuration has a new value "U" for ads that should bleed up over the top of the page. "U" works like "T", except that if an ad is taller than the page, instead of centering the ad, ClassPag aligns the ad at the bottom of the page, and the extra depth flows over the top of the page.
Folios can detect bleeds with the sequence below. See Version 8.88. I_CPagPageBleedTop is in hundredths of points.
O_CPagUserPageNumber := PageNumber;
((I_CPagPageBleedTop >= 100)? "bleed folio": "normal folio")
* Fixed a problem where "level pages" could squeeze out headers over display ads.
Version 11.33
* Update the ERIC API for checking locks and closing sessions.
Version 11.34
* Update the ERIC API for versioning.
Version 11.35
* When auto-saves are enabled with ERIC, ClassPag commits snapshots to ERIC instead of copying to a save area. ClassPag also creates a final commit on leaving a session.
* The check for new ads from ERIC now treats errors as differences so a bad file doesn't block future updates.
* Added maketrns.sh and restoredbs.sh scripts to unload work area databases to transactions and to rebuild the databases.
* Added an eric test_interface formula for testing the eric interface.
Version 11.36
* The pagination screen has a new commands Ads -> Import Ads to run the import procedure again. This can be useful with ERIC and other interfaces that write directly into work directories.
* The Wrap Ad command now applies Quark-specific clipping values to Quark ads.
* runcpag.sh and menprof.sh have a "firsttime" parameter that can be "yes" or "no". Use this option with "paginateonly" to force or to prevent ClassPag from doing a fresh import. If "firsttime" is not specified, ClassPag will try to detect if the work area has been opened by checking the control record, classsrt files, and records in database files.
Version 11.37
* When "Can Cross Ads" and "Can Cross Pages" on the "Legal and Segmented Ad Specifications" screen of the product configuration are both enabled, ClassPag will now allow ads in the middle of long legal ads in more situations.
* The eric cpag_interface product list has a new "Version" function to show the ClassPag version and build time.
* Fixed a lock warning when opening products with cpag_interface.
* The setup.sh start-up script no longer hangs when run from the background.
Version 11.38
* Clear more fields in realcon.dat when eric is enabled.
* Improved the test for checking eric permissions.
Version 11.39
* ClassPag has a new command to rewrap all segmented ads at once. In the page preview, select Cmd -> Ads -> Wrap All Ads. ClassPag will open a dialog that lets you select the width and whether to rewrap ads that are already wrapped to a different width. The command currently supports only one column wide segments.
* The "Column Vertical Rules" screen of the product configuration has a new "Display Fillers" field to control how ClassPag places vertical rules along display fillers. The default value "D" places vertical rules as before, scanning the ad stack to see if the filler is with agate ads or display ads and then using vertical rules for the corresponding ad type. The value "N" never places vertical rules along display fillers. Use "N" in special products that use display fillers as reservations.
* ERIC modules now give a more detailed message when they can't open the product.json file.
* testcpag.sh and runcpag.sh have a batchtestprint option for regression tests of postscript generation.
* The processxml formula now writes a trailer start offset of 0 instead of 1 if the prolog end and trailer end are both 0. This avoids triggering warnings when ClassPag reads the sort file.
Version 11.40
* Fixed a problem where the check for new ads command didn't reload the default class nesting.
Version 11.41
* The "System Preferences" screen of the product configuration has new fields "Check New Ads... Command Count" and "Seconds" to set the number of commands and the number of seconds to trigger an automatic check for new ads. In addition, ClassPag checks for new ads when you move from the pagination statistics screen to the page preview screen and before you print pages.
Version 11.42
* Reloading ads after a check for new ads now restores manually created ads and re-wraps wrapped ads that have not changed. Wrapped ad functionality depends on marking legal classes, either through the default class nesting or through setting Class Attributes in the product configuration.
* Importing now checks the default "Fix Classes Type" in the control record when "Use Control Nesting" is enabled on the "Class Loading" screen of the product configuration. This is a non-backward-compatible change.
* The check for new ads now displays only ads in active classes so changes to ads in unused classes don't trigger the change window to open.
* The "Outext Export (Additional Fields)" screen of the product configuration has a new "classsrt paper and ed" field to control what ClassPag writes in the paper and edition ordinals of XML files. The default of "N" writes the ClassPag paper and edition as before. Use "Y" to write the paper and edition from the sort file.
* ClassPag now uses $TOOLS/lockapp.sh to lock the application area while doing updates. This will prevent starting a session or starting a second update while an update is running. The application lock file is currently called "lockcpag.tmp". The first line is the process id that owns the lock, and the remaining lines are a message to explain the lock.
* ClassPag now shows a warning if it can't initialize because it can't open a database. ClassPag previously closed immediately, and you had to check the session log file to find the problem.
* The ClassPag GUI for loading fonts now accepts font files that start with "%%BeginResource: font", although it is better if font files start with "%!PS-AdobeFont-1.0:".
* ClassPag now has support for ctree big databases.
Version 11.43
* ClassPag with ERIC now supports restoring sessions from snapshots.
* When Level Pages can not make a clean initial run, it shows a message with the blocking ad in more cases.
* Level Pages now continues if it can not place a required class header between two manually placed ads.
* The file names of generated EPS for wrapped ads now contain the width. This allows restoring from session snapshots where an ad is wrapped to a different width.
* Clear more fields in realcon.dat when ERIC is enabled. This avoids creating unnecessary differences.
* The maketar*.sh scripts now work better when run as root and the current directory is not on the path. When possible, you should run the scripts as a normal user from the ClassPag top level directory (usually /u/cpag).
Version 11.44
* When importing new ads inside a session, if a new ad has the same image as a manually created ad in the old session that has no matching ad number in the new session, ClassPag treats the new ad as the replacement for the manually created ad and updates the ad placement if the manually created ad was positioned.
* Sending work areas to SCS from ERIC product directories now works.
* Fixed some git errors when restoring ERIC snapshots.
Version 11.45
* Added a tool bar button to check for new ads. It is disabled by default and can be enabled by setting "Check for new ads button" to "Y" on the "Toolbar Button Preferences" screen of the product configuration or by the right click menu from most tool bar buttons.
* The classification records have a new "Inherited" field. Set it to "Y" if subclasses should inherit the "Position Request". The "Inherited" field defaults to the value of its parent class. This allows you to set a position request for a set of classes by setting only the "Position Request" and "Inherited" fields of the top level class. The pagination engine applies the "Inherited" field as it reads the class database, so "Position Request" fields of subclasses remain empty in the database. To end the inheritance at a mid-level class, set "Inherited" to "N".
* If the "Position Request" in the class database starts with a slash, ClassPag now treats it as a default page request.
Version 11.46
* The "Outext Export" screen of the product configuration has a new "Default vendor to ad num" field to default the ad_vendor_id to the ad_number in the XML if the ad_vendor_id is empty. The default value of "N" writes the ad_vendor_id as before. Use "Y" to replace an empty ad_vendor_id with the ad_number. This can be useful if the back-end requires a vendor, and users don't always enter the vendor in manually-created ads.
* ClassPag now synchronizes class sequence tables with ERIC.
Version 11.47
* The "Unkill" list no longer shows trailing segments of segmented ads.
* The "Unkill" command shows both agate and display ads according to the current setting of the ad list. It no longer resets the list to show only display ads.
* The "Display Fillers" field on the "Column Vertical Rules" screen of the product configuration now works to suppress vertical rules around display fillers inside square-offs.
* ERIC can now refresh class sequence tables.
* Fixed a test to widen square-offs sitting on wide ads.
Version 11.48
* Improved square-off location in folios with O_CPagUserSquareOffName.
The Min and Max values are now -1 if the square-off is not found. They could previously sometimes have been 0, which is valid for Min values.
Fixed the calculation of I_CPagUserSquareOffMaxX. It could have been incorrect on square-offs on the rightmost column of the page.
Here is an example folio to draw a cyan box and blue borders around the "S140" square-off when it is present on the current page. The ClassPag SquareOff Min and Max values use centipoints of 7227 per inch, while composition commands take point values of 72 per inch. The folio text block should be positioned at X of (-rulethickness) and Y of (columndepth + rulethickness). Composition can not move left or up from its original position, so the original position should be the upper left corner of the border.
cp_setcmykgcolor takes cyan, magenta, yellow, and black levels for color pages and a gray level for black and white pages. The gray level is percent white, so 0 is black and 1 is white.
The parentheses around calculations of values inside composition commands are necessary because string concatenation (//) binds more tightly than addition and subtraction so "a" // 1+2 // "b" is "a1"+"2b" = 0+2 = 2, while "a" // (1+2) // "b" is "a" // 3 // "b" = "a3b".
O_CPagUserPageNumber := PageNumber;
O_CPagUserSquareOffName := "S140";
((I_CPagUserSquareOffMaxY <= 0)? "":
(
(* Convert centi-composition-points into ps-points *)
real x := (I_CPagUserSquareOffMinX * 72 / 7227);
real y := ((I_CPagColumnDepth - I_CPagUserSquareOffMinY) * 72 / 7227);
real wid := ((I_CPagUserSquareOffMaxX - I_CPagUserSquareOffMinX) * 72 / 7227);
real dep := ((I_CPagUserSquareOffMaxY - I_CPagUserSquareOffMinY) * 72 / 7227);
real rule := 2;
real indent := 8.5;
(* The folio X pos should be (-rule) *)
(* The folio Y pos should be (columndepth + rule) *)
"<dc 20i><cc 1c,HELV,20,20,0>" //
"<pc ``1 0 0 0 1 cp_setcmykgcolor''>" //
"<el " // (y+rule) // ">" //
"<fs " // (x+indent+rule) // "><dr " // (wid-2*indent) // "," // dep // "><ql>" //
"<pc ``0 1 0 0 0 cp_setcmykgcolor''>" //
"<el " // rule // ">" //
"<co left rule><fs "//(x+indent)//"><dr " // rule // "," // (dep+2*rule) // "><ql>" //
"<co bot rule><fs "//(x+indent)//"><dr " // (wid+(2*rule)-(2*indent)) // "," // rule // "><ql>" //
"<co right rule><fs "//(x+rule+wid-indent)//"><dr "//rule//","//(dep+2*rule)//"><ql>"//
"<el " // (-dep-rule) // ">" //
"<co top rule><fs " // (x+indent) // "><dr " // (wid+(2*rule)-(2*indent)) // "," // rule // "><ql>")
)
Version 11.49
* Improved square-off location in folios with O_CPagUserSquareOffName. I_CPagUserSquareOffMaxX was off.
Version 11.50
* ClassPag now restores class headers when you disable a square-off with a "Place Headers Under Banners" option ending in SUB or KIL.
Version 11.51
* Fixed a problem finding break points in Quark EPS files.
Version 11.52
* Improved fix for the problem finding break points in Quark EPS files.
* ERIC formulas now have debug logs enabled by setting CPAG_ERIC_DEBUG=yes .
* If no products have any users, ClassPag allows all users access to ERIC.
* When ClassPag runs with ERIC, ClassPag writes adlist.csv with all of the active ads in the session.
* When ClassPag runs with ERIC, saving the session now creates a snapshot instead of making a copy of the product directory.
Version 11.53
* The ERIC GUI interface has a new option to export ad lists.
* The ERIC GUI works better for sites that do not use ClassPag privileges.
* Fixed a problem where preserving position requests when reading from an import directory would not update the count of restored wrapped ads, and wrapping more ads inside a pagination session could give errors.
* When ClassPag runs with ERIC, ClassPag no longer writes adlist.csv. ERIC will use outext.xml.
* When BATCH=yes, setup.sh clears DISPLAY and does not run termdef so scripts run faster over ssh.
Version 11.54
* Fixed a problem reporting outext.xml files in ERIC.
Version 11.55
* Changed the PageNumber variable in live banner expressions from a string to a number. This makes comparisons like (PageNumber < LastPageNumber) work as expected. Before, with PageNumber as a string, PageNumber "2" would compare larger than LastPageNumber 10 because "2" is greater than "1".
If you want to test that an item is placed, use (f$integer(PageNumber) > 0) instead of (PageNumber = ""). BookPageNumber remains a string.
* The banner setup has a new "Mass Copy" hotkey to make large numbers of copies of a model banner. The model banner should have a string like 001 or 0001 in its banner number and in other fields that should be updated in copies.
The banner images should have the same string in their image name.
After you create the model banner, select the banner, use F12 -> Mass Copy, and then enter the pattern (usually 001), the number of copies to create, whether you want to overwrite existing copies with a fresh copy, and whether you want to remove copies higher than the number.
The mass copy currently does not modify composition expressions. Composition expressions that need the name of the current banner should use BannerId (the banner number), ImageId (the banner image), TextId (the banner text id), or BannerName (the full banner name with BannerId + "-" + ImageId).
For example, if banners like JUMP_0001 have a jump image and a landing image, the composition for the jump image can find the landing image with
"<sv 10,``" // BannerId // "-land''><Call_Formula CPagGetBookPage>"
Version 11.56
* ClassPag now rebuilds the placed banners when the "Rebuild in preview" field on the "Folios and Banners" screen of the product configuration is "A" (automatic rebuild before viewing pages) or "P" (prompt to rebuild before viewing pages). This makes the rebuild much faster if you have created a large number of banners but are using only a few.
You can force a rebuild of all banners by opening Setup -> Banners and using one of the F12 "Recompose" commands.
Version 11.57
* ClassPag now has a configurable tool bar button to paste headers. To enable it, right-click on any tool bar button that doesn't have a special menu or set "Paste a header" to "Y" on the "Toolbar Button Preferences" page of the product configuration.
* The Composition formulas CPagGetPage, CPagGetColumn, CPagGetBookName, CPagGetBookPage, CPagGetClassTitle, CPagGetIncBookName, and CPagGetIncBookPage now work better with ad numbers that contain an underscore. Composition converts text to its character set, which maps underscores to 186. The formulas now reverse that mapping before looking up ad numbers.
Version 11.58
* ClassPag now rebuilds the filler paste list if you make a change to the session that requires reloading the ads. This keeps the filler paste list accurate on products with class-specific fillers or with fillers in the sort file.
* The command "F12 -> Pages -> Fill to end" now works better with double truck pages.
Version 11.59
* Clarified the command names in the "Find Ad" list. The command to kill or unkill an ad is now "Kill/Unkill" (instead of "Kill"), and the command to delete an ad record is now "Delete" (instead of "Remove").
"Remove" moves a placed ad to the paste list (the same as the REMOVE command in Layout-8000). ClassPag will automatically place removed ads the next time that you reflow ads.
"Kill" eliminates ads by marking them as killed. Killed ads remain in the ad database and can be unkilled.
"Delete" removes the ad record from the database. You must re-import the interface files to restore a deleted ad.
* Fixed a problem where ClassPag sometimes would not place enough leading below a display ad at the top of a column.
* Fixed a problem where the ads placed by "F12 -> Pages -> Fill to end" would move when ads were reflowed.
Version 11.60
* Fixed a problem where ClassPag would sometimes not place a header below between a display ad and line ad of the same class when requested by the product configuration.
* Dummying classes with Randomize "J" now handles double truck ads that have to be placed out of the class range.
* Fixed a problem that could cause warnings when dummying ads to fill pages.
* Fixed an error exchanging ads in columns.
Version 11.61
* Improved square-off line ad packing at the top of pages with template banners when the square-off is not under a banner.
* The "User Preferences" screen of the product configuration has a new boolean field "Keep class headers" to control how ClassPag treats non-required but non-conflicting manually placed class headers when you move ads on a page.
The default value of "N" removes them as before. "Y" keeps them.
Keeping the headers can be useful in products that do not require headers between display ads of different classes but that can use headers like fillers when pages have extra space.
Version 11.62
* ClassPag has new "Class fill page" and "Class fill to end" commands on the pagination screen under F12 -> Pages. These commands fill pages with display ads in order by class. If a class doesn't have enough ads to fill the page, the commands stack the ads vertically to the left.
If the stack doesn't reach the top of the page, the commands will try to place ads from the next class on the rightmost columns of the stack before starting a new range of columns.
* The "Display Ad Dummying Style" screen of the product configuration has a new boolean field "Check interior holes" to try to avoid leaving holes in products that have a lot of large display ads and few line ads at the cost of placing display ads further out of class.
* When "Keep class headers" is enabled, ClassPag now keeps class headers that are not the same width as the display ad below them.
* When "Degrade section requests" is "N" to force ClassPag to follow section requests, ClassPag will place line ads and display ads either in their section or on an overflow page.
If a section can not hold all of its line ads, the flow will jump to an overflow page, and following classes will continue on overflow.
Version 11.63
* The "fill to end" and "class fill to end" commands follow the PL or PR dummying style a little closer.
* The "fill to end" and "class fill to end" commands add leading.
* The "Display Ad Dummying Style" screen of the product configuration has a new boolean field "Place Ads On Retail Pages". The default value is "Y" to allow ClassPag to place display ads on retail pages. Set it to "N" to prevent ClassPag from placing display ads on retail pages.
* ClassPag has a new "Show retail pages" command under F12 -> Misc. Use the command to show or hide retail pages.
* The "User Preferences" screen of the product configuration has a new boolean field "Show retail pages". The default is "Y" to show retail pages. Set it to "N" to hide retail pages.
The control record also has a new "Show retail pages" field that takes precedence when it is set.
* ClassPag has an optional toolbar button to show or hide retail pages. The "Toolbar Button Preferences" screen of the product configuration has a new boolean field "Show retail pages button" to control whether the button appears. The default value is "N" to hide the button.
You can also view and update the value by right-clicking on most toolbar buttons.
* runcpag.sh and menprod.sh have a new layoutpalette option to use the same color palette as Layout.
* This release requires installing libXft.i686 on RedHat/CentOS/Fedora distributions.
Version 11.64
* The "fill to end" command now checks page requests.
* Fixed the spelling of the AlignRight request (for placing half-column ads).
* The new screen font version now creates the same size window as before. menprof.sh and runcpag.sh have new options to control the vertical spacing.
nomargin is the default to eliminate the vertical margin between cells. margin sets the spice default of 3 pixels on top and 2 pixels on the bottom.
TOP # and BOT # set the top and bottom margins in pixels. The old default was TOP 3 BOT 2. The new default is TOP 0 BOT 0.
The optimal size depends on the workstation's monitor, so these options are on the launch script rather than in the product configuration.
Version 11.65
* ClassPag now can now combine cut rules when a multi-column ad is above single column ads.
* The "Screen Display Preferences" page of the product configuration has new boolean fields "Show the Edition Parameters" and "Show Statistics" to control whether ClassPag shows the edition parameters form and the statistics page when entering a session for the first time.
* menprof.sh and runcpag.sh have new options to control the start up windows. openeditionparameters can be yes or no to control whether ClassPag shows the edition parameters form.
openstatistics can be yes or no to control whether ClassPag shows the statistics page.
If these are set, they override the values in the product configuration.
* Updated the regression test not to show popups about folios.
Version 11.66
* ClassPag has two new optional tool bar buttons to enable the next top level class and to enable the next queued top level class. You can enable the buttons using the "Activate next class button" and "next queued class button" fields on the "Toolbar Button Preferences (Continued)" screen of the product
configuration or by using the right-click menu on most tool bar buttons. If every top level class is enabled, the buttons give you the option to disable all of the classes (useful the first time in a session) or to reset the top level classes from the class nesting (useful if the class nesting has classes disabled or queued).
* The final pagination check now shows a warning if the top level has any queued classes.
* The "Legal and Segmented Ad Specifications" page of the product configuration has a new boolean field "Auto Segment... Ads with requests" to auto segment breakable ads even if they have a page request. ClassPag does not normally auto segment ads with page requests because it writes the segmentation flag in the page request, which would overwrite any existing page request.
The new field defaults to "N" not to auto segment ads with requests.
Set it to "Y" if the front-end sometimes writes page requests, and the page requests can be ignored.
* The "Wrap Ad" command now works on ads with a wrapped image.
* ClassPag now writes killed ads to the SCS Extended Product XML. Killed ads have the "killed" flag set in the "ad_layout" section with
<ad_layout><killed>true</killed></ad_layout>.
* The Start Request field of class records can now be left empty in forms. This saves a step when editing class records created from an interface that does not set the Start Request.
* The spelling of the "AlighRight" position request in the SCS Product XML has been corrected to "AlignRight". It is request for half-column ads. This release needs a new version of the tools or at last a new version of /u/scs/tools/inc/product.xsd from Jun 3, 2021, or later.
* Fixed a typo in the database rebuild script that could create a file "*.dat" with an update report.
* ERIC update by Mike to add optional parameters for ClassPag launches.
* ERIC update by Mike to ignore product information when checking for ad changes.
Version 11.67.0
* The "User Preferences" screen of the product configuration has new fields to check for inactive queued classes before printing. "Warn when printing with queued classes" can be 'NO' (no warning), 'PRINT' (warn before sending a page to final output), 'PROOF' (warn before printing anywhere), 'YES' (warn when printing or viewing).
"Can print" can be 'PRINT' (allow printing to final output), 'PROOF' (allow proofing but not final output), 'VIEW' (allow viewing but not printing), 'NO' (do not allow printing or viewing). The default for both is 'PRINT'.
* ClassPag now allows right and left pages requests for sections with the page request syntax "/" + section name + "-" + "R" or "L", for example, "/C-R" requests a right-hand page in section C.
* ClassPag now has three part version numbers. The third part is a patch level that will usually be 0.
* Improved the generated SCS Extended Product XML files. The XML now contains position_request and target_ad elements and no longer contains empty column_request and height_request elements. Also, XML generation is now about 25% faster.
Version 11.68.0
* ERIC update by Mike to add page and section to the CSV report export.
* ERIC update by Mike to handle deleted values better when comparing ad differences.
* Source code edit for new compiler that should not produce any changes in how ClassPag runs.
Version 11.69.0
* menprof.sh and runcpag.sh have new options "useftfonts" and "usescsfonts" to control where ClassPag gets the fonts that it uses to paint the screen.
"useftfonts" is the default to use new fonts from freetype.
"usescsfonts" uses the old scs bitmapped fonts. "usescsfonts" clears the top and bottom cell margins to match the original window sizes. To modify the cell margins, place the TOP and BOT options after usescsfonts.
* ERIC update by Mike to a check for a missing node after an upgrade from non-node versions.
Version 11.70.0
* If a check for new ads finds any changes, ClassPag writes an access log entry with the ad numbers and whether the user accepted or declined loading the changes.
* Fixed a problem where setting "Auto Segment... Ads with requests" could try to resegment large segments.
Version 11.71.0
* ClassPag now tracks ads that users have modified. The "Source" field has a new value "E" for ads that users have modified with "Edit the ad data" or with commands that set the sort key or class with drags.
As before, ads created from the sort file have an empty Source or a Source of "S", and manually created ads have a Source of "M".
Manually created ads retain their Source of "M" even if they are edited. Edited ads show the "EDITED" flag in the page preview ad information area.
* The "System Preferences" screen of the product configuration has a new boolean field "Ignore Manually Edited Ads in Ad Check" to control how ClassPag treats edited ads. By default, ClassPag replaces all ads with the version from the new interface file. If "Ignore Manually Edited Ads in Ad Check" is set to "Y",
ClassPag does not show edited ads in the ad difference list, and when ClassPag loads the new interface files, it uses the edited version of the ad instead of the new version of the ad.
Version 11.72.0
* menprof.sh and runcpag.sh have a new option "batchexportxml" to create an SCS Extended Product XML and exit. If the environment variable "CPAG_EXPORT_XML_PATH" is set, the XML will be written to that path. The path should be a valid file name with an absolute path, a path relative to the product directory, or no path. If the variable is empty or not set, the XML will be written to "outext.xml" as usual.
The new option "exportxmlpath" sets CPAG_EXPORT_XML_PATH to the next argument. "exportxmlpath outext.xml" is equivalent to "export CPAG_EXPORT_XML_PATH=outext.xml". The environment variable is necessary if the file name has spaces or special characters.
The new option "ericenabled" sets CPAG_ERIC_ENABLED to the next argument.
Version 11.73.0
* The "Check for new ads" command now includes ads in queued classes.
* menprof.sh and runcpag.sh have a new option "ericdebug" to set CPAG_ERIC_DEBUG=yes.
Version 11.74.0
* The "Check for new ads" command and other commands that can reload the interface files in the middle of a session now restore the class selections of the top level classes. If you paginate using queued classes or by adjusting the top level classes, this will prevent loading new ads from resetting your work.
Version 11.75.0
* Fixed a problem where the outext could have kill records for ads that had been wrapped.
Version 11.76.0
* ClassPag can now combine cut rules below a multi-column ad that has ads of different widths below it.
* runcpag.sh and menprof.sh have a new XFontSizeAll option that takes a number and sets XFontSize to "#,#:#-#,#-#" to force the window to a given size. Use XFontSizeAll if ClassPag doesn't always open to the correct size.
* loadtape.sh now rebuilds the log database only if the structure changed. Use loadtape.sh -rebuild to force rebuilding the log database. Use loadtape.sh -norebuild to rebuild only databases that have changed. The previous loadtape.sh starts the installation, so the first installation of this version or higher will still unload the log database.
* Fixed a warning in the fixperms.sh script that updates file permissions after installations.
Version 11.77.0
* ClassPag combines horizontal cut-rules and aligns uncombined horizontal cut-rules in more places.
* ClassPag now supports series ads in the classsrt.xml. In the ad_layout section, set series_name and order_in_series. The ClassPag import converts it to a series position request with the target ad set to the series name. For example, the XML
<ad_layout>
<order_in_series>6</order_in_series>
<series_name>LGL1</series_name>
</ad_layout>
sets the position request to "SR06" and the target ad / series name to "LGL1".
* ClassPag no longer warns about old interface files when running with ERIC.
* The warning when importing a sort file with ads in the generic top level class now says "Ads requested the generic class".
Version 11.78.0
* Update with initial version of ERIC site backup.
Version 11.79.0
* The "Ads requested the generic class" warning now happens only once per session or after loading new ads.
* The loadtape.sh script no longer warns about x2goagent processes.
Version 11.79.1
* Importing now resets the "Ads requested the generic class" warning.
Version 11.80.0
* ClassPag no longer places column headers for ads in classes that have headers entered as banners with "Split Overflow" "M" for main headers only.
* The page preview screen now shows text in smaller boxes. This adjusts the change to new fonts in version 11.69.0.
* Improved leading calculations when a stack of line ads is above a display ad, and the leading above the display ad is different from the leading between line ads. ClassPag used to equalize the leading, which could leave the display ad with too little leading. ClassPag now equalizes the difference from the leading in the Ad Configuration.
* The page preview box information now shows the leading above and below the current ad.
Version 11.81.0
* Increased the number of lines in the Box Information window.
* The window to view replacement images has new hotkeys to show all products and to copy the current record. Each product has its own list. The new hotkeys can be useful if you change the product and want to copy the replacement images into the new product.
* Improved the leading between the ads where the top and bottom stacks meet. The ads could sometimes have less than the configured leading.
* Improved the leading around fillers embedded in a column. The filler could have the leading for a line ad below it even if it was embedded and ended up over a display ad. If the product configuration requested aligning ads over display ads, this could affect all of the ads over the same display ad as the filler. If the Ad Configuration has entries for line ads, it should set similar values for agate fillers.
* Improved the leading between legal ads. The default leading is now the leading between agate ads instead of 0. If legal ads should really have no leading between them, set the leading to 0 in the Ad Configuration.
* Improved the leading between legal ads after changes to the leading ratio.
* Fixed a test where setting "Float to top of column" to "N" would still move the top display ad on a stack to the top of the column instead of centering it. To shift the top ad to the top instead of centering it, check that the "Display Ad Specifications (Continued)" page of the product configuration sets "Float to top of column" to "Y" or leaves it empty.
* When an ad requests the top of the page, ClassPag now leaves it at the top instead of centering it.
* When ClassPag equalizes the leading between ads in a column, it now joins 1 column ads at the bottom of the top stack with the bottom stack instead of working on the top and bottom stacks separately. This makes the spacing more consistent.
* Fixed leading distribution when segmented ads are on the top stack.
* When ClassPag centers ads, it gives the ads their preferred leading when possible before dividing the remaining leading.
* Before ClassPag aligns one-column ads under wide ads, it checks if the ad has less than the preferred leading above and extra leading below that it can move. This allows more ads to have the leading from the Ad Configuration, even when it is more than the leading in the Product Configuration or when a page is squeezed.
* The option to place leading between segments of legal ads now works better to fill the column completely.
* ClassPag is more accurate when dividing extra space in columns with a large number of ads.
Version 11.81.1
* Fixed an initialized variable warning in the previous version with Ads -> Change ad image.
Version 11.82.0
* Fixed a problem where an ad with no ad below its rightmost column could have too little leading.
* Fixed a problem where ClassPag could squeeze pages when it tried to redummy them.
* Fixed a problem where ClassPag could hang on a session with a square-off below a template banner.
Version 11.83.0
* The "Display Ad Specifications (Continued)" screen of the product configuration has a new field "Line up with preferred leading" to control how ClassPag aligns small ads under a big ad. The default value of "N" aligns all of the small ads with the small ad that is closest to the big ad, as ClassPag did before.
The value of "Y" aligns ads to the leading from the Ad Configuration when possible, which can produce better results if class headers, agate ads, and agate fillers have significantly different leading when below a display ad.
* Improved the check to warn when a drag would squeeze a page.
Version 11.83.1
* Set column_position to 0 for killed ads in the SCS Extended Product XML to fix a schema section that requires position information for all ads.
Version 11.84.0
* Squeeze warnings on drags now show only if the page was not squeezed. This eliminates constant warnings when you adjust ads on squeezed pages.
* The pyramid style list has a new HSQ item for half-squeezed pages. On half-squeezed pages, only the last ad at the top of a column is squeezed. ClassPag can produce half-squeezed pages if the leading in the ad configuration is more than the leading in the product configuration.
* Added comments to the loadtape.sh options.
* Fixed a problem where the top ad of a series of one-column ads between two large ads could have too little leading due to a pass where ClassPag consolidated leading to check if it could place a filler.
* Fixed a problem when squeeze warnings on drags were enabled where allowing a squeeze when adding a banner or filler that was already placed on another page could move the copy instead of creating a new one. This could cause all but the last copy of the banner or filler to disappear when you reflowed ads.
--- Screen captures ---
Version 10.53 changes
Column headers no longer squeezed out by "level pages".
Version 10.54 changes
The product configuration screen "Display Ad Directories" has a new field "Preserve path when importing ads" to preserve sort file image names with paths for missing ads.
Version 10.56 changes
Improved the automatic wrapping of PDF ads.
Version 10.57 changes
ClassPag now supports fractional ad scaling percentages.
Version 10.59 changes
The Setup -> Set Ad Colors window has a new DRAGGED context to assign a special color to dragged ads that are not locked.
Version 10.61 changes
The Setup -> Set Ad Colors window has a new "Apply Class" field that controls how the ad color interacts with the class color.
Version 10.63 changes
ClassPag places multi-column fillers in more places.
Version 10.64 changes
Square-offs can now request a page from the back by using a negative first or last page.
Version 10.65 changes
ClassPag now supports PDF images and dinks in live banners. Expressions can write a file name into O_CPagCheckCacheImage and then read the result from I_CPagCheckCacheImage.
Example banner image.
Expression to place a PDF dink ad on the banner.
Expression to place a PDF image on the banner.
Improved wrapping of long ads.
Version 10.70 changes
The "Add Leading" field in page name records (to control square-offs) has a second option to set leading between one-column ads.
Version 10.74 changes
Example of automatically placed multi-column agate fillers.
Version 10.76 changes
The "Screen Display Preferences" page of the product configuration has a new field "Width of Ad Preview Image Inner Border" to set the width of the inner box for ads with preview images.
No ad borders
Default ad borders.
Wide ad borders.
The green outer border on the color circles ad is one pixel with the default above and wider with the new option below.
Ad border configuration.
Version 10.79 changes
The pagination tool bar has a new "Unkill ads" button.
"Unkill ads" list (Spanish version)
Version 10.85 changes
Example of loading class nestings using the class title as the sequence number.
Default class order using the sequence number in the interface file:
Updated class order using the class title as the sequence number:
Version 10.86 changes
Example of series ads
Version 10.88 changes
Toolbar button to load class nestings while updating the sequence numbers of only the top level classes.
The "TOP" option in various configuration fields to load class nestings. Note that the letters "T" = "LOAD" and "F" = "NO" because the field was originally boolean in ClassPag version 3.
Toolbar button to load class nestings (Spanish version)
Configuration fields to load class nestings (Spanish version)
Version 10.92 changes
New "Status" column in the Square-Offs window.
New buttons to view fonts in the font list window.
New view of a single font in composition.
New view of all fonts in composition.
Version 10.93 changes
The new "Run date param" and "Edition param" privileges to control access to those fields in the Edition Parameters dialog.
Example Edition Parameters dialog with the Run Date, End Date, and Edition locked by privilege settings.
The new privilege check before deleting an import folder.
Version 10.96 changes
The Expected Sort File Paper and Edition Ids in the control record.
An example warning when the editions do not match.
Access log showing when a user continued after an edition mismatch warning.
The details of the log message show the text of the edition mismatch warning.
Version 10.97 changes
Composition commands to reduce the letter spacing. The middle line is compressed.
The results. To reduce the space between words, replace the normal spaces with thin spaces.
Composition text showing with examples of the feminine a ordinal and the masculine o ordinal.
The results.
Version 11.00 changes
The "PDF Text Pass" on the "Legal and Segmented Ad Specifications" screen of the product
configuration.
The "Import Display Ads From Cardex" field on the "Ad Loading" screen of the product configuration.
Version 11.01 changes
The editions setup has a "GF" column to show whether each edition can use generic fillers and a hotkey to toggle the setting.
The editions for has a new "Use generic fillers" field.
Version 11.02 changes
The new "Copy and Copy All" command in the Product Configuration list.
Version 11.03 changes
Sample warning about binary images when you evaluate an expression.
Version 11.08 changes
Sample session before the 11.08 changes.
The legal ad on page 3 is interrupted by a full page ad on page 4 and continues on page 5 (blue arrows). The two-column legal ad at the upper left of page 6 has space below its leftmost column (green circle).
The same session in 11.08.
The long legal ad waits for page 5 to start so it isn't interrupted by the ad on page 4. The two column legal ad on page 6 has no empty space below it. (This product required all ads in sort order. Enabling the look-ahead would allow one of the shorter ads on page 6 to fill the space on page 3.)
The new "Can Cross Ads" product configuration parameter to control whether ClassPag can start legal ads in places where they will be interrupted by other ads.
Version 11.10 changes
The new "Save Area Selectable" product configuration parameter to control whether ClassPag shows a list of save folders if you do not accept the save area name generated by the Save Area Name Expression.
The "Place Fillers below Headers" product configuration parameter to control whether ClassPag places fillers above or below class headers when it has no other options to place the filler.
Version 11.13 changes
The "PDF BBox Pass" product configuration parameter controls whether ClassPag uses pdftotext to find break points to wrap PDFs.
Version 11.18 changes
The new classification start request to start on a new section.
Version 11.20 changes
The "Degrade section requests" field on the "Request Checking" page of the product configuration.
Version 11.24 changes
The control record has an "Ad Im Load Dir Exp" field to set an expression for the directory to scan to convert image files into ads.
Version 11.25 changes
Quark clip adjustments on the "Legal and Segmented Ad Specifications (Continued)" screen of the product configuration.
Version 11.28 changes
Ad differences after checking ERIC for new ads.
Version 11.32 changes
The new "U" value in the "Full page ads can bleed" field on the "Ad Image Scaling" page of the
product configuration. With "U", if an ad is taller than the page, instead of centering the ad, ClassPag aligns the ad at the bottom of the page, and the extra depth flows over the top of the page.
Detecting a bleed in a folio expression. The sample expression below omits the folio if the bleed at the top of the page is more than 1 point (100 centipoints).
Version 11.39 changes
The new dialog to wrap all ads.
The new "Display Fillers" field. "D" places vertical rules as before. "N" never places vertical rules along display fillers.
Version 11.41 changes
The "Check New Ads... Command Count" and "Seconds" fields to set the number of commands and the number of seconds to trigger an automatic check for new ads.
Version 11.42 changes
ClassPag now shows a warning if it can't initialize because it can't open a database. ClassPag previously closed immediately, and you had to check the session log file to find the problem.
The new "classsrt paper and ed" field to control what ClassPag writes in the paper and edition ordinals of XML files.
Version 11.45 changes
The classification records have a new "Inherited" field to copy the "Position Request" to subclasses.
ClassPag 11.46 changes
The "Outext Export" screen of the product configuration has a new "Default vendor to ad num" field to default the ad_vendor_id to the ad_number in the XML if the ad_vendor_id is empty.
Version 11.55 changes
Banner mass copy dialog to simplify the creation of series of templates and jump blocks.
Version 11.61 changes
"Keep class headers" product configuration field to control how ClassPag treats non-required
but non-conflicting manually placed class headers when you move ads on a page.
Version 11.62 changes
"Check interior holes" field to try to avoid leaving holes in products that have a lot of large display ads and few line ads at the cost of placing display ads further out of class.
Version 11.63 changes
"Place Ads On Retail Pages" field to allow ClassPag to place display ads on retail pages.
Toolbar button to show or hide retail pages.
ClassPag 11.66 changes
Tools for working with queued classes.
Enable the "Activate next class" button by right-clicking on the menu bar.
Or enable the "Activate next class" button by right-clicking in the product configuration.
The "Activate next queued class" button.
If every top level class is enabled, the button gives you the option to disable all of the classes (useful the first time in a session) or to reset the top level classes from the class nesting (useful if the class nesting has classes disabled or queued).
The final pagination check now shows a warning if the top level has any queued classes.
"Auto Segment... Ads with requests" field to auto segment breakable ads even if they have a page request.
Version 11.67.0 changes
The "User Preferences" screen of the product configuration has new fields to check for inactive queued classes before printing. "Warn when printing with queued classes" can be 'NO' (no warning), 'PRINT' (warn before sending a page to final output), 'PROOF' (warn before printing anywhere), 'YES' (warn when printing or viewing).
Version 11.70.0 changes
If a check for new ads finds any changes, ClassPag writes an access log entry with the ad numbers and whether the user accepted or declined loading the changes.
Version 11.71.0 changes
The "System Preferences" screen of the product configuration has a new boolean field "Ignore Manually Edited Ads in Ad Check" to control how ClassPag treats edited ads. By default, ClassPag replaces all ads with the version from the new interface file. If "Ignore Manually Edited Ads in Ad Check" is set to "Y", ClassPag does not show edited ads in the ad difference list, and when ClassPag loads the new interface files, it uses the edited version of the ad instead of the new version of the ad.
Version 11.77.0 changes
Horizontal cut rule improvements.
Improved centering. Cyan is new. Red is previous versions.
Improved centering. Cyan is new. Previous versions overwrote the rule on the top of the box of the lower ad to try to align it where the rule would have gone below the class header to its left if the class header required a rule.
Improved joining. Cyan is new. Red is previous versions.
Improved joining. The previous version split the rule.
Comments
0 comments
Please sign in to leave a comment.