2/23/07
Version 6.00
* Increased the sort key to 32 characters. ClassPag previously
used only the first 14 characters of the sort key internally.
ClassPag now uses 32 characters internally and in its databases.
This more than doubles the length of the sort key and provides
increased flexibility to front-ends to pass complex keys without
compression or special encodings.
* The sort file has a new 32 character sort key field in columns
352 to 383 (counting from 0). If this field contains characters
other than spaces, ClassPag takes the data in the field as the
sort key instead of the data in the combined sort key / external
file name field in columns 72 to 101. This field allows interfaces
with all external ads to use the entire space of the field at
column 72 for the eps file name and still pass a full 32 character
sort key at column 352.
* Class translation entries have a few new fields to specify
modifications to the class id and the sort key of ads that
match class translation entries. The fields help to make
the modified ads compatible with the ads in their new class.
The numeric field "Copiar clave"/"Copy Sort Key" specifies the
number of characters from the sort key to append to the class id.
The default of 0 does not append any characters.
The boolean field "Copy... Raise"/"Copy... Maj" specifies
whether the characters copied from the sort key should be
converted to uppercase before appending them to the sort key.
The default of "Y" uppercases them.
This field has an effect only if "Copy Sort Key" is greater than 0.
The numeric field "Key... Remove"/"Clave... Borrar" specifies the
number of characters to remove from the start of the sort key.
If the sort key starts with an extra section, for example,
a subclass key, you can use this this field to remove it.
The default of 0 does not remove any characters.
The numeric field "Key... Compress"/"Clave... Comprimir" specifies
whether ClassPag should remove all of the spaces from the sort key.
If the field is greater than 0, ClassPag extracts that many characters
from the key, compresses the spaces, and removes the rest.
You can use this field to eliminate extra spaces and text from the
sort key. The default of 0 does not compress or truncate the key.
The boolean field "Key... Raise"/"Clave... Maj" specifies whether
ClassPag should convert the sort key to uppercase.
The default of "Y" converts the sort key to uppercase.
* Added a new key translation database. The class selection window
and the class translation window both have options to open a view
of the key translation database. The key translation database
maps a class and a sort key to a class suffix.
When ClassPag applies a class translation table, if an entry in
the table specifies a suffix length, if ClassPag finds a mapping
in the key translation table, it uses the suffix from the table,
otherwise it uses the sort key of the ad.
* The window to view class translations now has toolbar buttons
to modify, list and apply class translations.
* The window to view class nestings now has toolbar buttons
to modify and list class nesting tables.
* Fixed a problem where dragging a one-column display ad that
flowed in-line would cause other one-column display ads to drop
to the bottom of the page instead of unflowing.
* Updated formula font creator to work better with symbol fonts.
This requires installing a new creator.xfm from the composition package.
Font creator now adds more characters in directly mapped fonts (symbol fonts
numbered between 1 and 9). It used to omit directly mapped characters
in positions like superscripts where composition would build a character.
It now omits only characters in special positions.
The message window now tells whether the input font is directly mapped.
The command line has a new -P option to pause the message window after
creating the font to give you time to read the log.
3/15/07
Version 6.01
* Added the command "Cmd -> Position -> Adjust folio templates"
to correct the positions of folio templates. If you use
"Cmd -> Misc -> Set the book sizes" to change which pages are
even and odd, the next time that you reflow, ClassPag will
move all unlocked folio templates, but it will not touch
locked folio templates. If you move an ad on a page with
a folio template, ClassPag locks every object on the page
that does not unflow, which includes the folio templates.
Otherwise, you could not place ads directly below folio templates.
The new command to adjust folio templates tries to move
locked folio templates. If the folio template does not
fit where it belongs, ClassPag leaves it where it is.
* The product configuration screen "Legal and Segmented Ad Specifications"/
"Especificaciones de Avisos Legales y Segmentados" has a new field
"Sort by Image Offset"/"Ordenar por Offset" to control how ClassPag
sorts ads in the same class with equal sort keys.
If this field is "Y", ClassPag sorts ads by their image offset in
the sort file. External ads sort as if they had an offset of 0.
If this field is "N", ClassPag sorts ads with equal sort keys
by their ad number.
The default value of the field is the "Y" when "Preserve Auto Segment
Names" is enabled and "N" otherwise.
Enabling this field, either directly or through "Preserve Auto
Segment Names", will fix problems with internal auto segmented
ads when two ad numbers have the same sort key and the ad number
of one ad is a suffix of the ad number of the other ad.
* Fixed a problem with back to front pagination where ClassPag would
not always leave enough space for the parent class header when filling
a column. The column would have the class header at the top and the
parent header would be at the bottom of the previous column.
* Includes Bob's fix for the STATCHARTDATA problem in the wide screen display.
3/20/07
Version 6.02
* When ClassPag applies class translations, if adding a suffix to the class
of an ad creates a suffixed class that does not exist in the class database,
ClassPag creates a class by copying the unsuffixed class. ClassPag will
show these classes as type "INS_CLASS" in the translation results window.
You might still need a class sequence entry for the suffixed class.
* The class translation databases has a new field "Type"/"Tipo"
to enable extra processing. The default value is "N" for normal
classes that need no special processing. The value "A" specifies
an auto class. ClassPag will scan the new class and if it finds
agate ads with sort keys of the format AAAA'YYSORT or 'YYSORT,
it will reformat the key ads SORTYYYY. This will help when
merging AdVision extractions with CCI extractions.
* The session log now contains the number of columns, the column width,
the gutter width, and the column depth. The fields show as NumColumns,
ColumnWidth, GutterWidth, and ColumnDepth in the exported spread sheet.
NumColumns is a number from 1 to 32, and the other three fields are
in centipoints (units of 7227 per inch).
The page width is NumColumns * ColumnWidth + (NumColumns-1) * GutterWidth.
3/30/07
Version 6.03
* The ad lists, filler lists and banner list in the page preview now
support dragging. If you left click and drag, the ad will appear
under the cursor and you can drop it on a page. You can still
position ads with a click on the list and then a click on a page.
NOTE: This version should not be released without testing.
The 172 column wide display still needs work.
4/18/07
Version 6.04
* Included Bob's change to the makenn.sh interface to check for $SmartShell,
/usr/bin/bash and /bin/bash before using $SHELL. makenn.sh requires a shell
with "if" statements that support the -nt operator.
Most ClassPag scripts will run under the basic Bourne shell in /bin/sh,
but when possible, you should set the login shell of ClassPag to "bash".
* Fixed some painting problems with the 172 column wide display.
4/19/07
Version 6.05
* Fixed problems with ad lists. Only the filler and banner lists now
support dragging. The other lists no longer support dragging because
dragging interfered with other commands from the lists.
* Added a new button "Paste from list, drag" to paste from the ad list
in a format that allows dragging.
4/23/07
Version 6.06
* The "Paste from list, drag" command has a new hotkey to control
whether line ads show.
* More ad and class lists are now sortable.
* The agate ad list under Ads -> Agate Ads now shows more
of the ad number and sort key on wider screens.
* ClassPag no longer creates a large ad record for agate ads with no
special requests other than a long sort key at column 352 of the sort file.
* Internal display ads now take the long sort key at column 352 of
the sort file when it is present.
* The LA interface now reads up to 32 characters of the sort key field
in the /u/cpag/root/scratch/SortInfo/yyyymmdd/sortfile.cpy file.
4/27/07
Version 6.07
* You can now set classification-specific default position requests
for display ads. The class database and the class nesting database
have a new field "Position Request"/"Pedido de Posicion" to specify
up to three two-character position requests. For example, if class
40040 is a large class which requires its display ads to match line
ads in sort order, you can enter "KY" in the "Position Request"
field of class 40040 in all of your class nesting tables.
* When "Do deep scan for SII color" is enabled, ClassPag now reads
the entire ad until it finds a color comment that specifies a
non-black color. The scan used to stop after finding a color
comment that specified black or after reading 8192 characters.
* When ClassPag scans internal ads for color, if ClassPag finds
a color comment, it marks the ad as color even if the sort file
has a color code field that specifies that the ad is black.
* Added Bob's changes for the SA interface.
Added "sa" to the list of site names. Since we can read the RS
formats from the Advision .DFT file, we are treating SA like LA
with regard to RS initialization.
SA has just one RS format, RS_1. It has the command sb0. SCS
composition doesn't like a minimum spaceband of 0, so we use 10 for
sb0. The ads I've seen in dumps so far have hard line endings (CR
commands), so spaceband might not matter.
The FN command can now handle an argument that is the name of a
PostScript font. It still handles a font number from the Advision
.fit file. To facilitate this, the routine for looking up a
PostScript font name in the font table remembers up to 20 font table
indices where an font name from an FN command was found previously.
Those 20 indices are checked first; if the font is not at one of
them; the routine checks the font table from 0 to the number of
fonts. To facilitate matching of fonts by name, the font table now
stores the length of each PostScript font name.
A numeric command argument that begins with "t" is now interpreted
to be in tenths of points. Neither LA nor NN has any markup
commands that uses this unit of measure; it is new for SA.
We now interpret the JT command. This command is new for SA.
There was a bug in which there was no case for the SM command in the
command interpreter switch statement. This hasn't been reported by
NN or LA, so either they don't use that command or it hasn't caused
any noticable problems. It is used in SA markup.
SA has classified headers that are filled boxes with rounded
corners. Previously, we always turned fill off for a box with
custom corners. Now we leave fill on in the following cases:
r if the rule thickness is >= ( 1 - 1/sqrt(2) ) times the radius
and the box fill color matches the rule color
This is the case with SA headers. The corner radius
is 4 and the rule thickness is 2. Since ( 1 - 1/sqrt(2) ) is
approximately .3, we have 2 >= (.3) * 4.
rf if the box fill color matches the rule color
rrf if the box fill color matches the rule color
s
sr if the rule thickness is >= the radius and
and the box fill color matches the rule color
srf if the box fill color matches the rule color
b if the rule thickness is >= the radius and
and the box fill color matches the rule color
bf if the box fill color matches the rule color
x unconditionally
This applies only to the BX command. For the auto box (AB, EB)
commands, we still never fill.
Also, we still never fill for the BX command if there are custom
corners and at least one interior box.
Since we need to know the radius of each corner for the above tests,
we store the radius as points in a corner structure component called
pt_radius. If the radius is given as a number in the CN command,
pt_radius is computed from that argument using
convert_arg_points_buf. If the radius is given as a percentage in
the CN command, pt_radius is computed in the draw_box routine as
that percentage of the minimum of the box width and height.
Thus the draw_box routine needs new parameters -- the box width and
height in points. For the BX command, these are computed from the
width and height arguments. For the AB/EB commands, they are not
computed, but that's OK, because draw_box uses them only for fill
computations, which are never done for auto box.
Since the above fill computations also need the rule thickness,
draw_box has a new parameter for holding the rule thickness in
points, which is computed from the rule thickness (weight) parameter
to the BX command.
If we turn off shadow for a box because other box attributes are
inconsistent with shadow, we generate a command to add !v24 (the
shadow height) to !v31 (the box height) to compensate for having
subtracted earlier when we thought there would be a shadow.
In the Product Configuration for SA products, the mapclass command
should be mapclass.sh sa.
In mapclass.frm, where there is a choice of working like the NN or
LA interfaces, SA usually works like NN.
There is one bit of SA-specific behavior in mapclass.frm. We don't
try to fit the ad depth to match the input.fil depth. It appears
that the SA galley.fil is generated by a program that puts in CR
commands to tell us where all of the lines end. With hard line
endings, we always get the right number of lines.
Evidence that galley.fil is generated by a program that has already
determined line endings is that galley.fil examples that we have
contain lines that end with a hard-coded hyphen just before the CR
command that is actually hyphenating a word that continues on the
next line. It is extremely unlikely that their users who mark up
ads to hyphenation manually.
Added code to support MAINHEAD entries in the SA galley.fil.
MAINHEAD entries are classification headers that don't indicate
which classification they are for. However, in input.fil, they are
followed by ordinary headers that do indicate the classification.
So makenn.sh does some script/awk logic to create a file called
mainhead.fil that indicates the classification for each MAINHEAD
entry in input.fil. Since ads occur in the same order in galley.fil
as in input.fil, readnn can read that file to determine the
classification for each MAINHEAD entry in galley.fil.
Fixed the JT command. Using !s71 for the current horizontal
position is incorrect. First, !s71 is not in points. Second, it is
not necessarily 0 for an unstarted line. So what we do instead is
quad the current line if it is not empty, using 0 leading for the
quad to avoid adding depth. That puts us at the start of the line,
where we can do FS with the given horizontal position to move to
that position.
If insert_logo can't find the logo file name with the extension EPS
or eps, it now tries with no extension. SA logo files have no
extension. Before it tries with no extension, it tries all casing
combinations on the logo name with eps and EPS as the extension.
Thus if the logo name is xYz and there is an xyz.eps and an xYz with
no extension, we use xyz.eps. That may sound wrong, but it is means
that the behavior is the same for for existing sites that have
extensions on their logo files.
build_and_insert_logo no longer uppercases the logo_name before
passing it to insert_logo. There's no reason to uppercase it,
because insert_logo tries to find the logo with the name uppercased
if it can't find it with the name as given in the LG command.
Uppercasing the LG command logo name initially causes us to fail to
find a logo file whose name has a mixture of upper and lower case
characters, as some SA logo file names do.
Added TN, EN, EM commands. They insert a thin, en, em space
respectively. We found an EN command in SA markup.
Implemented a CT (comment) command. This is not an actual command
in the CText markup language. I added it to readnn's interpreter so
that I can use it to comment out commands in Ctext markup files for
testing. I'd like to use CO as SCS composition does, but CText has
a CO command.
5/1/07
Version 6.08
* The list key now works on more fields in data entry forms:
Edition field in the control form.
Square-off field in the banner form.
Class field in the display and agate filler forms.
Before square-off field in the square-off forms.
* ClassPag now warns you if you open the User or Privilege setup,
and the product configuration specifies taking the users or
privileges from another product.
* Fixed a problem where ClassPag could leave unplaced segmented ads
when the first segment was less than the minimum first segment depth,
but the first two segments were too large to fit in a column. This
could happen when both the minimum first segment depth and the ad
segments were over half of the column depth.
* Fixed a problem with WRD5 segmentation where ClassPag would not
find line breaks when the text was encoded and wrapped with < and >.
5/2/07
Version 6.09
* The "Paste from list" and "Find ad" list now support dragging.
* The product configuration screen "Additional PostScript"/"PostScript
adicional" has a new field "Do deep scan for color... SCS"/"Buscar
para color... SCS" to control whether ClassPag scans the full contents
of internal ads created by SCS Composition.
If you set this field and "Scan Internal Ad EPS For Size" on the
"Ad Loading" screen, ClassPag will find the color comments in logos
embeded within SCS ads.
5/16/07
Version 6.10
* Added a new STRIPPABLE context under Setup -> Set Ad Colors
to assign a special to strippable ads on the page display.
This makes it easier to locate and remove strippable ads.
* The form to enter users under Setup -> Users now displays
a list of users from the user id field if you press the LIST
key or if you press ENTER with the field empty or with an
invalid user. The list tries to show only normal user
accounts from the /etc/passwd file. This should make
it easier to set up users in ClassPag.
* Added Chris' update to URL of the manuals. It is now
http://www.scssupport.com/ClassPag/manuals.html instead of
a deep link on http://www.newspapersystems.com/
* Added Bob's changes for the SA interface.
Allows the JT command to set the left position of a logo
in a following LG command.
The code for dealing with empty ads is now the same as in the LA interface.
Ignored ads no longer generate a "Logo not found" message.
comparenn.sh has a -s option for the SA interface to detect class
headers by the keyword for format in column 7 instead of
by a 0 or 0T0 in column 8.
mapclass calls comparenn.sh with the option -s sa for San Antonio.
mapclass now handles external ads for SA the same as for LA.
* Added Bob's fix to the makenn.sh interface script.
* makegif.sh no longer hangs when converting files with
invalid postscript that cause gs to prompt for input.
5/22/07
Version 6.11
* ClassPag now redefines the postscript initclip operator.
The initclip operator resets the clipping region and is not
legal in EPS files. Redefining initclip fixes painting
problems with logos in EPS files from some versions of MS Word
that use initclip even though it is not legal in EPS files.
* Added Bob's changes to the nn interface.
Changed the InputTable in Load_NN_Input_File to have 1 to 10 instead
of 500 to 100000 rows. Load_NN_Input_File now runs faster.
* Added Bob's changes for Solaris.
maketarf.sh used to dot forcesh because it needs a smart shell.
Now cronbuild.sh dots defsys to get a smart shell and uses it
to run maketarf.sh.
ps_names.sh used to dot forcesh because it needs a smart shell.
Now readnn.c uses SmartShell to run ps_names.sh.
ps_names.sh gets SmartShell from makenn.sh.
In case makenn.sh is old and doesn't define
SmartShell, readnn.c has code to define it.
makenn.sh used to define SmartShell just to run the command with -nt
used in getting the LA sort file. Now it defines it earlier so it
can pass it to ps_names.sh.
5/30/07
Version 6.12
* ClassPag now loads the 10 character account number and the entire
30 character advertiser name when it imports ads from cardex and
outext files. ClassPag ad records have a new field to hold the
account number, and ClassPag displays the account number in
the box information window and inside ad boxes on the screen
and on printed pages. When ClassPag creates outext files,
it writes the account number and advertiser name in the outext
record the same way that it came from the cardex record.
This can be useful in reports from outext files that require
account numbers, for example to feed etearsheet systems.
If you use this option, check that the "Outext Export" screen
of the product configuration has the field "Write Extra Fields...
Graphic name" set to "F".
Columns 384-399 of the sort file are reserved for the account number.
* ClassPag can now build better sort keys for KY ads.
When ClassPag imports ads, if the product configuration
or control record specifies a default import class sequencing
table, ClassPag scans the table for classes with a default
position request of KY. When ClassPag reads ads from
the sort file, if it finds an ad assigned to a KY class,
it does not prepend a six digit code, the same as if the ad
had a KY request in the sort file. This should help with
interfaces that can not send KY position requests.
* Added Bob's changes to the mapclass interface formula for la.
mapclass now handles sort keys for segmented ads.
Fixed a problem introduced in the previous version where
Load_NN_Input_File could ignore input.fil information.
Fixed a problem where external display and line ads with
a long sort key had the key four columns too soon.
* Added Chris' fix to the wide dialog so it tracks ads again.
* Included Bob's fix first letter searches in hot key lists.
6/7/07
Version 6.13
* Added the CF interface. To enable it, in the product configuration,
set the Copy Command to "call CopyFiles" or "call CopyImportFiles"
and the Import Command to "$CPAG_INT/mapclass.sh cf".
The interface directory contains new programs readcf and makecf.sh.
makecf.sh currently imports all files that start "01" and end with
a "z" in upper or lower case.
The interface currently requires the fonts Helvetica-Narrow and
Helvetica-Narrow-Bold to be installed in Composition as HV and HVNB.
mapclass needs a version of spice from Jul 17 2006 or later
because it uses CO_MISSING_LOGOS.
* mailrpt.sh now uses mailx instead of mail on Solaris.
6/10/07
Version 6.14
* Changes for the CF interface.
The interface now scans for files matching the pattern *01*_[0-9][0-9][0-9]
The interface uses the last three digits of the file name to set
the classification attributes for files that do not contain
useful <#H> sections.
The interface now automatically turns ads in classes 015, 020 and 100
to fillers.
In the "Ad and Class Conversions (continued)" product configuration
screen, you should enable "Load F lines as... display fillers"
to make the fillers pastable.
The interface now scans zoned insertions from the sort field of
the report. Zone A becomes zone 1, zone B becomes zone 2, etc.
The interface now recognizes Thumbs (class 100) ads and
formats them with ragged-center.
The interface now recognizes the house ads starting
"Publisher reserves the right", "COPYRIGHT", and
"email your ads" and applies the correct bolding.
The interface is better at deciding when a CR means <QL> or <QC>.
The interface is better at using <FL>.
* The list to paste fillers now shows all display fillers in
the sort file even if those fillers are in classes with no ads.
* The mapclass interface formula can now show composition statistics.
F12 -> View ad text -> F12 -> View Request DB -> Set size statistics
shows a popup dialog with the number of ads that composed long or
short (after set size modifications) and the number of ads that
composed to the correct size but required a set size modification.
When you make changes to the formatting (like adjusting space band
values), checking this screen gives you a quick way to see the effects
of the change. The scan currently does not look at ad attributes so
it might be wrong for boxed ads.
* The mapclass interface supports new attributes.
F marks an ad as a filler that should show as type F in the sort file.
Z# marks a zoned ad where # is a bit set of the zones with the sum
of 1 for zone 1, 2 for zone 2, 4 for zone 3, 8 for zone 4, etc.
* Added Bob's changes for the SA interface.
We no longer require all three arguments to the CF command. At least one
argument is sufficient. If fewer than three arguments are specified, the
resulting sw command has no trailing commas.
If a format is not found for the UF command, we now write "Format '%s' not
found" to standard error. By parsing standard error, we can get a list of
missing formats.
We don't use the dingbat_table conversion for ISO letters (characters with
a hex value of C0 or more). Those are mapped to other characters for LA,
but not for SA. If it turns out that some of these characters are mapped
for SA, we'll need a separate table for those mappings.
The advision configuration file may now have more than one directory for the
FormatFileDirectory and LogoFileDirectory entries. If a format or logo file
is not found in the first directory, readnn will search for it in the second,
then the third, and so on.
If you have more than one, you can use the keyword FormatFileDirectories
instead of FormatFileDirectory, and you can use LogoFileDirectories instead
of LogoFileDirectory. But you don't have to.
The directories are separated by one or more blanks. If a directory name has
an embedded blank, you can deal with this by making a symbolic link to that
directory that does not have an embedded blank and using that link name in
your .cfg file.
In each case, if the same format or logo name appears more than once, only
the first instance of the name is used.
Also, I added an optimization whereby the format loader looks up the format
to see if it is already loaded before it reads the format file instead of
after. If a format name is already loaded, the format contents already
loaded are not overwritten by the contents of the new file, so there's no
no need to read the contents from that file.
And I optimized the code that loads a format file name into a buffer that
uppercases and trims trailing blanks from it so that it uses just one pass
through the string instead of three.
ps_names.sh was missing some font files in the font file directories.
ls [A-Z][a-z]*.FNT find font files that start with an uppercase letter
and whose second letter is a lowercase letter. That's not what we want.
We want all font files that start with any letter; i.e., ls [A-Za-z]*.FNT.
Created linemer to merge information from a SA galley.fil and input.fil
dump of fillers, as part of the process of creating eps's for SA fillers.
Ads of type 22 in input.fil are house ads that require the strippable
flag to be set in the sort file.
The strippable flag is at position 128 in the sort file. Sort file lines
that do not need the strippable flag or any other data beyond position 127
are supposed to be limited to 127 characters.
readnn now looks at pubdate.fil instead of times.fil to get the
publication date if the site is SA.
The SA interface now handles the case where galley.fil/input.fil
contains two or more consecutive MAINHEAD headers. It handles this by
skipping all but the last MAINHEAD, to which it assigns the classification
from the -HEAD or -PASTE ad that follows it.
6/12/07
Version 6.15
* Changes for the CF interface.
The interface composes 999 JobsNET ads with their special column
width and font size.
The interface no longer prepends a sequence number to the sort key
for line ads in 999 JobsNET.
The interface uses <rc 0> instead of <rc> for ragged center
(often in Thumbs ads).
The interface searches for files with an underscore or dash and
then three digits and for the file FoxPro.ps.
Reduced the <sb> hyphenation parameter from 3250 to 2050.
In testing with 713 ads, this fixes 21 ads that used to be
too long but makes 6 ads too short.
* The mapclass interface can now show the set size statistics from the
ad text window. The statistics now show correct results if you have
not recomposed the ads during this session.
* The mapclass interface can now view ads from the request window.
* Included Bob's changes the mapclass interface formula.
Changed the conversion of the input.fil depth value to centipoints
for SA so that the input.fil value is treated as 10ths of a point
instead of 10ths of a PostScript unit as it is for other CText sites.
We now use ClrTable to reinitialize the AttrTable instead of
setting the AttrValue component of every row to 0.
6/13/07
Version 6.16
* The list of directories under Import -> Read and Import -> Copy
now shows run dates from pubdate.fil files.
* The product configuration screen "Ad Importing" has two new
fields for entering patterns of files to copy. The patterns
can include sets of characters in square brackets [],
? to match any single character, and * to match any number
of characters. For example, *01*[-_][0-9][0-9][0-9] matches
any file name with some characters, a zero, a one,
more characters a dash or underscore, and three digits.
When you save to a work area, ClassPag removes all files
matching the pattern from the destination work area before
copying the files from the current work area.
As with the alternate extension fields,
ClassPag strips characters like semicolons that could cause
problems on command lines.
* Changes for the CF interface.
When an ad composes to a different size than its reservation,
the interface now retries with a slightly larger or smaller set size.
In 713 test ads, all but one ad now composes to its reservation depth,
and the last ad (1576) has a reservation depth of 128pts which
is not a multiple of the leading (9pts).
The interface now embeds logos for 100 Thumbs ads.
The logos must be called thumbs_up.eps and thumbs_down.eps.
The logo should be on the logo search path,
for example in /u/comp/data/logo/epslogo/
NOTE: This version has 10320 lines of changes from version 6.02.
6/14/07
Version 6.17
* ClassPag now reads a 12 character account number field from the
sort file at column 384 (counting from 0). ClassPag displays the
account number on the screen and can write the first 10 characters
to the outext on card 1 columns 30-39 (counting from 0).
* When you write the outext, if you leave both "write zoned ads" and
"write common ads" unselected, ClassPag now writes all ads instead
of writing no ads.
* Added the report of position requests to Cmd -> Reports.
* The CF interface now reads a new format postscript ad manifest
that provides more information. The interface now passes the
account number and customer name to ClassPag.
The interface now captures the four-letter class code and
appends it to the class number.
* setup.sh picks better XFontSize values for 1299x1050 displays.
NOTE: The new CF interface requires a version of /u/comp/code/bin/fill_pgs
from 21 Apr 07. The new fields increase the length of the sort file and
older versions of fill_pgs will scramble the lines.
6/15/07
Version 6.18
* The product configuration screen "Screen Display Preferences"/
"Preferencias de Visualizacion" has a new field "Left Drag Uses Gravity"/
"Traer izquierdo usa gravedad" to control the placement by left
and right drags. The default value of "Y" makes left drags use
gravity and right drags create islands. The value of "N" switches
the functions so that left drags create islands and right drags
use gravity. Drags from lists always work like left drags.
Setting this field to "N" is useful if you want to place most
of the ads that you drag from lists in island positions.
* The product configuration screen "User Preferences"/
"Preferencias de Usuarios" has a new field "Show Placed Fillers"/
"Mostrar rellenos usados" to control whether paste-lists
for fillers show fillers that have already been placed.
The default of "Y" shows all fillers. The value of "N"
restricts the filler paste-lists to fillers that have not
been placed on a page. This can be useful if you enter
standby ads as fillers and never want to place the same
filler twice in an edition.
* makecf.sh now includes a vertical bar in the file name pattern.
* The CF interface now takes the column and gutter widths
from the product configuration instead of using values
coded into the readcf program.
* The CF interface now captures the "sort" column of the ad
report in the ad description. This makes it easier to
identify ads.
* Fixed a problem with readnn when the config file did not
specify a format directory.
* Removed a cpag/root/help directory from the distribution.
The help files are in cpag/help.
* Included Bob's changes to readnn for the SA interface.
Some boxed ads had text or a logo reaching to or beyond the bottom
border of the box.
The problem was that logos and text after logos is placed in the
markup with a JT command. The implementation of the JT command
did not multiply the depth value by !v17 as it should.
On loose lines, text was letterspaced. SA prefers very large
spacebands. The fix is to disallow letterspacing for SA by
generating an <XL> command.
6/20/07
Version 6.19
* The list of unplaced ads in "Paste from list" now includes
a zone column in the views "Sort by Ad Number, Single Line"
and "Sort by Ad Number, with Customers".
* The list of unplaced ads shows additional fields in 172 column mode.
* The list of unplaced ads has a new option
"Sort by Class, with Ad Number and Customer"/
"Ordenar por clase, con numero y cliente"
that shows both the class and customer.
* The field "Paste ad list... Sort" on the "User Preferences"
product configuration has a new value "CC" to show the new
paste list with the class and customer.
If you change this field, you might have to close and
re-open ClassPag for the change to take effect.
* ClassPag no longer displays a "No current ad" warning
when you press a key to remove an ad and you are on an
empty page. This makes it easier to remove all of the
ads on a page by letting the delete key auto-repeat.
* Fixed the interpretation of image crop rectangles in OPI
references. This fixes a problem where cropped logos could
sometimes be shifted by the wrong amount.
* When ClassPag needs to process a tiff image, if tiff2ps fails,
ClassPag now retries as a Level 1 eps with convert. This fixes
a problem where tiff2ps does not support 16 bit images and
convert supports 16 bit images only when producing Level 1.
* ClassPag is more tolerant of comments and small amounts of
data inside OPI references.
* The install kit now includes the readcf interface program.
NOTE: If you use tiffs instead of eps files for ads or
opi objects, you should update to a version of tiff2ps
from June 20, 2007, or later.
6/21/07
Version 6.20
* setup.sh and loadtape.sh now check that $TOOLS is in $PATH.
The scripts now work better with utilities like sudo
that reset the path but leaves other variables alone.
* loadtape.sh now checks that $TOOLS is set and contains
utility programs like unload and update. This prevents
loadtape.sh from running if the spice runtimes have not
been installed well.
6/27/07
Version 6.21
* The product configuration field "Convert if Multi-column"
of the "Agate Ad Specifications (Continued)" screen has a
new value of "S" to prevent the conversion of multi-column
segmentable ads to display ads. Leaving them as line ads
allows ClassPag to auto-segment them.
Use "T" to convert all multi-column line ads into display ads.
Use "S" to convert multi-column line ads in normal classes to
display ads but to leave alone multi-column line ads in legal
classes if the ads are at least the minimum segmentable depth.
Use the default value of "F" to keep multi-column line ads as
line ads.
* Fixed a problem where line ads would not flow into the
first column of the first page if it had an island ad.
* Fixed a problem where normal line ads could flow inside
square-offs if the square-off banners had island positions.
6/29/07
Version 6.22
* Increased the class title field from 20 characters in class records
and from 16 characters internally in ClassPag to 50 characters to match
the length in the class name database. This allows you to use longer
class titles in folios with the First/LastTopClassTitle variables.
* The form to create or modify class nesting entries now supports
the list key on the Class and Parent fields to show a list of classes.
This makes it easier to enter class ids.
* The CF interface now parses ad sizes from the FoxPro.ps file
if they have lower case x's. It used to require an upper case X.
* Fixed a problem during Import->Read where the class title could be
wrong for classes created from references to the class nesting table.
* Synchronized pagmod with spice.
7/2/07
Version 6.23
* ClassPag now shows rules insets from the various "Rule Inset from Edge"
product configuration parameters when you proof pages. It used to show
the inset correctly only for actual size pages.
* Added the STU interface. To enable it, in the product configuration,
set the Copy Command to "call CopyFiles" or "call CopyImportFiles"
and the Import Command to "$CPAG_INT/mapclass.sh stu".
The interface directory contains new programs readstu and makestu.sh.
makestu.sh looks for files matching the pattern [aA][pP]*.[dD][mM][pP]
The interface currently uses the fonts HV, HVB, HVBI, and ZDING.
There is also a scanstuart interface program with the options
below to dump interface files in a readable form:
-f = show formats calls only
-n = replace numbers in formats with #, -nn decimals, -nnn minus
-s = split combined format calls
7/5/07
Version 6.24
* The mapclass interface program now shows more of the sort key
in the text window.
* If the product configuration parameter "Rebuild Class Areas After Load"
is set to "Y", ClassPag rebuilds the class area from the ads after
applying the class translations.
* ClassPag now keeps the screen definitions of the database that
holds the saved ad requests from the previous session. Specifically,
the initscr.sh script now copies the realad definition files as
lastad and savead in the scr subdirectory of the current work area.
This fixes a problem where you could not restore manually entered
requests with Import->Read if you updated ClassPag since the original
session or if you copied the work area to another server with a
different version of ClassPag.
* When ClassPag restores ad positions after Import->Read, it no
longer updates requests of segmented ads except to kill them.
This prevents problems when an ad has a different number of
segments in the new session than it had in the old session.
ClassPag writes a warning to a log file with the ad number
when it does not update a request.
* The CF interface no longer ends bolding at periods.
NOTE: The mapclass interface formula now requires spice 4.226
or higher from May 26, 2007, or later
7/9/07
Version 6.25
* The product configuration screen "Legal and Segmented Ad Specifications
(Continued)"/ "Especificaciones de Avisos Legales y Segmentados
(continuado)" has a new field "Between Segs and Fillers"/
"Entre Segs y Rellenos" to control whether ClassPag places horizontal
cut rules between middle parts of segmented ads and display fillers.
The default value of "Y" places a rule (if the product configuration
would normally place a rule between legal ads and display fillers) to
separate the text of the segmented ad from the filler. The value of
"N" prevents ClassPag from placing a rule.
* Reduced the time to apply class translations.
* loaddb.sh works better if PATH does not contain $TOOLS.
* setup.sh is more careful to make sure that $TOOLS and
$CPAG_HOME are on the PATH.
7/11/07
Version 6.26
* The product configuration screen "Column Balancing"/"Balancear columnas"
has a new field "Grid Depth"/"Profundidad de rejilla" to specify the
depth of grid units for newspapers that sell all ads to a modular size.
When the grid depth is set, ClassPag rounds all ads, headers, banners,
and fillers to a multiple of the grid depth. ClassPag also displays
horizontal grid lines inside the preview windows.
* inscrall.sh now runs initscr.sh with an explicit path.
* Included Bob's updates to the STU interface.
Improve IT and IH, implement HP, process more special characters,
special handling for spaces after bullets with IH, handle extra QJ
and QL commands, implement BF, IC and NM, implement ST,
improve BX, change BT and WT to set text density instead of reverse,
change the depth of BX from the current depth to the maximum depth,
no longer change a BX rule with an explicit thickness of 0 to 1,
write a quad at the end of each ad, ignore new lines characters
in ads, use <fl f> before the first character of each line,
convert ^_ to a box.
7/16/07
Version 6.27
* When the "Grid Depth" is set, ClassPag stacks ads from the top
of the page and does not apply vertical justification.
* Included Bob's updates to the STU interface.
ih with a 0 or missing left/right argument now results in a left/right
indent of 0 for the rest of the take.
Added a new component to the command code table.
7/17/07
Version 6.28
* The classification "Randomize" field and the corresponding product
configuration "Legal Class Type" fields have a new value "S" to specify
horizontal pagination similar to "H" and "Z" except that ClassPag tries
to place the largest ad in the largest hole.
* Added a new "AG" request for display ads to change them into
line ads during Import->Read. If you want to change display ads
into line ads in only some classes, enter the "AG" request into
the default position field of the default import class nesting
table in the product configuration.
* ClassPag can now draw a box around pages. The product
configuration screen "Top of Page Horizontal Rule Specifications"/
"Especificaciones de Linea Horizontal a Traves de la Pagina"
has a new field "Draw Box Around the Page"/"Colocar una Caja".
The width of the sides of the box is specified by "Rule Depth"/
"Profundidad de la Linea" and the distance from the sides of
the box to the page are specified by "Rule Offset from Top"/
"Posicion de Linea desde Arriba".
* Included Bob's updates to the STU interface.
The width given in the ST command is often 79.2 even though the column
width is 80. In the paper, ad text thus extends .8 points beyond the
gray background of ads. To fix this, if the ST command width is within
1 point of the column width, we make it equal to the column width.
We use the <am> command at the start of each ad to handle lines in ads
that have a CL command that changes the leading after the line is already
started. The leading for such a line is thus the maximum of all leadings
from CL commands within the line.
Font 191 is used for special characters such as stars and large bullets.
Since the HELV font group has those characters (for stars, the fontdef entries
for the HELV fonts actually map to a character in ZDING), we use the HELV fonts
for 191. Then we map characters we've seen in font 191 to the correct location
in the SCS character set to get the desired character.
For font 193, we use PoynterAgateOne-Reg (POYN) for video modes 1 and 3 and
PoynterAgateOne-Bold (POYNB) for video modes 2 and 4.
For 1 and 2, we use a slant of 0; for 3 and 4, we use a slant of 15.
For 194, all four video modes use -Bold.
For 195, all four video modes use a slant of 15.
Implemented the GC command, which places a graphic (logo) in an ad.
Currently, we ignore all arguments except the 2nd (the logo name) and
the 6th and 7th (actual width and height of the logo in the ad).
Adjusted the spaceband values.
The ideal spaceband is now 600 instead of 1600.
The maximum spaceband before letterspacing is now 3001 instead of 6001.
The value for unjustified spaceband is now 1500.
Improved handling of spacing for ads that use special characters
such as stars and bullets.
7/19/07
Version 6.29
* Grid pagination with Randomize value "S" now flows left to right
without consideration ads on higher rows. "H" and "Z" horizontal
pagination still try to keep ads of the same class touching.
* Grid pagination with Randomize value "S" now places class headers
with the same rules as line ads instead of placing them with normal
vertical pagination rules. This keeps the class headers closer to
their ads.
* The window that shows the list of entries in a class nesting
table has two new commands to copy values from the current entry
to all of the other entries. The command "Copy position requests
from save file"/"Copiar Pedido de Posicion" copies the Position
Request field, and then command "Copy Randomize"/"Copiar Aleatorio"
copies the Randomize field.
* ClassPag now checks for improperly set class header entries
when it scans the banners when you open the banner list in
Setup -> Banners or when you open the image list of a banner.
* ClassPag now warns you about issues with the current banner
before you edit it in Setup -> Banners.
* The command in Setup -> Banners to delete all class headers
now deletes all header types (class, main, repeat and parent)
instead of only class headers. This makes it easier to clear
all of the headers before loading new ones.
* ClassPag can now create different types of class headers for testing.
The field "Create for every class"/ "Crear para cada clase" on the
product configuration screen "Classified Heading Placement"/
"Ubicacion de Encabezados de Clasificaciones" has the new values
"CLASS", "MAIN", "REPEAT" and "NO". The default value of "F"
is equivalent to "NO" and does not create any class headers.
You should use this value in production. The other values are for testing.
The new value of "CLASS" works like the old value of "T" to create
generic class headers that ClassPag can use both as main headers and
as second headers. The new value of "MAIN" creates only main headers
that ClassPag will not use as second headers. The new value of
"REPEAT" creates only second headers. The first letter of the
new CLASS, MAIN and REPEAT options matches the Split Overflow
field in banners.
* Horizontal pagination no longer reserves space for class headers
at the tops of columns. This fixes a problem where horizontal
pagination could leave the last row empty.
* Included Bob's updates to the STU interface.
There is now a site configuration file for readstu. The file is in
/u/harris and is named <site>.cfg, where site is the three-letter code
for the name of the Harris site. Currently, there is only one site,
"stu", so the configuration file is called /u/harris/stu.cfg.
The current readstu program does not have a command line option to specify
the site; currently, it just defaults to "stu" since that's our only site.
The configuration file has a format similar to the configuration
file for AdVision sites, lines that contain name-value pairs.
The readstu program recognizes two names in the configuration file,
LogoFileDirectories and SegmentedClassList.
A line of the form:
LogoFileDirectories=<logo dirs>
where <logo dirs> is a space-separated list of directories, causes readstu
to look for logo files in those directories.
A line of the form:
SegmentedClassList=<filename>
causes readstu to get information about which classifications allow
segmented ads from the given <filename>. The format of the segmented
class list file is the same as the format for AdVision sites -- each
non-comment, non-blank line consists of a classification or a range of
classifications, possibly followed by a colon and the product id of the
product for which those classifications have segmented ads. If no
product is specified, the line applies to all products. A range of
classifications is specified as two classifications separated by a
hyphen.
Segmentation is handled as it is in readnn. If an ad is in a class that
is to be segmented, it has an as command and an sg command that allows a
new segment to begin at any line. Segmentation is turned off for ads
that have a box or a non-white background. It is suspended for logos
and resumed for text after the logo.
The lookup of a logo file for the GC command now uses the new
findlogo.sh script in $COMP_BIN. That allows the site to make logo files
that are TIFFs and have them automatically converted to EPS unless there
is already a newer EPS in the logo file directories.
Fixed the CC, CP, CW, CL commands so that they generate a cc, cp, cs, cl
command for all four video modes.
For ads that start with /clshd, we do not process markup or write a
record to adtext or adcls2. All we do is increment the number of
classifications variable that is reported on standard error at the end
of a run, and if we are generating classes records, we generate one for
the classification for the header.
We ignore items that start with /clshd1, /clshd2, /clshd3, or /tcauto.
For display ads, we now generate the Desc field of AdCls2, using the
second argument to the /clscd command for the description. Display ads
have markup (at least those we've seen so far), so they are internal;
i.e., mapclass should find text and set GotText to TRUE and set the sort
file ad type to "display" and external to "N".
For agate and display ads, we generate the ResDepth and ResWidth fields.
They are the same as the Depth and Width fields. The two depth fields
are in PostScript units. The two width fields are in columns.
For agate ads, the depth is argument 2 of the /clsad command, which is
given in 10th of a PS unit. The width is 1. For display ads, the depth
is in argument 4 of the /clscd command; it is in column-picas and is
preceded by an L. The width is in argument 3 of the /clscd command; it
is in columns and is preceded by a K.
Implemented the UL and XU commands. UL does <sa 3,arg2,arg1>; XU does
<sa 0>. We also keep track of whether there is a UL in effect when we
reach the end of the ad; if so, we generate <sa 0> to end the underline
cleanly. Also, if there are two UL's with no intervening XU, the second
one does nothing if the parameters are the same as the first; if they
are different, we generate <sa 0> before generating the new <sa 3...>.
Fixes for fonts 193-196. The sequence <CF194><NM> did not work
correctly. It resulted in a bold font, because I implemented 194 by
making the normal video mode use POYNB. It's supposed to result in a
normal font. Now we make the four video fonts the same regardless of
whether CF says 193, 194, 195, or 196. We just follow our <cf...>
commands in the four modes by a <vu...> command to specify mode 1 for
193, 2 for 194, 3 for 195, 4 for 196.
BF/IC now add bold/italic instead of setting bold/italic; for example,
if bold is already set, IC sets to bold-italic, not italic.
Implemented the ZL command. It appears before QL's added only to set
off boxes and logos.
Implemented the GG command. All we do so far is extra lead equal to the
fourth argument.
Fixed a bug. We weren't applying a negative HP value if it appeared
before a logo.
7/20/07
Version 6.30
* In grid pagination, ClassPag is more strict about placing ads
left to right.
* In grid pagination, ClassPag now fills holes with agate fillers
before placing multi-column ads. ClassPag will use multi-column
fillers if they are entered.
* Included Bob's updates to the STU interface.
Implemented the WX (with specified leaders) command.
The character width value in CW commands is now multiplied by .95 to
get the value for our cs command. We arrived at .95 by comparing
non-letterspaced words in our output with those in the paper.
Our sb command now uses 2251 for the maximum spaceband before letterspacing.
The list of logo file directories is now enclosed in quotes when it is
passed to the findlogo.sh script.
Implemented tab commands TD, TL, TC, TR, TJ, TB, TE.
Some of the tab now commands cancel pending HP's and spaces instead
of processing or ignoring them as most commands do.
7/23/07
Version 6.31
* When the product configuration parameter "Draw Box Around the Page"
requests a box around the page, ClassPag now draws the box after
drawing the ads so that ads can not clear sections of the box.
* ClassPag can now automatically create banners entries for
primary and secondary class headers from EPS files in a directory.
In the "View ad directories" window, the "Load" dialog has a
new option "SetHdr". You can select "SetHdr" before selecting
"Current" or "AllAsHdr" to set the type of headers that ClassPag
will create. The options are Generic (type "C") for normal
class headers that can serve as both main heads and second heads,
Secondary (type "R") for second heads, Parent (type "P") for
parent heads, and Primary (type "M") for primary heads.
ClassPag builds a banner name with "H" plus the class id
plus the type letter (if the type is not "C").
For example, if class 100 had a generic head, ClassPag would
create the banner H100, while if class 100 had separate main
heads and second heads, ClassPag would create the banners
H100M and H100R.
* Included Bob's updates to the STU interface.
The makeeps.sh interface scripts has a new -t option.
If -t is specified, they use a composition photodef PostScript device
that scales the PostScript or EPS output by .996 so that the values in
the file are treated as points instead of PostScript units.
Thus makeeps.sh uses CPAG for the device if -t is not specified
and CPAGPT if it is.
The conversion factor for AdCls2 depth values to centipoints is now 1.
readstu.c writes the fields in centipoints.
The column width is set to 8300. This variable holds the sum of the
column width and gutter width in centipoints.
The STU interface takes advantage of the new PostScript driver feature
by which the driver scales the ad by .996 so that the PostScript unit
values in the EPS become points. The bounding box values are scaled
similarly. That allows readstu to treat all markup values as they
are (points) so that composition reports the correct depth in points
and still have the PostScript output in points.
When running makeeps.sh or dospleps.sh for STU, mapclass now uses one of
the new photodef devices that create PostScript output with PostScript
units converted to points. For makeeps.sh, mapclass passes the -t
option which causes makeeps.sh to use CPAGPT instead of CPAG. The device
argument that mapclass passes to dospleps.sh is now epspt for Stuart;
eps for all others.
The CPAGPT photodef should be a copy of the CPAG device except that the
"special" field must be set to 100. That value causes the PostScript
driver to scale the output by .996 so that values in the PostScript
file are points instead of PostScript units. You should also make
pt versions of the EPS and VIEW photodef devices. New installation
kits for SCS Composition contain the pt devices in the default data.
The pt version are currently required only for the STU interface.
7/27/07
Version 6.32
* The Command menu from the page view has a new item called "Test..."
Some items from the "Misc..." menu that are useful only for set up
and testing are now under "Test..." instead of "Misc...".
This shortens the "Misc..." menu and makes it harder to run one
of the test commands by mistake.
* The page view has a new command under Cmd -> Test -> Convert heads to ads
to convert headers and fillers to line ads. You can use this for proofing
the images. The command gives you the option to convert class headers,
agate fillers or display fillers to line ads. The ads are inserted into
the top level class ****** so that they come first and so that they do
not mix with normal ads in the session. The ads have their original class
as the sort key so that class headers appear in order by class number.
ClassPag scans for headers and fillers in both the sort file and
the setup databases.
The command has additional options to create display ads (instead of
the default of agate ads) and to process multi-column ads (instead of
converting only single columns ads).
* ClassPag is now better at handling agate ads wider than the
default page width.
* The product configuration field "Write Extra Fields... Long section
name" on the screen "Outext Export" has a new value "I" to write the
first 10 characters of ad insertion keys (column 224 (counting from 0)
in the sort file) to the outext file on card 4, column 59 (counting
from 1). This field provides interfaces a way to pass information,
a run schedule for example, through ClassPag to applications that
read the outext file.
* When the product configuration field ""Write Extra Fields...
Long section name" is set to "I", the box information window
in the page preview shows the insertion key.
* Fixed a problem where the First/LastTop#ClassTitle variables
in folios could sometimes be empty.
* Fixed a problem in products that require a section name where
the section name that you entered in the prompt before writing
the outext would not be saved in the control record.
* Included Bob's updates to the STU interface.
The Depth and ResDepth fields for adcls2 are now written in centipoints
instead of points.
We now handle descenders on the last line of the ad or the last line of
a background using new composition features for handling descenders.
We end a background with <eb d> so that the background depth includes
any descenders on the last line. We end an ad with <id> so that the
ad depth includes any descenders on the last line.
The character 0x1C is now treated as a hyphen.
The sequence c0f0c0 is now treated as <ws>.
If we are in tab mode for real tabs (as opposed to tabs treated as <ws>
because there is just one tab column defined), we don't put <fl f> at
the start of the line.
If we are in tab mode for a tab that is really a <ws> because there
is just one tab column defined, the TE command ends a line, so it is
followed by a call to init_line. If we are in real tab mode and we have
the nth TL, TR, TC, TJ command on a line where n is the number of tab
columns, that command ends a line, so it is followed by a call to
init_line.
Fonts 73-76 are now the Univers group of fonts, Univers, Univers-Bold,
Univers-Oblique, Univers-BoldOblique, name UNIV, UNIVBD, UNIVIT, UNIVBD
in fontdef, and numbered PS_FONT_73, 74, 75, 76 on cobalt32.
This font is used in legals.
NOTE: The STU interface now requires versions of spice and composition
from July 25, 2007, or later.
8/3/07
Version 6.33
* ClassPag no longer shifts ads to the top when doing grid pagination.
Shifting ads to the top prevents gaps in the middle of the page
if the column depth is not an exact multiple of the grid depth.
Now that ClassPag no longer does the shift, it is important for
the column depth to be a multiple of the grid depth.
* Added a new "DP" request for agate ads to change them into
display ads during Import->Read. If you want to change agate ads
into display ads in only some classes, enter the "DP" request into
the default position field of the default import class nesting
table in the product configuration. This request is similar to
the "AG" request but changes ad types in the opposite direction.
* The product configuration parameter "Repeat heading of parent class"
on the screen "Classified Heading Placement" has a new value "COLC"
that works the same as "COL", except that if the top level class "******"
has no copy header, "COLC" does not take a copy header from one of its
subclasses while "COL" does. If banners are in class "******" and
the field has the value "COL", ClassPag might not place column headers
under the banner if the column header would match the column header
assigned to "******". The value of "COLC" will not create a column
header for class "******", so ClassPag will treat line ads in all
of its subclasses as incompatible and will place column headers
if any of those classes flow under a banner of class "******".
* When "Repeat heading of parent class" starts "COPY" or "COL"
and the first subclass has no copy header but also no line ads and
no subclasses, ClassPag continues scanning for a class with a copy
header. This allows ClassPag to find a copy header in interfaces
that write class headers for unused classes and attached the copy
header to the first used class.
* When "Place at top of columns" is COPYALL and "Place parent at top"
is not NO, if a class starting at the top of a column had a second
head that differed from the second head of its parent class,
ClassPag would place only the main head and not any second heads.
ClassPag now places the second head and the main head of the class.
* Fixed a syntax error in the makeeps.sh interface script introduced
with the -t option in version 6.31 that prevented the script from
producing sort and eps files.
* Fixed a problem where the readnac interface program could hang
if an ad had the syntax "</" with no field name between the "<"
and the "/".
* The readcla interface now processes second heads (COLHDR lines)
for classes that do not contain any ads.
8/9/07
Version 6.34
* menprof.sh and runcpag.sh now accept "wide" as the equivalent
of "172" to open the wide screen display.
* Added options to checkbb:
-7 = convert to units of 7227 per inch
-a = use alternate HiRes line if present
-d = verbose parse
-h = show this help message
* The readnac interface program now looks for HiResBoundingBox
lines when setting the depth of second heads.
* Fixed warnings about unrecognized variable 'ELEMENTTOSHOW'
in the log.
* Fixed a problem where the two file version of checkbb
checked the first file twice.
* The ad information now shows empty values when you are on
an empty page.
* In grid pagination, ClassPag now fills holes before placing
class headers so ads and subheads should now always have positions
after their class headers.
* Grid pagination now supports placing super heads at the leftmost
column of pages when the field "Place parent at top" on the product
configuration screen "Classified Heading Placement" is set to a value
other than "NO". To find the super head, ClassPag starts at the
current class and looks for the highest parent class that has a
header. If it finds a class with a full width header, it stops
searching and takes the header from the previous class.
If the header is already placed on the page, for example, a manually
placed banner that points to the same image, ClassPag will not place
a second copy.
* In horizontal pagination, if the field "Can place last in column"
on the product configuration screen "Classified Heading Placement"
is "N", ClassPag will not place class headers touching the rightmost
edge of the page unless the headers are the full page width.
* When you drag ads on pages, ClassPag no longer removes class headers
in classes that flow horizontally that would be unnecessary if the
class flowed vertically.
* Included Bob's changes to the SA interface.
Added the <id> command at the end of every ad so that the
sort file depth includes the depth of any descenders.
So for SA, we don't convert measures from PostScript units to points as
we do for NN and LA. Also, we don't multiply depth values by 0.98 for SA
as we do for NN and LA. We do, however, still multiply character width
measures by 0.98 for SA. Doing that causes long words on lines with no
letterspacing to match what is in the paper. We don't multiply column,
gutter, and box widths by 0.98 for any site; the factor is only for
character widths.
SA FN commands specify PostScript font names. FN ZapfDingbats is now
handled differently from FN for other fonts. For other fonts, we
generate a <cf> command to change to the composition font associated
(by the composition shared environment) with the given PostScript font.
For ZapfDingbats, instead of generating <cf ZDING> command, we keep the
composition font the same, but we render each input character ch until
the next FN command using the <pi> command <pi in_ch, "ZDING">. That is,
we treat printable input characters in ZapfDingbats as character codes
in the ZapfDingbats PostScript font.
Implemented two special characters for SA.
Character 0xB7 for SA is a bullet. We were generating a small bullet.
Now B7 maps to SCS 131.
The backslash (0x5C) for SA is a backslash. We were generating just
one backslash, which composition interprets as a shove code. Now we
generate two backslashes, which composition interprets as a literal
backslash.
* Includes Bob's change to spice to fix a screen painting problem
on the wide screen where parts of the ad list would show in the
tabbed information dialog.
* Includes Bob's change to the editor to fix a problem where
editor windows would not open on the 172 column screen.
* Includes a fix for a memory access problem when drawing
dialogs in the 172 column screen.
8/10/07
Version 6.35
* ClassPag no longer limits the thickness of vertical cut rules
to the gutter width. This allows you to have rules even if
the gutter width is 0.
8/13/07
Version 6.36
* The Ad Configuration setup now allows you to specify values
for legal ads.
* The Display Filler and Agate Filler setup windows now show
a column for the edition.
* Fixed a problem where ad configuration entries would have
no effect on display fillers imported from the sort file.
* Included Bob's changes to the STU interface.
It now draws the rules from ST commands in a better place.
8/21/07
Version 6.37
* The Paper database has a new field "Lock Page"/"Bloq." to indicate
that ClassPag should lock all of the ads on any pages printed using
that paper entry. This can be useful when sending pages for a final
proof or to final output. ClassPag locks the pages only if line ads
are flowed.
* When you print a page where an ad is missing class headers,
ClassPag now shows the number of missing class headers in the print
dialog, and the print dialog has a new "Headers" option to open
a list with information about the ads that are missing headers.
* The paper database has a new field "Missing Heads"/"Cabezales Faltantes"
with the values "IGN", "WARN" and "STOP" to control what ClassPag does
if you print a page where some ads are missing class headers.
"STOP" opens a warning dialog and does not let you print the page.
"WARN" opens a warning dialog but still lets you print the page.
The default of "IGN" lets you print the page and does not show a warning.
* Fixed a problem where ClassPag could place two class headers over a
display ad if the ad had very little space above it and the class of
the display ad differed from the class of the line ads that ClassPag
was currently trying to flow.
* Improved filler placement on squeezed pages. Since version 4.94,
ClassPag has not placed fillers on squeezed pages because the fillers
sometimes end up in bad places, especially with back to front pagination.
ClassPag now places fillers on squeezed pages, and it is more careful
about not placing fillers over class headers.
* Fixed a problem where island ads would sometimes move a little
when the ads are reflowed.
* Fixed a log warning about unknown short position options
that could happen on ads with column requests.
* Fixed a log warning about invalid eps locations in the sort file
when the prolog was more than 100000 bytes.
NOTE: ClassPag now requires the shared libraries libxml2, libpthread
and libz.
8/22/07
Version 6.38
* Fixed a problem where the change in version 6.37 to remove unneeded
class headers would remove a grand parent header.
* Fixed a calculation drawing the horizontal grid lines on the screen
that could produce a regmod warning in the log.
* Fixed a problem where pages could have stack underflow postscript
errors when knock-outs were enabled in the product configuration
and an internal line ad had a logo with non-conformant eps that
cleared the stack.
8/24/07
Version 6.39
* The field "Fill Front Page"/"Llenar Pra.Pag" of the class
database has a new value "I" to ignore headers for that class
in the sort file. For class-specific treatment of class headers,
"B" avoids placing class headers at the tops of columns,
"D" avoids placing class headers over display ads,
"X" is like "B" and "D" combined, and
"I" is like "X" and also does not flow headers with line ads.
* ClassPag has an improved procedure for loading edition-specific
class headers. In the "Load" menu in the "View ad directories"
window, if you set the edition, ClassPag asks if you want to
append the edition id. If you say "yes" and then load eps files
as class headers, ClassPag appends an underscore and the edition id
to the banner name.
* menprof.sh and runcpag.sh both have a new scratchdir option to let you
set the scratch directory. For example, to set the scratch directory to
"joe", use "menprof.sh scratchdir joe". You can also set the SCRATCHDIR
environment variable, for example, "SCRATCHDIR=joe menprof.sh".
* menprof.sh and runcpag.sh have new options "usenxdisplay" and
"usenxip" to control the method that ClassPag uses to create work
areas under NoMachine nxclient connections.
"usenxdisplay" uses DISPLAY which produces work areas like unix_####.
This used to be the default option.
With this option, you can run multiple sessions per workstation,
but each time that ClassPag runs, it creates a new unix_#### directory,
so you need to write a cron job to purge old directories.
"usenxip" uses the client IP number (stored in NX_IP by
set_nx_client.sh in termdef) which produces work areas like #.#.#.#.
This is now the default option.
With this option, you can run only one session per workstation if you
run menprof.sh or runcpag.sh directly, but the session always uses the
same directory. As with other X connections, you can run multiple
sessions per workstation by running ClassPag inside an xterm with
a connection script like
/usr/bin/X11/xterm -fn 10x20 -sb -ls -geometry 80x24+10-55
-name cpag -e /u/cpag/menprof.sh XFontSize 24
* readcf now handles postscript lines with the syntax "#(text)A"
and "# #(text)J".
* Added a purgescratch.sh script to the interface directory with
an example cron job for purging old work areas.
8/26/07
Version 6.40
* The procedure to load outext files under Cmd -> Ads -> Load outext
has new options for creating ads that are in the outext but not
in the ad database of the current session.
"No" does not create any new ad records.
"Placed In This Session" creates ad records for ads placed on pages
within the first and last page of the current session.
"Placed On Any Page" creates ad records for ads placed on pages
even if the pages are outside the range of the current session.
"All" creates ad records for all ads, even if the ads are unassigned
or killed in the outext. If ClassPag creates an ad record for a
killed ad, it preserves the kill flag.
In previous versions, the "All" option worked like the new
"Placed On Any Page" option, and there was no equivalent of
the new "All" options.
If ClassPag creates any ad records, the dialog after the load shows
the number of created ads in addition to the number of created or
updated position records.
* Fixed a problem where setting "Final Output" to "P" still
showed only the spreads that printed at full scale.
NOTE: This version has 8317 lines of changes from version 6.30.
8/29/07
Version 6.41
* ClassPag can now draw boxes around square-offs.
The product configuration screen "Display Ad Dummying Style (Continued)"/
"Estilo de Diagramacion de Avisos Destacados (continuado)" has a new
field "Outer Hor Rule Thickness"/"Grosor de lineas hor. externales"
to specify the depth of the rules.
The Square Off database fields "Place Hor Rules Top" and "Bot"
have new a new value "B" for the rule above the top banner and
the rule below the bottom banner. The value "B" uses the rule
width specified by the "Outer Hor Rule Thickness" field in the
product configuration. The value "T" uses the value specified
in the ad configuration, and the value "F" does not draw a rule.
* The product configuration screen "Top of Page Horizontal Rule
Specifications"/"Especificaciones de Linea Horizontal a Traves de
la Pagina" has a new field "Inside page"/"En Pag" to control how
ClassPag draws horizontal rules at the bottom of a page.
The default value of "N" allows rules to go below the bottom of
the page. The value of "Y" ensures that rules are within the
page area. This value can be useful if the rules at the bottom
of the page are cropped out of eps files.
* The product configuration screen "Ad Import Restrictions"/
"Restricciones de Importacion de Avisos" has a new field
"Accept fillers with missing EPS"/"Aceptar rellenos con EPS ausentes"
to control how ClassPag treats fillers ("F" lines) with missing images
in the sort file. The value of "Y" accepts fillers with missing images.
The value of "N" ignores fillers with missing images.
If the field is empty, it defaults to the value of the field
"Accept ads with missing EPS"/"Aceptar avisos con EPS ausentes".
* The product configuration screen "Ad Importing"/"Importacion de
Avisos" has a new field "Warn if other sessions use this edition"/
"Avisar si otras sesiones estan" to show a warning in the edition
parameters form if another session with the same run date has
a different range of page numbers.
The default is "Y" to show the warning.
The value "N" suppresses the warning.
* Fixed a problem where ClassPag would sometimes use main class headers
entered as type M banners as column headers.
8/31/07
Version 6.42
* The Paper database has a new field to set the Vertical Margin
when writing EPS files. ClassPag adds this margin to the top
and bottom of the bounding box. The margin can be useful to
capture horizontal cut rules when generating EPS files for
square-offs and for partial pages.
* The field "Accept fillers with missing EPS"/"Aceptar rellenos con EPS
ausentes" on the product configuration screen "Ad Import Restrictions"/
"Restricciones de Importacion de Avisos" has a new value "I" to ignore
fillers with missing EPS files in the sort file when you import the sort
file. With this option, ClassPag does not write the fillers into the
ad database and they never show on reports of ads with missing images.
As before, "T" uses the fillers even if their images are missing, and
"F" keeps fillers with missing images in the database but does not
use them.
* The command to save a work area now shows the name of the save
file and its size. This makes it easier to locate the file.
* The command to save a work area now captures SCS Composition tables.
In particular, maketarw.sh now saves the fontdef, envtbl, envvar,
formstyl, formtest, photo and typeset databases in the "all" directory.
* When ClassPag scans for the page ranges of each class to
mark the first and last class on each page, it no longer
propagates the ranges of classes in square-offs.
This fixes a problem where folios using variables like
FirstTopClassTitle could show the wrong class if the
session had a square-off with line ads.
* Fixed a calculation when placing segmented ads on pages
with per-page leading greater than 100%.
9/4/07
Version 6.43
* The "Back" button in the "Ad Requests" dialog in the Editions
Parameters screen now prompts if you made changes in the current
record in the dialog because the button returns to the ad list
without saving the current ad. Use the "Add" button to save
changes and the "Back" button to exit without making changes.
This helps prevent losing the last ad when you modify a set
of ads and use "Back" instead of "Add" after entering the
data for the last ad. You should use "Add" after the last ad,
and then use "Back" to return to the ad list.
* When you restart a pagination session and modify ads in
the "Ad Requests" dialog in the Editions Parameters screen,
ClassPag now reloads then ads to make the changes take effect.
* Boxes around square-offs should now line up better.
ClassPag remembers the position of the horizontal lines
and tries to make the vertical lines match.
To draw boxes, in the product configuration,
you must set "Outer Hor Rule Thickness" and
"Vertical Rule Thickness" to the rule thickness
and "Banner Vertical Cut Rules" to "BANNER".
In the square-off record, you must set "Vertical Rules"
to "Y" and "Place Hor Rules Top" and "Bot" to "B".
The ad configuration values with type "Square-off" and
an empty location set the distances of the top and bottom
of the box from the banners on the top and bottom.
For a fixed distance, you should use the "LOWER" placement
with entries where "Square-off" is the bottom type and
the "RAISE" placement with entries where "Square-off"
is the top type.
* ClassPag now allows horizontal rules to run inside
leading fillers and space reservation fillers.
This prevents the fillers from squeezing the space for rules.
* Fixed a problem in front-to-back pagination where ClassPag
could sometimes place a main head over a display ad if the
line ads of the previous class finished directly above the
display ad.
* Fixed a problem where ClassPag would sometimes vertically justify
square-offs in a session that contained only square-offs. To leave a
square-off unjustified, in the product configuration screen "Vertical
Spacing Specifications", set "Justify Square-Off Pages" to "N".
Set "Justify" to "NO" for each square-off.
ClassPag now delays the vertical justification until the end. ClassPag
used to do some justification as it built the columns, but at that
point, it does not know whether the page will have only a square-off.
The test for a page with all square-offs checks the last column of the
page before and the next column of the following page. If either has
normal line ads or display ads, it still justifies the square-off
normally so that a full page square-off in the middle of a normal
edition will not get squeezed.
The test for a page with all square-offs now allows the page to
contain normal agate fillers and display fillers so a filler on
the page will not force vertical justification.
* When you change the horizontal rules for a square-off,
ClassPag now asks if you want to reload the ads.
You must reload the ads to make the changes take effect.
* Included Bob's changes to the STU interface.
readstu now gets the publication date from the Publish Date: line in
the log file sent by Harris. makestu.sh reads the log file, which it
identifies as a file beginning with a capital letter and having extension
.log. It then passes the date formated m/d/y on that line in the -r
option to readstu. If the date is valid, readstu writes it to header.dat.
Otherwise, readstu writes the current date.
readstu now has a -l option. If specified, readstu generates a findlogo
log file name to pass as the third parameter to findlogo.sh. This causes
findlogo.sh to log its attempts to find logo files. readstu specifies
findlogo.ext as the findlogo filename, where ext is 't' if readstu is
outputting adtext, 'a' if readstu is outputting adcls2, and 'c' if readstu
is outputting classes.
Ads that begin with a clscd command instead of a clsad command are now
put into the sort file as agate ads instead of display ads. Thus they
are treated the same as clsad except that the ad attribute information is
formatted differently in a clscd command from its format in a clsad command.
readstu was not handling <hp> commands that set the horizontal position for
an <st> command. An <st> command creates a non-white rectangular background.
readstu was always putting that background on the left of the ad. Now it is
offsetting it from the left of the ad by the amount given in an <hp> command
that precedes the <st> command.
NOTE: The change for class headers should be tested carefully to check
for correct placement of headers over display ads.
9/7/07
Version 6.44
* The useradd.sh interface script now adds the cpag user to the cpag group.
When CP2O is installed, all cpag users must be a member of the cpag group.
* Fixed a problem where ClassPag did not account for the leading between a
square-off banner and line ads when calculating the depth of a square-off.
This could cause square-offs with many small line ads to lose their top
banner or to be built with no leading.
* ClassPag now ignores starting page requests on classes inside square-offs.
This fixes a problem where a square-off between two classes could cause an
empty page if it had a starting page request.
* Included Bob's changes to the STU interface.
mapclass.frm now gets the run date and edition from header.dat for the STU
interface. readstu was generating header.dat, but mapclass wasn't reading it.
Redesigned the mapclass initialization to make it easier to add new interfaces.
The names of the findlogo.sh log files are now findlogo.t.log, findlogo.c.log,
findlogo.a.log. If readstu gets the -l option, the main program deletes the
appropriate findlogo log file before processing the dump file. That way, the
files won't contain the concatenation of logs from several runs of readstu.
makestu.sh now has a commented line:
# read_opt="$read_opt -l"
To allow findlogo logging for makestu/readstu, remove the #.
I also fixed a bug in the -l option; I replaced strcmp by strcpy.
Multi-column ads are no longer segmented. An ad is recognized as multi-column
if its introductory command is clscd and the K argument to that command has a
value of 2 or more.
10/1/07
Version 6.45
* The product configuration screen "Vertical Spacing Specifications"/
"Especificaciones de Espaciado Vertical" has a new field "Justify
Equally"/"Justificar Egualmente" to equalize the space between single
column ads at the top of the stack of ads that grows from the bottom.
The default value of "N" does not equalize the ad spaces.
When this field is "Y", ClassPag applies the normal vertical
justification and then adjusts columns with stacks of single column
ads. ClassPag equalizes the spacing, ignoring any other values in the
product configuration and ad configuration and without checking ad
types or sizes. This can improve the appearance of pages with large,
single column ads arranged in a grid.
* ClassPag now tracks manually created ads. The ad record has
a new field "Source"/"Creador" that is "M" for manually created
ads and "S" or empty for ads from the sort file. The new ad
position request "MN" also marks an ad as manually created.
ClassPag shows these ads with the flag "MANUAL_SOURCE"/"CREADO_POR_MANO".
ClassPag sets the field when you create or copy a display ad in
a pagination session. An operator with privileges to modify ad
records can modify the flags in ads, so this field can be useful
in reports but the final check should come from a discrepancy
report from the ad order entry system.
* The paper database has a new field "Overprint" to set the
postscript overprint value. The default value of "F" sets
overprinting to "false". The value of "T" sets overprinting
to "true". The value of "N" does not modify the postscript
overprint value.
When a postscript image draws a region in one color and then
overwrites it with a second color, when overprint is false,
the region becomes the second color. This is the default
behavior for postscript RIPs and can cause knockouts when
text is written over solid color backgrounds.
When overprint is true, the RIP may remember the first color
or mix the colors in a device-dependent way. Some RIPs will
not generate knockouts when overprint is true.
* Fixed a problem where "Repeat heading of parent class" of "COLC"
could sometimes place a main header at the top of a column.
* The field "Repeat heading of parent class"/"Repetir cab. de padre"
on the product configuration screen "Classified Heading Placement"/
"Ubicacion de Encabezados de Clasificaciones" has a new value "COLS".
"COLS" works like "COLC" except if "Place at top of columns"/
"Colocar encima de columnas" is "COPYALL", if a class does not have a
column header, ClassPag takes a column header by scanning subclasses
of the class, siblings of the class towards the front, the parent class
of the class, and siblings of the class towards the back. This can be
useful for interfaces that sometimes do not pass column headers for
every class.
* Fixed a problem drawing registration marks when the printer entry
had a horizontal offset that was the negative of the horizontal margin
in the product configuration. When the left or bottom margin came out
to 0, ClassPag would set a default margin of 1/4" for the page but would
leave the registration marks at 0 so that the top or right marks could
fall inside the page. ClassPag no longer sets the default margin if
product configuration sets a margin, the paper entry sets a margin,
or the spread entry requests registration marks or text.
* Fixed a problem where expressions in banners using GPagGet formulas
would not find banners with names longer 10 characters.
* Included Bob's change for the STU interface.
The file name convention for the log file, from which makestu.sh extracts
the publication date, is XXXXXXX.LOG where each X is any uppercase letter
and the number of X's is 1 or more.
* Included Bob's composition test script.
To use the script, create a file to compose, for example with
$TOOLS/spice -me test.txt
Then compose the file with
$CPAG_INT/compose.sh test
This produces files the files
test.dmp with output of pccdump
test.haj with composition output viewable with $TOOLS/spice -me test.haj
test.pcc with binary binary photo compose codes
test.ps1 with postscript output (drawing from the origin down)
test.psv with postscript output in a more readable format
test.var with composition variables
test.err with spice error messages
* Updated formula font creator to work better with MSDOS format AFM files.
This requires installing a new creator.xfm from the composition package.
10/2/07
Version 6.46
* The save toolbar button in the page preview (the second button from the
left with a floppy disk icon) now works like "Cmd -> Lock -> Save work area"
instead of like "Cmd -> Save requests".
* When the product configuration specifies that the class names are
in an alternate product and the current product has no class names
entered, pressing the list key on a class field now shows the clases
in the alternate product. You can add and modify entries in the list,
but you must go to the alternate product to remove entries.
When you modify entries in the last, ClassPag now checks your
privileges and writes entries to the access log.
If both the current product and the alternate product have class names,
the list will show the class names for the current product,
but ClassPag will allow you to type class names from the alternate
product into fields.
* ClassPag now validates the class name field in the forms for
agate and display fillers.
* The product configuration fields "Save Run Stats on Exit" and
"Save Filler Stats on Exit" on the screen "Outext Export (Continued)"
have a new value "A" to always write the statistics when you close
a pagination session.
As before, the value "T" asks if you want to write the statistics,
and the default value of "F" does not write the statistics or prompt
you to write them.
* "Justify Equally" no longer embeds space inside segmented ads.
* Fixed a vertical justification calculation in columns
with segmented ads.
* Fixed a problem where agate fillers at the bottom of a column
would sometimes have a small amount of leading below them.
* Fixed a problem printing double truck pages where ClassPag
would ignore the double truck column width.
10/8/07
Version 6.47
* On wider screens, Setup -> Agate Fillers and Setup -> Display Fillers
now show the full filler name and whether the filler is active.
Showing the full name helps identify fillers.
Showing the active flag makes it easier to locate inactive fillers.
* The "Equalize columns" command no longer reflows agate fillers.
This makes the equalize columns command work better on pages with
locked line ads.
* Fixed a problem calculating the bounding box on double truck pages
when the double truck column width differed from the column width,
* Fixed problems printing double truck pages and printing
spreads with spadea pages.
It is better to print a double truck page as a single page with
one more than twice the normal number of columns, but it should
now work to print it as a spread paired with a zero-column page.
* Fixed a problem where ClassPag could leave columns filled with fillers
if the first subclass of a class with a main header was a square-off.
* Fixed a problem with the overprinting change in version 6.45
that could produce unmatchedmark postscript errors.
* Included Bob's update to the STU interface to show more
information when readstu can't find a logo.
Increased the buffer for reading the config file from 80 to 1024
to handle longer LogoFileDirectories lines.
NOTE: The double truck printing should be tested.
10/11/07
Version 6.48
* The product configuration screen "Ad Import Restrictions"/"Restricciones de
Importacion de Avisos" has a new field "Check for PDF extensions"/"Probar avisos
con sufijo PDF" to control whether ClassPag checks for .pdf and .PDF extensions.
The default is "Y" to check for those extensions if ClassPag does not find a
file with the name specified in the sort file or with that name and the
extensions .eps or .EPS.
The value "N" restores the previous behavior of not looking for the extensions
.pdf or .PDF. You should set this field to "N" if you will never have ads with
those extensions and the extra searches are expensive, for example, if the
display ads directory is mounted over the network.
This parameter does not affect ClassPag support for PDF files.
ClassPag will import PDF files whether or not this parameter is enabled.
This parameter only helps ClassPag to find PDF files when the file name in the
sort file has no extension, but the ad was saved with a .pdf or .PDF extension.
When generating output for CP2O, when this parameter is enabled,
ClassPag writes +pdf in the %%SCSIncludeOptions comment.
* Fixed a problem where ClassPag would not resize images generated
from PDF files due to a non-standard comment written by pdftops.
* Fixed a problem placing fillers that could give "Square-off is
assign locked" warnings if you first used a display filler in
a square-off and then tried placing a second copy.
* Fixed a problem where placing the first copy of a filler in
a square-off could cause later copies of that filler to be marked
with the square-off name of the first filler.
10/17/07
Version 6.49
* You can now specify different leading around internal and external
fillers in the ad configuration using the new ad types "Int Display
Filler" (code 370) and "Int Agate Filler" (code 470)
If the ad configuration does not contain any entries for internal
fillers, ClassPag configures internal fillers the same as external
fillers, so internal fillers work like external fillers until you
set them explicitly in the ad configuration.
* ClassPag keeps two versions of the type of each ad. One version
is the real type (for example, agate ad), and the second version
is the type when drawing cut rules (for example, legal ad).
When ClassPag places ads, it now sets the leading according to
the cut rule type instead of the real type. Internal display fillers
have a real type of display filler and a cut rule type of internal
display filler. When ClassPag places internal display fillers,
it now uses the leading specified for internal display fillers
in the ad configuration.
This change should improve the leading calculations for legal ads
when legal ads have different leading than agate ads in the ad
configuration.
* "Cmd -> Ads -> Change ad image" now works for banners and
for fillers from alternate products.
* "Cmd -> Ads -> Change ad image" now allows you to set the
width to the maximum number of columns per page instead of
only to the default number of columns.
* The CF interface now accepts lower case zone letters in the
postscript report. The zone sequence can contain a mix of
upper and lower case letters, but the letters must still be
in increasing order, for example "AbCd", and the zone sequence
must contain only valid zone letters (A through E) and be
followed by a space.
10/24/07
Version 6.50
* The field "Wide Ads on Divisible Col" on the product
configuration screen "Agate Ad Specifications (Continued)"
has new values 'YES', 'PAGDIR', and 'NO'.
YES is the same as T to place multi-column line ads on
columns that are a multiple of the ad width.
NO is the same as N to place multi-column line ads on
any column.
PAGDIR places multi-column line ads on columns that are
a multiple of the ad width counting from the pagination
direction.
If the ad width evenly divides page width, PAGDIR and YES
are the same, but if the ad width does not evenly divide
into the page width, for example, a 2 column ad on a 9
column page, PAGDIR is more restrictive than YES.
* ClassPag now writes a %%PageBoundingBox comment after
each %%Page comment. The PageBoundingBox comment currently
has the same size as the BoundingBox.
gv looks for the first PageBoundingBox comment after each Page until
it reaches a Trailer, even if the comment is embedded in an eps file.
If the first ad on the page had a PageBoundingBox and if the ad was
not wrapped in BeginData/EndData comments, gv could use the
PageBoundingBox of the ad instead of the BoundingBox of the page.
ClassPag no longer writes the additional comments added in version 5.96.
* ClassPag is better about placing column headers when you drag
line ads and display ads on locked pages. ClassPag would never add
column headers and would sometimes remove them. ClassPag now should
usually leave column headers that are compatible with the top ad, and
it will now add column headers if you drag an ad to the top of a column.
* In square-off mode, when the square-off fits in fewer
columns than the smallest banner, ClassPag now places the
smallest banner instead of not placing any banner.
* Fixed a test in square-off mode that could cause ClassPag
to place an ad in place of the banner.
* Fixed a test in front-to-back pagination where ClassPag could
think that it needed more space than necessary to place the last
few ads of a class with multi-column line ads.
10/30/07
Version 6.51
* The windows that show lists of class nestings to view or modify
now show the nestings of the alternate product if the product
configuration specifies an alternate product for class nestings
and the alternate product has nestings and the current product
does not.
* maketarw.sh now copies files with an option that will not prompt
if another user left files around that do not give write permission.
This should prevent the script from pausing.
* maketarw.sh now checks that the prodtrn directory and the subdirectory
for the product are readable, writable and executable. This should
allow the script to run if the permissions on the directories are wrong.
* Included Bob's change to the STU interface to convert character 92
to an underscore and character 129 to a close double quote.
11/2/07
Version 6.52
* The product configuration screen "Top of Page Horizontal Rule Specifications"/
"Especificaciones de Linea Horizontal a Traves de la Página" has a new field
"Adjust For Partial Pages"/"Ajustar para Paginas Partiales" to control how
ClassPag draws boxes for partial pages. The default of "N" draws a box
the full size of the page. The value "Y" draws a box using the columns
and height range calculated according to the PS Type of the paper record
(BEPS, CEPS, etc.).
* In horizontal pagination, ClassPag now places parent and child class
headers according to settings of the product configuration fields
"Place at top of columns" and "Place parent". ClassPag used to place
only parent headings.
In horizontal pagination, ALL and COPYALL work the same as LEFTMOST.
* Included Bob's changes to the STU interface.
The STU interface now displays a list of missing logos after the import.
makestu.sh creates an empty missing logo log file misslogo.log.
If there are any missing logos, readstu opens misslogo.log for writing and
writes the names of missing logos to the file. This is done only in the
text output pass through readstu.
Upon return from readstu, since a given missing logo may occur in more than
one ad, makestu.sh does a sort -u on misslogo.log, creating misslogo.srt.
Upon return from makestu.sh, mapclass checks for a non-empty misslogo.srt
file, displaying every line in that file as a row in a table window. The
user can use the Print/View List toolbar button to print or view the table.
11/30/07
Version 6.53
* The product configuration screen "Column Balancing"/"Balancear columnas"
has a new field "Grid Ad Order"/"Orden en rejilla" to control
the order that ClassPag places ads in horizontal pagination.
The default value of "WIDTH" places widest ads first.
The value of "AREA" places ads with the largest area first.
* Fixed a problem where grid pagination could place ads out
of order on the rightmost column of the last page.
* Fixed a problem where grid pagination could sometimes place
an extra copy of a class header.
* Included Bob's changes to the STU interface.
A backslash in the dump file no longer converted to an underscore.
An underscore in the dump file no longer converted to a right bracket.
Hex 91 in the dump file now produces a backquote.
c0ebc0 now results in a <wl> command.
Many characters depend on <cf191> preceding the character code in the dump
file. If that's missing, the codes are not interpreted as representing
special characters.
Added support for the "br" command. It is a synonym for "qj"
generated after a soft hyphen to indicate that a line break
follows the hyphen. This is the only thing that distinguishes
a soft hyphen from a hard hyphen.
For a character "c" in the font Universal-NewswithCommPi (with cf191),
we generate <pi c,COMMPI> where c is the code "c" represented in decimal.
Handling for new encoding of soft hyphens in a dump file.
There are two sequences that indicate a soft hyphen; i.e., a hyphen inserted
for hyphenation that should be followed by a line break.
-<br> appears when there is a hard hyphen just before a line break.
-ÀýÀ<br>ÀþÀ (<br> in Harris comp marks) appears when a word is hyphenated.
<br> is interpreted as indicating a line break only if it follows a hyphen
or is in Harris comp marks. Otherwise, it is interpreted literally.
Changed to handle the new codes in the dump for the degree character (xAD)
and the apostrophe (x92).
The codes x93 and x94 now produce ordinary ASCII double quote character.
12/5/07
Version 6.54
* The product configuration screen "Classified Heading Placement"/
"Ubicacion de Encabezados de Clasificaciones"
has a new field "Omit over banners"/"Omitir sobre carteles"
to control how ClassPag places headers when you drag banners.
The default value of "T" removes headers over the banner.
The value "F" places headers over the banner if the product
configuration specifies placing headers over banners or at
the tops of columns.
* When placing fillers in classes with horizontal pagination,
ClassPag can now assign fillers to the class of the ad to the
left instead of always to the class of the ad above.
* ClassPag no longer shifts line ads in horizontally paginated
classes to the bottom stack before applying vertical justification.
This fixes a problem where fillers embedded in columns could
push ads out of class.
* The STU interface now allows classes starting with
a capital letter. To set attributes of the classes
in the configuration file, A is 11000, B is 12000, etc,
so class D123 is 14123.
* The mapclass.sh interface script now takes option starting
with "spice" as the name of a spice executable in $TOOLS.
You can use this option to run mapclass with an alternate spice.
NOTE: mapclass interfaces require a version of spice from
Dec 4, 2007, or later.
12/9/07
Version 6.55
* ClassPag allows a new value "G" in the SpreadFlag of the sort
file (column 131 counting from 0) to mark ads that should be
placed in the central column of a double truck page.
"G" is the same as "Y" except that ClassPag does not increment
the column width.
* ClassPag now tries to place ads with the spread flag in
the central gutter. Ads with the spread flag show as conflicts
if they are not touching a gutter column.
* When ClassPag calculates the widths of ads with the spread flag
set, it now uses the double truck column width. This makes reports
of missized ads more accurate.
* The product configuration screen "Request Checking"/"Comprobar Solicitudes"
has a new field "Check gutter columns"/"Comprobar medianiles" to control
whether ClassPag checks for the spread flag when placing ads in the
central column of a double truck page.
The default value of "N" does not check.
When the value is "Y", ClassPag marks non-spread ads in the central column
as conflicts.
12/11/07
Version 6.56
* Fixed a problem where the bounding box comment of pages created
with BEPS would not reflect the horizontal scale factor.
12/20/07
Version 6.57
* The product configuration screen "Classified Heading Placement"/
"Ubicacion de Encabezados de Clasificaciones"
has a new field "Omit over display ads"/"Omitir sobre destacados"
to control how ClassPag places headers when you drag display ads.
The default value "F" places headers over display ads if the
product configuration specifies placing headers over display ads
or at the tops of columns.
The value of "T" removes headers over display ads.
* The product configuration fields
"Ask if not written"/"Preguntar si no escribirse",
"Save Run Stats on Exit"/"Guardar estadisticas en salir",
and "Save Filler Stats on Exit"/"Guardar estad. de rellenos"
have a new value "S" that saves automatically if you save
the work area and that does not prompt or save if you
do not save the work area.
If you always save any of these files when you save a
work area, using "S" instead of "T" will reduce the number
of prompts when you close a session.
When "Ask if not written" (to write an outext) is "S"
and you save the work area, after ClassPag generates an outext,
it runs the outext export command automatically without prompting.
* The page display tool bar has a new button to control
whether ClassPag shows ad preview images.
Clicking on the button changes the display.
1/16/08
Version 6.58
* The paste lists for ads now sort the ad width column as a number.
* When ClassPag places ads with position requests,
ClassPag will now squeeze leading if necessary.
This allows ClassPag to handle preplacement requests that
completely fill a page. For example, if two half-page ads
request the same page, ClassPag will now place both on
their target page instead of placing only one on the target
page and placing the other on a different page.
* When "Ask if not written" (to write an outext) is "S",
and you save the work area when you close a session,
ClassPag no longer shows the "Outext Records" window.
* When a square-off did not fit in its specified width, if the
square-off had a starting column that placed it against the right
side of the page or if the square-off did not have any banners,
ClassPag would not retry the square-off with a larger width.
ClassPag will retry it now.
* Fixed a mapclass problem with the SA interface that could cause ClassPag
to generate a warning about invalid 'H' position requests in the log.
1/23/08
Version 6.59
* ClassPag now supports CP2O output when generating tab spreads.
* Included Bob's change to readnn for the SA interface. Readnn now allows
letterspacing only on a single-word line with equal left and right indents
that ends with a CR command.
* Fixed a problem with ClassPag output for CP2O where the includes in the
prolog would not always be in the correct order if a page had ads on both
the top and bottom stacks.
1/29/08
Version 6.60
* ClassPag now ties column reservations to their page number instead of
their position counting back from the last page. Column reservations
now maintain their page number if you change the first or last page
number of the edition. This makes their behavior more predictable when
you change the page count or when you place pre-configured reservations
(the "incols" database) in import areas.
* The product configuration screen "Request Checking"/"Comprobar
Solicitudes" has a new field "Show Strippable Ads in Strippable Color"/
"Mostrar avisos tirables en color de aviso STRIPPABLE" to control the
color of strippable ads on the page preview screen. ClassPag shows
strippable ads in the strippable color if this field is Y or if both
this field is empty and the Ad Colors table contains an entry for the
STRIPPABLE context. Otherwise, ClassPag shows strippable ads in the
color of their class.
* When ClassPag builds class index items in banners, if the current
product does not contains a entry the class in the class database,
ClassPag now tries the alternate product for class names.
* Updated setup.sh to set XFontSize for 1440x900 Linux console displays.
2/8/08
Version 6.61
* ClassPag now passes more information to CP2O in prolog comments.
SCSIncludeFields and SCSIncludeNeeded lines have the four new items:
AdType, AutoSegmented, ScaleWidth and ScaleDepth.
AdType is a one to three letter abbreviation of the ad type.
Common values are BAN for banners, CLS for class headers,
D for display ads. DFL for display fillers, AGA for agate ads,
FIL for agate fillers, and REQ for square-off banners.
AutoSegmented is NO for normal ads and AUTOSEG for autosegmented ads
(long ads that ClassPag has wrapped).
ScaleWidth and ScaleDepth are NOSCALE, LIMITEDSCALE, or UNLIMITEDSCALE.
These fields advise CP2O what to do if the ad image does not match its
reservation. NOSCALE means to write the ad without attempting to resize it.
Some front-ends write all line ads with a bounding box with the size of
a page template instead of the size of the ad, so scaling the ads using
the bounding box will make them much too small.
LIMITEDSCALE means to scale according to the configured limits.
Most ads will are LIMITEDSCALE.
UNLIMITEDSCALE means to scale to any amount necessary to make the image
fit the reservation. Filler or banner that has been intentionally
stretched might use this option.
The ScaleWidth and ScaleDepth fields should reduce the amount of ClassPag
product configuration information that CP2O needs to worry about.
* Fixed a problem in output for CP2O where the ClassPag would scale the ad
width incorrectly on pages that were scaled through paper or spread entries.
* Included Bob's enhancements to the NN interface. Readnn has special
treatment of the RS1 command for NN product 1. Readnn now supports a
longer version of the DV command that can draw multiple rules. Readnn now
handles IP commands better when they have an first parameter of 0. Readnn
now handles new forms of the BP and SD commands. Each command can have a
color name instead of a grayscale percentage as its first argument.
For each command, the color name is translated into c,m,y,k,g colors by
looking up the color name in the configuration file /u/advision/cmykg.dat.
That file has one line for each named color. The line starts with the
color name, followed by five values from 0 to 100 representing cyan,
magenta, yellow, black, grayscale. The color name and values are
separated by one or more blanks. To specify that a color is a gray,
use 0 for c,m,y,k and the gray percentage for g, for example:
white 0 0 0 0 0
black 0 0 0 0 100
3/3/08
Version 6.62
* The product configuration field "Justify Last Column"/"Justificar Columna
Ultima" on the screen "Vertical Spacing Specifications"/"Especificaciones de
Espaciado Vertical" now has the additional values "RAISEALL" and "LOWERALL".
Both of these options produce ragged pages and do not apply any vertical
justification or place any fillers.
RAISEALL pushes the ads to the top of the page, while LOWERALL pushes
the ads to the bottom of the page.
These options can be useful in special purpose editions.
* ClassPag tries to avoid placing fillers below segmented ads.
When ClassPag scan columns, it now starts looking from the highest
multi-column ad instead of from the bottom. This fixes a problem
where ClassPag would not place fillers above square-offs that
contained segmented ads.
* When ClassPag uses line ads as fillers on the front page, it
now sets a larger limit for the number of ads to take per class.
* The purgecache.sh interface script now exits if the file system
is mounted with "noatime". Linux systems by default update the access
times of files whenever files are read. You can improve file system
performance by mounting with "relatime" (which updates the access time
only if the last access time for the file is earlier than the last
modification time) or with "noatime" (which does not update the access
time at all). Even with atime enabled, if you make regular backups,
the backups will modify the access time, and purgecache.sh will think
that all of the files are recently accessed and won't purge anything.
* Updated setup.sh to set XFontSize for 1680x1050 Linux console displays.
* Changed fixinc.ps to reset the color separation code before embedding logos.
This fixes a problem where the SII include_epsf procedure pops the dictionary
that contains color separation code.
* Fixed a problem with the page display when drawing grids where the
columns would not change if you switched to a different product.
3/17/08
Version 6.63
* Template (position T) and Page Number (position N) banners
now have options for placement on the first or last page.
Banner records have the new fields "Template Pages... O, F and L"/
"Pag Temp U, P y U". These fields correspond to the options in
the product configuration to specify folios on page one (O), on the
first page of the session (F), and on the last page of the session (L).
If the fields are empty, they default to all Y for Templates and to
the values from the product configuration for folios for Page Numbers.
You can use these values to create templates with different placement
conditions than folios. For example, even if you have folios that you
omit on the first page, you can now have a "classified continued on"
template on all but the last page.
* The "Edit Ad Data" function on the tool bar and in the display ad
and agate ad lists no longer requires reloading ads if you change
only the width or depth. This should save time for users of
interfaces that pass incorrect ad sizes.
* The Overprint field of the Paper database has a new value "S"
to disable overprinting in separations generated by ClassPag.
It works like the value "F", and in addition, it passes a parameter to
the separation prolog to request knock-outs for black on color plates.
Version 3.0 of Adobe's document 5002 "Encapsulated PostScript
File Format Specification" suggests that applications execute
"false setoverprint" before embedding EPS files. When the Overprint
field is "S" and ClassPag generates separations, ClassPag disables
overprinting even if an embedded EPS file executes "true setoverprint".
Some applications generate EPS that enables overprinting if they detect
that another application is trying to separate them.
* The color separation prolog now redefines currentoverprint
to return its current setting for overprinting.
* The color separation prolog now defines all of the configuration
parameters that it needs if they are not already defined.
This makes it easier to test ads outside of ClassPag.
* Updated the copyrights on reports to 2008.
* Fixed the command to go to a page with an ad.
* Fixed a problem locating ads in alternate ad directories where the
ad record would show the main ad directory if full path of the ad was
over 30 characters but still would have fit in the field (currently
50 characters). The ads would still show previews and print on pages.
3/14/08
Version 6.64
* When a square-off has a hole that satisfies the "Shrink Banner Overhang"/
"Entre cartel y fin de destacados" but the square-off does not contain a
banner of the width of the hole, ClassPag now places a full size banner
instead of not placing any banner.
* Eliminated the warning "Class headers should be type P" when opening
type W banners in Setup -> Banners.
* Added Bob's change to the NN interface to change the column width
from 27.33 mm to 78.77 points.
4/7/08
Version 6.65
* ClassPag now removes class headers around dragged ads in many
fewer cases if the page has locked line ads. This fixes problems
where locking the line ads on a page and then positioning a line
ad below a class header could sometimes make the header go away.
Also, if you drag an ad below a header of a different class,
ClassPag no longer removes the header so if you accidentally
drag an ad out of class and drag it back, you probably will
not need to reposition any headers.
* When a square-off has a box, if the square-off is at the bottom
of a page and does not have a bottom banner, ClassPag now draws the
bottom rule as it would if the bottom ads were all bottom banners.
Specify the distance of the rule from the ads with an ad configuration
entry with "Square-off" on the top, "Leading" on the bottom,
and a blank "Location".
* The command to change an ad type now allows conversions to
in-column display ads instead of only to agate or display ads.
Changing an ad to an in-column display ad provides an easy
way to make it first in its classification.
* maketarw.sh now works better on Solaris. It now extracts
the control record using awk if gnu grep is not installed.
* Fixed a problem in products that do not place class headers over display
ads where ClassPag would sometimes place class headers over display ads if
you dragged ads on page with locked line ads sitting on a display ad.
4/10/08
Version 6.66
* The elpdir option to the mapclass interface now does no remapping
of class numbers and now loads parent class numbers from clasier.
* mapclass with the ELP interface now shows an option to read
the ad text and write a sort and eps in one step.
The menu no longer shows the option to create the PCC, sort and eps
from loaded text.
* Added more Spanish translations to mapclass.
* Fixed a problem where dragging an ad with a request for a named page
or square-off could lock pages towards the front if there were
unused square-offs.
4/14/08
Version 6.67
* When you run Cmd -> Ads -> Edit Ad Data on the second half of a
double truck ad, ClassPag now shows a message with the name of
first half instead of saying that that the current ad does not exist.
* ClassPag now generates PageOrientation comments at the start
of each page.
* ClassPag now generates default ViewingOrientation comments.
4/23/08
Version 6.68
* The "Default Spread" field of the "Paper Definition" form
now validates the spread name, and the list key now opens
a list of spreads.
* The class list when you start a pagination session has
a new tool bar button to recalculate the class areas.
If you change the class structure manually, you can use
this button to recalculate the class areas.
The areas are only for displaying on the screen and
do not affect pagination.
* The "Ads" menu of the pagination statistics screen
and the "Cmd -> Ads" menu of the page display have
a new to view the list of classes.
The list contains all classes in the sort file in order
by class number. For each class, it shows the total area,
the parent class, and whether the class contains headers or ads.
You can use this window to review the classes that were
passed to ClassPag.
* ClassPag now shows line ads that have been dragged out
of class as conflicts in more situations.
* ClassPag no longer removes unnecessary class headers after drags on pages
with locked line ads. This fixes problems where dragging an ad out of place
could cause ClassPag to remove headers that can be tricky to restore.
* ClassPag now shows Spread entries for CP2O only for Paper entries that submit
files to CP2O. This should help prevent sending pages to the wrong place.
In particular, ClassPag now shows Spread entries with "Show Missing Images"
as "INC" only when you select a Paper entry that maps to a Printer entry
with a print command containing "cpo_submit".
* The CLA interface has a new command for embedding logos.
The syntax is <foto/name/xscale/yscale/width/depth/justify>
foto is the name of the command.
name is the name of a logo file (without a path or the .eps extension).
xscale and yscale are scale percentages where 100 means full size.
width and depth are the size to display logo in points.
If width or depth is set, they override the corresponding scale percentage.
justify is L or I for left justification, R or D for right justification,
and C to center.
The default is xscale and yscale 100, width and depth 0, justify C.
Here are some examples:
Show a logo centered at its normal size
<foto/m2>
Show a logo at twice its normal size at the left of the column
<foto/m2/200/200/0/0/L>
Show a centered logo scaled to 50 points wide and 100 points deep
<foto/m2/0/0/50/100/c>
Show a logo scaled to 60 points deep and the width scaled in proportion
<foto/m2/0/0/0/60/c>
* Included Bob's change to the STU interface to ignore the gh command found
before gc (logo) commands, improve the handling of ads that contain only logos,
and fix a parameter problem with the ts command.
* The mapclass interface script now clears the composition format
cache before viewing an ad and before the option that composes
all ads. If you change a format, even from another session,
you can now view an ad and see the changes immediately.
* The useradd interface script now tries group "cpag" before
other more generic groups like "tools" and "scs".
* The useradd interface script now searches for the first
free user id if the default id for the user is in use.
5/1/08
Version 6.69
* ClassPag now ignores requests for page 0 ("0" in the page request
field at columns 56-59 in the sort file).
This fixes a problem where ClassPag did not autowrap agate ads with
extended sort file attributes if they had a page request of " 0".
Some interfaces send empty requests as a "0" instead of as an blank string.
* When you try to exit the class nesting list but the configuration
requires a selection, ClassPag now includes the name of the default
nesting in the warning that you must choose an entry.
This makes it easier to load the correct nesting if you accidentally
answer "no" to the initial dialog to load the default nesting.
* setup.sh now sets SCS_ALL_ROOT to /u/scs if it is not set.
This fixes a problem with composition help with old tools distributions.
* Improved the number of pages that ClassPag allocates when opening
a square-off with multi-column line ads. This fixes a problem where
ClassPag would underestimate the area and generate overflow pages.
* Fixed a problem where ClassPag could place class headers shifted by
a column when paginating classes with wide liners and wide class headers.
5/13/08
Version 6.70
* When ClassPag unflows ads, it no longer shifts one-column primary
(type "P") banners to the bottom stack. This fixes a problem where
one-column banners would sometimes drop to the bottom of the page
when you moved ads.
* When you drag a filler near a square-off, ClassPag is now more
careful about assigning the filler to the square-off. This fixes
a problem where a full page filler dragged below a partial-page
square-off would become attached to the square-off.
If the filler has no ads from the square-off below it and has at least
one empty column above it or has at least two columns not covered by ads
in the square-off, ClassPag will not assign the filler to the square-off.
5/29/08
Version 6.71
* Changed the internal name of the "fillstats" database from RunStats to
FillStats. This fixes a problem where the database did not show in SpiceRAQ.
You should rerun loadspiceraq.sh if you want to write reports from
this database.
* The rebuild.sh script has a new -h option to ignore changes to the database
name. Normally the spice update program will reject transactions that do not
match the database name.
* The loaddb.sh script, which loadtape.sh uses to convert databases when
you load a new version of ClassPag, now runs the spice update program with
an option to ignore differences in the database name when it rebuilds the
fillstats database. This should prevent loss of filler statistics when
you upgrade to this or later releases.
* Increased readnn BUF_LEN from 100K to 1M and LINE_LEN from 10K to 500K.
This should allow much longer ads, especially in the SA format where
the entire galley file is a single line.
* readnn works better when reading galley files passed on the command line.
It used to process files on the command line before initializing itself.
readnn now calls the initialization routines before loading files from
the command line, and the initialization routines now check if they have
already been called.
8/6/08
Version 6.72
* The Class Translation window has a new option to copy translation tables
from another product. The dialog to copy classes now has four options.
No = do not copy anything (same as before)
Copy New = copy translations for target classes that do not currently
have translations (same as before)
Update = update translations for target classes. If a target class
already has a translation, this option will update the source classes.
(same as the old Copy All option)
Copy All = update all translations. If a target class has several
translation entries, this option will copy or update all of them.
(this is new)
If you map at most one range of source classes to a given target class,
you should use "Copy New" or "Update".
If you map several ranges of source classes to a given target class,
you should use "Copy All".
* The "Copy All" and "Remove old records" options under
Setup -> Product Config, Expert now process the class translations
and the key translations.
* Added a launchcpag.sh script for starting ClassPag sessions over ssh from
workstations running MacOS X, Linux or Solaris. The options are below.
-p = open an xterm for ssh prompts
-u name = set the user name [default is the current user]
-s server = set the server name [default is localhost]
-x xterm-command = set the xterm command
-xs = set an xterm command for Solaris, same as -x /usr/X11R6/bin/xterm
-xs8 = set an xterm command for Solaris 8, same as -x /usr/bin/X11/xterm
-xl = set an xterm command for Linux, same as -x /usr/bin/xterm
-b = run the command with bash
-c command = set the command [default is /u/cpag/menprof.sh]
-C yes/no = set the ssh compression [default is yes]
-r = reset the font path with "xset fp default fp+ tcp/server:7100"
-k = keep the current font path [default]
-h = show this help message
For example, to start a session on a Solaris server, you could run
launchcpag.sh -s cpag@sun -xs
which will try to connect through the command
ssh -X -C -oStrictHostKeyChecking=no -l cpag sun /usr/X11R6/bin/xterm -e /u/cpag/menprof.sh
You will need to set the location of xterm on the remote server through
-x, -xs, -xs8, or -xl.
If the remote account uses Bourne shell, you might need the -b option.
If you have several ClassPag directories or if you want to specify
ClassPag options, you can use the -c option, for example,
launchcpag.sh -s cpag@sun -xs -c "/u/cpagtest/menprof.sh wide"
If enter the script as a desktop icon on MacOS X or Linux,
you will probably need the -p option so that ssh has a place
to prompt for a password.
If the ssh connection fails and if the ssh known_hosts file contains
an entry for the remote server, launchcpag.sh removes the line for the
server from known_hosts and tries ssh again. This allows the script
to connect to a shared address after a server fail-over.
* Fixed a problem where ClassPag would not always places as many agate ads
as possible in classes where the class header and superheader were the same.
NOTE: To use the new list filtering features in spice, you must upgrade
to a version of the SCS tools from August 4, 2008, or later.
NOTE2: The quit button at the upper left of the tool bar in page display
changed to /u/scs/tools/icon/quit.xxm. If the button appears blank, install
quit.xxm or update your SCS tools to a version from July 9, 2008, or later.
8/25/08
Version 6.73
* The paste lists of display ads, line ads, unpositioned ads, banners, banner
images, and fillers now have scrollable fields to show more information.
This should be useful for sorting and for writing custom list filters.
* The justification option to raise all ads now works better on pages with
banners when the banner is on the bottom stack. If a column had extra space,
this option would sometimes leave the space below the banner, but if the ads
below the banner are all one column wide, it now leaves the space below the
bottom ad.
* Fixed a problem where the option to justify the last column would set the
value correctly but sometimes show it as Justify instead of Raise or Lower.
* Fixed a problem where square-offs with all one-column ads positioned
from the top would drop to the bottom of the page when you unflowed ads.
9/4/08
Version 6.74
* Fixed a problem where ClassPag would check start requests of subclasses
of classes in square-offs when it reached the point where the subclasses
would flow if the square-off was not active. This could have caused
empty columns or an empty overflow page, depending on the position of
the class. ClassPag currently checks start requests only for front-to-back
pagination and only when flow ads normally.
* Fixed a problem where the page display would show ad text over preview
images even when the product configuration field "Show Ad Preview Images"
on the "Screen Display Preferences" dialog was set to "I".
9/14/08
Version 6.75
* ClassPag now has a command under "Pages->View page dummies" to view
page dummies with PGLAdBoss (when PGLAdBoss is installed).
* On the wide screen display, you can no longer accidentally close the
ad information dialog.
* The banner setup window now has scrollable fields to show more information.
* The unit setup window has a new field "Warn if Changed"/"Avisar si Cambiado"
to control whether ClassPag warns if you change a unit conversion value from
known default values compiled into ClassPag. The default value is "Y"
to warn if you change values. In addition, even if the field is "N",
ClassPag continues to warn about the units centipoint, cm, inch,
kilopoint, mm, pica, point, and pspoint.
This allows you to set custom values of units like lines without
receiving warnings each time that you open the unit setup window.
* The conversion value in the unit setup window is now a fixed point field
with 6 digits, a decimal point, and 12 digits. It used to be a flointing
point field with 16 characters. This fixes a problem where the check in
ClassPag to reset unit conversion values could drop the decimal places.
Note that when you update to this version, the loadtape script will show
a warning due to the reformatting of the fields.
10/1/08
Version 6.76
* Fixed a problem where ClassPag complained on systems with node names
longer than 20 characters.
10/3/08
Version 6.77
* Included Chris' change to run CP2O with the --override option to override
mirror status tests.
10/7/08
Version 6.78
* ClassPag now supports a user-definable filler class for interfaces that
send fillers as normal ads. The product configuration screen "Ad and Class
Conversions (continued)"/"Conversion de avisos y clases (continuado)" has
new fields "Filler class"/"Clase de rellenos", "Load filler class as agate
fillers"/"Cargar clase de rellenos como rell. agate", "display fillers"/
"rell. dest." and "as type"/"tipo".
The filler class is a special class dedicated to fillers. ClassPag
will not place any line ads or display ads in this class or any class.
Also, this class should not contain any subclasses.
Instead of placing line ads and display ads in the filler class,
ClassPag converts them to generic fillers when it imports ads.
The remaining fields control how ClassPag converts ads.
Set "Load filler class as agate fillers" to create agate fillers
from all of the agate and display ads in the filler class.
Set "Load filler class as display fillers" to create display fillers
from all of the agate and display ads in the filler class.
Set "Load filler class as type" to create aagate fillers from
agate ads and display fillers from display ads.
If two or more of the load options are enabled, ClassPag will add
"A" and "D" suffixes to the ad numbers to ensure unique names for
agate and display fillers created from the same ad.
* Improved the MAC auto-segmentation type. With this segmentation type,
ClassPag parses both the postscript code and LongLiner comments.
ClassPag used to skip break points on indented lines, but now it takes
them if a LongLiner comment has the same break point. This produces
better results on ads with long sequences of short, centered lines.
* Fixed a problem where the ClassPag import would sometimes report
duplicate ads as errors instead of as duplicates.
10/9/08
Version 6.79
* Macro expressions can now access the first page of any ad of a class.
To find the first page, set the string variable O_CPagCurrentScope to
the name of the class and then read the value of the numeric variable
I_CPagScopeFirstPageNum. To find the page of the first agate ad (or the
first display ad for classes with no agate ads), read the value of
I_CPagScopePageNum instead. After reading either of these variables,
the string variable I_CPagBookName and the numeric variable
I_CPagBookPageNum will contain the section and section-relative page
number, and the numeric variable I_CPagScopeColNum will contain the
column number on the page (where 1 is the leftmost column).
I_CPagScopeFirstPageNum is new, while the other variables have been
present for internal use.
For example, in an index style, to show the page of the first line ad, use
ClassName // " STARTS ON PAGE " // BookPageNumber
or the equivalent
O_CPagCurrentScope := ClassName; I_CPagScopePageNum;
ClassName // " STARTS ON PAGE " // I_CPagBookPageNum
To show the page of the first line ad or display ad, use
O_CPagCurrentScope := ClassName; I_CPagScopeFirstPageNum;
ClassName // " STARTS ON PAGE " // I_CPagBookPageNum
Note that when a macro expression contains several statements
(separated by semi-colons or commas), the expression interpreter
evaluates all of the statements and returns the value of the
last statement.
10/15/08
Version 6.80
* The product configuration field "Convert all display ads to line ads"
on the screen "Display Ad Specifications (Continued)" has a new value
of "2" to convert both one and two column display ads to agate ads.
* The "Type" field in the ad information block at the upper right of
the page display now shows both the original type and the pagination
type if they are different. For example, if the product configuration
is set to convert all display ads to agate ads, the "Type" field used
to say "DISPLAY_AD" but it now says "DISPLAY_AD/AGATE_AD" to show that
the current ad was a display ad in the sort file but ClassPag is
paginating it like an agate ad.
* When ClassPag is configured to create class headers for every class,
if a class has multi-column agate ads but no single-column agate ads,
ClassPag creates a class header of the smallest width of the agate ads.
* Fixed an ad size calculation when ClassPag was configured
to create headers for every class.
10/21/08
Version 6.81
* The product configuration field "Check gutter columns"/"Comprobar medianiles"
on the screen "Request Checking"/"Comprobar Solicitudes" now checks line ads
in addition to display ads. If the field is set, ClassPag will not flow
class headers or liners into gutter columns. This can be useful when
double truck gutter columns are smaller than normal columns and can not
hold normal ads.
* When ClassPag sends a grayscale page (Separation Type of GRAY) to CP2O,
it now appends "+gray" to the "%%SCSIncludeOptions" comment. When CP2O
sees this flag, it should leave the %%DocumentProcessColors comment set
to Black.
* The PhysicalPage attribute of XML page reports now contains the folio page
(the equivalent of BookName // " " // BookPageNumber) instead of the absolute
page number (the equivalent of PageNumber). Both the PhysicalPage and the
LogicalPage used to contain the absolute page number. For example, if the
pagination session was pages 25 to 30 and you used Set Book Sizes to map
page 25 to page C-3, the second page of the session used to have both
PhysicalPage and LogicalPage set to "26", but now PhysicalPage will be
"C 4" while LogicalPage will remain "26".
* Reduced the size of the Paper Definition form so that it no longer
overlaps the paper selection list.
* The product configuration field "Place if no ads in class" is enabled
to place all class headers, if a column starts with several class headers,
ClassPag no longer removes the top class header if it is incompatible with
the header below it.
11/20/08
Version 6.82
* ClassPag has an improved procedure for loading edition-specific
fillers. In the "Load" menu in the "View ad directories" window, if you
set the edition, ClassPag asks if you want to append the edition id.
If you say "yes" and then load eps files as agate or display fillers,
ClassPag appends an underscore and the edition id to the filler name.
* Setup -> Log Files now shows only the entries that exist on the current
system. For example, Linux and Solaris systems no longer show an entry
to run the SCO-specific utility u386mon.
* Fixed a problem where creating a filler from a gif with the "Load"
option in "View Ad Directories" could leave temporary files in the
cache directory if the gif contained more than one image.
12/2/08
Version 6.83
* ClassPag can now wrap long line ads created by APT.
The "Auto Segment Ads" field on the "Legal and Segmented Ad Specifications"
screen of the product configuration has a new value "PDF" for line ads
passed as external PDF files.
* The Cmd -> Lock menu in the pagination display has new options
to mark all even or odd pages. This can be useful when printing
tabloid publications when even and odd pages need different treatment.
12/10/08
Version 6.84
* ClassPag can now import sort files in APT tab-delimited format.
If a sort file starts PPS<tab> instead of PPS<space>, ClassPag
automatically converts it from tabbed format to fixed format.
1/19/09
Version 6.85
* The product configuration screen "Outext Export"/"Exportar de outext"
has three new fields "Lines per ad record"/"Lineas por entrada",
"Insertion id"/"Insersion" and "Card numbers"/"Numeros de lineas".
"Lines per ad record" sets the number of card records per ad. It can be
4 to 9 and defaults to 4. ClassPag writes the fifth and following cards
blank-filled to 80 characters. ClassPag writes the number of cards per
record in the outext header, so applications that check the outext
header should be able to read outext files with any number of cards
per record. This field can be useful when interfacing to applications
that require a fixed number of cards per record.
If "Insertion id" is "Y", ClassPag writes the insertion id in columns
1-12 of card 6. The default value of "N" leaves card 6 blank.
This field has has an effect only if "lines per ad record" is 6 or higher.
If "Card numbers" is "Y", ClassPag writes the card number in column 80
of all cards except the header and the first card of each record.
Layout-8000 merge files contain card numbers, and some applications
depend the card numbers. The default value of "N" does not write
card numbers.
To create an outext with a format similar to a Layout-8000 merge file,
set "lines per ad record" to 7 and "card numbers" to "Y".
* Increased the maximum lines per records of interface "outext" test
program from 6 to 9.
* Fixed the text strings for record type codes in the interface "outext"
test program.
* ClassPag no longer adds the depth adjustment to initial and middle
segments of segmented ads.
* Includes Bob's update for importing tab-delimited interface files.
The depth field for agate ad lines is now interpreted as being in 1000ths
of an inch instead of 100ths of a point.
If the classification name for an ad in the tab-delimited display ads
file is empty or all blanks, we now use classification 000 for that ad.
1/26/09
Version 6.86
* Added a new makenwk.sh interface script. The script copies
eps files to /u/agateads and runs the imp file through readnwk.
For this interface, in the product configuration, set the CopyCommand to
"call CopyImportFiles" and the ImportCommand to "$CPAG_INT/makenwk.sh".
* The readnwk interface program now removes -## extensions from eps
file names of display ads.
* The readnwk interface program now sets the run date from the dump
file name if the file name has the format "YYYYMMDD.imp".
* The listdirs.sh script has a new -i option to scan for YYYYMMDD.imp files.
* The product configuration screen "Ad Loading"/"Cargar de Avisos" has a new
field "Check extra files... IMP"/"Leer archivos... IMP" to scan for imp
files in import directories. The files should have a name with the format
"YYYYMMDD.imp" where YYYYMMDD is a zero-filled date and the "imp" extension
is in lower case. These files should be text files in a format parsable
by the readnwk interface profile. When this option is set and you run
Import->Read, if an import directory has no sort file, ClassPag will
try to find the run date from imp files. Also, when ClassPag copies
a work area, it will copy files with the extension imp.
* The product configuration screen "Outext Export"/"Exportar de outext"
has a new field "blank fill page number"/"Rellenar pag. con espacios"
to blank fill the page number fields on card 4 of the outext in
columns 0-2, 5-7 and 76-78. The default is zero filled.
2/2/09
Version 6.87
* ClassPag now supports batch loading of agate and display fillers from
a command line. This can be useful in cron jobs that update fillers.
The sytnax of the script is
loadfillers.sh
-c to show a log
-delete ( yes | no ) to control whether the script deletes old fillers
-type ( agate | display | both ) to set the type of fillers to create
-dir <directory> to set the directory
-edition <edition> to set the edition
-class <class> to set the class
-product <product> to set the product
The options -type, -dir and -product are required.
For example, the command below loads all eps files in /u/fillers as
display fillers in product SCS1.
/u/cpag/loadfillers.sh -type display -dir /u/fillers -product SCS1 -delete yes
* ClassPag can now sort import directories in reverse order by name.
The fields "Directory sort order for... Import"/"Ordenar directorios
para... importar", "Copy/copiar" and "Save/guardar" on the "Ad Importing"/
"Importacion de Avisos" screen of the product configuration have a new
possible value "RDIR" to show the directory list in reverse order by
directory name. This can be useful in "Copy" when the save area start
with "Z".
* When ClassPag finds several *.imp files in an import directory,
the Import->Read and Import->Copy lists now show the date of the
most recent file instead of the date of the oldest file.
* Improved "MAC" auto-segmentation for Mactive ads.
It now supports ads that do not have LongLiner comments.
* Improved pagination of segmented ads. When ClassPag can not
fill a column with a complete ad, it now starts a segmented ad
in places where it previously left space in the column.
* cpag has a new -a command line option to run in batch mode.
NOTE: The changes for paginating segmented ads should be tested.
2/4/09
Version 6.88
* The product configuration screen "Outext Export"/"Exportar de outext"
has a new field "Exchange page numbers"/"Intercambiar numeros" to
exchange the absolute and relative page numbers in card 4 of the outext.
If this field is "Y", ClassPag writes the relative page number
in columns 0-2 and the absolute page number in columns 5-7.
This can be useful if you will scatter the classified pages and you
have used "Set book sizes" to assign each page to the absolute page
where it was dummied. In this case, the "book sizes" page number,
which ClassPag usually considers the relative page number,
is actually the absolute page number.
* Removed a win_init warning when cpag is started in batch mode.
* Included Bob's update to the STU interface.
If two consecutive ads had the same classification number,
the second ad was getting the same classification as the first,
even if the two ads had different two-letter suffixes.
2/5/09
Version 6.89
* The "Edit ad" tool bar button and "Cmd -> Ads -> Edit the ad data"
now allow you to modify agate fillers and display fillers.
The filler must be in your current product and not copied from
another product through the "Default Products" screen of the
product configuration. You must have privileges to modify fillers,
and you should keep in mind that you are changing the product and
not just your current work area.
* The "Edit ad" tool bar button and "Cmd -> Ads -> Edit the ad data"
now allow you to modify page reservations. If the current ad
is a reserve filler or a leading filler, ClassPag opens a
window to modify the column reservations for the current page.
* When ClassPag imports a tab-delimited sort file, it looks
for additional display ads in a cd.txt file. ClassPag can
now handle cd.txt files that have no initial header line
and that contain blank lines.
2/6/09
Version 6.90
* The product configuration screen "Ad and Class Conversions (continued)"/
"Conversion de avisos y clases (continuado)" has a new field
"Classes are unselected by default"/"Clases son no seleccionado por defecto"
to determine how ClassPag treats classifications when the "Selected" field
(column 103 of the sort file) is empty. ClassPag normally skips classes
only if their selected flag is "F" or "Q". When the new product
configuration parameter is set to "Y", ClassPag also skips classes
if their selection flag is a space.
* The classification selection window now shows classes with a blank
"Selected" field according to the "Classes are unselected by default"
product configuration parameter. It used to show classes with blank
values as unselected even though the pagination engine would place them.
* The readnwk interface now treats ads marked as display ads
(a "D" in column 75) as agate ads if they have an eps file name.
* Updated the copyrights on reports to 2009.
2/11/09
Version 6.91
* The product configuration screen "Legal and Segmented Ad Specifications"/
"Especificaciones de Avisos Legales y Segmentados" has a new field "Can
Cross Pages"/"Cruzar Paginas" to control how ClassPag places segmented ads.
The default value of "Y" allows ClassPag to flow segmented ads from one page
to another as before. The value of "N" tells ClassPag to try to avoid
flowing segmented ads across pages. This can be useful when you will not
place classified pages on consecutive pages.
* The page reservation window has a new command that opens a dialog to
reserve a box. The command has an option to reserve a box or to reserve
everything except a box. The command also has an option to clear the
current reservations on the page. This command makes it easier to
to create partial classified pages.
* The page reservation window has a new command to remove all of the
reservations for a page.
* The page reservation window now has a tool bar.
* Fixed a problem where reloading ads would not work from inside a
square-off view.
2/23/09
Version 6.92
* ClassPag now writes a "%%SCSUserName: <username>" CP2O comment
with the login name of the current user. This can help identify
the source of a file.
* ClassPag now writes all CP2O comments except the ones starting
"%%SCSInclude" in all pages. These comments provide information
about the page and the user who submitted the page and can help
identify the source page pages.
* When the product configuration requests placing parent headers at
the tops of columns, ClassPag now places the parent headers in more
places than before. When you drag display ads, ClassPag will place
both the parent header and the class header when they are present.
When a banner is at the top of a page and the product configuration
requests placing headers below banners, ClassPag will place parent
headers below the banner as if it were placing headers at the top
of a column unless the banner has the same class as the heads.
* When the product configuration requests placing parent headers
at tops of columns, ClassPag would sometimes not find copy headers
that were entered as banners.
* Fixed a problem where ClassPag would sometimes flow a class header
under a manually-placed wide class header of the same class.
* When ClassPag searches for *.imp files to import, it now accepts
the extension in any mixture of upper and lower case. This helps
to avoid problems if the import files are made on an operating
system that does not distinguish upper and lower case in file names.
NOTE: The changes for placing parent headers needs careful testing.
2/25/09
Version 6.93
* The product configuration field "Place over display ads"/"Colocar encima
de destacados" on the screen "Classified Heading Placement"/"Ubicacion de
Encabezados de Clasificaciones" has a new value "P" to place both parent
and main headers over display ads.
* Improved the placement of class headers when ads are dragged
on the top of the page.
2/27/09
Version 6.94
* Improved the names of some of the box information fields.
"PageName" is now "PageReq" because it shows the value in the
page request field of the sort file.
"PageReq" now shows its value in red if the ad is not on the
page that it requested.
"PageReq", "ColReq", and "PosReq" are now "PlcPage", "PlcCol",
and "PlcReq" because they show where the ad was placed and not
what the ad requested.
If the ad is not on the page that it requested, "PlcPage" shows
its value in red and it shows the desired page in parentheses.
If the ad is not on the column that it requested, "PlcCol" shows
its value in red and it shows the desired column in parentheses.
The "Reason" value "Page Request" now shows as "Manual Placement"
because that is what it really is. The difference between old
"Page Request"/new "Manual Placement" and the still possible "Manual"
is that "Page Request"/"Manual Placement" means that you placed the
ad in an earlier session or earlier in this session, while "Manual"
means that you just dragged the ad and have not yet paginated.
These changes show ad information more accurately rather changing
any ClassPag internals. Showing the ad's current position instead
of its requested position in "PageReq" and showing manual placements
as "Page Request" were particularly misleading. If you open an old save
area with this version of ClassPag, it will show the new information.
* Increased the maximum number of additional ad information lines in
the box information window from 20 to 25.
3/3/09
Version 6.95
* Fixed a problem where if you used one of the commands to remove all
of the ads from a page, the paste list of removed ads would not show
the zones.
* Includes the initial version of Bob's NWG interface.
3/11/09
Version 6.96
* The makenwk.sh script has new options -xml, -xmlt, and -xmlb.
The three options tell makenwk.sh to check for an xml file and
to run mapclass if one is present.
-xmlt runs mapclass with "nwg -M re -P t".
-xmlb runs mapclass with "nwg -M re -P b".
With all three options, makenwk.sh adds any other parameter
that it does not support to the mapclass command line.
For example, -xmlt is equivalent to "-xml nwg -M re -P b".
This provides full control over the mapclass command line.
* When makenwk.sh runs with any of the xml options, it checks
for both xml and imp files. It can process directories that
contain only an xml file, only an imp file, or both an xml
and an imp file. When both files exist, makenwk.sh processes
them both and then merges the sort and eps files.
* makenwk.sh and makenwg.sh now look for xml files with the same
yyyymmdd.xml naming convention as makenwk.sh uses for imp files.
If they do not find an xml file, they revert to newark.xml.
* The NWG interface now stores its image cache in root/images instead
of interface/images. The interface directory should contain only
scripts and compiled files that are part of ClassPag release.
* The NWG interface requires the logos NWGHouse.eps and NWGCamera.eps,
the setup file /u/newark/cities.csv, and the pattern files /u/newark/patterns.
These files are not included in ClassPag releases.
* makenwg.sh now writes to junkg.log instead of junk.log so that it
does not interfere with makenwk.sh.
* The NWG interface now caches images in /u/newark/images.
* Included Bob's updates to the NWG interface.
* Synchronized pagmod with spice.
NOTE: The NWG interface requires a version of the tools from Mar 11, 2009,
or later.
3/17/09
Version 6.97
* Included Bob's updates to the NWG interface.
ClassPag now includes top level patterns in $CPAG_INT/interface/patterns.
The readnwg program copies all .ptn files to /u/newark/patterns, runs
the .ftx files through comp2txt -i to create additional .ptn files in
/u/newark/patterns, and copies any .cfg file that is not already there
to /u/newark. Then it runs the "gen" patterns using the .cfg files to
create generated patterns in /u/newark/patterns.
The readnwg interface program processes .ptn files by passing them through
the macro preprocessor and pattern processor to create composition text
for the ads. The .ptn source files only #include other files.
The .ftx files are also composition format patterns. To make them
easier to manage, they are in a text format created by translating comp
marks and mode characters to ascii text, using the new program comp2txt
in composition. The readnwg program runs them through comp2txt -i.
The -i option reverses the transformation to convert ascii text back
into composition. comp2txt currently converts open comp to <^, close
comp to ^>, and PCH_MODE to %#.
Two of the .ftx files are used as patterns. The files with "gen" in the
name are used to generate patterns by filling in values from .cfg files.
The .cfg files contain specifications that allow the site to configure
various aspects of the appearance of the ads. The readnwg program uses
the .cfg files and "gen" patterns to generate the pattern files that are
included by the .ptn files. The .cfg files are included as source only
as defaults to use if the site doesn't create their own configuration.
* Reduced the number of times that ClassPag reads the pages and columns
databases. This slightly reduces the load on ClassPag servers.
* Fixed a problem where the page display would not always immediately
show changes to the number of columns on a page with no ads.
NOTE: The NWG interface requires the comp2txt program which is in the
composition module in versions of the tools from Mar 16, 2009, or later.
3/24/09
Version 6.98
* Fixed a problem where ClassPag would not flow class headers under
reservations, even if the "Omit under reservations" configuration
parameter was "N".
* Fixed a problem where ClassPag could leave some one-column display ads
unplaced when "place display ads first" and "flow one column display ads"
were both enabled.
3/30/09
Version 6.99
* rcpuniq.sh now supports scp. Some operating systems have
replaced rsh and rcp with ssh and scp to increase security.
Use the -scp option to use scp instead of rcp.
The -scp option has two other new options.
Use -preserve with -scp to preserve the modification times,
permissions and owner (through scp -p).
Use -compress with -scp to enable compression (through scp -C).
Compression might improve the performance with large files
if you have a fast CPU or a slow network.
Here is an example command to send cpag.ps to /spool/in/cpag1.ps on rip1:
rcpuniq.sh -scp -compress -name cpag1.ps rip1:/spool/in cpag.ps
The script "$TOOLS/rsa_setup.sh" can create the files that you need to run
scp without prompting for a password. It creates the files ~/.ssh/id_rsa
and ~/.ssh/id_rsa.pub on the source server and ~/.ssh/authorized_keys2
on the destination server.
* "Import Ads -> Read ClassPag Files" now switches sooner to the product
of the import directory so that the copy uses the product configuration
settings of the new area instead of the current area. For example,
this ensures that ClassPag uses the correct set of file extensions.
On the "Ad Loading" product configuration screen, if the current area
has no "Copy Command" and has an "Import Command" that starts with "CALL",
and if the new area has a "Copy Command" that starts with "CALL",
ClassPag now runs the "Import Command" of the new area after the copy.
This ensures that ClassPag runs the import command if you switch from
a product that needs only a copy command to a product that needs both
a copy command and an import command.
These changes allow you to import from a different product without
first using "Select Product".
* Included Bob's NWG interface updates with new patterns and better
treatment of missing price or price-per-square-foot attributes.
The interface now strips newlines from node values (except for
the ad-content value) to handle empty open/close tags better.
nwkimage.sh now adds "-density 72" to the convert commands.
* Synchronized with the spice page display module.
Comments
0 comments
Please sign in to leave a comment.