10/4/04
Version 4.00
* The configuration parameter "Repeat heading of parent class" has
the new values of "COPYF", "COPYR", and "COPYA". They work like "COPY"
to copy the parent header into subclasses combined with "FIRST", "REST",
and "ALL" to control placement of superheads.
* When ClassPag loads EPS files as class headers, it now removes spaces from
the copy of the class name in the page request field. The values in the page
request field do not have to match the class name, but they do need to be
unique. Now classes " 102" and " 103" map to "102" and "103" instead of both
mapping to " 10".
* When ClassPag adjusts the space below ads at the top of a column, it sets the
space to the prefered space instead of to the minimum current space. This fixes
a problem with large spaces when ClassPag replaces single-column class headers
with a multi-column header (because "Place wide headers over liners" is set)
ad the multi-column header is smaller than the single-column headers.
* Fixed a problem where ClassPag could hang adding fillers or banners if the
EPS files had color and you went into the setup before opening a pagination
session.
* Fixed a problem where quoted strings in comments in postscript files could
be truncated if the string contained a character that needed to be escaped.
* Fixed a problem where ClassPag would not handle escapes in custom color names.
NOTE: This version has about 300 lines of changes from the previous version.
10/6/04
Version 4.01
* The product configuration screen "Classified Heading Placement" has a new
field "Place parent"/"Colocar pariente" that takes the same values as
"Place at top of columns" ("ALL", "COPYALL", "LEFTMOST", "EVENPAGES", and "NO").
You can use this field to place super heads at the tops of columns without
placing primary heads.
* The search to locate parent class headers now continues towards the root
of the class structure until it finds a class header. This allows ClassPag
to locate super heads in a structure like
****** -> TRANSPORT -> 800 -> 804 -> 804FORD
when TRANSPORT has the super heads, 800 has no heads, 804 has an
Auto Sales head, and 804FORD has no heads (but might have inherited
the 804 head from "Repeat heading of parent class" of "COPY").
* If "Flow headers under display ads" is "NEVER", ClassPag no longer
places class headers under display ads.
* maketarw.sh works better when it is run without the normal setup.
NOTE: This version has about 2500 lines of changes from the previous version.
10/7/04
Version 4.02
* ClassPag can now auto-segment multi-column legal ads. ClassPag maintains two
databases for ads, one for simple agate ads and the other for more complicated
agate ads and for all other ads from the interface file. The auto-segmenting
procedure scans only the agate ad database. The agate ad database now contains
the ad width, so ClassPag can store multi-column ads there, and the
auto-segmenting procedure can process them.
The database conversion procedure writes spaces into the width field,
so views of old work areas might show a width of 32 columns.
ClassPag converts widths of 32 columns to 1 column when it loads the database.
* The "Folios and Banners" product configuration screen has a new field "Check
Ad Depth"/"Probar largos" to check the height of the top ad. If the field is
"Y", the test for coverage requires the additional test that the ad is at least
as deep as the folio depth. The default value of "N" test only that the top of
the ad is within the folio depth. You can use this to place alternate folios
when the page contains a large display ad at the top.
* Added more comments and directories to the mirror scripts.
* Fixed a problem where ClassPag would sometimes miss marking all legal classes.
The scan to set legal classes from the list in the product configuration would
stop descending into the class structure once it found a class already marked
the correct way. ClassPag does a scan before and after loading the
classification sequencing table. When classes have suffixes with sort keys, the
first scan would set the classes without suffixes, and the second scan would not
descend into the children of those classes. ClassPag now scans all subclasses.
NOTE: This version has over 830 lines of changes from the previous version.
10/8/04
Version 4.03
* The product configuration screen "Classified Heading Placement" has a new
field "Place under banners"/"Colocar debajo de carteles" to place class headers
under banners and square-offs with the same rules for placing headers at the
tops of columns. The default value of "N" places headers below banners
with the same rules as headers below display ads. Use the value of "Y"
if you place headers at the tops of columns of line ads and want the
headers to appear even if a banner is at the top of the page.
* The product configuration screen "User Preferences" has a new field
"Show Filler Descriptions"/"Mostrar descripciones de rellenos" with the
values "NAME" and "DESC" to control the descriptive information in the
lists to paste fillers. The default value of "NAME" shows the name and
then the description as before. The value of "DESC" shows the description
and then the name.
* The descriptive name in the lists to paste fillers is now increased
from 10 to 20 characters on displays with more than 80 character cells.
* When ClassPag writes control characters with ascii values between 0 and 31
in file names in postscript output it now writes a backslash and a three digit
octal number instead of a space. This fixes a problem when using the
"PS Type" of "FPS" with EPS files that contain control characters.
NOTE: This version has 2580 lines of changes from the previous version.
10/9/04
Version 4.04
* Improved the logic to place second superheads. Second superheads (and second
heads in general) should be entered as copy headers. If they are banners,
the "Split Overflow" field should be "R" instead of "C". This allows ClassPag
to differentiate between primary and secondary heads in the same class.
NOTE: This version has 342 lines of changes from the previous version.
10/11/04
Version 4.05
* ClassPag now has an option to automatically remove top templates before
placing full page ads. Editions that place full page ads into the folio area
can create banner templates for the folios. The new option allows ClassPag to
remove templates when placing full page ads, both when ClassPag places ads and
when users drag ads. In order for ClassPag to remove the template, the ad must
be large enough that it will not fit with the template and the template must be
the only object at the top of the page. To enable this feature, in the "User
Preferences" product configuration screen, set the new field "Remove templates
when placing ads"/"Borrar templados antes de colocar avisos" to "Y".
The default value of "N" does not remove templates, so full page ads will be
left on overflow pages and paginators must manually remove templates on pages
before dragging full page ads.
* ClassPag can now copy agate and display fillers from other products. To
maintain filler libraries among products, you can now make a product that holds
generic fillers, and the other products can merge their product-specific fillers
with the generic fillers. In the "Column Vertical Rules" product configuration
screen, the fields "Default Products Agate Fillers and Display Fillers"/"Otros
productos para Lineales de relleno y Destacados de relleno" list the products
with the fillers to copy. The products should not have any fillers in common.
* ClassPag can now list fillers by file name with "Cmd -> Position -> Paste a
filler by image". This can list can be useful when you have a file name from
another system and want to find the filler in ClassPag. The "List fillers by"
field on the product configuration "User Preferences" screen has a new "IMAG"
value to make this the default.
* The agate and display filler setup widows have a new option to copy from
another product that updates existing records in the current product instead
of only adding new records. This should make it easier to maintain filler
libraries that are shared among several products.
* When ClassPag asks to rebuild the banners after you leave the banner setup,
if you have set the product configuration to rebuild only the banners for the
current zone by setting the "Folios and Banners Rebuild option" to "CUR_ED",
ClassPag will rebuild only the banners for current edition instead of rebuilding
them for all editions. This will make the rebuild faster and reduce the number
of warnings if you have banners for other editions that should not be rebuilt.
* Fixed a problem where importing a work area could take the control record
of the wrong product if the work area name was a suffix of another work area.
* Fixed a problem where internal class heads deleted with Cmd->Ads->DeleteAd
would not go away immediately.
NOTE: This version has 4528 lines of changes from the previous version.
10/12/04
Version 4.06
* ClassPag now supports dink ads. These are ads that should be embedded
within banners instead of placed directly on a page. In the sort file,
the position request (columns 102-107) should be "DI", and the target ad
(positions 108-117) should be a dink identifier.
Banner text records have a new "D" type where the image name is a dink
identifier. ClassPag will use the dink identifier in the image name
to locate the ad, and then it will place the ad at the specified location.
The ad must have an external eps image.
* Added support for controlling color line ads in SII.
The "Additional PostScript" product configuration screen has a new field
"Set SII Color Space"/"Fijar colores en SII" with the values "F", "T", "0",
"1" and "2".
SII by default sets the color space to gray scale with a prolog line that
sets _colorspace to 0. The new ClassPag field can override that value.
The default value of "F" does not alter the color space.
The value of "0" sets the color space to 0 for gray scale.
The value of "1" sets the color space to 1 for rgb color.
The values of "2" and "T" set the color space to 2 for cmyk color.
In addition if you the field is "1", "2" or "T", if you print a gray scale page
(using a paper option with the field "Create Separations" set to "GRAY"),
ClassPag sets the color space to 0 to convert the ads to gray scale.
* When ClassPag places template banners, if the default banner image is
too large for a page, ClassPag will place a smaller image if one fits
the width exactly.
* Added the Randomize "Z" value to the fixclass database definition.
* Fixed a problem where the class and parent class lines in the box
information window did not clear the final characters of the previous class.
* The "Place under banners" product configuration setting now does a better
job of placing class headers above display ads positioned at the top.
NOTE: This version has 1440 lines of changes from the previous version.
10/13/04
Version 4.07
* The list under "Cmd->Ads->Find an ad" has a new search option to show
only ads with page or position requests. This makes it easier to find
ads with special requests.
* When you are inside the page display and modify an ad with a dink
position request, ClassPag automatically rebuilds the banners.
* The product configuration list has a new command "Copy Fields"/"Copiar Campos"
to copy everything except the product id and product name from the product
under the cursor to the current product. If you have a number of products
with configuration records that are identical except for the product ids
and names, you can use this command to update the fields of the current
product to match another product.
* The banner list has new commands to copy all of the banners from
another product and to update all of the banners from another product.
The copy command copies all banners, banner images, banner text, and
index lines from the source product. Use this command to copy new
banners and banner parts into a product.
The update command works like the copy command except that it updates
any banner parts that exist in both products, and it deletes banner parts
that are in the current product but not in the source product.
Use this command to make the banners in the current product match
the banners in the source product.
* The folio list has a new command to delete all of the records.
This makes it easier to make copy the folios from another product.
* The editions and zones lists have new commands to copy from
another product and to delete all records. This make it easier
to copy them from another product.
* Changed the mirror copy_fs script to run /etc/mirror/copy_backup when it
exists. If you need to mirror to a third server (for example, for offsite
backup), you can copy the copy_fs script to copy_backup and hard-code
OTHER_XNODE to the name of the other server. If you will backup to the
third server more than once a night, you should run the rsync command
on the backup server to avoid loading the primary server. If nightly
copies to the third server are sufficient, the copy_backup script is
easier to setup.
NOTE: This version has 498 lines of changes from the previous version.
10/20/04
Version 4.08
* Improved the way that the mapclass interface formula generates ad numbers for
segmented ad. It is now better about including the full ad number and a dash
when the ad number and segment count are small enough.
* The readnn program now segments ads in classes 4500 through 4850.
This will need to be parameterized later.
* Merged the mirror scripts with track. Added lines for /u2.
Changed /etc/sendmail.cf to /etc/mail/sendmail.cf and added submit.cf.
* Added a "vg" option to the mapclass.sh interface script to run spice
under valgrind for debugging.
* Fixed a problem where the look ahead could take segmented ads and other
ads with requests out of order when debug logging was turned off.
NOTE: This version has 101 lines of changes from the previous version.
NOTE2: The segmentation in the readnn / mapclass requires a version of
spice built on Oct 20, 2004, or later.
10/22/04
Version 4.09
* The readnn interface program no longer drops class headers that
draw only one line of text.
* The readnn interface program no longer causes the mapclass interface
formula to show a large number of ad with errors.
* The readnn interface program now centers logos when the LG command
has no width, and left-justified them when the LG command has a width.
* The mapclass formula for the NN interface now uppercases the sort keys
that it reads from the input.fil. The file has the keys in mixed case,
but the sort in ClassPag is case-sensitive.
* The pagination engine is does a little better job at filling columns
that end with segmented ads.
* Fixed the configuration parameter to convert multi-column line ads into
display ads. It has had no effect since version 4.02 due to the new handling
of multi-column line ads.
NOTE: This version has 396 lines of changes from the previous version.
10/26/04
Version 4.10
* More changes to the readnn interface program:
^C (ascii 3) in ad text now becomes a heart.
LD now marks the line non-empty so a line with only LD is quadded.
readnn now reads the run date from times.fil.
readnn now centers logos correctly in multi-column ads.
* Import interfaces can now capture ad descriptions.
The readnn interface program now extracts ad descriptions from
text in logo commands and passes it to the mapclass formula.
* readnn now supports dumps of fillers. Filler dumps do not have BEGAD commands
to start ads like normal dumps. If the times file has a "Fillers" class, readnn
expects a filler dump. It will start new ads after ENDAD commands instead of
waiting for BEGAD commands. If it finds a BEGAD command, it switches to the
usual mode of writing ads only ad BEGAD commands.
NOTE: This version has 477 lines of changes from the previous version.
11/1/04
Version 4.11
* The Cmd -> Ads menu and the Cmd -> Ads -> Find an ad menu both have
a new "Convert to dink" option to convert the current display ad to dink.
The option shows you the list of active dink positions.
If you select a dink position from the list, ClassPag writes that
dink request into the current ad and then reloads the ads and banners.
This makes it easier to convert ads into dinks and makes it harder to
enter incorrect dink requests.
* Added Charles' formula oe_to_av to convert outext files into AdVision
return files. The script oe_to_av.sh removes old report files and
runs the formula to generate new ones. To run this script automatically,
enter it in the "Outext Export Command" field of the product configuration.
* ClassPag now accepts sort files with empty trailer locations.
Some interfaces that do not need a trailer leave the trailer start and end
positions empty in the sort file header.
* readnn shows more information about missing logos.
Added -s and -u command line options for handling missing logos.
When a logo is missing, readnn writes an entry to its debug log.
In addition, with -u, it writes "[LOGO logoname]" into the ad text.
Readnn scales logos when it embeds them. If a logo is missing in an ad,
readnn can not produce useful output for the ad.
When you find the logo, you must re-run readnn.
Changed the default for missing logos from -s (skip) to -u (use).
This makes it easier to find the logo name,
* More changes to the readnn interface program:
Added ad number and class to error messages.
This makes it easier to locate the ad that caused the error.
Keep bold after the first word if the point size is more than seven points.
Skip comments enclosed by hex 1E and 1F.
Change the default units for the LG command from points to picas.
* Increased the EPS size limit to view ads in the mapclass interface formula
from 1 MB to 100 MB.
* Added a comparenn.sh interface script that shows the differences between
the input.fil and classsrt.out files.
* The mapclass interface formula for the NN interface now sets a sort key with
the four-letter ordinal created by readnn plus the sort key from input.fil.
The ordinal will force the ads to sort in the correct order (the order in
galley.fil which is the same as the order in input.fil) even if the sort keys
have been modified to hold other information.
* Fixed a problem in front-to-back pagination in products that take second heads
from the parent class instead of from the current class. ClassPag would include
the depth of the second head of the current class when placing the first ad of a
class which could cause it to place ads that would fit into a later column.
NOTE: This version has 520 lines of changes from the previous version.
11/5/04
Version 4.12
* Ad records in ClassPag have a new ten character field with the base name
part of the external image name, and that field is now an index key.
This allows ClassPag to display ads sorted by their external name.
Also, for interfaces where the external name is an ad number from another
system (for example, an admarc number in SII interfaces), this makes it
easier to locate ads.
* The "Cmd -> Ads -> Find an ad" window has new options to sort by class or by
base name. This makes it easier to locate ads by class or by their file name.
* The <Enter> key in "Cmd -> Ads -> Find an ad" now selects the current ad and
exits the window. (It used to open the F12 command menu.) This makes it easier
to paste ads from the ad list. You can paste an ad in three clicks: click on
the "Find an ad" button, click on the ad, click where you want to place it.
* The window under "Cmd -> Ads -> Convert ad to dink" now has a command to show
the current dink ads. This makes it easier to see which dink requests have ads
assigned to them.
* The "Cmd -> Ads -> Convert ad to dink" window has a command to view the banner
image, and the window under it to show dink ads has a command to view the ad
image. This makes it easier to identify banners and dinks.
* In the window under "Cmd -> Ads -> Convert ad to dink", ClassPag now shows a
warning if you select a dink request that is used by another ad. This should
make it harder to assign the same dink request to more than one ad.
* Increased the work area names in the control record from 30 to 35 characters.
This allows work areas to have more descriptive names.
* When you convert ads to dinks under "Cmd -> Ads -> Find an ad", ClassPag waits
until you close the list before asking to rebuild the banners instead of
rebuilding the banners after each ad. This makes it faster to assign a number
of dinks in a batch.
* The square-off window has a new option "Free ads for all requests" that frees
all ads in all square-offs. If you are updating an early pagination session
with new ads, if any of the new ads are in a square-off that you locked during
the early session, you must free the square-off to allow the new ads inside it.
The new option frees all of the ads in all square-offs in one step.
* Fixed a problem in the pass to replace adjacent single column second heads
with a multi-column second head where it would not combine single column second
heads over multi-column ads.
* Fixed a check when calculating leading for the last ad in a column that
could show a warning in the log.
* Fixed a check when doing vertical justification in a column with single-column
segmented ads over a multi-columns ad.
NOTE: This version has over 1500 lines of changes from the previous version.
11/11/04
Version 4.13
* After the mapclass interface formula creates a sort file with the NN
interface, it now compares the ads in the sort file with the ads in the input
file. If it finds any differences, it displays a list of ads in one file but
not the other. If both files match, it displays a dialog that the files are
the same.
* The mapclass interface formula with the NN interface has a new option
"Compare sort and input files" to re-run the comparison step.
* Various changes to the readnn program:
The readnn program now handles double quotes and large bullets.
The readnn program no longer segments class headers.
Fixed a problem where the readnn program could add an extra digit to ad numbers.
* The readnn program now handles about 40 additional dingbat characters.
* Added a -r option to the oe_to_av.sh script to specify the directory for the
report files. For example, the ClassPag outext export product configuration
field could use
"oe_to_av.sh -r /u1/updater/z-" // ImportDir
* The comparenn.sh interface script has a new -c option to leave the
comparison files around for other programs to read.
* Fixed a problem where the log database and the foliopag database did not have
their "Terminal Name" fields extended from 30 to 35 characters. This caused
error messages when rebuilding folios.
* Update the oe_to_av formula to build using ClassPag include files.
NOTE: This version has over 1334 lines of changes from the previous version.
11/13/04
Version 4.14
* readnn now supports both word-only and word+space underlining.
* readnn now handles IBM Extended ASCII accented characters 80 through 9A hex.
* readnn now handles the closed box dingbat.
* mapclass with the NN interface now does a more precise binary search when
looking for a good set size. This should fix problems where long ads came out
too short.
* maketarw.sh now works better on systems with more than one version of ClassPag.
* Changed the manual reader to search for mozilla before netscape.
NOTE: This version has 428 lines of changes from the previous version.
11/16/04
Version 4.15
* The page display has a new command in Cmd -> Lock -> Save work for SCS
that can prepare and send work areas to SCS. The command opens a
dialog with three options: No (to exit without doing anything),
Yes (to run maketarw.sh to save the work area), and
ftp (to run maketarw.sh and then ftp the file to SCS).
The "ftp" option requires that the ClassPag server has internet
access to send a file to ftp.newspapersystems.com by ftp.
* Added a -c option to maketarw.sh to clean up the save subdirectory.
* Added a -f option to maketarw.sh to ftp the archive to SCS.
* Added a -t option to maketarw.sh to add the hour and minute to the
archive name. This is useful with -f to generate different names if
you send the save work area more than once in a day.
* The command to paste from the list of unplaced ads now has a hotkeys
to change the sort from sorting by ad number to sorting by class.
* The command to paste from the list of unplaced ads now has a hotkey
to toggle whether agate ads (and agate fillers and class headers) show.
If you regularly use Cmd -> Remove -> Remove all ads on page
on pages with square-offs, turning off agate ads will remove clutter
from the paste list. Note that the default is now to omit agate ads.
* The "User Preferences" product configuration screen has two new fields
"Paste ad command Sort"/"Comando para traer avisos ordenar por" and "Show
Agate Ads"/"Mostrar lineales" to set the default display of the paste list.
The "Sort" field can be "A", the default, to sort by ad number or
"C" to sort by class.
The "Show Agate Ads" field can be "N", the default, to omit agate ads
or "Y" to show agate ads.
* Increased the number of folio templates from 10 to 20 per side.
* The readnn interface program now captures colors used by logos.
* The readnn interface program now implements the xx command to
cancel tabs and indents.
* The readnn interface program now temporarily clears the margin
on lines with ld commands.
* fixperm.sh is better about making work files writable.
NOTE: This version has 2189 lines of changes from the previous version.
11/19/04
Version 4.16
* The product configuration screen "Page Numbers" has a new field "Rebuild
folios automatically"/"Recrear folios automaticamente" to control whether
ClassPag asks before rebuilding folios. The default of "Y" does not ask.
Use "N" to ask before rebuild folios. ClassPag used to ask by default.
* mapclass with the NN interface now uses the ad width from the first column of
the input file instead of the width returned by composition. If the column or
gutter width in the product configuration does not exactly match the width coded
into readnn, the calculation in mapclass could have been off.
* The mapclass command to search for ads in the ad text list now uses a D prefix
if there are matching display ads and no line ads.
* Fixed a problem in readnn where it could mess up the ad buffer if it searched
for DSC comments at the end of an EPS file for a logo. This fixes a problem
with display ads showing the wrong width.
* The readnn program no longer writes ads with an ignore type. The update
program reported these ads errors.
* readnn now keeps the type face of the first word if it is bold italic.
Other type faces still revert to roman after the first word.
* Fixed a problem that could create overflow pages or place extra headers
in with front-to-back pagination if you locked a range of pages and then
unlocked some pages in the middle.
NOTE: This version has 1057 lines of changes from the previous version.
12/6/04
Version 4.17
* Added Bob's changes to readnn:
Cancel tabs with the new Composition <xt 0> command that does not end a line.
This fixes a problem where <XX> commands could cause extra new lines.
Start in bold font 71 to match Newport's RS1 initialization.
This fixes a problem where readnn started in HelveticaBold which has
different metrics than font 71 and caused incorrect line breaks.
* The display ads directory is changed from a fixed string to a blob that runs
through the macro expression interpreter. This allows you to customize it
according to the product information. For example, you could use
"/u/displayads/" // f$format(RunDate,"DD")
to set the display ads directory to /u/displayads/ plus day of the month.
* mapclass.frm now appends the display ads directory to the end of COMP_LOGO.
This allows interfaces that pass marked-up text files to pass custom logos
in same directory ads the display ads.
* The makenn.sh script has a -a option that takes a directory name as an
option and adds the name to the end of $COMP_LOGO. Also, makenn.sh now
shows the value of COMP_LOGO in its log.
* The comparenn.sh interface script now appends $COMP_INT to the search path
so it can locate the cutcol program if it is not in $TOOLS.
NOTE: This version has 713 lines of changes from the previous version.
12/7/04
Version 4.18
* Added Bob's changes to readnn:
PS and FN commands changed to match the documentation.
Hyphenation turned off for large centered text.
The cc command in set_font now uses two decimal places instead of one.
* The Import command list has a new entry to set the run date.
You can use this to set the run date before doing an import.
It is useful when the import builds an ad directory based on the run date.
* The "Ad Loading" product configuration screen has a new field
"Ask for Run Date"/"Preguntar para fecha" to ask for a run date before doing
Import -> Read. If you set this field to "Y", ClassPag will ask for a run
date before starting the read. This is useful for interfaces that need
the correct run date when loading extraction files.
* Fixed the missing ads reports. The change to the ad database in version 4.12
required rebuilding them.
NOTE: This version has 562 lines of changes from the previous version.
12/8/04
Version 4.19
* When "Ask for Run Date" is set, if you import or copy from a work area with no
run date in the control record, ClassPag now asks for the date after copying the
work area instead of before. This prevents the copy from clearing the date.
* Modified maketarw.sh for Solaris. It now uses gnu grep (as ggrep or grep
from /usr/local/bin) if it is present. The maketarw.sh requires gnu grep.
Also, maketarw.sh now creates the prodtrn directory if it is not present.
NOTE: This version has 135 lines of changes from the previous version.
12/17/04
Version 4.20
* ClassPag now supports ad position requests from the sort file.
The field is columns 62 to 69 (counting from 0) of the sort file.
The request is a numeric value with the height of the ad on the page.
The value is the distance from the bottom of the page to the bottom of the ad in
units of centi-points. A value of "0" places the ad at the bottom of the page.
Since "0" is a valid value, ads without a request must have all spaces in this
field. The height request defines the order of the ads for ads on the same page
that request the same column. A height request is ignored without a column
request.
* The product configuration screen "Outext Export" has a new field "Remove
Suffix"/"borrar sufijo" to remove the sort key suffix from classification names.
When ClassPag writes class names into the outext, if the name of the current
class is a prefix of the name of its parent, ClassPag writes the name of
the parent instead. This should make the outext more useful for sites with
interfaces that append the sort key to class names but need the suffix
removed when sending files back to their front-end or billing system.
* Added Bob's new mapclass interface formula that adjusts the set size to make
ad depths match for non-box ads and ads not overflow the box for box ads.
* If a line ad comes over as 0 columns wide, ClassPag now treats it as 1 column.
This can happen if the new spice "update" program converts a work area created
by a version of ClassPag before 4.02.
* Added interface programs readnac.c, makenac.c and compnac.sh to start
reading softdata files.
NOTE: This version has 1126 lines of changes from the previous version
plus 11353 lines for the new softdata interface.
12/28/04
Version 4.21
* The product configuration screen "Agate Ad Specifications (Continued)"/
"Especificaciones de Avisos Agate (continuado)" has a new field "Paired Class
Look Ahead Sort Match Len"/"Large a comparar" to control how many characters
of the sort key that ClassPag will check when doing a look ahead in classes
with paired pagination (Randomize field of the class record set to "P").
The default is 0 to maintain the previous behavior of ignoring the sort key.
Use this parameter if ads in classes with paired pagination must maintain
sort order.
* Horizontal pagination (Randomize field of the class record set to "H" or
"Z") now uses the look ahead and sort match length for paired pagination
to take wider ads first if they fit. Placing wider ads first should
reduce the need for fillers.
* The product configuration screen "Display Ad Dummying Style (Continued)"/
"Estilo de Diagramacion de Avisos Destacados (continuado)" has a new field
"Horizontal Pagination Can Sink Fillers"/"Paginacion horizontal puede hundir
rellenos" to control how ClassPag places fillers on partial pages.
The default value of "Y" allows ClassPag to mix fillers with ads.
The value of "N" tells ClassPag to place the fillers all at the bottom
(or top, depending on the pagination direction). If you are using
horizontal pagination, setting the field to "N" will prevent fillers
from pushing ads into a different row.
* Added a maketaru.sh script that makes a tar archive of executables in
/usr/local/bin on the current system. The command line arguments are similar
to those for maketar.sh. To make the archive, become root, and run
maketar.sh -kit
You must be root in order to have read access to all of the necessary files.
The script will write a file with a name like cpagu-date-os.tar.bz2 into the
current directory. The naming convention is the same as for maketar.sh.
Copy the cpagu-date-os.tar.bz2 file to the new system.
On the new system, become root and run
cd /
bunzip2 < /path/to/cpagu-date-os.tar.bz2 | tar xvf -
./temp.sh
You can look at the temp.sh script before running it.
You should unpack the archive and run temp.sh before copying ClassPag files.
The temp.sh script
creates /usr/share/fonts/default/Type1 for xpdf
makes a /u/gnu/gs4 link with the version of gs in the archive
adds /usr/local/bin/bash to /etc/shells
renames /usr/bin/X11/ghostview and /usr/bin/gs to use the new ones
in /usr/local/bin
creates a "slide" group and adds it to /etc/sudoers
creates a "cpag" user
creates an empty /u/cpag directory
deletes itself (the file temp.sh)
* Added a -passive option to rcpuniq.sh to toggle passive mode from the initial
state of the ftp client.
Passive ftp works better for clients behind firewalls.
In all versions of ftp, the server uses port 20 for data and port 21 for commands.
The client opens two consecutive ports over 1024, the first for commands and
the second for data.
In the original active ftp:
1) The client writes from its lower-numbered port to the server's port 21.
2) The server writes from its port 21 to the client's lower-numbered port.
3) The server writes from its port 20 to the client's higher-numbered port.
4) The client writes from its higher-numbered port to the server's port 20.
The third step causes problems with firewalls because an external system
is initiating a connection with an internal system.
In passive ftp:
1) The client writes from the lower-numbered port to the server's port 21.
2) The server creates and starts listening on a port over 1024.
The server writes from its port 21 to the client's lower-numbered port.
The message includes the server's new port.
3) The client writes from its higher-numbered port to the server's new port.
4) The server writes from its new port to the client's higher-numbered port.
For more information of ftp, see http://slacksite.com/other/ftp.html
or http://en.wikipedia.org/wiki/Ftp
or http://www.rhyshaden.com/ftp.htm
or http://www.cisco.com/warp/public/759/ipj_2-3/ipj_2-3_oneb.html
Recent ftp clients start in passive mode automatically, while older clients
start in active mode. ftp clients have a "passive" command to toggle passive
mode. The command does not take a parameter, so its result depends on the
initial state of the client.
* Added -v and -passive options to maketarw.sh. These option both send the
-passive option to rcpuniq.sh when used with the -f option to send the work
area to SCS by ftp.
* The command under "Cmd -> Lock -> Save work for SCS" now checks for a printer
name called "sendtoscs". If the printer name exists, if it starts with a dash,
ClassPag adds it to the maketarw.sh command line that it generates.
For example, to send work areas in ftp passive mode, create a printer entry
for the current node with the id "sendtoscs" and the command line "-passive".
If the printer name exists and does not start with a dash, ClassPag uses it
instead its current default command of "maketarw.sh -c". For example, to save
only the work area files but not the product information, you could create a
printer command with the id "sendtoscs" and then command line "maketarw.sh -d".
This command should be prepared to accept the options "-f" and "-t" if the user
chooses the menu option to send the file to scs by ftp.
* When the setup.sh checks to set the XFontSize, it now treats the X servers
with the vendor "The X.Org Foundation" the same as XFree86. The X server on
RedHat Fedora Core 3 returns this string.
* Added Bob's changes to the readnn and the mapclass interface programs:
Correction of the calculation of box heights to improve the fit of text
in boxed ads.
Refinement of the search for the text scale factor for boxed ads.
Correction the calculation of the leading space by AP and SP commands
to improve the fit of ads with extra space between paragraphs.
NOTE: This version has 3136 lines of changes from the previous version.
12/30/04
Version 4.22
* When the product configuration does not permit spanning ads, ClassPag
will still span ads if the ads on the outside are copies of the same ad.
This makes front-to-back pagination work better in classes with two-column
wide ads but only one-column wide headers.
* Fixed an internal warning that could happen when paginating multi-column
segmented ads back-to-front.
NOTE: This version has 303 lines of changes from the previous version.
1/6/05
Version 4.23
* Commented out the line in maketaru.sh that renames /usr/bin/gs to gs-.
CUPS (the print queue system in current RedHat Linux systems) requires that
/usr/bin/gs exists and that it is the version that came with RedHat.
* Updated copyright dates to 2005,
* Fixed a problem with multi-column segmented ads where some columns could
repeat text.
* Rebuilt the missing ad reports for the database changes in version 4.20.
* Added Bob's changes to the AdVision interface.
The adcls2 database now maintains a real number quad option.
The new procnn interface program undoes nested format calls.
Improved handling of flush commands.
Improved the handling of AP and SP commands; their parameter is no longer
multiplied by v17.
Increase the minimum spaceband from 500 to 768.
Multiply the set size by .98.
Add conditionals to QL and QC commands.
For box ads, store the space at the top in addition to the space at the
bottom; if there is much more space at the bottom, try to deepen the ad.
When switching from fl to fc, use QM instead of QL.
NOTE: This version has about 1000 lines of changes from the previous version.
1/14/05
Version 4.24
* ClassPag now places superheads over display ads at the tops of columns
if the configuration specifies placing heads over display ads and
if the configuration specifies placing superheads over line ads
at the tops of columns and
if the class for the display ad has no second heads and
if the parent class of the display ad has second heads.
* ClassPag now has controls to limit the number of copies that it can place
of each filler. The product configuration screen "Display Ad Dummying
Style"/"Estilo de Diagramacion de Avisos Destacados" has new fields "Maximum
Count Per Edition"/"Cuento máximo por edicion" and "Per Page"/"por pagina".
The first field sets the maximum times that ClassPag can place a filler in a
pagination session and the second field sets the maximum times that ClassPag
can place a filler on the same page. The default value of 0 or all blanks
allows unlimited use fillers.
* When you edit an ad record, ClassPag now calculates the text version of
the ad height from centi-points value.
* When you edit an ad record and leave without making any changes, ClassPag no
longer shows a warning dialog that you must write the record to save your
changes.
* Improved a calculation for square-offs with combined line and display ads
placed from the top with large ads at the top to make the square-offs tighter.
* Fixed a problem with square-offs with combined line and display ads placed
from the top with large ads at the top where the line ads could overflow.
* Fixed a problem with square-offs with combined line and display ads placed
from the bottom with large ads at the top where they could become packed with
fillers and have no room for the banners if the geometry of the display ads
left a hole at the bottom of the page large enough for fillers.
* Fixed a problem that prevented the entering of expressions in the display ad
directory field of the product configuration. ClassPag would not let you leave
the field if the directory that the expression evaluated to did not exist.
* Fixed a problem where ClassPag was reading the ad placement height in the
cardex starting one character too far. This could lose the leftmost character
of a left-justified height or could treat an empty height field as 0.
* Fixed a problem where ClassPag did not allow you to write an ad record
with an empty ad position.
* Bob improved the readnn interface program:
Improved depth computation of the tops of boxes.
Better handling of changes from centered or right justification.
Turn hyphenation off with <AH ,,,1> instead of <XH>.
Generate the new <AM> composition command to set the maximum leading.
Fixed a logo depth computation.
The <fc> command now centers logos.
No longer hyphenate after the second word if the third word is centered.
Underline with the new <SA> composition command instead of <PC> commands.
Generate <SW 3> at the start of ads to treat fixed spaces as line break points.
NOTE: This version has 2596 lines of changes from the previous version.
1/19/05
Version 4.25
* The product configuration screen "User Preferences"/"Preferencias
de Usuarios" has a new field "Unplace command saves ad positions"/
"Comando para quitar avisos guarda posiciones" to specify whether the
page preview command to unplace an ad should save the ad positions.
The default value of "Y" locks the remaining ads when you remove ads
from a page. The value of "N" does not lock the remaining ads so that
if you repaginate without making any more changes, the ad will return
to its original place.
* The product configuration field "Place wide headers"/"Colocar
cabezales anchos" on the screen "Classified Heading Placement"/
"Ubicacion de Encabezados de Clasificaciones" has a new value "ALL" to
place wide headers across the top of mixes of display ads and line ads.
The value "T" still places wide headers only over agate ads.
* When ClassPag places wide headers over ads, it now checks the top of
the page in addition to checking along the top of the ads placed from
the bottom. This allows it to combine headers in more situations.
* Fixed a problem where Cmd -> Position -> Place main headers would
sometimes replace the main ad with an extra header.
* Bob improved space allowances for the overflow of text into boxes
in the readnn and mapclass interface programs.
NOTE: This version has 4061 lines of changes from the previous version.
1/20/05
Version 4.26
* The product configuration screen "Display Ad Specifications
(Continued)"/"Especificaciones de Avisos Destacados (continuado)"
has a new field "Line up ads above wide ads"/"Justificar sobre avisos
anchos" to line up ads over multi-column ads and at the bottoms of
columns. The default value of "N" favors lining up ads from the tops
of columns and centering small ads between to multi-column ads.
The value of "Y" shifts these ads down to the preferred leading depth
to the ad below them or to the bottom of the page.
* Added a new BB ad position request to ignore the bounding box.
Ads with this request show the flag "IGNORE_BB" in the box information window.
This can be useful for specially built display ads that have incorrect
bounding box information. ClassPag will place the 0,0 point of the
ad at the lower left of the ad reservation.
* Improved the test for checking if line ads under display ads need
a class header. If the classes of the ads have headers that point
to the same eps file and have the same image width and depth,
ClassPag considers them the same. Also, if neither class has
its own class header and if both classes have the same parent,
ClassPag considers them the same. This makes ClassPag work with
class structures like 765 -> 765F -> 765FOR where 765 is a top level
auto class with generic primary auto heads in a banner,
765A is a class with no ads, a primary head in a banner
with the letter "F" and secondary heads in a banner copied from
the 765 heads, and 765FOR is a subclass with Ford ads.
With this change, if ClassPag places a 765FRE line ad under
a 765FOR display ads, it will know not to place a class header.
* The "Class Type" field of classification records and sequencing
records has a new value "G" to mark groups of classes. The value
works the same as "S" except that if any classes under the same
parent class have class names start the same as the type "G" class,
ClassPag nests them under the type "G" class. For example, if class
765F is marked as type "G", ClassPag will nest classes like
765FOR and 765FRE under it. This allows you to create class nestings
even when you do not know the class names of the nested classes
in advance.
* Class headers entered as banners can now specify that the class has
only primary headers and no second headers. In the Split Overflow
field of the banner record, use an "M" (for main header only) instead
of "C" (for a generic class header). With a class structure like
765 -> 765F -> 765FOR, where 765 has a generic auto head with type "C",
765F has a head with the letter "F" with type "M", and 765FOR has no heads,
ClassPag will flow the 765F head in-line and repeat the 765 head at the
tops of columns and above 765FOR line ads when they are below display
ads of a different class. Type "M" does not change the placement
rules except to allow the search for second heads and for compatible
classes to advance over it to the parent class.
* Added a "nac" option to the mapclass.sh interface script to convert
ads with makenac.sh.
* Fixed a problem where Import -> Read or Copy could show an error
dialog if some of the directories were not readable. The listdirs.sh
script now always returns a success status.
* Fixed a problem where columns with wide headers above a display ad
at the top of a column with class heads below the display ad could
have the class heads unjustified.
* Bob improved the mapclass and readnn interface programs.
mapclass has improved ad size checking.
mapclass handles duplicate ad numbers in the input file.
readnn has improved calculations of the top and bottom of text and boxes.
readnn no longer cancels the indent on ld commands.
readnn no longer sends a quad when switching from centered text on the
first line before the second word.
readnn now allows 1/4 leading instead of 1/3 for descenders above a box.
NOTE: This version has 2902 lines of changes from the previous version.
1/21/05
Version 4.27
* When ClassPag searches for parent class headers, if it is at the
top of a page or under an ad with a different class, it scans over
classes with type M banners instead of stopping.
* Fixed a problem where columns with wide headers above a display ad
at the top of a column with class heads below the display ad could
have the class heads unjustified.
* Fixed a problem where front-to-back pagination with display ads
to the top could place a display ad under a top level class header
if none of the classes before the class with the display ad had
line ads.
NOTE: This version has 351 lines of changes from the previous version.
1/22/05
Version 4.28
* When you drag an ad below a wide class header that spans several
ads at the top of a column, ClassPag now breaks the header into
single-column parts and removes only those parts above the ad that
you moved. When you reflow, ClassPag will recombine the parts.
Before this change, ClassPag would remove the entire wide header,
and then the other ads that had been below the header would
be at the top of the page with no header above them.
* Added a runreport.sh script that can run ClassPag reports.
The script takes an argument with the name of the report.
The current reports are radfits (mis-sized ads), radfound (missing ads),
radfoundn (missing ads, alternate with names), radkill (killed ads),
and conflict (ad conflicts). The script runs in the current work area
and depends on having the databases built.
* Fixed a problem with heads entered as type M banners where they would
not place above a display ad below a banner with a different class.
* Fixed a problem with heads entered as type M banners where ClassPag
would sometimes place extra heads.
NOTE: This version has 568 lines of changes from the previous version.
1/28/05
Version 4.29
* The "Cmd -> Ads -> Find an ad" window has a new option to sort by size
with the largest ads first. This makes it easier to find larger ads.
* Template name, print command, and folio composition expressions can
use the new variables ReqColorType and ReqColorList. These variables
show the color information requested for the page in the page information
screen. They show the colors allowed on the page, not the colors of the
ads actually on the page. ReqColorType is empty for no color, "SPOT" for
spot color, or "FULL" for full color. ReqColorList has the first letter
of each of the spot colors on the page. For full color pages, ReqColorList
is "CMY". For different B&W and color templates, you can test
(ReqColorList = ""? "black-and-white-template.ps": "color-template.ps")
For templates specific to a given color, you can test
(f$locate("C",ReqColorList) < f$length(ReqColorList)? "cyan-template.ps": "")
* The product configuration folio screen has a new field
"Warn if folios not made for ... colors"/
"Avisar si los folios no se hacen por ... clr" to check if
ClassPag should rebuild the folios if you change the requested
colors on a page. This field enables lookups for the folio variables
ReqColorType and ReqColorList. If this field is not set to "Y",
those variables will both be fixed to an empty string.
The default value of "N" omits the lookup and leaves the variables empty.
* Improved the automatic page selection for square-offs. In the initial
pagination, square-offs should be much closer to their class, especially
in sessions with front-to-back pagination that have many extra unused
pages in the back. In the second and following paginations, the square-offs
should move even closer to their classes.
* Improved the gravity calculation when dragging ads to enlarge the area
that will an ad snap to a position at the top of the page. It is now
much easier to drag large ads from the bottom to the top of a page.
* Improved automatic header placement when dragging display ads.
When ClassPag looks for second heads from a parent class, it now
advances through parent classes with heads entered as type M banners.
* The runreport.sh script has new parameters to specify the work area.
The "scr" parameter uses the current directory as the work area.
An argument that contains the full path to a work area uses that directory.
For example, to run the missing ad report from the SaveMonday work area, use
cd /u/cpag/root/scratch/SaveMonday ; /u/cpag/runreport.sh scr radfound
or
/u/cpag/runreport.sh /u/cpag/root/scratch/SaveMonday radfound
* Fixed a problem entering commands into printer definitions where
a short command would have its last word in the blob field even if
it fit in the text field.
* Fixed a problem where dragging ads at the top of the page on a page with
a spanning class header could make the header jump below an ad. If the new
position of the header prevented all of the ads from fitting, ClassPag would
keep the page the same and show a warning about excess depth.
* Bob improved the mapclass and readnn interface programs.
They now track the insertion number to handle multiple insertions with
the same ad number.
NOTE: This version has 2057 lines of changes from the previous version.
1/31/05
Version 4.30
* The product configuration screen "Ad Importing"/"Importacion de Avisos" has a
new field "Include interface files when saving"/"Guardar archivos de interfaz"
to copy site-dependent interface files when saving the current work area into
a save area. For interfaces that do not send standard sort and eps files,
ClassPag usually does not need the original files after importing them.
If the interface passes marked-up text, these files can be large.
The default is not to copy them. If you set the field to "Y", ClassPag will
copy the files. Having the files can be useful if you need to re-import from a
save area (if you can no longer import from the original import area) or if you
need to run a report that combines ClassPag data with the original interface
data.
* The product configuration screen "Ad Importing" has a new fourth field
for a file extension under "Interface has"/"Interfaz tiene archivos".
This allows more options when working with other interfaces.
* ClassPag now supports merging up to four extractions with a main extraction.
The third and fourth merge directories should be called "merge3" and "merge4".
As with the second merge directory in "merge2", ClassPag will ask to import
these directories if they contain a sort and eps file. ClassPag will show
a warning if the date in the sort file does not match the date of the sort
file in the main directory.
* When rcpuniq.sh needs to start a remote shell, if /usr/bin/rcmd does
not exist, it uses rsh instead. SCO has rcmd while Linux and Solaris
have rsh. On SCO, rsh is a restricted shell, not the remote shell client.
* Fixed a problem where ClassPag would show display fillers, policy ads and
corner ads as unplaced if they had a placement count greater than zero but
were in an inactive class.
* Fixed a problem with back-to-front pagination when child classes could use
their parent's head as a second head ("Repeat Heading of Parent Class" set
to "COPYR") where ClassPag would not always place the parent's main head.
NOTE: This version has 1494 lines of changes from the previous version.
2/1/05
Version 4.31
* Fixed a problem with spanning heads where if you started with a page with a
spanning head across the top and some columns with only line ads below the head,
if you dragged an ad below an ad below the head into the column with only line
ads, the spanning head would go away and the columns above the new position of
the dragged ad would have heads. The spanning head now splits into single
column heads and keeps copies in only the columns with compatible ads.
* Fixed a problem with spanning heads where if you dragged an ad from one page
to the top of another page that already had a spanning head, the spanning head
would go away and the only head would be above the ad that you dragged. The
spanning head now splits into single column heads and keeps copies in only the
columns with compatible ads.
* Fixed a problem that could place extra fillers on pages with spanning heads.
If any of the columns under a spanning head did not have enough space to flow
liners, ClassPag would not flow any liners under any of the columns.
NOTE: This version has 327 lines of changes from the previous version.
2/2/05
Version 4.32
* Fixed a problem with front-to-back pagination where ClassPag would place only
the head of the current class and not also the second head of the parent class
when flowing line ads under banners with the product parameters set to place
both heads at the tops of columns and "Place under banners" set to "Y" to
treat the space below a banner the same as the space at the top of a column.
* Fixed a problem in square-offs built back-to-front with class headers entered
as banners where the initial header would fit on the first pagination but could
jump outside the square-off in later paginations.
NOTE: This version has 81 lines of changes from the previous version.
2/4/05
Version 4.33
* Added commands under Cmd->Position to help move ads. In addition to
the existing command to shift line ads up, there are three new commands.
"Shift liners down"/"Mover lineas debajo" shifts the line ads down.
"Shift ads up"/"Mover avisos arriba" shifts all ads up.
"Shift ads down"/"Mover avisos debajo" shifts all ads down.
You can use this in combination with the equalize columns command
to create blocks of ads at the bottom of a page.
* The pagination statistics screen no longer reports banners with
missing default images as unplaced ads.
NOTE: This version has 470 lines of changes from the previous version.
2/9/05
Version 4.34
* The product configuration screen "Display Ad Specifications (Continued)"/
"Especificaciones de Avisos Destacados (continuado)" has a new field
"Line up wide ads"/"Just.avs.anchos" to line up multi-column ads that are
above or below wider multi-column ads. The default value of "N" centers
multi-column ads in their space. The value of "Y" lines up multi-column
ads below wide multi-column ads (for example, a mix of display ads and
line ads under a full-width class header). In addition, if the field
"Line up ads above wide ads"/"Justificar sobre avisos anchos" is enabled,
ClassPag will line up multi-column ads above wider ads (for example,
a mix of display ads and line ads above the lower banner of a square-off).
* The Box Information window now shows the rightmost X position and the bottom Y
position if the screen is larger than 24X80. The bottom Y position is useful
when checking the alignments of the bottoms of ads.
* Fixed a problem where moving a square-off would break it. Due to the
change in 4.32, the recalculation would miss the area of class heads
entered as banners.
* Fixed a problem with the automatic removal of templates when placing ads.
* Fixed a problem in the pagination statistics screen that could show a negative
number of placed banners if ClassPag automatically removed template banners.
NOTE: This version has 2556 lines of changes from the previous version.
2/11/05
Version 4.35
* Improved the placement of square-offs near their classification.
ClassPag used to start looking on the range of pages covered by the parent class
of the class of the square-off. It now starts looking at the classes before and
after the parent class of the square-off.
* ClassPag now handles heads better on configurations that send main heads in
the sort file and enter second heads as banners in the product setup. When the
configuration requested copying the parent heads to subclasses (needed when the
classes in the sort file have suffixes to provide information to ClassPag to
keep display ads in sort order with line ads), ClassPag now no longer takes
the main head in places where it should have taken the second head.
* When the product configuration says not to place class heads under display
ads, ClassPag no longer shows line ads below display ads from a different
class as a conflict.
NOTE: This version has 519 lines of changes from the previous version.
NOTE2: The change with the heads needs testing with different configurations
to check that it did not break anything.
2/17/05
Version 4.36
* Added a scancache.sh script that creates cache eps entries for non-eps files.
The script can take either directories or file names as command line arguments.
For directory arguments, it scans the files in the directory, but it does not
descend the directory recursively.
If it finds a PDF, JPG, TIF or GIF file that is not in the cache or more recent
than the version in the cache, it converts the file using same algorithm and
naming convention as the current product.
If the cached version of the file is current, or if the file is already an EPS,
the script skips the file and advances to the next file.
The command line has the syntax
scancache.sh scr /u/cpag/root/scratch/workarea /u/adsdir1 /u/adsdir2 ...
The pair "scr" and "/u/cpag/root/scratch/workarea" specifies the work area
to use. The work area should have a control record that sets the product.
You can use a save area that contains an edition for product.
Normally the scan creates both separable and composite versions of the EPS.
If you do not specify a valid work area or if you specify a work area linked
to a product that does not allow level 2 postscript, then the scan will create
only the separable version of the EPS and not also the composite version.
The /u/adsdir1 /u/adsdir2 ... is a list of directories to scan.
For example, scan the files in /u/displayads using the product of a save
area called MonMain, use
/u/cpag/scancache.sh scr /u/cpag/root/scratch/MonMain /u/displayads
You can set a cron job to run this script periodically.
You should set a large enough time period between jobs that two copies
of the script do not run at the same time, especially if the scans are
running from the same directory.
On shells like bash that supply a $RANDOM variable, the scan processes the
files in random order to reduce the chance that two scans running at once
will interfere with each other.
You should not touch the save area while the scan is running. If you
can not ensure that, you should make a save area (or a set of save areas)
dedicated to running the scan.
* Fixed a problem where starting with a page with class headers and display ads
at the top and dragging a banner to the top of the page would unplace the class
headers.
* Fixed the unflow procedure where a class header over a one-column display
ads would stay even if the display ad would unflow (because the product
configuration specified unflowing one-column display ads).
* Fixed a warning about copy headers in the cpag log.
* Rebuilt reports to fix a problem since the ad database change in 4.29.
* Included Bob's fix to readnn to handle EPS files with lines with a
single percent in the prolog.
NOTE: This version has 496 lines of changes from the previous version.
2/25/05
Version 4.37
* When ClassPag places wide headers, it now combines heads under all
multi-column ads. It used to combine only the heads at the tops of columns.
* Changed the meaning of the product configuration parameter "Can split wide
headers"/"Dividir cabezales anchos" on the screen "Classified Heading
Placement"/"Ubicacion de Encabezados de Clasificaciones".
When ClassPag needs to place a class header over a multi-column ad, and the
class of the ad contains a header of the same width of the ad, when this field
is "N", ClassPag used to place the wide head even if the head was not needed in
every column, for example, because this is a two column ad, and the class of the
ad above this ad in one column is compatible and the class of the ad above this
ad in the second column is not compatible. ClassPag will now use single column
headers if all of the columns with compatible ads have class headers.
This prevents ClassPag from placing a wide class header below a single column
class header for the same class in some situations.
* Changed the internal data structures for tracking the number of times each
ad was placed. It is now faster and fixes some warnings about tracking class
heads entered as banners.
* Improved the justification that lines up ads below multi-column ads.
It will now move ads a little closer than their preferred leading
in order to make all of the ads line up.
* Added Cmd->Ads->ViewAllSegments and Cmd->Ads->FindAnAd->F12->ViewAllSegments
to view all of the segments of the currently selected segmented ad.
* The command to test if composition is running now checks both the "view"
and the "eps" photodef devices. It used to check only the "view" device.
This can help identify errors if the "view" device is bad but the "eps"
device is OK.
* The commands to rebuild banners under Setup->Banners->F12 now write all of
the parameters to composition to the ClassPag log file when a banner has
a composition error. This makes it easier to see what happened.
* Fixed a problem when rebuilding banners under Setup->Banners where the dialog
would warn about not being able to reload the default image of the current
banner.
* The dialog window with the banner text when you rebuild banners with debugging
under Setup->Banners->F12 now allows you to edit the input text and recompose
it. The changes are not saved, but this can be still useful when debugging
macro expressions or composition sequences.
* The dialog window with the banner text when you rebuild banners with debugging
under Setup->Banners->F12 now allows you to recompose composition text.
The recompose command used to stop if the text in the editor window was not
a valid macro expression. If the text is not a macro expression, it now
continues using the original text. This allows you to test recomposing the
macro expression output and the composition output.
* ClassPag now does better vertical justification when lining up multi-column
ads in the stack that grows from the top. It used to show a message in the
debug log and leave the ads in their original positions.
NOTE: This version has 2079 lines of changes from the previous version.
NOTE2: This version requires extra testing due to the large amount of internal
changes required for the enhancement to combine headers below multi-column ads.
3/9/05
Version 4.38
* ClassPag now gives more control over the jobname in the postscript status
dictionary. As before, if the printer entry specifies a title comment, ClassPag
sets the jobname to that comment, otherwise it sets it to a string that shows
the page number and other information. ClassPag used to write the jobname
line only when generating postscript output and only at the end of the prolog.
The printer database has a new field "Set PS jobname"/"Fijar jobname" to control
when and where ClassPag sets the jobname. The default value of an empty string
sets the jobname at the end of the prolog for only postscript output.
The value "INIT" sets the jobname at the start of the prolog for all output.
Use this if the RIP takes the first jobname that it sees.
The value "END" sets the jobname at the end of the prolog for all output.
Use this if the RIP takes the last jobname that it sees.
The value "ALL" sets the jobname at both the start and the end of the prolog.
The value "YES" currently works like "END".
The value "NO" does not set the jobname.
Use "NO" if the setting the jobname causes problems.
Use the other values if you need the jobname set in a different location
or if you need it set in EPS files. EPS files normally should not touch
the jobname, but if you are sending the EPS to a conversion queue instead
of importing it on a page in another application, the information in the
jobname could be useful.
To view the lines in a postscript file that set the jobname, use the command
addcr -s < cpag.ps | grep jobname
* Fixed a problem where wide class heads below a banner could go away when
you moved a display ad under them.
* Fixed a problem where wide class heads below a square-off banner could
go away when you unflow ads.
* Fixed a problem where a page with a multi-column ad at the top with
single column ads below it and another multi-column ad below could be
built incorrectly. This could happen in front-to-back pagination on
a page with a banner, then class heads, then multi-column line ads.
* Integrated calls to new spice routines for locating the bounding box.
NOTE: This version has 1764 lines of changes from the previous version.
3/10/05
Version 4.39
* The product configuration screen "User Preferences/Preferencias de Usuarios"
has a new field "Sort the command list"/"Ordenar lista de comandos" to control
the sorting of the command lists in the page preview under the Cmd button.
The default value of "N" sorts the lists in the order as before.
The value "Y" sorts the lists in alphabetic order.
* If the command to export an outext returns a failure status, ClassPag now
shows a warning dialog.
* Fixed another problem where a page with a multi-column ad at the top with
single column ads below it and another multi-column ad below could be built
incorrectly.
NOTE: This version has 1338 lines of changes from the previous version.
3/14/05
Version 4.40
* The product configuration screen "Display Ad Dummying Style"/"Estilo
de Diagramacion de Avisos Destacados" has a new field "Shift Large Ads"/
"Mover avisos grandes" to control how ClassPag adjusts large ads.
When two ads are the same width and and in the same column,
ClassPag can shift the longer ad above or below the shorter ad.
The default value of "NO" leaves ads where the pagination places them.
The value of "UP" shifts longer ads above shorter ads.
The value of "DOWN" shifts longer ads below shorter ads.
* The page preview new commands "Shift big ads up"/"Mover avisos grandes arriba"
and "Shift liners down"/"Mover avisos grandes debajo" under Cmd->Position.
The commands work the same as the "Shift Large Ads" configuration parameter
except that they will also move ads that you have placed manually so you
can use them to fix up pages.
NOTE: This version has 2034 lines of changes from the previous version.
3/17/05
Version 4.41
* The sort file can now contain zoned ads. The zone number is a two-digit
number in column 120-121 (counting from 0) of the sort file. If the field is
blank or 0, the ad is common to all zones. Otherwise, the ad appears in only
the specified zone. If an ad runs in a set of zones, the sort file must have
one copy of the ad record for each zone.
ClassPag currently uses the zone number directly. The zone mappings under
Setup->Zones apply only to zones in cardex files.
* The ad statistics screen, the report under Cmd->Ads->PrintPagStats and the
list under Cmd->Ads->ViewRunStats now count segmented ads as only one ad instead
of counting each segment. This makes the counts easier to compare to the
counts reported by the front-end system that made the extraction,
* The paper selection window now shows the printer command. This makes it
easier to find the paper entries that correspond to a printer.
* ClassPag now shows a warning dialog if you try to change the Screen or Report
paper entries or the Current Page spread entry. ClassPag uses Screen and
Current Page when you view a page in the page preview, and it uses the Report
entry when you print a text report.
* mirror.def now sets SPICE_APP to "all" before running spicedef if
/u/scs/set_default_spice_app does not exist. This allows the script to run
on systems without track when there is no set_default_spice_app script.
* Fixed an error that could cause ads to overwrite when placing a header
over a display ad at the top of the stack from the top.
* Fixed an ad count calculation when taking display fillers from the default
display filler product.
NOTE: This version has 528 lines of changes from the previous version.
4/6/05
Version 4.42
* Added support for standby ads entered as display fillers.
The product configuration screen "Display Ad Dummying Style (Continued)"/"Estilo
de Diagramacion de Avisos Destacados (continuado)" has a new field "Standby Ads
in Display Fillers"/"Avisos de standby en rellenos destacados". The default
value of this field is "N" which means that the display filler database does
not contain any standby ads. When the value is "Y", ClassPag checks for a
"#" or the word "REMNANT" at the start of the description in display fillers.
If it finds either string, it skips a single space (if one is present) and takes
the following 10 characters as a priority key. Whenever ClassPag comes to a
place where it needs to place a filler, it first checks to place the unplaced
standby ad with the smallest priority that fits in the column.
The 10 characters in the priority key allows enough space to enter an order
date in YYYYMMDD format which would make a simple way to ensure that the oldest
standby ads run first.
* Added a statistics unit to the product configuration to control the values in
the ad statistics screen. The initial product configuration screen has a new
field "Statistics/Estadisticas" with name of the units. If the field is empty,
ClassPag uses the product configuration units.
* The toolbar has new buttons to shift ads up, shift ads down, level pages,
modify classifications, change the pagination direction, retry missing images,
and save a column range.
* Fixed a problem where class headers in banner records would override class
headers in the sort file even if the banner did not have a header usable in the
initial pass. If the banner record has a wide header and the sort file has a
single column header, ClassPag keeps the single column header.
* Start of changes to /etc/mirror scripts for Solaris.
* Included Bob's enhancement for handling tabs in readnn.
NOTE: This version has 3957 lines of changes from the previous version.
4/12/05
Version 4.43
* Added a toolbar button to refresh the page display.
* The pagination preview window now shows the count of overflow pages at the top
of the information area at the upper right. When there are overflow pages, the
top line that says "Page # of #" shows the additional text "# OVERFLOW" in red.
* The date columns in the import windows and in the access log window now sort
correctly when you click on the field heading. They used to sort in alphabetic
order by the formatted text instead of in date order.
* Fixed a problem in front-to-back pagination with classes that have only main
heads and second super heads where ClassPag could leave a main head at the
bottom of a column because the test to place the first line ad under the main
head would check for additional space to place the second super head.
* Fixed a problem where setting "place over display ads" to 1 to place headers
over 1-column display ads and setting "flow one column display ads if possible"
would not always place class headers over flowed display ads.
* Fixed a problem with a thin wide ad mixed with smaller one-column ads
at the top and a lot of unused space could justify incorrectly.
* Included Bob's enhancements to the nn interface.
NOTE: This version has 1390 lines of changes from the previous version.
4/20/05
Version 4.44
* The paste list in the page preview now stays open after you select an ad.
After you position the ad that you selected, you can click on another ad
on the list to position it. The line with the selected ad will become bold,
but it will not have a blue highlight.
To move around in the list or to use the F12 key on an item, click on the
list heading.
To close the list, click on the close box at the upper right of the list
or else if the list has a blue highlight, use the left arrow.
* The paste list has three new options: sorted by ad number with a single
line per ad, sorted by class with a single line per ad, and sorted by
ad name with a single line per ad.
* The field "Paste ad command Sort" in the "User Preferences" product
configuration screen has new values "A1" and "C1" to select the singe line
version of the ad and class lists and "N" to select the ad name list.
The default list is now "A1" for the single line ad number list instead
of "A" for the double line ad number list.
* The find ad window in the page preview now stays open after you select an ad.
* The windows to paste fillers now stay open after you select a filler.
* ClassPag can now write outext files with common or zoned ads. The check box
list under Ads->WriteOutext has new options to select common and zoned ads.
Place a check in the box for common ads to include common ads in the outext.
Place a check in the box for zoned ads to include zoned ads in the outext.
Place checks in both boxes to include both common and zoned ads in the outext.
You can use these options to send a common outext file from one session
and zoned outext files from other sessions.
* The "Outext Export/Exportar de outext" product configuration screen has new
fields "Common Ads/Avisos Comunes" and "Zoned Ads/Avisos Zonados" to select the
initial values for the check box list under Ads->WriteOutext. The default values
for the product configuration fields are "Y" to include common and zoned ads.
* ClassPag now supports sharing users and privileges among products.
The product configuration screen starting "Column Vertical Rules/Lineas
Verticales de Columna" has new fields "Default Products... Privileges/Otros
productos para... Privilegios" and "Users/Usuarios".
These fields list alternate products to search for privileges and users when
they are not found in the current product.
* When you drag a line ad that is not in a square-off (which is possible when
you have enabled the product configuration parameter to drag line ads), ClassPag
no longer automatically sets the page flag to lock line ads. Since version
2.80, ClassPag has stored page lock flags in the request database and no longer
needs to set the page flag to lock all line ads when it finds a locked line ad.
* Added Bob's convnn program to view nn interface files. It is currently for
development use and not included in distributions.
* Changed makegif.sh to run .setpdfwrite when creating pdf files.
It is still preferable to create pdf files with ps2pdf than with makegif.sh.
makegif.sh is designed for converting a directory of EPS files into
gif or tiff files for other applications to browse.
* Added a formdebug option to runcpag.sh to set DEBUG_FORMULA and DEBUG_SPICE.
NOTE: This version has 8774 lines of changes from the previous version.
5/2/05
Version 4.45
* Added a test version of Chris' product configuration center.
* The ad list window in the pagination statistics window under Ads->DisplayAds
has a new option to sort by ad number and also show the ad request fields.
* The ad list window is now sortable by any fields as long as there are at most
10,000 ads, although the ad list now takes longer to open.
* The edition parameters screen now has an "Ad Requests" button to open
the same ad list ads Ads->DisplayAds in the pagination statistics screen.
You can use window to pre-place ads before starting the pagination session.
* The overflow count warning in the page display now shows the number of
overflow pages from the last pagination instead of the number of overflow pages
on the screen.
* Added the ad position requests ON, BE, and FA. ON is the same as ARRIBA to
place the ad over a target ad. BE (for below) is the same as ABAJO to place the
ad below a target ad. FA (for facing page) is the same as FRENTA to place an ad
facing a target ad. With this change, the requests are now in English, and
the two-letter versions allow space for two other position requests.
* Fixed the formatting of the size column in one of the new ad paste lists.
* Macro expressions can now use the numeric variables FirstPageNumbar
and LastPageNumber. The variables contain the page range from the
edition parameters screen.
* Changed setup.sh so that if CPAG_EPS is not set and the work area has
a "save" directory, setup.sh sets CPAG_EPS to the save directory.
* The product configuration screen "Ad Image Scaling"/"Escalado de la Imagen del
Aviso" has a new field "Shrink depth ... for leading"/"Reducir la profundidad
... para interlin" to control whether ClassPag shrinks ads that are close
together in order to ensure that they have at least the leading space specified
in the product configuration. This prevents ads from bleeding into each other
or into cut rules on squeezed pages or pages with reduced leading. This field
defaults to "Y" to shrink ads as before. Set this field to "N" to disable
shrinking of ads.
* The product configuration field "Shrink depth ... for leading" now checks for
the smaller of the leading from the product configuration and of the product of
the edition-wide leading and the leading from the ad configuration. This keeps
ClassPag from shrinking ads when the product configuration specifies a larger
amount of leading than the ad configuration.
NOTE: This version has 23271 lines of changes from the previous version plus
16956 new lines for the new product configuration pages.
NOTE2: After installing this release, in order to enable the new product
configuration, after running loadtape.sh, you must run the command
bunzip2 < cpag-02May05-Linux-2.2.tar.bz2 | tar xvf - 'C*.dat' 'C*.idx'
The next release will correct this and no extra commands will be necessary.
5/12/05
Version 4.46
* When ClassPag checks for top-of-page conflicts, it now scans over compatible
class headers. This prevents a display ad with a top-of-page request from
showing as a conflict if the only object above the ad is its class header.
* The ad search in the mapclass formula now uses all 10 digits of the
ad number that you enter. It used to use only the first 9.
* The cronbuild.sh script has a new +d option to recompile den screens
if the def file is newer than the scr file.
* maketar.sh now writes a log file called maketar.log at the end of the tar
archive that loadtape.sh checks for. If loadtape.sh does not find the log file
in the archive, it asks if you want to continue with the installation. Since
the installation uses the previous version of loadtape.sh to read the new
install files, this change will not become effective until the next release.
Once this change is effective, loadtape.sh will be able to detect corrupted
files and stop the installation before updating any files.
If you use the new loadtape.sh with an older installation file, it will not
have the maketar.log file, and you will need to continue after the warning
that the installation file might be bad.
* Changed the lists in the mapclass interface formula to be sortable. Newer
systems are fast enough that the time to open the list is no longer an issue.
* ClassPag now looks for comp_setup first in /u/scs (its new location)
and then in /u/compcode/bin (its old location).
* Added getmacfont.c to extract a font from a Mac resource file.
* Added getnacionformats.c to show format codes in a SD file.
* Included Chris' updates for the product configuration center.
* The product configuration center no longer needs to initialize itself from
a database so the procedure in note 2 of the previous release is no longer
necessary.
* Included Bob's updates to the mapclass and readnn interface programs.
* The text interface databases now support eight character alphanumeric
class names. They used to be restricted to four character numeric names.
* The readnac interface program now preserves line endings, uses fitline
commands, handles at signs in email addresses, handles class names of more than
four digits, calculates parent class names, and captures the run date from the
header.
* Fixed a test in the maketarw.sh script that prevented the -passive option
from working correctly.
* Fixed problems with repeated parent headers in back-to-front pagination where
the parent header would not be repeated directly above a normal header at the
top of a column and where the parent header would not be placed above the first
normal header.
NOTE: This version has 7390 lines of changes from the previous version.
5/19/05
Version 4.47
* The windows to paste an ad and to find an ad now have separate columns
for the width and depth instead of a combined column. This allows you
to sort by depth.
* ClassPag now supports a "ST" position request in the sort file to mark
an ad as a standby ad. ClassPag shows the ads as standby ads but currently
does not treat them specially.
* The readnac interface now handles in-line display ads and passes the
file names of main class headers.
* Included Chris' enhancements to the /etc/mirror scripts for Solaris.
* Included Bob's updates to the readnn interface program with support
for a configuration file, improved logo searching and updated RO, BO,
IT, and BI commands.
* Fixed a problem that could cause ClassPag to exit when looking ahead
for large display ads to fill a column.
NOTE: This version has 1872 lines of changes from the previous version.
5/21/05
Version 4.48
* The product configuration screen "Agate Ad Specifications (Continued)"/
"Especificaciones de Avisos Agate (continuado)" has a new field "Match
Start"/"Inicial" with the starting position (from 0) to compare in sort keys
when doing a look ahead scan to fill a column. The default is 0 to compare
from the first character of the key. If the key has a sequence number,
you can use the match start position to ignore the number.
For example, if sort keys have a 4 digit number, a space, and the first
word of the ad, if you set the start position to 5 and the match length
to 7, ClassPag would be able to interchange ads with the sort keys
"0298 ACCOUNT" and "0302 ACCOUNT". ClassPag still flows ads in order by
the full sort key, so the text after the sequence number does not have
to place the ads in sort order. It only has to be the same for consecutive
ads that can be interchanged by the look ahead.
* The "Find Ad" window in the page preview now defaults to showing only
ads in active classes. This makes the window more useful in sessions
with unselected classes.
* The "Find Ad" window in the page preview has a new option to show only
display ads, and it now defaults to that option. This hides class headers
and in-line display ads.
* The readnac interface now handles boxed ads and green ads.
* The browser to view ad directories now allows you to select files that
have execute permission. ClassPag used to prevent you from selecting
executables because an executable binary or shell script would not work
as an EPS filler or banner, but some network mounts of non-unix systems
make all files appear executable, so you sometimes need to select files
that have executable permission.
* Increased the total number of square-offs and class header banners from
500 to 2000. This will allows you to enter more class headers as banners.
* Fixed some Spanish text in the product configuration.
* Fixed a problem where setting the leading on a page would make status
windows overwrite the page windows.
* Fixed a problem in the vertical justification with front-to-back
pagination of multi-column line ads.
NOTE: This version has 4462 lines of changes from the previous version.
5/27/05
Version 4.49
* Increased the ad number length from 10 characters to 16 characters.
The cardex and outext are fixed at 10 characters, so long ad numbers
must be used with caution.
The longer ad numbers will simplify interfaces where ClassPag
must wrap ads that have 10 character ad numbers.
This change also provides more naming space to banners. When ClassPag
restores a saved session, if it can not find the name of a placed
banner, it will search for a banner that matches to the first 10
characters.
* The window to pre-place ads now has new hotkeys and toolbar
buttons to select the positions upper left, upper right,
lower left, lower right, and center. This reduces the amount
of position requests that require opening the ad form.
* The classification selection window has a new command to read
a CSV classification tree file. The file should have the headings
"CòdigoNodo" (internal node number), "Nivel" (level, not used),
"Mnemonico" (internal name, not used), "Nombre" (class title),
"CodigoPadre" (internal node number of parent class), "NumeroSalida"
(class id). The command applies the nestings in the current class
table and updates the titles in the class name database.
* Added a local formats database. You can enter formats from the
command menus from the banner setup and from the mapclass formula.
The readnac program converts style calls to references to entries
in the local formats database.
For other interfaces to use this feature, in the ad text, first use
<sv 11,``adnumber''> to store the ad number in user variable 11.
mapclass uses the ad number when it shows messages about missing formats.
To use a given format, use <sv 10,``format''><Call_Formula LocalFormat>
The mapclass interface formula supplies a formula called LocalFormat
that composes the text contained in the local format named by user
variable 10. mapclass tracks the missing formats and display a popup
the first time a format is missing. After processing all of the ads,
it displays a window with each missing format, the first ad that used
the format, and the number of references to the format.
* The product configuration screen "Column Vertical Rules"/"Lineas
Verticales de Columna" has a new field "Local Formats"/"Formatos
Locales" to set the default product for local formats in mapclass.
If mapclass does not find a local format in the current product, it
searches for the format in the default product. If all products use
the same local formats, this eliminates the need to have a copy of
the local formats in each product.
* The product configuration screen "Column Vertical Rules"/"Lineas
Verticales de Columna" has a new field "Class Nesting"/"Nido de clases"
to set the default product for the default class nesting.
If a number of products share the same nesting, this allows them
all to share the same copy.
* The readnac interface program segments legal ads.
* Improved the handing of middle page requests. ClassPag now centers
the ad vertically in more places where it would have left it at the
top or bottom.
* ClassPag no longer tries to redummy pages with ads with island or
middle requests. The redummy pass could take the ads out of position.
* The "Ad Loading"/"Cargar de Avisos" product configuration screen has
a new field "Read E01 file"/"Leer archivo E01" to read the dates from
extraction files when importing or copying work areas. The file name
should have the syntax name-YYYYMMDD*.E01 where name is an edition name,
YYYYMMDD is the run date, * is any sequence of characters, and the
extension is E01 or F01.
* Increased the ad depth in adcls2 from 6 to 8 characters. Interfaces that
use inches need at least 2 digits + a decimal point + 5 decimal places.
* ClassPag now handles eps files with embedded spaces better in the
import and in the formula for creating an ad. If the name has the
extensions .eps, .pdf, .tif, or .ps, ClassPag takes the file name to
the end of the extension instead of to the first space.
* The Import->Copy window has a new command key to create an
empty control record for importing from the current directory.
This should make it easier to set up control records.
* Fixed a problem where the commands to mark and unmark ranges of pages
would not work if the publication name was less than 10 characters.
* Fixed a problem in editor windows that would remove trailing special
characters. It now removes only trailing quad left characters.
* Added Bob's updates to the readnn program.
NOTE: This version has 8050 lines of changes from the previous version.
6/2/05
Version 4.50
* The window to pre-place ads now has new hotkeys and toolbar
buttons to select the positions top, bottom, left, right,
to select a column, and to clear the position requests.
* If SCS Composition is linked into ClassPag, the "Show Version"
command shows "+Comp".
* Folios can now show the classifications on the page.
The folios have the new variables FirstClassName, FirstClassTitle,
LastClassName, LastClassTitle, FirstTopClassName, FirstTopClassTitle,
LastTopClassName, and LastTopClassTitle to return information about
the classes on the page. The variables with First have the first class
and the variables with Last have the last class. The variables with
Top have the top level class (the first level in the classification
tree). The variables with Name have the class id and the variables
with Title have the class title. These variables exist only when
SCS Composition is linked into ClassPag.
* Added tool bar icons to the edition parameters dialog that
perform the same actions as the buttons inside the dialog.
* Fixed a problem where ClassPag could leave empty space equal to the minimum
page break depth at the last column on a page with a wrapped legal ad if the
minimum page break depth was greater than the minimum flow depth.
* Fixed a problem with front-to-back pagination where ClassPag would
not always place a class header over a wrapped legal ad that was under
a display ad of a different class.
NOTE: This version has 850 lines of changes from the previous version.
6/17/05
Version 4.51
* ClassPag now supports double truck spreads where the central gutter is
not the same width as normal columns. The product configuration screen
"Margins between Pages when Printing"/"Margenes entre Paginas cuando se
Imprime" has a new field "Double Truck Column Width"/"Ancho de Columna
Medianil" with the width of the central gutter. The default is the
normal column width. When ClassPag prints a left hand page with a
positive right column adjustment or a right hand page with a positive
left column adjustment, it resizes the central column to the double
truck column width.
* ClassPag can now automatically segment external files. This is useful
for interfaces that send legal ads as external EPS files. The product
configuration screen "Legal and Segmented Ad Specifications"/
"Especificaciones de Avisos Legales y Segmentados" has a new field
"Auto Segment External Ads"/"Divider Avisos Externos" to enable the
scan for external ads. The scan is disabled by default.
* The "Auto Segment Ads"/"Dividir Avisos" field has a new value of
"WRD5" to handle ads made by MS Word using "Pscript.dll Version 5.0".
The EPS of these ads has a setup line similar to
/mysetup [ 0.05999 0 0 -0.05999 0 1584 ] def
and lines of ad text similar to
1111 16322 M (ally )[56 22 22 49 0]xS
* The "Auto Segment Ads"/"Dividir Avisos" field has a new value of "ATEX"
to handle ads made by Atex Enterprise with the Lino 390 PS print driver.
The EPS of these ads starts with the comment "%%Title: CREATIX" and
has lines with the format
%%EOL X:0 Y:5472 W:2160 LS:114 As:96 Ds:24 Sc:33.8611 BL:90
where the values are in 20ths of points.
* The preplacement ad list has a new column with the ad colors (for
screen displays with more than 80 columns). The column shows "F" for
full color ads and the first letter of each color for spot or non-full
color process ads.
* Added a new "EX" position request code to mark ads that have an
exclusion request to avoid being placed with other ads on the same page.
Ads with this code show the "EXCLUDE" flag in the box information
window. ClassPag does not paginate the ad differently.
* Added an "EXCLUSION" ad context to set the color for ads with the "EX"
position code. The default color is the same as the "REQUESTED" context
for ads with page requrests.
* When printing with a paper option with the field "Create Separations"
set to "GRAY", ClassPag now embeds a prolog that converts the operators
setrgbcolor, setcmykcolor, and sethsbcolor to gray scale. This will
convert most text and line graphics to gray scale, but bitmapped images
will continue to pass through in color. The "GRAY" is meant for
replacing color images on black & white pages with alternate gray scale
images, either through use of the cp_setcmykgcolor operator or by
searching for EPS files with the -BW extension. The pages must still be
sent to a RIP queue that will convert any remaining color to gray scale.
* The commands to view the column measures now show a section based on
the double truck column width.
* The product configuration screen has a new function "Compare" to
compare the fields in the highlighted product configuration record with
the fields in the product configuration record of the current work area.
If you have similar product records, for example, if you have products
for every day of the week, this command can help you to keep them
synchronized.
* The banner setup list has a new function "Compare" to compare other
banners with the current banner. You can use this to check that two
banners have their fields set to the same values.
* The readnac interface program now prints a dot every 100 ads to track
its progress.
* Added a new setdate.sh script that sets shell variables with commands
to show the date and to show a log timestamp.
* The various maketar scripts now show the date as YYYYMMDD instead of
DDmmmYY. This makes it easier to sort the scripts in chronological
order. When you run loadtape.sh, you must enter the date in the same
format as the file that you are installing.
* The pstoepsf.sh script now includes time stamps in its error messages.
* Fixed a problem with products that fill the front page with liners
where line ads on the front page would not flow a second copy with their
class. This was due to a change in 4.37.
* Fixed a warning in the log when normal banners are entered into a square-off.
* Fixed a warning about banner image names when the generate banner name
would be unique to 16 characters but not to 10.
* Includes Chris' loadok formula for copying mactive dump files.
* Includes Chris' update to the import formula to merge cardex files.
* Included Chris' firsttar option to cronbuild.sh to run maketarf.sh.
This option is off by default.
* Includes Bob's update to readnn to handle more composition commands.
* ClassPag now uses the composition function composition_available()
to check whether SCS Composition is linked in.
NOTE: This version has 8436 lines of changes from the previous version.
6/22/05
Version 4.52
* The list of logs under Setup -> Log Files now shows a date for entries
that correspond to files. Entries in the window that run programs instead
of viewing files show the state of the system at the time that you select
that entry. The dates for those entries are blank. Dates for files are
blank if the file does not exist or if the current user does not have
access from the operating system to read the file.
* The list of logs now includes an entry to view the nightly cleanup log
produced by C75cpag.
* The list of logs under Setup -> Log Files and under the Access Logs
below it now sorts by the date/time combination if you click on the heading
of either the date or the time column. Previously, clicking on the heading
of the time column would sort by only the time.
* The local formats database has a new "Bold" field to mark formats that
leave the bold flag enabled.
* The readnac interface program has a new -p option to specify the
product with the local formats. The -p option can be repeated a
second time to specify the default product.
* The makenac.sh interface script has a new -p option that it passes
to readnac. If you do not specify any -p options, it passes "-pNAC".
* Fixed a problem with back-to-font pagination with suffixed classes and
one column display ads placed in column where a class sequence that ended
with a display ad would not have the class header.
If display ads should appear in-column, it is better to pass the ads with
the request to place them in-column. Then ClassPag will account for them
when it calculates how much space it needs to flow ads.
NOTE: This version has 2107 lines of changes from the previous version.
6/30/05
Version 4.53
* ClassPag now allows larger position adjustments for ads in the
product configuration. This is useful for ads built from the top
of a large Word template.
* Increased the number of entries in the book database from 20 to 200.
This will support a 200 page edition that has a section jump on every page.
* ClassPag now accepts internal ads that start "# # translate" and
then a new line starting "%!PS". This handles interfaces that send
internal ads that grow from the top of a fixed size template.
* When ClassPag is placing one-column display ads in-line, if a
display ad does not fit in the current column, ClassPag now places it
like a normal display ad. It used to place it in another column on
the same stack as line ads.
* When ClassPag is placing one-column display ads in-line, it no
longer places the ad in the current column if there is not enough
space for both the ad and the class header.
* When ClassPag tries to flow the main copy of a class header with
back-to-front pagination, if the ad at the bottom of the column is a
compatible line ad or display ad, ClassPag places the header even if
it has already been placed in another column. This fixes problems
with missing headers when the main header is also used for column
headers.
* Fixed a log warning about the SII color type when printing pages.
* Fixed a problem in back-to-front pagination where a column that
didn't have enough space for any line ads of a class plus the class
header would end up with just the class header. If the column had a
display ad from another class at the bottom (which could have been
the reason that no ads could fit), the display ad would have the class
header of the line ad class that didn't fit.
* Changed the warning for the maximum value of the sort file trailer
offset from 30000 to 100000.
* Included Chris' update to the loadok interface formula and the
maketarf.sh script.
* More improvements to the readnac interface program.
NOTE: This version has 661 lines of changes from the previous version.
7/6/05
Version 4.54
* The product configuration screen "User Preferences"/"Preferencias de Usuarios"
has a new field "Save positions after unplace ... filler"/"Guardar posiciones
despues de quitar avisos ... rellenos" to control whether ClassPag retores
a page if you do nothing other than remove a filler and then repaginate.
"Y" means to save the page without the filler and "N" means to restore the
page including the filler. The default value comes from the previous field
for saving position after moving other types of ads.
* The product configuration has a new field "Save positions after unplace ...
banner"/"Guardar posiciones despues de quitar avisos ... carteles" to control
whether ClassPag retores a page if you do nothing other than remove a banner
and then repaginate. It works like the similar field for fillers.
"Y" means to save the page without the banner and "N" means to restore the
page including the banner. The default value comes from the previous field
for saving position after moving other types of ads.
* Rewrote the tests for keeping class headers when you move display ads.
ClassPag now removes class headers in more cases.
* Changed the key in the access log database with the product from
number 2 to number 1 so that it works with the -p option of unload.sh.
NOTE: This version has 1539 lines of changes from the previous version.
7/20/05
Version 4.55
* Display ads have a new KY position request (columns 102-107) for keyed ads.
When the KY position request is present, it must be first in the field.
ClassPag places keyed ads in order by their sort key along the bottom of
the page of their corresponding line ads. Due to the sizes of the keyed
ads and line ads, it is possible that a keyed ad could fall a page before
or after its line ads. The page will look best if all of the keyed ads
are the same width.
* ClassPag now maintains a database of banner counts in each work area.
This allows you to change the run count of a banner in the current
pagination session without changing the default run count in the
banner setup.
The database is in the file "realban" and contains records only for
banners that have a run count in the current session that differs
from the default run count. This keeps the database small and allows
sessions to see new banners that were added after the sessions were
created.
* In the Spread window in the pagination statistics screen, if you
make a change that requires reload the ads and then return to the
statistics screen and select Preview, ClassPag now does the reload
before opening the preview. Before this change, you needed to select
Paginate to do the reload before you could see the changes in the preview.
* The Spread->Banners window has new hotkeys to change whether the
banner is active, to reset the run count of the current banner to
the default value, and to reset the run counts of all banners to
their default values.
* The Spread->Banners window has a new "Def" column that shows the
default run count of the banner. The "Use" column now shows the
run count for the current pagination session.
* Several scripts that unloaded databases and compared transactions now
run the output of "diff" through "head" to show only the first few lines.
This prevents long run times if the database format has been changed.
* Increased the number of external objects from 6000 to 20,000.
This fixes problems with missing ad images at sites with poorly
designed interfaces that pass all line ads as external eps files.
* Added Bob's update to the mapclass interface formula to handle
missing eps files in ctext extractions.
* Added Chris' update to the loadok interface formula.
NOTE: This version has 3617 lines of changes from the previous version.
7/20/05
Version 4.56
* Added additional fields to the sort file. The standard length
of sort file lines has increased from 128 to 288 characters.
The table below shows the new fields.
L1 128 StrippableFlag
L1 129 HouseAdFlag
L1 130 ScatterFlag
L1 131 SpreadFlag
L1 132 BleedFlag
L1 133 IrregularFlag
L1 134 BreakableFlag
L1 135 PositionFlexFlag
L1 136 PreferredPositionFlag
L1 137 CouponFlag
A22 138-159 reserved
A32 160-191 CustomerString
A32 192-223 NotesString
A32 224-255 InsertionId
A32 256-287 BookingId
The StrippableFlag marks ads that may be removed by operators to make space
for other ads. The strippable flag can be useful for house ads and for ads
that must run a given number of times in a range of dates.
The HouseAdFlag is the same as HA position request code, and the CouponFlag
is the same as the CO position request. Interfaces can use these flags
to preserve space in the position request field.
The ScatterFlag marks ads that must be placed on different pages.
Operators can use this flag to identify scatter ads.
The SpreadFlag marks ads that contain the central gutter.
The width in the sort file should not contain the gutter.
When ClassPag imports the ad, it adds one column to the width.
The BleedFlag marks ads that print outside their bounding box.
The IrregularFlag marks ads with non-rectangular shapes.
The BreakableFlag marks ads that ClassPag can divide into segments.
When ClassPag scans legal classes, it will preserve ads that have
an "N" in this field.
The PositionFlexFlag marks an ad with flex buy.
The PreferredPositionFlag marks the preferred flex ad to place.
The remaining characters of this 32 character section are reserved
for future flags.
The CustomerString contains interface-specific customer information,
typically a customer name or an account number.
The NotesString contains notes about the ad.
The InsertionId and BookingId are keys from the front-end that
ClassPag can pass in reports.
* ClassPag shows the new flags and the new customer and notes fields
in the "show box" window of the page preview and inside the boxes
for missing ads in postscript output.
* The window to edit ad placement requests has a new F12 command
option to switch to a view that shows the customer and notes fields.
* rebuild.sh now rebuilds only the common databases (i.e. -f is now
the default). Use the new -s option to force a rebuild of all of the
scratch directories.
* The readnac interface program now takes the class header directory
as the first of "/u/headers", "/u/nac-headers", and "/u/cabezalestab"
that exists. It used to take /u/headers.
* The readnac interface program can now read the FullName line of
postscript font files. Use the new -f parameter to specify the
search path of font files. makenac.sh now runs readnac with -p$GS4_INC.
* The readnac interface program and the makenac interface script now
take -w# and -g# parameters with the column width and gutter width.
* Added Bob's update to the mapclass interface formula to write EPS
files for missing ads in some interfaces.
* Added Bob's update to the makenn.sh interface script to write
separate logs for each pass.
* Added Bob's update to the ps_names.sh script.
* ClassPag no longer breaks ads with the "Breakable" flag set to "N".
NOTE: This version has 1541 lines of changes from the previous version.
7/25/05
Version 4.57
* Added a font mapping database to help interfaces find fonts.
In Setup->Banners, select "Edit Font Maps"/"Editar Table de Fuentes".
You can set the bold, italic and bold-italic versions of fonts.
* The composition code created by readnac now multiples the set size
by v7. Formats can set v7 to emulate the quark h# command.
Change <h#> in Quark to <sv 7,#/100> in Composition.
* The readnac interface program now takes advantage of the June 30
composition changes that allows CF, CP, CS, and CL to follow FL.
Composition produces better results when more of the line can
follow the FL.
* The readnac interface program now takes advantage of the June 30
composition enhancement that adds the M parameter to the first
argument of FL to reduce to the minimum space band before reducing
the set size.
* The readnac interface program temporarily no longer generates FL
commands (including the notes from above) due to problems in composition.
* The makenac interface script and the readnac interface program have
a new -s option for specifying the name of the default directory for
locating the EPS files for class headers.
* The product configuration screen "Display Ad Directories"/"Directorios para
avisos" has a new field "Class Header Directory"/"Directorio para cabezales
for the default directory for locating the EPS files for class headers.
The mapclass interface script passes the value in this field to the makenac
interface script with the -s option. This allows each product to have its
own set of class headers.
* Fixed a problem where ClassPag would not check for keyed ads
until the second page.
* Fixed a problem where ClassPag could drop a wide header at the top
of a page instead of splitting it when you dragged an ad below it.
NOTE: This version has over 4000 lines of changes from the previous version.
8/2/05
Version 4.58
* Folios can now show the five highest level classes on the page.
Folios have the new variables FirstTop#ClassName, FirstTop#ClassTitle,
LastTop#ClassName, and LastTop#ClassTitle, where # is a number from 2
to 5. For example, if classification structure of the first ad on
a page is Real Estate -> Apartments -> For Sale -> City North,
FirstTopClassTitle is "Real Estate", FirstTop2ClassTitle is "Apartments",
FirstTop3ClassTitle is "For Sale", FirstTop4ClassTitle is "City North",
and FirstTop5ClassTitle is "" (an empty string).
* You can now set default file permissions after ClassPag updates.
fixperm.sh now reads fixpermdef. fixpermdef can set the user with FP_USER,
the group with FP_GROUP, the file permissions with FP_FILE_PERMS, and the
directory permissions with FP_DIR_PERMS. If fixmpermdef does not exist,
fixperm.sh guesses the user and the group and uses the file permissions +rw
and the directory permissions +rwx. To keep non-cpag users from writing
into ClassPag directories, use
FP_FILE_PERMS=u+rw,g+rw,o+r,o-w
FP_DIR_PERMS=u+rwx,g+rwx,o+rx,o-w
The new file fixpermdef.sh has sample lines for fixpermdef.
The loadtape.sh script runs fixperm.sh after installing the new version.
If you need to control the permissions, you should use fixpermdef so that
your changes are not undone each time you update ClassPag.
* When you drag a square-off with the "Position a square-off" button,
ClassPag can now unflow the line ads. This is similar to what
happens when you drag a display ad. The product configuration screen
"User Preferences"/"Preferencias de Usuarios" has a new field
"Unflow after dragging square-offs"/"Desfluir despues de mover encuadrados"
to control whether or not ClassPag unflows the line ads.
The default value of "Y" unflows line ads. The value of "N" leaves
the line ads flowed.
* The mapclass.sh interface script has a new "autoread" to read the interface
files and generate sort and eps files in batch mode without any prompts.
* The product configuration screen "Ad Loading"/"Cargar de Avisos" has a new
field "Always run commands Read"/"Siempre correr comandos Leer" for use with
interfaces that use the mapclass script. If the field is set to "Y",
ClassPag runs mapclass with the "autoread" flag.
Use this field if you don't want users to have to select anything to run
the interface. You can still use Import->RunInterfaceCmd to run the
interface manually.
* Added a standby flag at position 138 in the sort file.
This flag is equivalent to the "ST" position request.
* The runcpag.sh debug and formdebug options now set LOGO_DBG=9 to enable
debug code when composition searches for logos.
* Changed mirror and mirsec so that they don't get errors if samba or
atalk is not installed.
* Added an arping command to mirror.def. Arping sends an arp (address
resolution protocol) packet. The data in the packet helps network switches
recognize that the virtual ip address has moved to a different machine.
After a fail over, without the arping, it could take as long as an hour for
a switch to flush its arp cache. Until the switch updates its arp cache,
other systems will not be able to access the virtual ip.
* readnac now builds a directory list of the logo directories and does
case independent comparisons from the list instead of trying to open
files in upper and lower case in each logo directory. This should allow
it to find logos with mixed case and it should also run much faster.
* The getnacionformats interface program now shows style calls with @ and :
To see the formats and style calls in a file, use
/u/cpag/interface/getnacionformats < file | sort -u | less
* Added an empty spgblack.ps file. The gray separation code looked for it.
* The readcla interface program now adds ".eps" to logo calls.
This works better with the new version of Composition.
* Fixed a log warning when printing gray separation pages.
* Updated the lnexe.sh script to include recently added interface programs
in ClassPag distributions.
NOTE: This version has over 3357 lines of changes from the previous version.
8/4/05
Version 4.59
* The ads in the page display now show the customer and the notes fields.
* Improved the page assignments for square-offs. ClassPag should now
place square-offs closer to line ads in adjacent classifications.
* Updated ad reports to work with the new definition of the ad database.
* Fixed tests in the agate and display filler setup screens to allow
filler names over ten characters.
* Included Bob's updates to readnn and procnn.
* Included Chris' update to loadok.frm.
NOTE: This version has 970 lines of changes from the previous version.
8/8/05
Version 4.60
* Added a new product configuration parameter to specify when ClassPag should
place second superheads under display ads. The product configuration screen
"Classified Heading Placement"/"Ubicacion de Encabezados de Clasificaciones"
has a new field "Flow parent under display ads"/"Fluir pariente abajo".
The value of "T" places second heads. The default value of "F" preserves
the previous behavior of not placing second heads.
This parameter has an effect only with front-to-back pagination.
When the parameter is set and when ClassPag should place second super heads at
the tops of columns and also place heads under display ads, when ClassPag flows
a head under a display ad of an incompatible class, it now places a second super
head if one is available. For example, if the class structure is 765 -> 765G ->
765GEO, and the second heads for 765G and 765GEO are both a copy of the generic
765 head, if a column wraps under a 654 ad, if the column starts with the 765G
head, ClassPag will place the generic 765 head and the 765G main head, and if
the column starts in the middle of 765GEO, ClassPag will place only the 765
generic head. In this situation, the 765 generic head says "Autos" and the 765G
head says "G" so the generic head is necessary to separate the auto ads from
non-auto ads.
* The window in Cmd->Ads->FindAnAd has a new option to show the ads sorted
by ad number along with columns for the width, depth and customer number.
* When ClassPag places keyed ads, it now tried to leave enough room at the
tops of columns for class headers when possible.
* Fixed a problem pasting fillers with names more than ten characters long.
* Fixed a problem in back-to-front pagination where ClassPag could place
a header at the bottom of a column on pages that were nearly filled with
display ads positioned from the top.
* Included Bob's updates to readnn, adcls2 and mapclass to capture
ad attributes.
NOTE: This version has 3437 lines of changes from the previous version.
8/11/05
Version 4.61
* The ad paste list and the find ad list now retain their sort order if you
re-enter a suspended list, even if the "Find ad commands preserves last search"
product configuration field is "N".
* The ad paste list now has an option to show the customer name.
Use F12 from the paste list to see the various display options.
* The field "Paste ad command Sort" in the "User Preferences" product
configuration screen has the new value "AC" to show a paste list sorted
by ad number with a column for the customer.
* Changed the readnac interface program to place FL commands after
leading changing commands if there is not text on the line so far.
This fixes a problem where the FL locked in the leading at the position
of the FL command.
* Included Bob's changes to the readnn interface to add types 0 for invalid
values, 6 for external display ads with missing eps, E for external line ads,
and X for external line ads with missing eps.
NOTE: This version has 627 lines of changes from the previous version.
8/12/05
Version 4.62
* The page preview has command to paste ads with a single click per ad.
Use the new tool bar button "Paste from list, single click" or "Cmd ->
Position -> Paste from list, single click". When you select this command
ClassPag displays the paste list of unpositioned ads. Whenever you click
on a page, ClassPag places the highlighted ad at the position that you click.
You can click on the list to change the selected ad, ClassPag remains
in single-click mode until you close the paste list. For example, you can
drag ads, click on commands like "shift ads down", and move to other pages
without leaving one-click mode.
To place a series of ads in increasing sort order down the page,
use "remove ads to end" to place all of the ads in the paste list.
Then run the new "Paste from list, single click" command, use F12 to
select a version of the list in order by class and then the sort key,
and then click at the upper left of the page. When the new ad comes
in, click below the ad until you fill the column, and then click at the
top of the next column. When the page is full, click on "shift ads
down" to move the stacks to the bottom of the page, and then click at
upper left of the next page to start working on it.
* The paste ad window has a new F12 option to sort by class and then
by sort key.
* The field "Paste ad command Sort" in the "User Preferences" product
configuration screen has the new value "CS" to show a paste list sorted
by class and then by sort key.
* The square-off windows now include a column for the sequence number.
NOTE: This version has 494 lines of changes from the previous version.
8/23/05
Version 4.63
* The product configuration screen "Request Checking"/"Comprobar Solicitudes"
has a new field "Preserve absolute requests"/"Mantener pedidos absolutos"
to control how ClassPag handles conflicting absolute page requests.
The default value of "N" allows ClassPag to shift an absolute page
request if the page is already used, for example, by a page reservation.
The value of "Y" tells ClassPag to place the ad on the page on the page
if there is room. If the page is full, ClassPag places other ads with
requests and then places the ads that didn't fit on other pages.
If you have manually positioned large ads on almost every page and
then if you place a reservation that prevents ClassPag from placing
one of the ads, with the default value of "N", ClassPag will place
the ad on the page after the reservation and then shift all of the
other ads forward a page so that all of the ads are as close to their
requested page as possible. With the value of "Y", ClassPag will
place the other ads on the pages that they request and the ad that
didn't fit could end up far from its requested page.
* The product configuration screen "Folios and Banners"/"Folios y Carteles"
has a new field "Add tiff preview"/"Escribir prever tiff". Set the field
to "Y" to have ClassPag add tiff previews to banners that it creates.
The default value of "N" does not add tiff previews.
The command to rebuild banners can take much longer when ClassPag
must also add previews.
* Added a -same option to pstoeps.sh to allow the input and output
files to have the same name.
* initscr.sh has more checks to prevent leaving files only writable
by root after ClassPag updates.
* Included Chris' new oe_to_es script and formula for producing
Merlin e-tearsheet reports from outext files.
oe_to_es.frm converts an SCS outext file to a MerlinOne "E-Sheets"
electronic tearsheets data file. The program's optional arguments are:
1) OUTEXTFilePath
The path of an SCS outext file.
Default is "outext.txt" in the current directory.
2) ESheetsFilePath
The path of a MerlinOne "E-Sheets" electronic tearsheets data file.
Default is "e-sheets.txt" in the current directory.
* Included Chris' and Mike's changes to the mirror scripts with
improved support for mirroring printers, a better location for
the hylafax scripts, and an extra root test removed from copy_fs.
* Included Chris' fixperm.sh change to check that the cpag home
directory has the same permissions as other ClassPag directories.
* Improved the formatting of some config.def screens.
* Fixed a problem when repeating both the parent header and the
class header at the tops of columns where ClassPag would not repeat
the parent header if a new class started at the top of the columns
and the second heads of the parent and the class were the same.
NOTE: This version has 3091 lines of changes from the previous version.
8/24/05
Version 4.64
* The product configuration screen now show screen numbers at the
upper right of each screen. This makes it easier to locate screens.
If you know the screen number or name, you can still go to it directly
with F12 -> Display and then "Goto Screen Name" or "Goto Screen (#)".
* When the square-off DHdr field is empty or DEF (to place class headers
over display ads in square-offs according to the setting in the product
configuration for placing class headers over display ads on normal pages),
if the product configuration requires class headers and if the square-off
has both line ads and display ads, ClassPag reserves space the same as
if the DHdr field were set to RES. This avoids problems if you make a
new square-off and leave the DHdr field empty.
* Fixed a problem in front-to-back square-offs with a mix of line ads and
display ads where a display ad would not have a class header in a column
with an incompatible line ad if the next column started a compatible class.
* Fixed the product configuration parameter "Add Leading Between Segs"
to add space between segments of legal ads. It had stopped working.
* When ClassPag adds leading between segments, the postscript output now
contains the embedded leading in auto-segmented ads. ClassPag used to
draw auto-segmented ads from the top down with no leading even if the
preview showed leading between the segments. ClassPag must write a new
copy of the EPS for the ad each time it reaches a segment with leading,
so an output page with auto-segmented ads that have leading could be
significantly larger than the same page without leading. Also, you
must be exact with the clipping margin because ClassPag must clip
each segment.
* Included Bob's update to readnn to improve the interaction of
justification and flushing commands.
NOTE: This version has 989 lines of changes from the previous version
plus 57 lines of changes to spice.
8/26/05
Version 4.65
* Improved the way that ClassPag justifies columns with only segmented ads.
* Improved the way that ClassPag justifies columns on locked pages.
* Improved the justification for the special case of the class header
over a single-column ad over a multi-column ad.
* Included Bob's change to readnn to turn off segmentation around logos
and boxes.
NOTE: This version has 549 lines of changes from the previous version.
8/31/05
Version 4.66
* At sites that use the mapclass interface formula, you can now edit
line ads from within a pagination session using Cmd -> Ads ->
"Edit the ad with interface"/"Editar aviso con interfaz".
ClassPag opens the conversion database with the current ad.
You may edit the ad as needed. When you save the ad,
ClassPag rebuilds the sort and eps files and then re-imports them.
* The mapclass interface script has a new -a option to open the
conversion database at a given ad.
* The mapclass formula F12 -> Version command now shows
the internal interface number and site string.
* The mapclass formula closes databases with CloseDatabaseFile instead
of CloseFile. This should fix problems when rebuilding a work area that
was built with a different version of ClassPag.
* Included Bob's change to readnn to improve IL and IR commands
with depth arguments.
* Changes for the start of column balancing. The classification "Randomize"
field has new values "M" and "N" for column balancing types 1 and 2.
For 8500 ads, mapclass adds a + between the sequence number and sort key
of the first ad in a column balancing sequence. This is a temporary
method for ClassPag to recognize sequences of column balanced ads.
NOTE: This version has 732 lines of changes from the previous version.
9/2/05
Version 4.67
* Created a new "HEAD_MISSING"/"FALT_CABEZAL" conflict type to mark
ads with missing class headers. Ads missing conflicts used to use
the "ON_LINERS"/"SOBRE_LINEALES" type. ClassPag now reserves this
type for class headers that are at the bottom of a page.
* The "HEAD_MISSING" now reports more instances of missing headers.
* Added a new "Check for conflicts"/"Checar conflictos" toolbar button
to run Cmd -> Ads -> Check for conflicts except that it opens the
conflict window without any additional prompting. It always rebuilds
the conflict database and in order to open quickly, it does not search
or read eps files.
* Included Bob's changes to readnn to handle ^X and ^Y in ads, to handle
begad commands with no arguments, and to improve the lookup speed.
NOTE: This version has 832 lines of changes from the previous version.
9/3/05
Version 4.68
* Improved the conflict check for missing class headers to detect
adjacent line ads that need a main head between them even though
they share the same second head.
* Included Bob's changes to readnn to handle the CN command.
NOTE: This version has 790 lines of changes from the previous version.
9/7/05
Version 4.69
* The product configuration screen "Classified Heading Placement"/"Ubicacion
de Encabezados de Clasificaciones" has a new field "Place over ads at bottom"/
"Colocar sobre avisos al fondo" to control how ClassPag places class headers
over line ads and display ads manually positioned at the bottom of a page.
The default value of "Y" places class heads if the other fields in the product
configuration require placing them. Previous versions of ClassPag would not
place class heads over ads placed at the bottom of a page. The pagination
operator could place heads manually if needed. With this change, ClassPag will
place class heads automatically in most cases. To restore manual control over
class head placement, use the value "N".
If you drag a line ad out of classification, ClassPag places the main head
instead of the second head. If you drag a display ad, ClassPag places the
second head. For exampe, if you have the class structure 765 -> 766A -> 765ABC
and 765 has a generic "Autos" head, 765A has an "A" index head and 765ABC has
no head, if you drag a 765ABC line ad out of 765A, ClassPag will place the
765A "A" head. If you drag a 765ABC display ad out of 765A, ClassPag will
place the generic 765 second head.
NOTE: This version has 2817 lines of changes from the previous version.
NOTE2: This changed several hundred lines of code for placing class headers
and needs some testing.
9/12/05
Version 4.70
* The product configuration screen "Ad and Class Conversions"/"Conversion de
avisos y clases" has a new field "Divide Class Suffix At Dash"/"Dividir nombre a
raya" to allow ClassPag to nest classes automatically when they contain dashes.
If this field is "Y" and ClassPag finds a reference to a classification that
contains a dash, ClassPag places it under the prefix of the class before the
dash. For example, it will automatically nest 1234-ABC under 1234.
The default value of "N" does not do any special nesting.
* The product configuration screen "Display Ad Dummying Style (Continued)"/
"Estilo de Diagramacion de Avisos Destacados (continuado)" has new fields
"Column Balancing Thresholds Line Ads"/"Limites para balancear columns
Avisos lineales" and "Display Ads"/"Avisos destacados". These fields will
set column balancing parameters in a later release.
* The printer record has a new value "1" for the field "Write ad list"/
"Escribir listo" to write an ad list report in the format:
ad number
ad type (the same AGATE_AD, DISPLAY_AD, etc. values as in the Box Information window)
ad width in columns
ad depth in ad list units (defined by the product configuration)
x position (position from the left side of the page in ad list units)
y position (position from the top of the page in ad list units)
The value "T" produces the original ad list report in the format:
ad number
ad height in units, truncated to an integer
unit name
ad height in units, truncated to an integer
ad width in columns
unit name
area in square-units to two decimal places
1 if either the ad record or the EPS has color, 0 otherwise
* Improved the sorting of classifications by adding the class name to the key
with the parent class name and the sequence number. This makes ranges of
classifications with the same sort key appear in a more consistent order in the
classification list. The command to nest classifications now works better with
ranges of classes with the same sequence number.
* When the mapclass interface is converting LA files, it adds a sequence
number suffix to ads in 8500 classes each time that it sees a new 8500 head.
Each 8500 category must be its own class in order for ClassPag to keep the
line ads and display ads together.
* Included Bob's changes to readnn for handling logos, processing empty ads,
breaking words with embedded FN commands, reducing hyphenation, and justifying
the last line of ad.
NOTE: This version has 3871 lines of changes from the previous version.
9/15/05
Version 4.71
* ClassPag now places column class headers when column balancing.
* ClassPag now places unkeyed ads last when column balancing.
mapclass detect unkeyed ads by checking for the value 524288 in the second
column of input.fil. When it finds an unkeyed ad, it writes a dash after
the sequence number in the sort key. In column-balanced classes,
ClassPag sets the new "UNKEYED_FLAG" ad flag when it sees the dash.
* ClassPag now flows keyed ads when doing type 2 column balancing.
Keyed ads are ads with keys that are smaller than the line ad threshold.
* The loadtape.sh script has a new -noroot option to run from a normal account.
If you use this option, you should expect to see warnings from chmod and
other commands. Also, if users other than "cpag" run ClassPag, you will
need to check that they have all logged out and that all of the ClassPag
databases in /u/cpag are writable by user "cpag" or else the update could
corrupt the pagination databases.
* Updated maketar.sh, maketarf.sh and maketaru.sh to work with Solaris 9 tar.
The scripts use the system tar if they can't find tar or gtar in /usr/local/bin.
When the scripts run the system tar on Solaris, they now know to use
-h to follow links and -I to specify the file of file names.
* Added the mirror directory to maketard.sh.
* Included Bob's changes to the readnn program to allow conversion of
CText markup for section mast heads (ads that use the SECTMH* formats)
into SCS markup.
NOTE: This version has 2204 lines of changes from the previous version.
9/16/05
Version 4.72
* Overflow pages now have a gray background instead of a white background.
This makes them stand out more.
* ClassPag now tracks how many times each page has been sent to a final
output device. The count shows in the page information box field "Version".
The count is also available in folio expressions and in print command
expressions in the variable PrintVersion. The count starts at 0 and
increments each time that the page is printed. The references in
expressions return one more than the current value so that they reflect
the value after the page is printed.
* Changed the product configuration parameters for column balancing to
the fields "Single Columns Line Ads"/"Avisos lineales single columna"
and "Multiple Column Line Ads"/"Avisos lineales multi-columnas".
Single columns line ads column balance if they are at least the
depth of the single column threshold, otherwise they flow as keyed ads.
Multi-column line ads column balance if they are at least the
depth of the multiple column threshold, otherwise they dummy
at the bottom of the page.
* ClassPag tracks how it places ads in column-balanced classes.
The placement reason in the ad information window shows:
. "Column Balance" for column-balanced ads,
. "Column Balance, Keyed" for ads that flow by key below the
column-balanced ads,
. "Column Balance, Unkeyed" for ads that flow by depth below the
column-balanced ads, and
. "Column Balance, Dummied" for ads that are dummied below the
column-balanced ads.
There are two types of column balancing, type 1 and type 2.
The LA Times Employment section is an example of type 1.
For each group of ads (i.e. each type of job), ClassPag must figure out
how many columns the ads for the group will require. Then ClassPag takes
the ads in order by depth (longest ad first), and places the longest
unplaced ad in the column with the most space at the top (with ties
broken favoring the leftmost column).
The LA Times Auto section is an example of type 2.
Type 2 is like type 1 except that it has a configurable threshold depth
(which is very rarely changed).
Only ads of that depth or longer are column balanced. The remaining ads
flow in sort order in the space below the longer column-balanced ads.
In column-balanced classes:
. Line ads with a dash in one of the first five characters
of their sort key flow unkeyed.
. In column balancing type 2, single column line ads with
a depth less than the single column threshold flow keyed.
. In column balancing type 2, multi-column line ads with
a depth less than the multiple column threshold are
dummied at the bottom of the page.
* The spread option to draw a box around a page now writes the box
so that its inner border is the printable ad area (for a page) or
the bounding box (for an eps). ClassPag used to center the edges
of the box over the bounding box.
* The report by entering "1" for the field "Write ad list" in
the paper database is now tab-delimited instead of space-delimited.
* Fixed a problem where ClassPag would not always show line ads with
color conflicts in the conflict color on the screen.
NOTE: This version has 502 lines of changes from the previous version.
9/21/05
Version 4.73
* Folio text items have a second start column, end column, and
omit if overlap field. This allows you to define more complicated
tests for placing folios. For example, if you have an embedded
full width folio (that fits in a full width template),
an embedded 5 column folio (that fits in a 5 column template),
an embedded 3 column folio (that fits in a 3 column template), and
a raised folio (when there is no folio), use the tests below:
full width folio: columns 1 to 10 (for a 10 column page), omit Y.
5 column folio: columns 1 to 5, omit Y; columns 6 to 10, omit N.
3 column folio: columns 1 to 3, omit Y; columns 4 to 5, omit N.
raised folio: columns 1 to 3, omit N.
Omit Y means to place the folio if every column has the template.
Omit N means to place the folio if any column has ads.
* The report by entering "1" for the field "Write ad list" in
the paper database is now shows all types of ads, and not only
agate and display ads.
* The "Ad list name" in the printer database can now include a directory.
You can use the directory to override the default of "/u/etears".
* Enhanced the look ahead to place display ads when column balancing.
* The dialog prompt to copy a work area now shows the product id and
not just the product name.
* ClassPag can now merge multiple marked-text interface files. The product
configuration screen "Ad Importing"/"Importacion de Avisos" has a new field
"Process merge directories"/"Procesar directorios" to enable the new merge.
When you select an import directory from Import->Read, if the import directory
has any merge directories, ClassPag duplicates them in your current work area
and then processes them with mapclass.
Later, when ClassPag runs mapclass for the top level directory of the current
work area, after it produces the sort and eps file, it merges in all of the
sort and eps files from the merge directories.
This way, you can re-run mapclass in the top level directory without
merging a second copy.
* Added the interface script importmerge.sh copy merge directories when
ClassPag runs Import->Read. For each merge directory in the source directory,
the script copies it to a matching merge directory in the current scratch
directory and process any extraction files with mapclass.
It does not modify the original merge directories.
This allows the script to work even if the merge directories are
read-only mounts from another server.
Also, two people can import from the same area without interfering.
It has the options -s <name> to set the path to the source directory and
-c <cmd> to set the command line to run in each directory (-c must be last).
* Added the interface script mergeall.sh to merge the sort and eps files in all
merge directories. mapclass runs this script after creating the sort and eps
files. If the current work area has merge directories (which should happen only
if importmerge.sh created them when it copied the import area), this script
merges the sort and eps files in the merge directories into the current
directory.
* The "deleteint" option to cleandir.sh now removes merge directories.
* Included Chris' change to the pagination display.
The buttons in the lower-right hand corner of the Preview window
used a lot of vertical space. Each button had its own border.
Chris removed the button's border, and collapsed the buttons vertically.
This freed up 7 rows in the right-hand pane.
The buttons now have a group box with labels.
* Included Bob's change to readnn.
Implemented the CText CB (coupon border) command.
A coupon border is allowed only on boxes with ordinary square corners and
no shadow. If the box has interior boxes, the dashed coupon border is
drawn only on the outer box.
NOTE: This version has 3118 lines of changes from the previous version.
9/22/05
Version 4.74
* The product configuration screen "Display Ad Dummying Style (Continued)"/
"Estilo de Diagramacion de Avisos Destacados (continuado)" has a new pair
of fields "Reduce display ads from"/"Reducir avisos destacados desde"
"to"/"a" to reduce the depth of any external display ad that is
at least the "to" size and at most the "from" size to the "to" size.
For example, if the page height is 297 lines and half-page display ads
come over as almost 150 lines, you can set the "from" size to 150 lines
and the "to" size to 145 lines to ensure that two half-page ads fit.
ClassPag makes this change internally as it reads the ad database.
The ad records in the database maintain their original value.
* The product configuration screen "User Preferences"/"Preferencias de Usuarios"
has a new field "Show form in printer selection"/"Mostrar pantalla en
selecciones para imprimir" to control whether ClassPag shows the paper and
spread forms as you arrow through the lists. The default is "Y" to show the
forms. If you set the field to "N", ClassPag does not display the forms.
The paper and spread lists have a new hot key "Show/Hide Form View"/
"Activar/Desactivar Ver de Pantalla" to enable or disable display of the
forms in the current list. If the user preference disables the display,
you can use this hotkey to enable it.
* The folio detail window now shows the second column range if the screen
is wider than 80 cells.
* The importmerge script has new -e1 through -e4 parameters for extensions
to check. If any of the -e# parameters are present and a source merge
directory does not contain any file with any of the extensions,
the script skips that directory. This prevents empty merge directories
from causing problems.
* Fixed problems where column balancing could be very slow if the edition
had overflow pages.
* Column balancing now respects the minimum flow depth.
NOTE: This version has 2036 lines of changes from the previous version.
9/25/05
Version 4.75
* In column-balanced classes, ClassPag now starts flowing non-balanced
ads in the first available column.
* Fixed cleandir.sh to be able to remove more than one merge directory.
* The mapclass interface formula now shows various edition parameters
at the left of the window. This helps identify the data.
* Changed a number of references of "page names" to "square-offs".
* Included Bob's changes to the readnn interface.
Implemented CP (cancel next paragraph indent), XP (cancel paragraph indent),
and PA (resume paragraph indent).
Attempt to fix LA Times logos that appear in the same vertical space as
indented text.
A typical situation is a logo format with an LG command that specifies a logo
height of 20 points, an IL command that specifies a left indent depth of 20
points, and an SP command that specifies reverse lead of 20 points, while the
current leading is 5 points. The purpose is to insert a logo, move back to
the top of the logo, and then have 4 5-point indented lines to the right of
the logo. Starting with the 5th line, lines are not to be indented.
readnn converts the leading to 72.27-per-inch points and multiplies it by the
leading fudge factor !v17 (.98). Therefore, for the logo height, IL depth,
and SP reverse leading to be computed correctly so that the measures come out,
we need to convert and multiply those values as well. Previously, we were
performing the point conversion, but not applying the fudge factor.
Note that now, we always multiply the logo depth by the fudge factor to
compute the height of the logo and the vertical position of the bottom
of the logo. We always multiply the IL depth by the fudge factor. But
we only multiply the SP reverse lead by the fudge factor if the SP appears
in a logo format. Maybe we should do that for every SP (and AP) command,
but for now, the minimal change that fixes the logo issue is to do it only
for SP in a logo format.
The other discrepancy in these measures is that the indented text is pushed
up by 25% of its leading (due to the LC command), but the logo is not (since
the LC command affects only text). A change made today to composition deals
with that; in comparing the IL depth to the current baseline depth, it now
accounts for that 25% of the leading.
NOTE: This version has 449 lines of changes from the previous version.
9/29/05
Version 4.76
* Fixed a problem where the outext export command could drop a space
in the file name.
* Improved level pages with two-column line ads.
* Included Bob's changes to the readnn.c interface.
Implemented the CText IH (indent hang) command. This requires the new
composition left and right hanging indents at depth.
* Included Chris' changes to pagination display.
Started to use proportional fonts in the Information pane, in the upper right-
hand corner. This made the Box, News, and Page Information easier to read.
NOTE: This version has 421 lines of changes from the previous version.
9/30/05
Version 4.77
* Fixed a problem where import merges at the interface level would
remove the merge directory after running the interface.
* Fixed a problem where continuation columns of folded segmented external
ads with a bounding box different from the sort file reservation would use
an unscaled offset.
* Included Chris' changes to the pagination display.
Removed the border around the buttons.
Changed the button background colors.
More use of proportional fonts.
NOTE: This version has 314 lines of changes from the previous version.
10/1/05
Version 4.78
* Created a new method for adding replate marks in folios. The page
information record has a new field "Replate Count"/"Planchas Rehechas"
with the replate count. The value is available in macro expressions for
folios and for printer command lines as the numeric variable ReplateCount.
* The macro expression language has a new function f$copy that takes
a string and a count and produces that many copies of the string.
For example, the expression f$copy("*",ReplateCount) produces a number
of stars equal to the ReplateCount. If the count is 0, it returns
an empty string.
* In back-to-front pagination when the parameter to flow parent headers
under display ads is set, ClassPag flows parent headers in more cases.
* Included Bob's changes to the readnn interface program.
Fixed the SP command.
* Included Chris' changes to the pagination display.
The first 3 lines of page information use a proportional font now.
NOTE: This version has 719 lines of changes from the previous version.
10/5/05
Version 4.79
* The window with the list of classification sequencing tables now has
hot keys to switch between the list for the current product and the
list for the alternate product specified in the product configuration.
You can now select tables from the alternate product.
You can only view and load tables from the alternate product.
You must switch to the alternate product to change them.
* ClassPag now unflows keyed display ads (ads with the KY flag).
* If you drag a display ad that would normally unflow, for example,
a keyed display ad or a one-column display ad, ClassPag locks display
ads that would normally unflow on the target page. This allows you
to modify ad stacks with keyed ads without also locking the line ads.
* Added more descriptive text to the square-off form.
* The page information list now shows the print version and the
replate count.
* The page information form now lets you into the new print version
and replate count fields.
* Improved the formatting of warning messages when you create a
reservation that is too large.
* The report by entering "1" for the field "Write ad list" in
the paper database now counts from the bounding box when you
create an eps block.
* Fixed tests that could leave the last few line ads unplaced
in rare cases if the look-ahead placed the last ad, especially
in front-to-back pagination.
NOTE: This version has 1165 lines of changes from the previous version.
10/5/05
Version 4.80
* The information lines for class headers now show more of the
class structure. The parent of the parent shows as Parent+1, etc.
* The second product configuration screen has a new field
"Default Products... Class Names"/"Otros productos para... Nombres de clases"
to specify an alternate product to search for class names.
This can simplify maintenance of the classification names database
if several products use the same names.
* Included Chris' changes to use proportional fonts on the statistics screen.
* Fixed a problem where classes created by applying a classification nesting
table could have incorrect class titles. ClassPag now sets the title to
the title in the classification database under Setup->SetClassNames
if an entry exists and to the class name otherwise.
NOTE: This version has 3196 lines of changes from the previous version.
10/7/05
Version 4.81
* Fixed dragging line ads. The change to drag keyed ads in 4.79 broke it.
* When you drag line ads, if you drag them to the top or bottom,
they now stay there if you have not locked the page. They used
to jump to the top or bottom if you paginated and then unflowed.
* Fixed a problem where ClassPag could place line ads out of sort order
under display ads in classes that had a mix of one and two column line ads.
This happens now only for classes with paired pagination enabled.
* Fixed a problem where ClassPag would not restore island ads correctly
when you opened a saved session.
NOTE: This version has 286 lines of changes from the previous version.
10/9/05
Version 4.82
* Included Bob's changes to the interface procedures.
Fixed a bug in mapclass.frm that causes LA 1-column display ad flowed ads to
result in errors in import. Those ads have a type code of E in adcls2.dat.
The NullTypeCode routine was missing parentheses in its boolean expression so
that E was considered invalid.
readnn now handles unusual dumps that have a BEGAD, a small amount of markup,
and then another BEGAD with no intervening ENDAD.
procnn now inserts a newline after every ENDAD command. That solves a problem
where the LA Times had a galley.fil that was one very long line, too long for
readnn to handle.
* Fixed the FirstTop#Class and FirstBot#Class variables to show the highest
class below the top level class. They all started one class too far down.
NOTE: This version has 246 lines of changes from the previous version.
10/19/05
Version 4.83
* Added password checking. On systems that have password aging policies
on the ClassPag server, ClassPag will now show a warning when your password
is about to expire and offer a chance to change it.
You can check or change your password at any time with new F12 options
under Setup->Users.
In order to use this feature, you must install checkpw in $TOOLS and
enable it to suid to root. checkpw requires this in order to read
the shadow password file.
You can install checkpw by itself without installing a new version of the entire
SCS 4GL package. Download the checkpw program from the SCS ftp site and copy
the it program to $TOOLS for cpag (which could be /u/scs/tools/bin if you
installed only one version of spice or /u/scs_cpag/tools/bin if you installed
a version of spice for cpag). Then run
cd $TOOLS
su
chmod 555 checkpw
chown root:root checkpw
chmod +s checkpw
When you are done,
ls -l $TOOLS/checkpw
should show
-r-sr-sr-x 1 root root 6984 Oct 12 05:05 /u/scs/tools/bin/checkpw
The 's' instead of an 'x' means that the program will run as the user that owns
the file instead of as the user who runs the program. In this case, it means
checkpw will run as root.
It is important to take off write permission or else a normal user could
replace the checkpw with something else and have it run as root.
You can run checkpw at the command line to test it.
If it returns
Shadow file '/etc/shadow' not readable.
then it does not have the correct privileges.
* Added a new "Passwords" privilege that controls access to the F12 options
in Setup->Users. You need View access to check the password and Edit access
to change the password (if it is not ready to expire).
The automatic check when you start ClassPag does not require any privilege
so that users can change their passwords before they expire without the
intervention of a system manager.
* The Setup -> Spread Layouts now shows stars in front of active spreads.
* The product configuration screen "Screen Display Preferences"/"Preferencias
de Visualizacion" has a new field "PostScript previewer"/"Ver PostScript con"
with the values "GV" and "GGV". The default value of "GV" views ads and pages
with "gv". The value of "GGV" views ads and pages with "ggv". ggv has a
nicer user interface, but it is slower and does not take command line
parameters to set the initial magnification level.
* Macro expressions now trim trailing spaces from the product information
in the ProductId and ProductName fields. This makes it easier to embed
product information in file names.
* ClassPag now shows a warning when you open a work area that is already
open in another session. This can happen if you have an X connection
that sets the work areas by IP number and you open a second session
from the same workstation. For now, you can continue after the warning
to avoid locking the workstation if there is a hung process that requires
a system manager to clean up.
* pstoepsf.sh has a new -invert option to invert (switch white and black)
in the tiff preview. This option requires that pnminvert is installed.
* The test for missing heads no longer shows extra warnings for line ads
under incompatible display ads on products that do not place heads at the
top of all columns,
* Included Chris' fix for button painting in the page preview screen.
* Included Bob's changes to the interface procedures.
The CText IH is now implemented using the new syntax for the IL and IR
commands. IH- is implemented by composition <IL -@h><IR -@h> instead
of composition <IH ->.
Fixed two bugs in computation of double values for box width, height, and
rule weight that are used in computing dash and space lengths for dashed
coupon borders.
readnn no longer does segmentation for ads of more than one column.
The following characteristics of a box conflict. Maybe they shouldn't, but
they do in our implementation:
shadow and coupon border (we could do that, but it would look bad)
shadow and non-square corners (we could do that, but it would look bad)
coupon border and non-square corners (that's very hard to do)
non-zero box percent and non-square corners (that's very hard to do)
An FN command overrides any video mode setting from a previous active AF
command as well as a previous active RO, BO, IT, BI command. Thus readnn
now generates <fu -:v> as well as <vu -> for the CText FN command. Since
<fu -:v> is new syntax for composition, if you install this readnn, install
a new spice as well.
When readnn encounters the first character after a point size change on a
non-empty line within the first four words of an ad, if the character is on
the same line as the point size change, readnn inserts an optional quad
to end the line. This prevents characters with different point sizes
on the same line early in an ad.
postnn is a program that post-processes the output of readnn with the -p option
to make it easier to read and diff the output. It replaces CText open/close
comp marks with <>, and inserts newlines so that each CText comp command is
on its own line. The program is only used for testing.
Removed the code that eliminates trailing carriage returns from formats and to
removed the recently added code that inserts an optional quad when there is a
leading change. Also, I changed the terminate_line routine so that when it
generates a quad command due to a CText carriage return, it uses an argument of
1, causing the quad to be ignored if the line is blank. Also, the optional quad
center and quad right that we insert when there is a change in justification use
an argument of 1 so that they never result in blank lines.
readnn now draws coupon borders using composition's new optional arguments
to the composition DR command. As a result, readnn no longer needs to compute
the dash and space length for a coupon border. As a result of that, readnn
no longer needs to maintain "double" variables for the width and height of a
box. This also allows readnn to draw coupon borders on boxes with non-square
corners. It couldn't do that previously without maintaining doubles not only
for the box width and height but also for the corner radii.
Using the DR command to draw dashed rules for coupon borders requires readnn
to use the new composition SD command to set the density for spaces. For
consistency, readnn also uses the SD command to set the density for text
and rules, and the :Y options on the first argument of DR and CN commands
to indicate that rules and corners should be drawn using the rule density
from the SD command. The advantage of this is that readnn no longer has to
use PC setgray to switch between text and rule densities, since composition
does this automatically in the DR and CN commands. Because of this advantage,
readnn also uses the SD rule density in drawing rules using the CText DH, DV,
VR commands. Also, readnn does not have to save and restore text and rule
densities in the gp, gp- commands, since composition's SD command handles
that through composition's glist mechanism.
As indicated above, readnn no longer considers non-square corners and coupon
borders to be in conflict; it can draw boxes with both of those attributes.
The following conflicts still exist, and are resolved as follows:
For Newport News:
shadow and coupon border -- do shadow with ordinary border
shadow and non-square corners -- do shadow with square corners
non-zero box percent and non-square corners -- do non-zero box percent with square corners
For others (e.g., LA Times):
shadow and coupon border -- do coupon border with no shadow
shadow and non-square corners -- do non-square corners with no shadow
non-zero box percent and non-square corners -- do non-square corners with zero box percent
Removed the IL and IR commands generated by the BX command.
I changed the default width of the box. It used to be the ad width,
which is either the current SM command amount or the number of columns
from the current CS command. Now it is the ad width minus the box indent
(second argument to BX) if that indent amount is non-zero.
We now support BX commands with bottom, left, right rule weights that are
not the same as the top rule weight.
We don't allow a combination of custom (non-square) corners with rule weights
that are not all the same. Drawing a beveled or rounded corner from a vertical
rule of one weight to a horizontal rule of another won't look right. For
Newport News, if we have this combination, we do square corners with varying
rule weights. For the LA Times, we do custom corners with all the same rule
weights.
This readnn requires the latest spice.
NOTE: This version has 3016 lines of changes from the previous version.
10/27/05
Version 4.84
* Added Chris' enhancement for ad tips.
When the mouse sits over an ad for more than 1 second, text appears
that helps identify the ad. Currently this text shows
- Element
- Size
- Class
- Description
The same key information is printed inside the ad. In small ads,
the text often does not fit inside the box. The tooltip helps
you identify the ad, without having to click on it.
* The product configuration screen "Screen Display Preferences"/
"Preferencias de Visualizacion" has a new field "Show ad tips"/
"Mostrar ad tips" to control whether the page display shows ad tips.
The default is "Y" to show ad tips. Setting the field to "N"
disables ad tips.
* The Cmd->Ads menu has new items for finding ads.
The items open the "Find an ad"/"Buscar un aviso" with different options.
"Find all ads"/"Buscar todos avisos" shows all ads in the display ad database.
"Find display ad"/"Buscar aviso destacado" shows only the display ads.
"Find agate ad"/"Buscar aviso lineal" shows the internal line ads,
except that if there are no internal line ads, it shows all ads in
the display ad database.
* When you enter a search string in the various Cmd->Ads->Find an ad
lists, if no ad matches in the current list, ClassPag will automatically
switch between the display ad and agate ad lists if an ad matches in
the other list.
* The Cmd->Misc menu has a new item "Edit control record"/"Editar registro
de control" to edit the control record for the current work area.
* The "Auto Segment Ads"/"Dividir Avisos" field has a new value of "CCI"
to handle ads written by CCI AdDesk with %%CCIBreakPos comments.
The EPS of these ads must have a %%BoundingBox or a %%HiResBoundingBox
comment. The %%CCIBreakPos comment has the syntax
%%CCIBreakPos: baseline-pos1 descender-depth1
%%+ baseline-pos2 descender-depth2
%%+ baseline-pos3 descender-depth3
etc. Each baseline-pos is a value in postscript points based on the same
geometry as the bounding box. The values should all be greater than the
lower left y position and less than the upper right y position.
In addition, the values should list the base lines from top to the bottom
of the ad. The descender-depth values are in points and tell how far the
descenders go below the baseline.
* mapclass now shows more accurate product information in the background
window when you are doing a merge. The product should be the correct,
and the "copied from" line now shows the original product and merge
directory. The window no longer shows the run date, edition or zone,
because those are not updated until you start paginating.
mapclass.sh and mapclass.frm have a new "prod" option that takes an alternate
product id and a new "term" option that takes the original source terminal.
The importmerge.sh interface script has a new -p option that takes
a product id to send to mapclass.
* The cronbuild.sh script now defaults to +f on cobalt2 and +t on zion and sun1.
* Fixed a problem where the ads in a square-off would not unflow like other
ads if the ads flowed normally because the square-off did not have the number
of ads required in the product configuration.
* Fixed a problem in back-to-front pagination with column headers on the
leftmost column where placing a full height ad on the leftmost column
would prevent ClassPag from placing a header. If the leftmost column
is full, ClassPag will scan right to the first column that is not
completely full.
* Fixed a problem where the notes and customers field would show
extra characters in the page preview display.
* Fixed a problem where pasting a second copy of a filler
on a page would remove the first copy.
* Fixed a problem where the lists to paste fillers could show duplicate
entries if the product configuration specified a default display filler
product and that product had fillers in common with the current product.
The list will now ignore duplicate fillers in the default product.
* Added Bob's changes to the readnn interface.
Better handling of CText command argument defaults by the convert_argument
routine.
In some cases, the default CText argument is a constant value. In other
cases, it is the value of a previous argument to the command. For the
first case, suppose the default is 1 point. If we use "1" for the defval
argument to convert_argument, we are passing 1 CText point. For the second
case, suppose that the default is a previous argument whose specified value
is 1 point. If we pass the result of convert_argument on that previous
argument, we are passing 1 SCS point.
To make this consistent, we can now precede constant default values with the
letter 'c' to indicate that the default is in CText units. If the default
parameter begins with 'c' convert_argument uses field_to_scs_units on the
string after the 'c' to convert that string to SCS units, and uses that
result as the default. If the default parameter does not begin with 'c',
it is used without conversion as the default.
We no longer wait to see if a box from the BX command really has a shadow
before computing the box height from the BX command height argument. The
BX command argument includes the thickness of the shadow. Even if we don't
draw the shadow, we want the value that we use for the height of the box
to be that argument minus the shadow thickness. That way, the box is the
same height even if we cancel the shadow because of a conflict; the only
difference if that happens is that the shadow is not drawn.
For the width, however, we do wait until we see if there is really a shadow.
If there is no shadow because of a conflict, we can widen the box to occupy
the space where the shadow would have been. In most cases, that's the best
thing to do, especially if the box is supposed to fill the column width.
It turns out that every use of the width variable when drawing the box has
the shadow subtracted from it if there is a shadow. So now, if there is a
shadow, we subtract the shadow thickness from bx_wid once and for all so that
future uses of the width don't need to subtract the shadow thickness.
So the bx_shd variable is used unconditionally in computing the actual box
height not including shadow. Every other use of it (computing the actual
box width, drawing the shadow) is conditional on whether there is actually
a shadow.
Also, I fixed the BS command so that the default shadow thickness is 6 points,
not 0. We still ignore the shadow density and shadow position parameters,
using the rule density for the shadow density and position 4 (lower right)
for the shadow. This is hard-coded in draw_box.
Modifications to drawing boxes with the BX command.
First, there is a small code change. Instead of passing the BX command
height to draw_box and having draw_box save it in v31, we now do that
in do_bx_command. That makes it easier to have draw_box work for the
upcoming AB/BE commands. To avoid generating any code for a box when
the rule density and inside box density are 0 (white), do_bx_command
checks for this condition. If both are white, do_bx_command just issues
a quad to end the current line if the line is not empty.
Second, instead of canceling the indents before drawing a box, we suspend
them. Indents should not be applied to the positions of the box's borders,
drawn by DR. But they should not be canceled, because then they will not
apply to subsequent text. So now we suspend them with <xi -> instead of
canceling them with <xi>. At the end of draw_box, we resume indents with
<xi +>.
Third, we no longer issue <xr> to cancel ragged when drawing a box. I don't
know why this was there, but ragged mode shouldn't be affected by a box.
Implemented the auto box (AB/BE/EB) commands. This adds one for conflict --
an auto box cannot have a non-white fill. That's because the text for an
auto box is drawn before the box and the fill, because we don't know the
height of the box until we have processed the text.
newgally is a program to take galley.fil on standard input and produce
standard output that has soft line endings marked by the Tomahawk
composition engine.
newgally has a test mode which is specified using the -t command line
option. In test mode, the standard output of newgally is the input
with the ads prepared for passing to Tomahawk, without the results of
what Tomahawk does to the ads.
If any part of the process of sending an ad to Tomahawk fails, that ad
is output as an exact copy of the ad in the input.
Since newgally without -t calls the Tomahawk main program, it should be
run on a Windows system with that program and the Tomahawk environment.
Otherwise, the call to Tomahawk will fail, so the output will be the
same as the input.
New command line specification:
-s script-name
-s is required. script-name is the name of the script to use to convert
a file containing markup for a single ad surrounded by INTG 0 / INTG 1 to
the same markup with soft line endings marked.
The requirements for a script used in the -s option are:
1. The script should treat its first argument as a file containing ad markup
surrounded by INTG 0 / INTG 1 to be converted. It should save the result
of the conversion in the file named by the second argument.
2. It should clean up after itself; e.g., other than the output file named
by the second argument, it should not leave any files around that were
not around at the start.
3. It should exit with a status of 0 if it successfully creates the output
file with soft line endings marked and a non-zero status otherwise.
newgally.bat is an example script that can be used for the -s option of
newgally.c. It uses the tomahawk command line program to determine soft
line endings.
Fixed handling of ^X and ^Y that occur in some ads in CText markup. We have
been skipping those characters; i.e., not putting them into the composition
output buffer and not interpreting them to mean anything. That's correct.
But we also need to recognize them as not being word characters, so they
don't cause word_count to be incremented, not printable characters, so that
we don't consider them as starting text or starting a line, and as word
ending characters so that a printable character after them starts a new
word.
The changes to newgally.c are:
1. For each ad, we save the RS and begad commands that precede the ad
in galley.fil and prepend it to the output from Tomahawk. We append
<endad> to the output from Tomahawk.
2. The command <Tom> is now <Seol> (for soft end of line). The LA Times
has a format called TOM.FMT, so the command <Tom> could mean invoke
that format. <Seol> is prepended to the output from Tomahawk, after
the RS and begad commands.
The change to newgally.bat is to use the -h option to avoid interactive
error messages and dialogs, as suggested by John Samford.
NOTE: This version has 9294 lines of changes from the previous version.
11/1/05
Version 4.85
* Added a new 'X' ad type (at column 0) in the sort file for killed ads.
ClassPag ignores these lines. This can simplify interfaces that must
generate records for every ad. Also, in interfaces that merge several
files, this has an advantage over passing a KILL request because an ad
killed with the 'X' ad type will not interfere with an ad in another
file with the same ad number.
* When the Import -> Read procedure finds type 'X' sort file lines,
it shows a line with the count of killed ads in the status window.
* The product configuration screen "System Preferences"/"Preferencias de
Sistema" has new fields "Can ftp save areas to"/"Poder enviar por ftp a"
"SCS" and "ATS" that control whether the Cmd->Lock menu contains the
current entry to send files to SCS or a new entry to send files to ATS.
The default is to enable the option for SCS and to disable the option
for ATS. The command to send to ATS checks the printer command with
the id "sendtoats". See the description of "sendtoscs" in version 4.21.
The "sendtoats" script should accept the same "-f" and "-t" options as
the "sendtoscs" script plus a new "-ats" option.
* maketarw.sh has a new -ats option to send files to ATS.
* maketarw.sh has a new -xx option to pass a -x option to rcpuniq.sh.
You can use this to help debug rcpuniq.sh.
* Added -dir and -nodir options to rcpuniq.sh to control whether it
shows a directory listing after sending a file by ftp. The default
is -dir to show a directory listing. If directory listings cause
problems, you can use -nodir.
* rcpuniq.sh now converts the three characters sequence %20 in
ftp destination directories into a space. You can use this
to send to directories with embedded spaces. In general,
it is better to avoid spaces in directories and file names
because they require quoting. Underscores are easier to handle.
* Fixed a problem with the first line of text in ad tips.
* Fixed problems with class headers in square-offs.
If the class header was entered as a banner and could also
be a column header, and then if you moved an ad in the
square-off or a display ad on the same page, ClassPag could
place a second copy of the header outside the square-off.
* Fixed a problem where the column balancing algorithm could
place killed ads.
* Fixed a log warning about not finding templates when placing ads.
* Added Bob's changes to the readnn interface.
Cosmetic changes to readnn.c
For the LA Times, the AB command is first treated as a format named AB.
If the format is found, we use it. Otherwise, we execute the CText AB
command.
Also for the LA Times, instead of marking an ad with B (box) attribute
if it uses the BLBX format, we do it for the BE format. The BE format
contains the VR command that adds the extra points to the depth. There
are several box formats other than BLBX that do an MPTop so that a future
BE can to a VRTop. All of these should give the ad the B attribute so
that the extra points are added by mapclass before comparing the depth
with the input.fil depth.
Instead of stopping segmentation when we see a BLBX format for LA, we now
stop segmentation when we see an MP command. There are several box formats
that use the MP command, so this rule covers stopping segmentation for all
of those formats. There are no non-box formats that use the MP command.
Fixed check for VR command. VR is typically followed by an alpha argument,
so we need special coding to recognize it, just as we need special coding
to recognize MP.
If the adcls2 attributes field contains the letter S, that means that the
ad was generated by readnn for the LA Times from input that had soft line
endings marked by Tomahawk. Thus the SCS composition for the ad matches
the line endings from Tomahawk, so there is no need to adjust the v15 set
size ratio to try to increase or decrease the number of lines so that the
ad depth to match the input.fil depth. In fact, it won't do any good, since
every line ends with a quad.
New code to handle ads that have soft line endings marked in the CText markup.
The newgally program is a filter that uses the Tomahawk command line program
to add markup for soft line endings to ads in the AdVision dump file galley.fil.
If newgally's call to Tomahawk succeeds in adding soft line endings to an ad,
the ad has the new command <Seol> after the <begad...> command. Soft line
endings are marked by the two sequences:
^X^M\n^Y
^X-^M\n^Y
where ^X is ASCII 24, ^Y is ASCII 25, ^M is a carriage return (ASCII 13),
\n is a newline (ASCII 10) and - is a machine hyphen, indicating that the
syllable before the ^X and the syllable after the ^Y are syllables of a
word that Tomahawk hyphenated.
The new code handles the Seol command by setting a flag indicating that readnn
should recognize the ^X sequences above and treat them as specifying a soft
line ending. If an ad does not have the Seol command, ^X and ^Y are ignored.
All ads have hard line endings marked, regardless of whether there is a Seol
command. Thus if there is a Seol command, all line endings are marked, so
that readnn can insert a quad after every line. And to ensure that a line
that fits in Tomahawk also fits in composition, readnn inserts <fl f> (force
fit line) at the beginning of every line. Note that this means that readnn
does not have to insert <fl f> near the end of lines that end with the CText
CR command.
Also, with the Seol command, readnn does not insert quads at places where
there is no line ending, such as at a change in justification. Without
line endings marked, readnn inserts optional quads when there is a change
in justification on the grounds that the ad taker is likely to insert
justification change markup where breaks a line.
readnn uses the following rules to decide which quad to insert at a line
terminator:
at a hard line ending marked by a carriage return, the quad is ql, qc,
qr depending on the flush value, regardless of the ragged value.
if the ragged value is ragged (not justified), the quad is ql, qc, qr
depending on the flush value, regardless of the line terminator.
if the ragged value is justified and the line terminator is not a soft
line ending or a CR or SR command, the quad is qm, regardless of the
flush value.
The argument to the quad command is:
no argument for the CR or SR command. Thus we allow CR and SR commands
to create blank lines.
-1 for a soft line ending. Since there is an argument, a quad generated
from a soft line ending cannot create a blank line. Since the argument
is -1, composition does not consider the quad as ending a paragraph.
1 for a carriage return. Thus a quad generated from a carriage return
cannot create a blank line, but is considered as ending a paragraph.
If an ad has the Seol command, we pass the letter S as an attribute in the
attributes field of the adcls2 database file. When mapclass sees an ad
with the S attribute, it does not adjust v15 to try to match the ad depth
in input.fil, because with line endings that match Tomahawk, the depth
will also match. Also, if every line ends with a quad, adjusting character
widths is useless toward creating more or fewer lines.
NOTE: This version has 15115 lines of changes from the previous version.
11/4/05
Version 4.86
* ClassPag can now flow headers over banners at the top of the page.
This feature allows you to place a jump box manually at the top of
the page and then have ClassPag flow line ads below the jump box
while placing the class header above the jump box. ClassPag usually
does not insert ads in a stack that you have created manually.
Banner records have a new field "Place below heads"/"Debajo de cabezales"
to control this feature. The value of "Y" places class headers over the
banner. The default value of "N" leaves class headers below the banner.
* Added a +nn option to cronbuild.sh to force a build of readnn
and a +nac to force a build of readnac.
Builds on sun1 now default to +nn.
Builds on zion now default to +nac.
* Added Chris' changes to the mirroring scripts.
Removed the call to termdef. It fails in RSH connections.
On newer Linux systems, rsync uses SSH instead of RSH.
This causes mirroring scripts to stop and prompt for a password.
To fix the problem, I changed "mirror.def" to set RSYNC_RSH to "rsh".
The mirror script now checks the status of cron_sync jobs.
* Fixed a problem where killing a dummied column balanced ad
would not always make it go away.
* Added Bob's changes to the readnac interface program.
Added -o and -O options. -o is like -t, except that only the
composition ad markup is output, with no field name tag, no
surrounding single quotes, and no doubled single quotes within the
markup. Between the markup for each as is a line consisting of a
single period. -O is like -o, except that the line with the period is
omitted. The -O option allows generation of composition markup for
one ad, which can be passed into a program that composes it and views
or prints the results. I use it for testing during development.
Fixed handling of the Quark # tag.
readnac now handles a tab (ASCII 9) in the SoftData markup the same
way that it handles the quark tag <#9>, by inserting a <ws> command.
readnac now handles *L tags as well as *J tags in the SoftData markup.
For a *L tag, we set readnac's internal ragged mode to ragged; for a
*J, we set it to justified. The only other place where the ragged
mode changes is when a <ws> command is inserted. In that case,
the ragged mode is set to justified, because lines with an expander
should be justified.
The internal ragged mode affects which quad is used to implement a
soft return in the SoftData markup. If the mode is ragged, we use ql;
for justified, we use qm.
readnac no longer sets the internal ragged mode to ragged when it
encounters a hard return. Thus soft returns after a hard return work
generate quads according to the ragged mode set by the last *J or *L
tag.
NOTE: This version has 1320 lines of changes from the previous version.
11/11/05
Version 4.87
* ClassPag can now flow keyed and unkeyed ads around island ads
on pages with column-balanced ads. Column-balanced ads never flow
under island ads, but keyed and unkeyed ads can flow above and below
island ads if they fit.
* If the top of a column has three class heads in a row, ClassPag used
to line up the top two heads and leave the extra space below the third
head. For this special case, ClassPag now distributes the space between
all three ads at the possible expense that the top ad in the column
will no longer line up with the top ads in adjacent columns.
* When placing display ads with the KY flag, ClassPag is more careful
about keeping display ads in columns with line ads of the same class.
* Changed cronbuild.sh defaults so both sun1 and zion default to +nn +nac.
* The product configuration screen "Outext Export" has a new field
"Edition number"/"Numero de edición" to control what ClassPag writes
in the edition number field outext file header (columns 10-11).
By default, ClassPag writes the first edition code from the sort file
header. If you set this field to "Y", ClassPag writes the ClassPag
edition number instead.
* ClassPag now writes the Notes field of the sort file into
the outext Description field (line 1, columns 10-19).
If the Notes field is empty, ClassPag continues to write what
it did before (the Description in the setup entry for banners
and fillers, and the Title comment of the EPS of external ads).
* ClassPag now writes the Customer field of the sort file into
the outext Advertiser field (line 1, columns 40-69).
ClassPag previously left this outext field blank.
* ClassPag can now write comments for missing ads in postscript pages.
Other programs can read the comments to embed the ads later.
The "Show Missing Images As" field in the spread database has a new
value "INC" to generate postscript include comments for missing ads.
With this option, ClassPag writes comments in the prolog and comments
for each missing ad.
In the place of each missing ad, ClassPag writes an in-line comments
%SCSIncludeFile: <filename> <width-in-pspts> <depth-in-pspts>
for example
%SCSIncludeFile: /u/displayads/691256 87.87 85.04
ClassPag wraps these comments in a postscript environment translated so
that the lower left of the ad reservation is at the origin and scaled
so that upper right of the reservation is the width and depth in points
(at the standard 72 postscript points per inch).
ClassPag writes a number of comments in the prolog to help applications
locate the files and the embedded %SCSIncludeFile comments.
Applications can extract the missing EPS files and the rules for locating
them from reading only the prolog.
In addition, once an application has located all of the missing EPS files,
it can locate the insertion points without parsing the postscript page.
ClassPag writes a %%SCSIncludeNeeded comment in the prolog for each missing ad.
The comment has the format
%%SCSIncludeNeeded: <filename> <byte offset of the % in the corresponding %SCSIncludeFile> <adnumber>
for example
%%SCSIncludeNeeded: /u/displayads/040159 0000886223 040159
Future versions might place more information at the end of this line.
Applications should be prepared to skip over any text remaining
after they parse the fields that they support.
ClassPag also includes the search path for ads in a series of
consecutive comments with one directory per comment.
The first comment is %%SCSIncludePath and the continuation comments are %%+
%%SCSIncludePath: <path>
%%+ <path>
Each <path> is a full path from "/", for example,
%%SCSIncludePath: /u/displayads
%%+ /u/altads
A path that ends with a plus "+" means to prepend the path to the path
in the %%SCSIncludeNeeded and %SCSIncludeFile comments. Otherwise,
the path in the %%SCSIncludeNeeded and %SCSIncludeFile comments should
be removed before the %%SCSIncludePath entry.
Some sites have subdiretories with few characters of the ad number in
order to keep the display ads directory small. Then the ad numbers
come over like 12/12345 and the IncludePath would be /u/displayads/+
in order to generate /u/displayads/12/12345. /u/displayads+ would
generate /u/displayads12/12345 and /u/displayads or /u/displayads
would generate /u/displayads/12/12345.
ClassPag includes the extensions to try in a %%SCSIncludeExt comment
%%SCSIncludeExt: <ext>{ <ext>}
Each <ext> is an extension including a dot, For example
%%SCSIncludeExt: .eps .EPS
ClassPag includes addition information in a %%SCSIncludeOptions comment
%%SCSIncludeOptions: [+upper] [+lower] [+bw]
+upper means to retry with the file name in upper case.
+lower means to retry with the file name in lower case.
+bw means to do an initial search with a -BW extension.
This is currently supported only for single pages.
* Fixed a problem where the command to lock the line ads
on a page would not lock column-balanced line ads.
* Added Chris' update to the ad tips.
Ad tips line up better and 3-line ad tips are closer to the mouse.
* Added Bob's changes to the readnac interface program.
By default, readnac now uses the new form of fit line <fl f>
instead of the old form <fl lm,w,r>. The new form is more
reliable, because it doesn't matter what commands occur
between the command and the end of the line.
You can still get the old behavior by using the -l command line option.
The rule for inserting <fl f> is simpler than the rule for
inserting the old fit line. <fl f> is inserted before the first
real character on each line. The old fit line was inserted after
the quad from the previous line or after commands thereafter that
can't be between fit line and the end of the line.
In particular, this meant that the old fit line was never
inserted for the first line, since the first line has no
preceding quad. But <fl f> is inserted on the first line
provided the first line has a first character.
Also, I made a change that affects either fit line. There might
not be a quad at the end of the last line of an ad. If readnac
reaches the end of an ad and there is still an unfinished line,
it inserts fit line at the beginning of that line.
A local format (the translation of a quark style sheet into
composition) may now begin with a style comment.
The syntax of style_comment is:
<co style(style-part,...)>
style_part is M<mode> | T<tab> | Q<alignment>
mode is: 1 = roman, 2 = bold, 3 = italic, 4 = bold-italic
readnac uses this to determine the font or set the video mode.
It is based on tag letters P,B,I in the quark style from which
the local format is derived.
tab is: W = use <ws> for tabs, T = use <ta> for tabs
readnac uses this to determine if tabs should be implemented
with a <ws> command or a <ta> command. It is based on how the
the quark style sets up tabs. For a single right tab stop on
the right margin, use <ws>. For a more complex tab stop setup,
use <ta>.
alignment is: L = left, R = right, C = centered, M = justified
readnac uses this to determine which quad to use for soft
line endings in the SoftData markup. It is based on the
paragraph tags *L, *R, *C, *J in the quark style.
For style-parts that are unspecified, the defaults are 1 for mode,
W for tab, L for alignment.
Thus the purpose of the style comment is to convey to readnac information about
the style that readnac needs in order to determine the composition it generates.
The local formats database file record structure already has a component called
FormatBold, which indicates if the local format sets to bold. For backward
compatibility, if this field indicates bold, it overrides the M value in the
style comment. The purpose of adding the style comment was to allow the tab
and alignment specification, and mode specifications besides roman and bold,
to be implemented without adding more fields to the local formats database
file record structure.
Besides interpreting the style comment, readnac has new code for applying the
values it specifies. For video mode, the code for doing that now deals with
italic and bold italic, where it used to deal only with bold. For soft line
endings, readnac used to assume that the local format specified left alignment,
dealing only with paragraph alignment tags in the markup. Now it uses the
style comment to set the alignment from the local format.
For tabs, readnac used just generate <ws> for a tab. Now, if the style
comment specifies <ta> tabs, readnac does the following:
Tab characters result in the generation of <ta> instead of <ws>.
If a line has a <ta>, when the end of the line is reached, <bt> is
inserted at the beginning of the line, the line is terminated with
<ta> instead of a quad, and <xt> is placed after the final <ta>.
That ensures that tab mode is turned on only for lines that
actually have tabs.
Added handling for special characters in the SoftData markup.
So far, I've seen two special characters:
ASCII 146 appears in the markup as an apostrophe in La Nacion
ASCII 186 appears as the ordmasculine character
The dingbat character table translates 146 to a composition close
single quote.
The table translates 186 to the composition alt character with value 104.
The ordmasculine character is at encoding value 235 in the Univers and
Univers-Black PostScript fonts. The composition font created by font
creator has no code that generates code 235, so I had to add one. In
the composition fonts, 189 is an unused code. So I modified the fontdef
dump of the font so that 189 generates 235. I got the width from the afm
file for each font. Then in map_cchar.c, I found that alt-104 is mapped
to 189, so readnac maps SoftData 186 to composition alt-104.
Now I need to change any other composition fonts that La Nacion uses
so that they too can render the ordmasculine character.
Character 145 in SoftData input now generates the composition single quote.
This is the same as is generated by character 146. Ads in the La Nacion
test data for AlVolante have both 145 and 146; in each case, the character
in the paper for those ads looks like a single quote.
readnac now handles the 'h' (horizontal character compression) style tag
readnac now handles /CONFOTO= specifications in the SoftData ad header as
well as <CONFOTO= quark tags. In fact, I think CONFOTO is more likely to
be found in the header than in a tag.
readnac now horizontally scales a logo specified by CONFOTO so that it fits
in the column width. For the DomFunebres product that I'm testing, this
makes the cross and star-of-david logos centered above the ad, matching
what's the paper.
We no longer generate a quad to end a blank line. Some ads have a
<BEGIN_TXT> tag followed by <CONFOTO> tag followed by a newline,
without any text on the line. Those line feeds should not generate quads.
We no longer scale a logo up horizontally to match the column width,
but we still scale down. A logo in the autos section does not fill
the column width in the paper. Also, we scale a logo vertically to
match its horizontal scaling so as not to distort the image.
* Added Bob's changes to the readnn interface program.
Fixed a problem introduced last week. I changed the text
for adding the 'B' attribute to an ad from testing whether
the ad used the BLBX format to whether it used the BE format.
The reaseon is that boxes can be started with formats besides
BLBX, such as GRBX, but (I thought) they always end with BE.
The LA Times has an ad the uses BLBX but ends with the typical
contents of BE right in the ad markup instead of a call to BE.
The symptom was that since readnn did not set the 'B' attribute,
mapclass did not adjust the ad depth up by 3.5 points. As a
result, it thought the ad was smaller than the input.fil depth
and tried to expand it. Since all lines end with hard endings,
all this did was make the text wider in the box, which just made
the ad look bad.
Tweak to make an LA Times ad work. The ad (25230728) has a logo (386457)
to the left of indented text. The indent depth in the IL command in the
logo format was such that in AdVision, the fifth line is not indented.
But with all of the numeric conversions and the uncertainty of how Tomahawk
does indent depth calculations, with the SCS composition generated by
readnn, the fifth line falls within the indent depth, so it is indented.
Looking at the numbers in composition debug code, it turns out that the
indent depth converted for the composition IL command is exactly (to the
100th of a point) the same as the depth used to test the fifth line against
the indent depth. If the converted composition IL command depth were 1/100th
of a point less, the last line would not have been indented. So I tweaked
readnn so that it subtracts 0.01 from the converted depth value.
NOTE: This version has 3253 lines of changes from the previous version.
11/12/05
Version 4.88
* Added the string variables FirstAdWord and LastAdWord to
macro expression for generating folio composition codes.
FirstAdWord contains the first word of the first agate ad on the page.
LastAdWord contains the first word of the last agate ad on the page.
You can use these variables for building ad text into folios.
The scan for ad text depends on locating %%ItemText comments
produced by SCS Composition.
* Added the boolean variable PageHasAgateAds to macro expressions
for generating folio composition codes. You can use this variable
to create alternate folios for pages with no agate ads.
* The various SCSInclude comments now escape special characters
with a backslash with syntax similar to C.
A backslash followed by a digit will always mean a three digit
octal sequence. For example, an ascii 3 is \003.
A backslash followed by any other character is the other character.
For example, \\ is a backslash.
For now, the fields in the comments are delimited by a single space.
Spaces in fields are escaped with a backslash and a space.
An unescaped space ends a field.
If a field is empty, the comment line will have two consecutive
unescaped spaces.
* Added Bob's changes to the readnn interface program.
This version of readnn requires a new version of spice.
readnn now uses the new forms of the vu/cu commands,
and does not use the fu command.
For an AF command:
if a case is specified, a cu command for that case and
the AF termination criteria is generated.
if a mode is specified, a vu command for that mode and
the AF termination criteria is generated.
AF- generates a <cu-> if the last AF generated a <cu> command and
the last <cu> command was from an AF.
AF- generates a <vu-> if the last AF generated a <vu> command and
the last <vu> command was from an AF.
Thus AF- cancels only that which is set by AF. Modes or cases
set by RO, BO, IT, BI, FN, CC are not canceled by AF-.
For an RO, BO, IT, BI command:
a <vu> command with the CText command's mode and termination
criteria is issued. The first argument of the <vu> uses :c
so that a future <vu> replaces this <vu>.
Note that if <vu> is generated from AF, a future <vu> does not
replace the AF's termination criteria. This implements the behavior
of CText, where if AF specifies bold for the next 3 words, a BO issued
before the 3 words have passed is still canceled after the 3 words.
But if BO specifies bold for the next 3 words, a BO issued before
the 3 words is not canceled after the 3 words.
For a CC command:
CC with no argument generates <cu 1>
CC- generates <cu->
Otherwise, CC generates a <cu> command with the case type and
termination criteria from the CC command.
For an FN command:
We no longer generate a video mode change to match the video mode
of the font. Instead, the ad is always in video mode 1. We do,
however, generate a <vu> command to set to the mode of the font.
AF- does not cancel this vu.
Character 0x95 in the CText markup now generates a bullet.
NOTE: This version has 1224 lines of changes from the previous version.
NOTE2: The readnn in this release requires a version of spice from Nov 14 or later.
11/21/05
Version 4.89
* ClassPag now supports interfaces that do not pass ceps.out files.
The product configuration screen "Ad Importing"/"Importacion de Avisos"
has a new field "Interface has ceps.out"/"Interfaz tiene archivos ceps.out".
The default value of "Y" means that the interface should supply both
sort and eps files. The value of "N" means that the interface supplies
only a sort file.
Products that do not have eps files but create folios in ClassPag should
set "Add folio prolog"/"Anadir prologo para los folios" to "Y" in the
folio screen of the product configuration. This field tells ClassPag to
take the SCS Composition prolog from the folio database instead of from
the eps file.
* The SCSInclude prolog contains an additional comment
with the command line to print the file. The syntax is
%%SCSIncludePrintCommand: <print command line>
for example
%%SCSIncludePrintCommand: lp -d llhp -o post -c cpag.ps
The comment is the full command line that ClassPag executed
to submit the file. The print command expects that the file
is called "cpag.ps". When the includer processes the file,
it should write the output included file to cpag.ps so that
it can use the command line directly. The command line might
have strings that contain "cpag.ps", so modifying the command
line to replace all occurrences of "cpag.ps" with another
string will not work dependably.
The command line can contain any sequence that the spice 4GL
"Execute" function supports. Under unix, this includes single
quotes, double quotes, command line redirection, and multiple
commands separated by semicolons,
ClassPag escapes special characters in the file name the same
as with other include comments, with the current exception that
it passes spaces without an escape because contents of the comment
is an entire line and not separate fields.
* The printer database has a new field "Includer Comment"/"Comando Incluir"
that contains an expression to pass in the SCSIncludePrintCommand comment.
If you enter an expression in this field, ClassPag passes it in the
comment instead of passing the print command.
The expression can access the same variables as the print command
and the title comment.
* When ClassPag rebuilds the folios, it calculates the FirstAdWord and
LastAdWord variables only if one of the folio expressions contains the
string "FirstAdWord" or "LastAdWord". The scan to find the first words
of the first and last ad is expensive. This test allows ClassPag to do
the scan only when necessary without the need for another configuration
parameter.
* Internal change to rename Locate to CPagLocate and change references
of BuiltInLocate to Locate. This makes ClassPag more compatible with
other SCS applications.
* Added an OriginalClass field to the sort file at columns 152-159.
The OriginalClass contains the class to use for reporting.
If the field is empty, the original class defaults to the
class at positions 20-27.
* Display and agate ad records have a new "Orig Class" field that
contains the original class in the sort file.
* Classification records have new "Orig Class" and "Orig Parent"
fields that contain the original class and parent class from the
sort file.
* The F12 command menu from the classification list when you enter
a pagination session has a new option "View class translations".
When you select this option, ClassPag shows a list of translation
tables. The window works similarly to the window to view the list
of classification sequencing tables. Use <Insert> to create a new
table, F12->List to add entries to the table, and F12->"Apply class
transaction table" to apply the table.
Each record of the translation table has fields for the new class,
the range of old classes to translate to the new class, a "numeric"
flag, and an "exclude" flag.
The new class is the new class to create.
The first and last classes define the range of classes to translate
to the new class.
If the numeric field is set to "Y", the test is by the numeric value
of the class. Otherwise, if the numeric field is empty or is set
to "N", the test is by a string comparison.
For example, "11" is between "1" and "2" as a string but not as
a number.
For string comparisons, you can currently use three wildcards.
% matches any character, including spaces.
# matches any character, except a space.
* matches the remaining characters and ignores the rest of the pattern.
If the last class is empty, the test is to match the first class.
If the exclude field is set to "Y", any class that matches the pattern
is never translated to the new class, even if another translation
record for that new class includes the current class in its range.
* Fixed a problem that could cause ClassPag to place class headers
at the bottom of a column in front-to-back pagination when a class
had a header with no agate ads but had a subclass with a header
that was both the in-line header and the column-top header.
* Included Chris' change to the pagination display
Enhanced the "One" page preview.
Box information is displayed with a proportional font.
* Included Bob's changes to the readnn interface
Two changes to the CText UL command.
1. The default for the first argument should be 1 (underline words and spaces)
instead of 0 (underline words).
2. readnn now uses its internal point size variable to compute the default
(1/4 point size) for the underline depth. It used to pass 0 to composition
and let composition compute 1/4 of the point size that is in effect when
the characters are underlined. Now is uses 1/4 of the point size that is
in effect at the UL command. This can be different if a point size change
comes between the UL comand and the characters to be underlined.
As evidenced by LA ad 25230892, CText uses the second behavior, the point
size that is in effect at the UL command. In that ad, the point size was
5 at the UL command and 10 at the first character. An underline depth of
2.5 is too low for that ad; 1.25 is about right.
In ad 25275733, centering is in effect at the start of the first line.
Before the first line ends, there is a call F5L, which does an RS
followed by an FL. The line is supposed to be centered.
In ad 24558072, centering is not in effect at the start of the MILLER &
DESATNIK line. Before that line ends, there is an FC command. The
line is also supposed to be centered.
So we have one example where a centering change at the end of a line
does not change the centering for the line and another example where
the centering change at the end of the line does change the centering
for the line. The only difference as far as I can tell is that the
first ad has an RS before the centering change while the second does
not.
Earlier, readnn was changed to handle 24558072 correctly -- when we reach
the end of a line, we apply the current CText centering setting before
determining which quad to use. Of course, that's wrong for 25275733.
So the hack is to apply the centering setting only if there have been
characters since the last RS command. That makes both ads work.
Hyphenation changes for the LA CText interface.
1. There was a bug. The rule was to hyphenate left-aligned and justified
text, but not centered text. The code in apply_flush_ragged to turn
hyphenation on or off depending on whether we are changing from left
to centered or centered to left did it backwards. As a result, left-
aligned or justified text was not hyphenated if it followed centered
text in an ad. This caused a lack of hyphenation in ad 25310644, which
is incorrect.
2. When testing this, I noticed some ads on the LA Times E-Tearsheet web site
in which hyphenation occurred with just two characters before the hyphen,
and in another place, hyphenation occurred with just two characters after
the hyphen. So I changed the initial <ah> command generated at start of
each ad to specify 2 instead of 3 for the number of characters before and
number of characters after arguments.
3. During testing, I also noticed an ad in which centered text is hyphenated
(24452543) on the tearsheet web site. So I changed the rule: it is ok
to hyphenate centered text provided it is normal size (less than 6 points)
and not near the start of the ad (i.e., after the first four words). That
still avoids hyphenation in large centered ad headings and other large
centered text in an ad.
To implement this, readnn calls check_centered_text_hyphenation when text
changes between left-aligned and centered, when the word count changes
from 4 to 5, and when the point size changes. That routine checks the
new alignment, point size, and word count, and calls set_hyphenation_off
to turn hyphenation on or off accordingly. That code used to be called
only for an alignment change, and it did not check the point size or the
word count.
Two changes for LA:
1. The LA Times dump file galley.fil has markup that is substituted for
missing display ads. Instead of putting the EPS for that markup into
ceps.out and marking the ad as internal, mapclass puts the EPS into a
special directory and marks the ad as external.
For this special missing display ads directory, mapclass used to use
the alternate display ads directory. There are two problems with that.
First, that could be a list of directories instead of a single directory.
At LA, it is a single directory, so that's not a problem. It is, however,
a problem that the alternate display ads directory might not be writable
by cpag. In that case, the attempt to store the EPS there fails, so
mapclass treats the ad as internal and puts the substitute markup in
ceps.out.
To fix this, mapclass first tries to use the default ad creation directory,
which ordinarily is writable by cpag. It uses the alternate display ads
directory only if the default ad creation directory is undefined.
One way to fix the problem at LA is to make the alternate display ads
directory writable and ensure that the field is not a list, but a single
directory name. Another way is to install this new maplcass and make
sure that each product specifies an existing, writable directory for
the default ad creation directory.
2. Ads of type 35 in input.fil are house fillers. LA wants those ads flagged
as such in classsrt.out so they can tell by color that the ad is a filler
and can safely be deleted if it's not needed. So mapclass now does that.
* Included Bob's changes to Composition
We now avoid adding PI or SHOVE characters to the alist and wlist. This
fixes a problem with LA Times ad 25275733. The ad had a star followed by
a price of a home $1.699Mil. The star is shove-H. The wlist said:
h1.699Mil
Since the character two before the decimal point is a letter, composition
did not interpret this as a number, but as a possible URL. So it broke
the price at the decimal point:
star$1.
699
making it look to some that the house cost $1.
In CText, fixed spaces are valid line break points. In one LA ad, 25307454,
there is a long string of text with fixed spaces instead of spaces separating
the words. In composition, that entire string is treated as one long word
with the fixed spaces treated as input hyphens. That doesn't work. When
composition oversets, it waits until it gets to the end of the word before
determining a line break point. Since this "word" is several lines long,
the line is way overset by that point.
The new way of dealing with fixed spaces for the CText interface is to treat
them similarly to spacebands. That way, each fixed space marks the end of
a word for line-breaking purposes.
This new behavior is used only when the SW command specifies that fixed
spaces should be treated as line break candidates (formerly, this same
option was used to treat fixed spaces as input hyphens).
Fixed spaces are still not treated exactly the same as spacebands. There
are still some ways in which they are treated as ordinary characters of
width.
The treatment of fixed spaces (if the SW option is in effect) is the same
as for spacebands in the following ways:
1. A line break candidate is set up at a fixed space as well as at a spaceband.
2. wordend is called at a fixed space.
The treatment is the same as for characters of width in the following ways:
1. The call to wordend does not count the word; in particular, it doesn't
apply the word towards the termination condition for a VU or CU.
2. Multiple fixed spaces are not treated as just one.
3. A fixed space can begin a new line; spacebands at the beginning of a line
are ignored.
4. Letterspacing is applied to fixed spaces, except at the beginning of a line.
5. The VU video mode is applied to fixed spaces.
6. A fixed space does not discontinue word-by-word underlining.
7. And, of course, the width calculation for fixed spaces is different from
the calculation for spacebands, and the code generated in the PCC file
is different.
Made the requirements stonger for identifying a URL or email address for
line-breaking purposes. It is worse to break a number at a period than
to fail to break a URL or email address at a period, so now, if there is
a digit on both sides of the period, the word is considered a number.
NOTE: This version has 3824 lines of changes from the previous version.
11/30/05
Version 4.90
* The page preview and the box information window now show the
original class of an ad when it differs from the current class.
* The SCSInclude prolog contains additional comments to identify jobs.
%%SCSProductCode: code
%%SCSEditionCode: EE
%%SCSZoneCode: ZZ
%%SCSPublicationDate: YYYYMMDD
%%SCSPageNumber: string
%%SCSJobDate: YYYYMMDD HH:MM:SS.SSS
The product code is the 5 character product id.
The edition code is the 2 digit edition id.
The zone code is the 2 digit zone id.
The edition code and the zone code are zero filled
with values from 01 to 99.
An edition code or a zone code that is empty or 00
means the generic edition or common zone.
Note that future versions of ClassPag might have a
longer product code or might change the edition code
or the zone code into a string.
The publication date is the run date in YYYYMMDD format.
The page number is a text string with the folio page number.
If you have defined sections, the string will be a section
name, a dash, and the page number in the session.
Otherwise, the string will be the absolute page number.
ClassPag users can assign any page number to any page including
assigning the same page number to several pages. Applications
reading the page number can display it but should now use it
as a key to identify pages.
The job date is the time that the page was generated.
It has the date in YYYYMMDD format, a space, and then
the time to the thousandth of a second in 24-hour
HH:MM:SS.SSS format. The HH, MM and SS fields are
zero-filled if necessary.
For example,
%%SCSProductCode: 06
%%SCSEditionCode:
%%SCSZoneCode: 00
%%SCSPublicationDate: 19971130
%%SCSPageNumber: A-32
%%SCSJobDate: 20051124 14:05:05.446
* Added a classification request field to the sort file in column 139.
This field is used only by class headers.
The setting for the class comes from the first header in the
new "*GROUPHDR*" or "*CLASSHDR*" format.
The field is ignored in other headers and in ads and fillers.
The field corresponds to the "Randomize" field in the class record
and can be
T = place in random order
F = place in sort order (default)
L = place in sort order but use maximum lookahead
G = set the legal flag without changing the lookahead
H = place horizontally
I = set to the maximum (infinite) lookahead
M = column balance type 1
N = column balance type 2
P = pair columns
Z = place horizontally and fill gaps
0-9/A-E = set the lookahead to 0 to 14
Note that classification sequencing records update the Randomize field.
* Sequencing table entries with a blank randomize field now leave
the randomize field of the corresponding class record unchanged.
* Rebuilt the ad reports for the database change that added
a field for the original class.
* Fixed a problem where ClassPag could draw vertical cut rules
for square-offs around ads in inactive square-offs.
* Increased the minimum banner ad area from the area of a normal
page to the area of 100 pages.
* Fixed the painting of the big option list under the Pages item
of the pagination status window.
* Included Bob's changes to the nn interface.
Fix to marking of ads of type 35 in input.fil as house ads.
A CR command at the end of a line ordinarily results in a qm (justified line).
But if the last character before the CR is a space, the line is not justified.
Added widths for some dingbat characters that had no widths.
Now degree, tm, section, register, copyright, cent, em dash, en dash, dagger,
double dagger, and plusminus all have widths.
Added errgally program to check an error file from the tomahawk
executable for errors that indicate that tomahawk could not correctly
process the ad in order to add soft line ending indicators.
newgally.bat now calls errgally to check for errors in the tomahawk error file.
* Included Bob's changes to the nac interface.
For the LA Nacion interface, we no longer specify the display ads directory
in the display ad filename field of the sort file. Instead, we put only the
filename. ClassPag knows to look for the file in the display ads directory
specified in the product configuration.
The purpose here is to make room for at least some of the ad description
found in the Quark interface file for display ads.
For display ads, readnac now loads the AdCls2 Desc field with the filename
followed by a space followed by the ad description. For a display ad, the
description appears between the BEGIN_TXT and END_TXT tags.
mapclass prepends a pound sign the the Desc field and loads it at position
72 in the sort file, where ClassPag treats it as a file name followed by a
space followed by an ad description. The ad description appears as part of
the ad information and in the ad box on the page preview screen.
Fixed parsing of xtags. Multiple tags in a single set of angle brackets
were not always handled correctly. For example, the h in *ph was
interpreted as *h, introducing a hyphenation specification. It should
be treated as h, which introduces a character width compression factor.
Added qtagscan program for scanning La Nacion ad dumps or style sheets
for quark tags on standard input. The program can output a list of
fonts or styles used in standard input. This helps identify which
styles and fonts are actually used so we can focus on implementing
those styles as local formats and setting up those fonts for fontdef,
classpag font maps, and composition environment table font entries.
Due to an earlier change, when we encounter a line ender, we test if the line
is non-empty (has text); if not, we do not generate a quad. The purpose of
the change was to prevent lines that have only a <CONFOTO= tag from resulting
in a blank line in the output.
That early change was too general. It is possible to have blank lines in
La Nacion ads. For example, some ads have only a style specifier on a line;
that line results in a blank line in the output.
So now when we encounter a line ender and the line has no text, we generate
a quad unless the line has a <CONFOTO= tag. That fixes the issue targeted
by the earlier fix without eliminating blank lines completely.
It appears that even a line with only a <CONFOTO= tag can result in a blank
line, provided that the ad has some text before the <CONFOTO= tag; that is,
a line with only a <CONFOTO= tag results in a blank line unless it is the
first line of the ad.
So now every hard return results in a quad unless there is no text at all
in the ad before the hard return. That fixes the problem with an ad that
has a <CONFOTO= followed by a hard return right after the <BEGIN_TXT> tag
(that hard return should not result in a blank line) without eliminating
blank lines in other contexts.
* Included Bob's changes to Composition.
The HH command had a bug. If HH is issued at the beginning of the line,
it should use 0 for the indent amount, because the accumulated width so
far on the line is 0.
This fixes LA Times ad 25350585, in which each line was indented to the
width of the previous line, due to HH commands at the beginning of each line.
Lines that end with CR are supposed to be justified, even if that requires
letterspacing greater than the maximum from the CText SB command.
Composition treats the SB command letterspacing limit as a hard limit
only if the argument has :h AND force fit is not in effect. Otherwise,
it treats it as a soft limit; i.e., composition issues a warning that
letterspacing exceeds the maximum, but still does that letterspacing.
This fixes LA Times ad 25339325, in which the last line had a URL
terminated by a CR. The line was letterspaced to justification, even
though doing so exceeds the CText SB command letterspace maximum of
1/10 of an em.
Changed creator.frm to take the TM symbol from PostScript character
position 228 in the Symbol font instead of from position 212.
Position 212 is trademarkserif, and posiion 228 is trademarksans.
NOTE: This version has 2290 lines of changes from the previous version.
12/9/05
Version 4.91
* Added fields to control vertical cut rules inside square-offs.
You can select whether each square-off has vertical cut rules.
The cut rules can be a different width than the cut rules between
normal ads.
The product configuration screen Display Ad Dummying Style (Continued)"/
"Estilo de Diagramacion de Avisos Destacados (continuado)" has new fields
"Inner Vert Rule Thickness"/"Grosor de líneas internas" to set the width
of interior rules.
"Between Agate Ads"/"Entre Avisos Agate" to control whether ClassPag
places interior rules between agate ads.
"Display Ads"/"Destacados" to control whether ClassPag places
interior rules between display ads.
"Agate and Display Ads"/"Agates y Destacados" to control whether
ClassPag places rules between agate ads and display ads.
"Ads and News"/"Avisos#y#Notas" to control whether ClassPag places
rules between ads and news.
"Inner Vertical Cut Rules"/"Líneas verticales de carteles" to set
the default interior rule type ("BANNER" uses the width for exterior
banner rules, "INNER" uses the width for interior rules, "STANDARD"
uses the width for normal ads, and "NONE" omits interior rules).
Square-off records have a new field "Vertical Rules... Inside"/
"Lineas verticales... Interno" with values "BAN", "STA", "INN",
"NONE" and "DEF". The default value is "DEF" to use the rule
type from the product configuration. The other values are the
same as the rule type in the product configuration.
* Added fields to control horizontal cut rules inside square-offs.
You can select whether each square-off has horizontal cut rules.
The cut rules can be a different width than the cut rules between
normal ads.
The ad configuration has a new field "Location"/"Ubicacion" that
may be blank or may have the value "BANNER". Blank means that the
ad configuration line is for normal ads. "BANNER" means that the
ad configuration line is for ads inside a square-off.
If a given ad type combination has a normal entry but no banner
entry, the banner entry defaults to the normal entry.
If a given ad type combination has both a normal entry and a
banner entry, any blank fields in the banner entry default to
the corresponding values from the normal entry.
ClassPag uses all of the fields, including the fields for leading.
When ClassPag places manually-positioned ads, it does not know
if the ads are part of an enabled square-off or not, so the leading
applies to all ads that might be in a square-off.
For example, if a square-off requires a given number of ads,
and the class does not have enough ads, if two ads from the class
are adjacent, they will have the leading specified for a square-off.
When ClassPag generates the postscript for a page, it knows whether
or not each square-off is active, and it generates cut rules
accordingly.
Square-offs have a new field "Place Hor Rules... Inside"/
"Lineas Horiz... Interno" that may be "BAN", "INN", "STA", "NONE",
or "DEF" similar to the field for vertical rules. "BAN" and "INN"
mean to use the rules specified by "BANNER" lines in the ad configuration.
"STA" means to use the rules for normal lines in the ad configuration.
"NONE" means to omit the rules and to use the leading for normal ads.
"DEF" means to use the system default which is currently the same as "INN".
To place horizontal rules at the top or bottom of a square-off,
build the rules into the top or bottom banner.
* The SCSInclude prolog contains additional comments to identify jobs:
%%SCSPageId: integer
%%SCSPageDepth: number
%%SCSColumnWidth: number
%%SCSGutterWidth: number
%%SCSNumColumns: integer
%%SCSEditionName: string
%%SCSZoneName: string
%%SCSStationName: string
Also, the %%SCSJobDate now has a "T" between the date and time
instead of a space to match the ISO standard format.
The PageId is a small integer with the absolute page number
of the page in the pagination session.
The PageDepth, ColumnWidth and GutterWidth are page measures
in postscript points.
NumColumns is the number of columns on the page.
The page width is ColumnWidth * NumColumns + (ColumnWidth - 1) * GutterWidth.
The EditionName and ZoneName are the names that match the EditionCode
and the ZoneCode.
The StationName is the ClassPag work area that submitted the job.
Here are examples:
%%SCSPageId: 4
%%SCSPageDepth: 935.4321
%%SCSColumnWidth: 87.8705
%%SCSGutterWidth: 5.6687
%%SCSNumColumns: 8
%%SCSEditionName: NATUE
%%SCSZoneName: Common
%%SCSStationName: nd-15nov05-orig
%%SCSJobDate: 20051202T10:00:20.394
* The SCSInclude prolog contains additional comments about ad scaling.
%%SCSSizeTolerance: <percentage 0 to 100>
%%SCSCanStretchWidth: <integer boolean>
%%SCSCanShrinkWidth: <integer boolean>
%%SCSCanStretchDepth: <integer boolean>
%%SCSCanShrinkDepth: <integer boolean>
%%SCSMinStretchPercentage: <percentage >= 100>
%%SCSMaxStretchPercentage: <percentage >= MinStretchPercentage>
%%SCSMinShrinkPercentage: <percentage <= 100>
%%SCSMaxShrinkPercentage: <percentage >= 0 and <= MinShrinkPercentage>
%%SCSScaleEqually: <integer boolean>
%%SCSCenterHorizontally: <integer boolean>
%%SCSCenterVertically: <integer boolean>
%%SCSCenterIfScaledEqually: <integer boolean>
%%SCSPreserveLineAds: <integer boolean>
%%SCSPreserveClassHeaders: <integer boolean>
%%SCSWordAds: <integer boolean>
%%SCSCanRotateAds: <integer boolean>
The percentage fields are numbers (currently always integers) written
so that 100% is 100.
The integer boolean fields have 0 to disable the option and anything else
to enable it.
For more detailed information about the fields, check the corresponding
fields in the ClassPag product configuration.
SCSSizeTolerance is the minimum percentage difference in width or depth
to show a warning that an EPS file has the wrong size. This parameter
is for warnings only and has no effect on the final output.
CanStretchWidth tells whether an ad that is too skinny can be widened.
CanShrinkWidth tells whether an ad that is too wide can be compressed.
CanStretchDepth tells whether an ad that is too short can be lengthened.
CanShrinkDepth: tells whether an ad that is too long can be reduced.
MinStretchPercentage tells the smallest amount that an ad can be stretched.
For example, if this field is 105 and ad needs to be increased to 103% of
its size, ClassPag will not increase the size. Stretching or shrinking
bitmapped images by a small amount can reduce the image quality and is
not necessary if the image is almost the correct size.
MaxStretchPercentage tells the largest amount that an ad can be stretched.
MinShrinkPercentage tells the smallest amount that an ad can be reduced.
MaxShrinkPercentage tells the largest amount that an ad can be reduced.
ScaleEqually tells whether the width and height must be scaled equally
to keep the ad in proportion. If this option is set, ClassPag will
scale the ad so that one dimension matches the reservation and the
other dimension is smaller.
The options below tell what to do with the extra space in the smaller
dimension, or what to do with small ads when the option to stretch ads
is disabled.
CenterHorizontally tells whether ClassPag should center ads instead
of placing them at the left of the reservation.
CenterVertically tells whether ClassPag should center ads instead
of placing them at the bottom of the reservation.
CenterIfScaledEqually tells whether ClassPag should center ads
when there is space due to the ScaleEqually option.
The options below list types of ads that should always be embedded
without any scaling. Some front-ends generate EPS files inside
a page template that always produces a bounding box the size of
the template.
PreserveLineAds tells whether line ads should always be embedded
without any scaling.
PreserveClassHeaders tells whether class headers should always be
embedded without any scaling.
WordAds tells whether EPS files created by MS Word should always
be embedded without any scaling.
CanRotateAds tells whether ClassPag can rotate ads that look
like they have been made up sideways. For example, if the
reservation is 100 X 400 and the eps has a bounding box of
400 x 100, the artist probably made up the ad sideways.
If this option is set, ClassPag will rotate the ad
counter-clockwise by 90 degrees. It has a 50/50 chance
of fixing the ad.
Here are examples of the comments:
%%SCSSizeTolerance: 15
%%SCSCanStretchWidth: 1
%%SCSCanShrinkWidth: 1
%%SCSCanStretchDepth: 1
%%SCSCanShrinkDepth: 1
%%SCSMinStretchPercentage: 100
%%SCSMaxStretchPercentage: 10000
%%SCSMinShrinkPercentage: 100
%%SCSMaxShrinkPercentage: 0
%%SCSScaleEqually: 0
%%SCSCenterHorizontally: 1
%%SCSCenterVertically: 1
%%SCSCenterIfScaledEqually: 1
%%SCSPreserveLineAds: 0
%%SCSPreserveClassHeaders: 0
%%SCSWordAds: 0
%%SCSCanRotateAds: 0
* ClassPag can now pack several square-offs on the same page.
The square-off field "Overflow Position"/"Posicion de Exceso"
has a new value "P" that tells ClassPag that it can pack
the square-off on a page with other square-offs.
The values "L" and "F" still work as before and try to find an empty page.
If you use the new value "P" and you have entered a page or
column position, ClassPag treats the request the same as "L".
* Keyed ad placement now behaves better when ads don't fit.
For example, if a page has a one-column manually placed ad
or square-off, and the class and sort range of the page
included a full width keyed ad, ClassPag used to not place
any keyed ads. ClassPag now skips the full width ad and
places any keyed ads that fit in the available space on
the page.
* Fixed a bad test when checking the column to place keyed ads.
* When ClassPag draws vertical rules along the sides of square-offs,
it no longer extends the rule below the bottom of the square-off.
If the ads below the square-off require a rule, the rule for those
ads starts where the rule for the square-off ends. The square-off
rule used to extend into the leading space below the square-off, and
that does not look good if the ads below have a different rule width.
* Added Bob's changes to the nac interface.
Added two more dingbats: 147 maps to open double quote;
148 maps to close double quote.
Each ad now has <if 0,0,0> at the beginning, to set the paragraph
first line indent to 0. This fixes La Nacion ad 1520077154. Since this
ad has a space before the first word on the first line, it is indented
according to the first line indent. By default, the first line indent
comes from the photodef device; a typical value is 12. As a result,
the first line of the ad was incorrectly indented 12 points.
<if 0,0,0> ensures that it is indented 0 points.
Added character 180 to the dingbat table. It generates the same
character as 146, a composition single quote. Some ads in a test
La Nacion dump that I have use character 146 for an apostrophe (as
in O'Higgins), while others use 180.
Input character 96 (backquote) is now translated to a composition
single quote. Ad 2020021142 in La Nacion has the word O`Higgins in
the markup, which appears as O'Higgins in the paper.
* Added Bob's changes to the nn interface.
The XH command with no arguments generates <xh 7> instead of <xh 3>.
That turns off the use-algorithmic-hyphenation-if-not-uppercase bit,
so that hyphenation is completely turned off. That's a new bit that
didn't exist when the code to handle the CText XH command was written.
We now ignore the maximum letterspace amount in the CText SB commands.
The LA Times has ads in which letterspacing of more than 10
(the amount in the SB commands in LATIMES.DFT) is quite common.
This allows more liberal letter- spacing, so that lines with
large spacebands are less common.
We can decrease occurrences of such lines even more by removing
many words that are incorrectly in the hyphenation dictionary as
not hyphenatable. That will cut down on lines that have a lot
of letterspacing because no syllables of the first word on the
following line could be included.
Fixed bug in the EUL command in pcps_trn.c in Composition that
could cause an incorrect horizontal position after underlines.
NOTE: This version has 5135 lines of changes from the previous version.
12/13/05
Version 4.92
* ClassPag has several new methods of calling the Classified Pagination
Output Manager. Menus with options to run the CPO include Setup,
Setup->View Log Files, Cmd->Misc, the command menu from the printer,
paper and spread setup. Also, the pagination toolbar has a button
to open the CPO.
* Included Chris' change to rebuild.sh to use the compilers
in SPICE_COMP instead of TOOLS. It now runs dfn, makerecs and
update from SPICE_COMP if they are present.
* Added dashes to the date format in SCS include comments.
Here are examples of the new format:
%%SCSPublicationDate: 2005-11-15
%%SCSJobDate: 2005-12-12T16:04:18.352
* Fixed a problem where page reports were disabled.
* Started a change to set the background colors of line ads.
The edition parameters screen has a new button
"Ad Backgrounds"/"Fondos de Avisos" that will set the colors.
NOTE: This version has 1027 lines of changes from the previous version.
12/15/05
Version 4.93
* Fixed a problem due to changes in version 4.91 where ClassPag
could place horizontal cut rules even if they were turned off.
* Added the "View class translations" option to the command key menu
of the classification list that shows area in columns. It used to
be only in the list that shows area in pages.
* Added toolbar buttons to view class nestings and translations
to the classification list window.
NOTE: This version has over 500 lines of changes from the previous version.
12/16/05
Version 4.94
* ClassPag can now write background colors for line ads.
The sort file has a new field at column 140 (counting
from 0) to specify ads with color backgrounds.
Use "Y" to specify that the pagination system should add a
background color or "N" or a space for no color (the default).
The position request field has a new "BC" code that is the
same as entering a "Y" in column 140. Front-ends can use
the format is more convenient.
The box information window shows the new BACKGROUND_COLOR
flag for ads that request a background color.
The edition parameters screen has a new "Ad Backgrounds button"
that opens a form to set the background colors of ads that request
a background color.
The form has two sets of fields to specify cyan, magenta, yellow, black,
and gray percentages. The percentage values can vary from 0 to 100.
The first four values are for color pages. The gray value is for
black and white pages. The gray value is a percentage of black,
so 0 is white and 100 is black. (This is the opposite of the
ClassPag cp_setcmykgcolor operator.)
If you do not set a gray value, ClassPag writes the CMYK colors
and lets the RIP compute the gray level.
If you set a gray value but not any CMYK values, ClassPag uses
the gray value as the black level on color pages.
If you set both groups of CMYKG values, ClassPag alternates them.
If the ad has a logo request (the location in the sort file is set
by the "Sort file logo flag position" product configuration field),
the logo will also have the background color.
If the ad is segmented with separate eps blocks for each segment,
each segment will have a different color. Otherwise, if the ad
is segmented, each group of segments will have a different color.
* ClassPag now loads position requests for line ads.
ClassPag used to ignore them because satisfying position
requests usually forces ads out of sort order.
* Fixed a problem with the CPO comments for segmented ads.
ClassPag now generates the same comments for each sequence of segments
as for a normal ad. The includer does not need to do anything different.
The includer should write the ad as usual with the lower left translated
to the origin and with the size scaled to the size in the SCSInclude comment.
ClassPag generates postscript to clip the region of the ad that it wants
and to translate the region into the proper location.
* Fixed a problem where ClassPag could place fillers on squeezed pages.
* Fixed a problem where ClassPag would not save the control record.
* Included Bob's changes to the readnac interface.
Implemented the *C (center) and *R (right-align) tags. The *J, *L, *C, *R
tags now generated <xr>, <rr>, <rc>, <rl> to set the ragged mode, which
applies only to lines not terminated by a hard or soft return. Only the
last line of an ad could be unterminated, so the ragged mode applies only
to the last line.
For the Desc field in adcls2, we no longer include single quotes
because they cause problems in update /h transaction files.
Added debug code to mapclass.frm for a header with no text.
NOTE: This version has over 1367 lines of changes from the previous version.
12/20/05
Version 4.95
* If the Classified Pagination Output Manager product is not installed,
ClassPag no longer shows a CPO icon in the pagination toolbar and dialogs
from menu options are clearer that the CPO has not been installed.
* Added a new "Keyed" placement reason for keyed ads.
* Redesigned the placement of keyed ads.
On pages with large keyed ads or with too many keyed ads to fit,
ClassPag is more likely to place the keyed ads that should appear
earlier in the edition. This fixes a problem where ClassPag could
defer large keyed ads until it reached the end of the edition.
ClassPag handles full depth keyed ads better.
The keyed ads routines now produce a steeper pyramid on pyramid left pages.
* Included Chris' change to maketarf.sh to change the kit name to cpag-start.
NOTE: This version has over 820 lines of changes from the previous version.
12/21/05
Version 4.96
* "Import -> Read" no longer resets the leading ratio, the agate ad
scale factor, the display ad scale factor, the preview ad images flag,
the left and right rule directions, the flag to place template banners,
or the flag to place class headers. If the fields in the source
control record are empty, ClassPag sets them to the defaults from the
product configuration, but if they have values, ClassPag preserves them.
This increases the amount of information that you can set in control
records. It also allows you to re-read a sort file without losing
changes to settings that you made within the pagination session.
* The dialog after applying a class translation now has an
option to view a list of all of the modified ads and classes.
The list shows the modification type ("AD" = an ad record,
"CLASS" = a class record, "PARENT" = parent class of a class record,
"DEL_CLASS" = a class record that was removed),
the name (the ad number or class number),
the initial class (the original class from the sort file),
the old class (the class before the translation), and
the new class (the class after the translation).
The translation rules apply to the original class from the sort file
(and not to the current class field), so if you have applied a class
nesting, you must keep in mind that the translation applies to the
original parent class and not to the parent class set by the nesting.
The list makes it clear what the translation rules did.
Also, if you have a nesting with 123ABC under 123, and you map 123
to 456, you will only change the parent of 123ABC from 123 to 456
and remove 123. The ads in 123ABC will remain in 123ABC. To change
those ads to 456, you must use wildcards in the translation rules.
* The product configuration field "Remove Suffix"/"borrar sufijo" on the
screen "Outext Export (Continued)"/"Exportar de outext (continuado)" has
a new value "A" always to remove the suffix without checking if the
class contains its parent class as a substring. As before, the value
"T" removes the suffix only if the initial part of the class matches
its parent class, and the value of "F" does not do anything with
the suffix.
* The product configuration screen "Outext Export"/"Exportar de outext"
has a new field "Write... Original class"/"Escribir... Clase original"
to write the original class in columns 10-17 of card 2 of the outext.
By default, ClassPag writes the class title in that field.
* The CPO IncludeNeeded comments now include the sort key, notes and
customer name, for example,
%%SCSIncludeNeeded: /u/eps/75/50096675 0000115009 14246790 ADOPTKITTENSAL ADOPTKITTENSALLCO SHANNA\ PITTOUNIKOS
Two consecutive unescaped spaces means that the field between
the spaces was empty.
* Added a CPO IncludeFields comment that lists the fields of the
IncludeNeeded line in the order that they appear. The current format is
%%SCSIncludeFields: FileName Offset AdNumber SortKey Notes Customer
This makes the comment sequence more self-descriptive.
* Fixed a problem with "Cmd -> Ads -> Change ad image" where it could
not find ads or fillers with ad numbers longer than 10 characters.
* Fixed a problem where the edition parameters form would always
reset the agate and display ad scale percentages to the default
values in the product configuration.
NOTE: This version has 1055 lines of changes from the previous version.
12/23/05
Version 4.97
* Improved the parsing for line breaks in Word EPS files.
ClassPag can how handle setup lines like
/mysetup [ 72 1200 V 0 0 -72 1200 V 0 1584 ]
and ClassPag ignores setup lines that look like they
are in inactive lines in procedure definitions.
* Improved the detection of Word EPS files when looking for line breaks.
If the break type is not set or is Word, and if the title has a MS Word
comment, if ClassPag does not find any line breaks, it retries using
the scan for Word5 files.
* Fixed a problem with the default values for vertical cut rules inside
banners. If you leave the new fields empty, the cut rules now default
to standard rules instead of to no rules.
* Fixed a problem in products with a maximum size for agate ads on
the first page where ClassPag could still place large agate ads on
the front page.
* Fixed a problem in products with a maximum size for agate ads on
the first page where ClassPag could leave large agate ads unplaced
on editions with only one page. ClassPag now ignores the maximum
size on single page editions.
* Fixed a problem where ClassPag could place headers entered
as banners when placing large ads on pages.
* Fixed a problem with the level pages procedure where it could hang
on pages with segmented ads in some cases if the first segment of an
ad was less than the minimum segment size and a column ended with
enough space for the segment but not for the minimum size.
* Included Bob's update to the readnn interface.
The file that specifies which classifications are to be segmented for readnn
now allows classification specifications to be followed by a colon and a
product id or a comma-separated list of product ids. If product ids are
specified, the specified classification(s) are segmented only for products
in the list. If no products are specified, the classification(s) are
segmented for all products, as before.
The LA Times has a classification whose ads are to be segmented for some
products but not others.
To implement this, readnn needs to know the product id for which it is
processing an ad dump. So the -p option to readnn is now used to indicate
the product. The -P option still indicates ad text-only output.
The product is passed through readnn's -p option through a new -p option
to makenn.sh. For the LA Times, mapclass.frm now calls makenn.sh using
the -p option with the product id from the ConfigFile that it reads before
it calls the site-specific interface script.
NOTE: This version has 879 lines of changes from the previous version.
1/23/06
Version 4.98
* Expressions to generate banner text lines can now retrieve
the location of any ad. Expressions can set the variable
I_CPagCurrentAd to the ad number of any ad, banner or filler.
ClassPag will then supply the variables
O_CPagPlacedPageNum with the absolute page number,
O_CPagPlacedColNum with the column number,
O_CPagPlacedBookName with the book name, and
O_CPagPlacedBookPageNum with the relative page number.
If you select a banner or filler that has several copies placed,
ClassPag will return information about one of the copies.
Here is an example. Write the assignment to I_CPagCurrentAd
first and terminate it with a semi-colon.
I_CPagCurrentAd := "878574";
"<cf hv,10,10,10>Ad is on page " // O_CPagPlacedPageNum // " col " //
O_CPagPlacedColNum // " book " // O_CPagPlacedBookName // " page " //
O_CPagPlacedBookPageNum // "<ql>"
* The paper database has a new field "Default Spread"/"Chapa por Defecto"
to set a default spread for that paper entry. When you print pages,
if you select a paper entry with a default spread and if the default
spread exists and is usable with the paper entry, ClassPag will ask
if you want to use the default spread. If you say "yes", ClassPag
will use the spread. Otherwise, it will show the list of spreads
as before. If you have a paper entries that require a given spread,
setting the default spread will save a step and eliminate a chance
for errors when using those paper entries.
* The printer, paper and spread list windows have a new hotkey
to create a copy of the current record for use with the CPO.
The hotkey creates a new record with a suffix of "-CPO".
In the paper database, it moves the print command to the include
comment and changes the print command to the cpo submission command.
In the spread database, it sets the missing images option to "INC".
In the paper database, it creates cpo versions of the paper and
default spread if necessary and then updates itself to use them.
* If the CPO is not installed, the printer setup form skips over
the includer comment field.
* loadtape.sh has a new -reset parameter to clear the ClassPag
environment variables. Add this option to the loadtape command line
if you have run the ClassPag setup script and then want to install
ClassPag into another directory. This can happen if you maintain
several ClassPag directories though the same "cpag" user account,
and the "cpag" login profile starts ClassPag or you need to access
the command line from inside ClassPag.
* menprof.sh and runcpag.sh have a new 172 parameter to use a 172x44
grid for use with displays of 1920x1200 and larger. This size is
currently only for testing inside SCS.
* rebuild.sh has a new -172 parameter to build formulas for a 172 grid.
The -a parameter includes -172.
* Composition sequences can now use the new CPagGetClassTitle formula
to embed the class title of the class of a given ad. Set v10 to ad
number of the ad before calling the formula. For example,
<sv 10,``adnumber''><Call_Formula CPagGetClassTitle>
CPagGetClassTitle works only from inside a pagination session,
and the referenced ad must be active in that session.
* When ClassPag draws ads with background colors, it now cycles
the colors from the top down instead of from the bottom up.
* Changed the product configuration field "ceps.out Age In Hours
Before Warning" to "Interface Age In Hours Before Warning" because
ClassPag uses the sort file if the eps file is not present.
* Fixed a problem on editions with manually specified color
where overflow ads with color requests could be left unplaced.
* Fixed a problem where vertical cut rules would not always
show on BLOCK and RBLOCK segments.
* Fixed a calculation that could produce errors in the log when
ClassPag placed a class header above a one-column display ad at
the top of the top stack when going front-to-back on editions
with a top margin.
NOTE: This version has 1728 lines of changes from the previous version.
1/30/06
Version 4.99
* The procedure to apply class translations now shows a dialog
with three options, No, Yes, and Reset.
"No" works like before to exit without making any changes.
"Yes" applies the translations to the current classes. This is new.
"Reset" applies the translations to the original classes.
This is what "Yes" used to do.
The new "Yes" option allow you to chain several translations together.
The "Reset" option produces the same effect as running the translation
on a newly imported work area. You can use it while testing
translations or after applying a translation that you no longer want.
The view of classifications updates as you apply the translation tables.
* The control record now has a second and third field available
for specifying class nesting tables.
* When ClassPag applies the class nesting tables at the start
of a session, it first applies any class translation tables
with the same names.
* The control record fields for the class nesting type now
has a new TRAN value to specify that the name is only for
a translation and not also for a nesting. Use LOAD or SEQ
for nestings.
* The window to view class translations has a new option
to copy a translation table from another product.
The option shows a list of all translations tables in all products.
To copy a table from another product, select a table in the
current product (you can use Insert to create an empty table),
then use F12, select the option to copy from another product,
and then select the table. When you select the table, you
have the option to copy only the new records (ignoring duplicates)
or to copy all of the records (updating duplicates).
* When ClassPag is dummying normal display ads for classes
with keyed ads, it now favors placing two wide ads of the same
width on top of each other instead of placing the second ad
on a new page. This allows ClassPag to pack pages tighter with
display ads and to leave more pages empty for long keyed ads.
* Improved the formatting of the Spanish folio page form.
* Fixed a problem where printing with a spread entry that set
"Show Missing Images As" to "INC" and "Show Display Ad Images" to "N"
would not generate CPO prolog comments for EPS files that existed.
* Fixed a problem were ads showing flags with conflicts in the
box information window could show additional flags that they
didn't have.
* Fixed a problem where banners with the "Place below heads"
flag set would sometimes drop to the bottom of the page.
* Fixed a problem from 4.91 where ClassPag would not
place leading between ads in square-offs.
Comments
0 comments
Please sign in to leave a comment.