ipsetter This program processes files in a funny SGML-like feed into a native setter code - actually it is very simple markup language. It loops around a queue, when a file arrives it processes it into the codes and works out width and depth. It passes the file onto the next stage which can either be directly to the setter or a holding queue for later inclusion into a page or block. The device file, tables/form/SETTER, is used to define fonts and character widths. The current version supports PostScript only. FIP Header fields in the incoming file are searched for : FK: Sort key - used generally by the User Interface 'form' for collecting and collating many files that have been processed individually previously - like election results for example. FN: File name of the output file if different from the incoming file. This name is Overwritten by the Sort Key if there is one. SN: Name of data file. This can be either the SN field or the actual filename if there is NO FipHdr or Fip-style filename. FQ: Output queue for PostScript file. This defaults to spool/setit. FU: Destination for output file. Generally if a destination is to be added, the file also need to be sent to 'spool/2go' for IPWHEEL to redistribute - use FQ for this ie : #FN:newname#FU:nextstep#FQ:2go#etc where 'nextstep' is a valid destination in the USERS file. FCR: Should CR, NL (LF) be thought of as quads ? Normally yes ! Add 'FCR:' to the Fip Hdr of the incoming file and all CRs and NLs are ignored and a quad is ONLY the Quad command <q:?> (where ? is l, c or r). FP: Page number to start with - for books and documents only. This can be changed with the 'newFP' parameter in the SETPAGE file eg if you want to use PV newFP:PV FH: name of PS HEADER file in tables/form/postscript if NOT the -h input option or, failing that, the default (PSHDR). To specify NO header file use a null parameter eg #SH:bigpage#FH:#FP:99# FEC: name of a file containing extra PS Comments to add before the %%EndComments. The default is none. FAC1: name of a file containing PS commands to add after the %%EndComments and BEFORE the PSHDR. The default is none. FAC1: to FAC9: are available. FM: USER file to include after PSHDR header file and before main body of the text. This overrides the -u input option whether it has been specified or not. The file should be pure PostScript and be in tables/form/postscript. FM is case-sensitive. FAM1: After USERS file to include after the USERS file.! Same conditions exists as for FM: FAM1: to FAM9: are available. FT: name of PS TRAILER file in tables/form/postscript if NOT the -t input parameter or, if no -t, the default (PSTLR). To specify NO header file use a null parameter eg #SH:lilpage#FH:#FM:#FT:# FF: Use the normal font on the setter or use a reencoded one which will be supplied in the PS HEADER file. Default is use the normal font with the name supplied. Options are : FF:yes Use normal font FF:no Use Encoded font as defined by CMP array in the PSHEADER. FF:small Use the Small changes to the font as defined in the FipSmallVec and called by FipReEncodeSmall in the PS HEADER. FZ: Name of SETTER file to use if not the default in tables/form FA: Name of SETPAGE file to use if not the default in tables/form FG: FG:block Set <b> to Block-is-group as default for this job only. FG:colhdr Set <b> to Block-is-column-header as default for this job only. This overrides the -G Input switch for this job or the default. FBBOX-ONLY: Only write the PostScript Header with Bounding Box as output This option does NOT write any data from the file. FBBOX-MULTIPLIER: (number) When the PSHDR etc are read, the 4 values of the Bounding Box are available as FipHdr fields F0 to F3. This will generate 4 new FipHdrs F4 to F7 which will be the F0 - F3 multiplied by this number. Use this with FMETA* to create booking/billing records in millimetres for example : FBBOX-MULTIPLIER:3.5277 FBBOX: Override the calculated bounding box with these values There MUST be 4 values - just like %%BoundingBox FBBOX:0 0 860 1100 FMULTIPLE: (number) For 'book:', put (number) of pages in each file. The default is 1 page per file. FIPHDR: Copy the incoming FipHdr onto the output file and add these extra FipHdr fields to the end of it eg : FIPHDR:\nRH:opi3 To copy the original FipHdr with no change : FIPHDR:\n Do NOT use '#' in the FIPHDR: string as they are intpreted as end of the FIPHDR: string - not as part of the new FipHdr you want to put on the output file. Certain FipHdr fields are zapped automatically, others can be zapped using ZAP-FIPHDR:XX,XX,XX,XX where XX is obviously a FipHdr field. Automatically zapped are XP, XT, XZ and XN FnoFIPHDR: Do NOT add a FipHdr to the output file FSCRIPT: (path to a script) Run after a File (which may be a page) has been sent FSCRIPT-BEFORE: Run before a File (which may be a page) has been sent FSCRIPT-AFTER: (Run after the whole input file has finished) This will run a script after the output file has been created with the fullpath and name of the file as the last parameter. Fipseq may be used to specify other parameters : FSCRIPT:/fip/local/create_view_file \FN \%d-\$m-\$y FKEEP-BOOK-NAME: Do NOT add a 4 digit sequence on the end of the book as the name is in FipSeq and caters for it. ie in the setpage file page:Biggy book: name:P\FPbiggy.pdf (Also triggered by the '-S' input switch) FEPSF:yes/no add EPSF to %!PS line default: yes FLOG-EPSF:yes/no/999 Log missing/slow included EPSFs default: yes FLOG-EPSF:999 will print on the screen '.r1024-2 ' for each block read where the 1st number is the blocksize and the second the number of secs since the start. FOUTPUT-META-FILE: (fullpath and filename in FipSeq) Create another output file which is ONLY the FipHdr of the original file plus any generated FipHdr fields like the Bounding Box etc (the F* fields described below) FOUTPUT-META-FILE:/fip/spool/2edsys/setter.\$z.\$v FOUTPUT-META-APPEND: append any meta data to an existing file FOUTPUT-META-OUTPUT: (string to output in place of the FipHdr) FSTYLE-FILE: (fullpath and filename in FipSeq) Read this file - which contains Markup and FipSeq for data and use for output. In this case the data part of the incoming file is ignored !! FSTYLE-FILE:/fip/tables/form/styles/1234.style If using this any FIpHdr fields used should be checked beforehand so that any '<', '>', CR, NL and '#' are mapped out of the way Generally '<' is 0376 xFE, '>' is 0377 or xFF, CR and NL are SPC FipHdr fields in this case can be up to 16k in length rather than the normal 1023 chrs FDCS-PLATES: (DCS Plates in order separated by '%') This generates a single file containing as many plates as your have requested. Note that Black, if specified, should be the FIRST plate. Just to confuse, 'ipsetter' will output the plates in REVERSE order so that the first plate, which should be Black, will be the LAST plate output. This is so that any subsequent process can wait for the Black plate before processing. FDCS-PLATES:Black%My_Green This looks for several sub files in form/postscript called: 1. Extra Comments for the top of the file BEFORE the %%EndComments. The file is called : DCS_COMMENTS_(plate) where (plate) is uppercase. eg DCS_COMMENTS_BLACK %%DocumentProcessColors: Black %%PlateColor: Black eg DCS_COMMENTS_MY_GREEN %%DocumentCustomColors: (My_Green) %%CMYKCustomColor: 1 0 1 0 (My_Green) %%PlateColor: My_Green 2. Start of Plate. Placed AFTER the PSHDR/PSUSER and BEFORE any data. The file is called : DCS_PLATE_(plate) eg DCS_PLATE_BLACK %%BeginSetup statusdict /jobname (\SN) put %%EndSetup %%BeginProcessColor: Black %%Page: 1 1 %%BeginPageSetup 5 2 \FV (color \FD) 0 90 1315 -887 beginmark endmark %%EndPageSetup %%BeginDocument: ------ 0 3. End of Plate. Placed AFTER the data. The file is called : DCS_END_(plate) eg DCS_END_BLACK %%EndDocument %%EndProcessColor The thing to note is that you need to Begin/End everything in the correct order! FNO-DATA: Do NOT output any data. This is usually used with 'log-data' to output page infomation or BBOX-ONLY to output the bounding Box only FUNLIMITED-COLUMNS: Same as the setpage 'col:*' keyword FCOLS-PER-PAGE Same as the setpage 'columns-per-page' keyword FALLOW-LAST-PAGE-HEAD Same as the setpage 'allow-last-page-head' keyword FCOLUMN-WIDTH Same as the setpage 'col:' keyword FNUMBER-OF-COLUMNS Same as the setpage 'number-of-columns' keyword FHOLE-ON-EVERY-PAGE Same as the setpage 'hole-on-every-page' keyword Output fields are : FX, FY x = width, y = depth in points*scale FL no of lines FS scale HT is either passed thru or added (time in LONG format) FP this pageno (can be changed with the 'newFP' parameter FD DCS only - the Name of the current Plate FV DCS only - the Number (in sequence from 1) of the current Plate Where the file will be merged with several others by the MUI, form, you may optionally NOT include font calls, header and trailers. Formatting commands use the syntax : < (cmd) [ optional (: or =) (parameter) ] > Only the first letter of the command is required. All measurements are in points. Commands are : f Change Font <font=times> Font name MUST be in the SETTER table p Change Point and Set size <p=20> s Change Set size <s:20> This defaults to the point size - and changes on change of point size too. c Change Column width <c=174> This takes effect immediately so take care. l Change Leading <l=8> The leading value is that moved in the Y or down direction after a Quad. If you need to set negative leading - well it can happen - note that you need to specify option 'L' first with '<o:l>' - see options below. q Quad (default is Quad Left) <q>, <q:l>, <q:r>, <q:c>, <q:m>, <q:z> Quad may be Left, Right, Centre or Middle (ie stretch to fill). All quads except Zero will then Lead down the Leading value. Quad:zero formats text on the line and then returns to the left hand margin at the same Y position. Note that if FipHdr Field 'FCR:' is NOT set, any combination of CR and/or NL will be treated as a Quad:Left as well t Tab <t:z>, <t:s 10,15,25,40> Tab may be Left, Right, Centre, Set, Clear, Save or Restore. Tab Left, Right and Centre do just that. Remember to set tabs beforehand using one of the three Tab Set commands. If no tabs have been set, a Tab LRorC becomes a Quad. There are 3 different ways of specifying tabs : - X position. ie distance from lefthand margin. - Width of each field - Divide the column width proportionally Tab Set <t:s ...> : Each tab is the X distance from the left hand margin in points. The righthand margin need not be specified. Note the tabs increment ! <t:s 12,24,66,78,90> Tab Set-Width <t:w ...> : Each tab is the width of that tab in points. <t:w 12,12,42,12,12> Tab Set-Width can also have a REMAINDER flag set in 1 of the fields. In this case, if the total width of all the tabs is less that the column width, the extra is added to this tab. eg <t:w 10,20R,10> <t:w 25,R,10> Tab Set-Proportional <t:p ...> : Each tab is a proportion of the whole width : <t:p 1,1,2,1,1> Tab Clear is <t:z> This clears and ignores all tabs. Tab Save <t:x> notes the current settings and clears. Tab Restore <t:y> restores to last settings. This only works after a TabSave (x) NOT a TabClear (z) If you change Column width, re-specify (ie t:S, t:P or t:W) the tabs. w White and Fixed Horizontal Space <w>, <w:12> If specified with no parameter this is a White Space command which will force any data left and/or right within the quad or tab irrespective of whether the Quad/tab is L,R or C. Negative amounts are valid. eg X123<ws>456X<t> X123 456X x Xtra Lead command <x:72>, <x:-123.1> This drops immediately the amount specified which may be negative. z Pass thru command <z:\n%%Include:JimmysFile\n> Use this to access PostScript routines you have written in your PSHDR or USER file. The whole string assumed to be in FipSeq and is parsed before output. This does assume you know a little bit about PostScript, so use with care. Please note that if you MUST preserve (or save/restore) the currentpoint, use the Option '<o:z>' on or off. Normally the currentpoint is assumed to have been zapped. A PassThru is assumed to have NO width so to stop overprinting, add a fixed-space using '<w:99>' - see above. n Notes or Comment <n:Next Section here Please> This will appear in the output file as a PostScript comment complete with preceeding '%' : <n: Next Section here Please> becomes % FipComment - Next Section here Please r Rules <r:10:174> Specify width (default is column width) then height. Specify up and back using a '-' <r:10:-99.5> Tint (as a percentage) is an optional third parameter (default is 100 for black) eq a 25% tinted box 10 points wide and 200 up: <r:10:200:25> To specify a coloured rule, specify the 4 CMYK values as parameters 4 to 7 These are percentages from 0 to 100 To specify a diagonal line, use a 5th parameter to mark the offset Y point <r=3m=20m===2m> Note that rules go to the RIGHT (x direction) and UP (y dir) To force LEFT or DOWN, use negative values. Coloured tints/rules may be specified by 4 numbers for CMYK in the 4th field - note these go from 0 (nothing) to 1 (100%) and are C.M.Y.K - separate the values with space(s) <r = 10 = 200 == .3 .5 0 0> d Leader dots <d>, <d:0> The parameter is the leader character and defaults to '.'. m Set mark. <m:24> Up to 100 marks are permitted. Note that both X and Y values of the current position are saved. Note that the X value normally includes any text or spaces on the line up to the point where the Mark is made. To use the X from the start of the column (or tab stop) use the option <o:x:no> (and to turn back on <o:x:yes>) j Jump to Mark <j:24> The Mark should have been set beforehand. Take care to avoid where a column or page turn comes between the mark and the jump as the results may be slightly weird. There are special cases for : - jump to the bottom of the current column <j:bottom> - jump to the maximum Y so far <j:maxy> These should normally be embedded inside Block/Block-End so that a column turn does not lead to weird output ! i Indent <i>, <i:l:12>, <i:12> Specify whether left (default) or right or both. To clear indent, use WITHOUT parameters <i>. Indent can be used with an optional delay and/or maximum number of lines. Syntax: <i : left/right/both : (width) [opt : (startingLine) : (forLines)] > where width is is points, starting at line is where the line may not be the first; forLines is the indent stops after x lines A line is considered a Quad-with-depth which is any <q:?> except for a ZeroLead quad : <q:z>. If the indent command is specified as the first command on the line, it takes effect immediately. If not it starts on the next line. However the StartingLine does NOT alter. g Page heading <g:/[q]Continued on Page 2[q]/[q]Continued from Page 1[q]> The 1st parameter is the End of the last Page and the second is the top of the next Page. Note the punctuation /, to separate the FROM from the TO - this should be unique in the string. This is ONLY triggered if paginated. Square brackets are used to signify commands. The End of last page is NOT counted in the depth - pls make allowance manually in SETPAGE. However the Continued to IS taken into account. To do different LEFT(even page) and RIGHT (odd page) headers, <g:L+endofRight+beginning of Left> <g:R+endofLeft +beginning of Right> h Column headings. <h:[f:timesb][p:12]Account[q:l]> This is ONLY triggered if paginated. Square brackets are used to signify commands. Do NOT embed NL or CR as these, plus the end command '>' are used to end the command. These can be replaced by a heading by specifying 'rephead:all' in the SETPAGE file. A heading in this case meaning the last block (ie between <b> and <e>). An alternative Col heading can be specified for the replacement by using : <h:[f:roman][p:24]Prices[q]> <h=2=[f:bold][p:24]Prices[q]> Do NOT mix the separator, ':' or '=', in the same command. The flag must be '1' for normal and '2' for alternate hdrs. Use 'althead:all' to flag you want the alternate option. Note althead IGNORES the next block - ie replaces both the header and the normal column header. v Dis/Allow Vertical Justification. <v:n>, <v:y> or Note VJ point and set max VJ addition, <v>, <v:10> By default, VJ is ON automatically for pagination. If Vj is OFF (with a <vj:no>) then all VJ points (<v:100>, <vj> etc) are ignored until the next <vj:yes> or <v:y>. Note that you can limit the maximum amount that VJ can add by the 'vjinc' command in the SETPAGE file. By default this is 120 points. b,e Block <b>, <e> Flag the start or end of a Block. This block will NOT be split by VJ unless forced to by the force: parameter in the file. <b> signals the beginning of the block and <e> the end. Blocks are used to group items together which will NOT be VJed. There are two types of blocks depending on : 1. whether the input switch -G is on 2. presence of the FipHdr field 'FG:' Normally <b> is Block-as-column-header meaning the program will attempt to float this to the top of the column. If 'rephead' or'althead' have been specified then the contents of the block will become the actual headings, replacing any default column headings. It is considered the best-place-to-turn-a-col-is-here and has higher precedence over any ColTurn-Here (<a:1> to <a:9>) except for Must-Turn-column-NOW (<a> on its own). It follows therefore that all widow and orphan checking is ignored in this case. If -G is ON or 'FG:block' in the FipHdr or <b:group> is specified, this <b> is a Block-as-group which signals that this is to be considered as a discrete line which can be turned only at the end of the block. All widow and orphan controls are still valid. For 'book' work, they can also be used to strip extra markup at the top of a page - see below in Column Turn point (<a>) a Column turn point. Column MUST turn at this point <a> OR Optionally Turn column at this point <a:3> OR Do NOT turn column on BEFORE next line <a:no> For optionals, the number is a priority turn (1 being highest). If found when checking for Widows/Orphans, this is used instead of number of lines. Note that <a> or <a:0> is a 'MUST turn here' while <a:5>, <a:9> etc are 'if you have to turn, turn here'. For 'book:' work the syntax is slightly different. An extra parameter is added which is the depth that MUST remain in the page/column. If less, the page/column is turned and any text between <b:sameNo> and <e> or <e:sameno> in the page/col hdr is stripped. The last option is <a:no> which means do-not-turn-the-column- before-this-line pls. You can still turn after though. This option is only triggered properly if orphan is >= 1. The optional number can be in the range 1 -> 9. The ColTurn marker is attached to a valid line which is defined as ending with a quad-with-lead - ie any Quad EXCEPT QuadZero - that is NOT within in Block-Column/End (within <b>...<e>). Note that there is an OPTION cmd <o:a:10> which will ONLY turn columns on <a:9> (where 9 is a number for 0 to 9) and NOT on Quads (see below) y Yank or Save all text from <y> until a <Y:end> <y> All data between the <y> and <y:end> is saved including markup. So this can be a neat way of changing Column Headings for continuations where a Name is required which is in the data. u Unsave or restore the previously saved (ie yanked) text <u> o Options : There are a number of Options which all use a 2nd parameter and often a 3rd/4th. Note that an <o> with no other parameters will reset most options to defaults : - Disable PointSize squeeze. - Set Line Justified (Ragged Off). - Set Word/LetterSpacing to 10% maximum. - Zap PassThru CurrentPoint. - Turn Columns on any quad, turn-point. - Disable Wrap within a tab. - Disable negative leading. - Allow line break. - Allow VJ. - Set min and max values for leading in VJ - Disable Hyphenation. Create an unprintable character <o:unprintable:\321>, <o:u=\xFD> Use this option to create characters which cannot be typed in your word processor - or that get translated somewhere. The default number system is (normally) octal unless changed. For Hex, use the '\xZZ' notation where ZZ is 2 hex chrs : 0-9, a-f. Only one chr at a time can be typed in. Reduce Point and Set Size to squeeze data into tab or column. Allow <o:p:3> Disable <o:p> These allow/stop squeeze of data into a tab column where normally the data would wrap to the next line or overprint the next tab. The value is the minimum point size acceptable. The program will start by shrinking SetSize up to 25% less than current SetSize and then start shrinking both Point and Set proportionally. Note that you can also wrap text onto the next line of a column using 'Allow Wrap' (see below). Set Ragged Left, Centre or Right To set ragged <o:r:left>. <o:r:r>, <o:r:c> To set justified (default) <o:r> Allow Word and LetterSpacing Allow or Squeeze <o:c:5> - to 5 % Disable <o:c> The default is <o:c:10> for 10% allowable squeezeover the whole line. Set text to letterspaced Add 2 pt between letters <o:y:2> Disable <o:y> Disable any and all Vertical Justification at all Disable all <o:j> <o:justOFF> Ignore any OverMatter in the last column <o:j:over> This just ignores any VJ command '<v>' and does NOT add extra leading. Columns, if specified, are turned with no stretching/shrinking. Any over matter is run on at the end of the last column. The Bounding Box will be that of the whole job. So to force use 'bboxX', 'bboxY' (and possibly 'bboxX-zero' and 'bboxY-zero' in the SETPAGE file. The second variant <o:j:over> still allows small VJ adjustments to a column where it does not fit exactly. Enable zero and negative leading <o:l> Normally <l:0> and <l:-40> are ignored so that quads always increment down the page. This affects ONLY Leading ie '<l:99>' as xtra lead like '<x:24>' can have positive or negative movements at any time. Reset Page Number for book/document work <o:n:58> Output Page Number for book/document work <o:n> This is the format used for pass thrus - <o:n><z: ResetOnNewPage> Output Page Number for book/document work <o:n:text> Use this for inserting the text in-line as though it was an ordinary string "This Page is Number <o:n:text> of millions" Add extra FipHdr data <o:n:fiphdr:Z1:tower\nZ2:\$u> use escapes and FipSeq for end of lines, control chrs etc Make default quad Left, Centre, Right <o:q:r> The normal default is Left. Use this for setting the currentpoint for PassThru commands to the left, centre or right of tab or column. (This is ONLY used if the PassThru Fudge flag is ON - otherwise the PassThru is placed exactly where you specify). For PassThru, assume the currentpoint is preserved or zapped : <o:z:preserve> or <o:z:p> and <o:z:zap or <o:z:z> Zap is the default. Zap will force a MOVETO before the next text while Preserve will place any text following. Create Fraction <o:f:1/3>, <o:f:1 2> with bar or without (use space as separator) This will create a fraction chr by shrinking font and moving The advantage is that setter can determine the width. The Fraction Bar can be any valid chr except space and numbers. If it is not-printable, use \XXX format to specify an octal number Save or Display Variables <o:v:c22:22.9>, <o:v:a*> Please see the section below on variables. Allow/Disable Line break Allow line to broken at any suitable point <o:b>, <o:b:y> Do NOT break line <o:b:n> Use this to group text which MUST not turn. The default, naturally enough, is 'Allow'. Allow/Disable Hyphenation Allow Hyphenation (default) <o:h>, <o:h:y> Do NOT hyphenate <o:h:n> The default, naturally enough, is 'Allow'. Add a soft Hyphen <o:softhyphen> Add a soft Quad <o:softquad> or <o:softquad:right> Softs are used to hint where a line should break if there are no obvious places Allow Wrap within tab <o:w:yes> <o:wrap> Disable Wrap within tab <o:w:no> <o:wrap:no> Normally the program tries to squeeze data into a tab column for 10% reduction (or more if using the Option Squeeze Pointsize (see above). This will wrap text within a tab stop. Care should be taken to make sure that a wrapped tab does not drop lower than the column depth as it will NOT be checked. Wrap leaders <o:w:leaders> or <o:w:topleaders> or <o:w:bottomleaders> Only if Allow Wrap is ON, if a leader is specified the break will occur on the leader and the leader continued on the next line. The 'leaders' option sets leaders on both lines. The 'topleaders' option sets leaders on the top only. The 'bottomleaders' option sets leaders on the bottom only. Turn columns ONLY at specified (Opt) Col Turn points <o:a:15> Turn columns normally on Quads, Col Turns etc <o:a:no> (default) Normally columns are turned at the nearest line OR at the nearest Opt Col Turn (<a:5> for example). Specify <o:a:99> to IGNORE quads and turn ONLY on. For EPSF, Create an OPI call rather than including the EPSF <o:k:(OPI stub file)> The Stub file should be in tables/form/postscript if not preceeded by a '/'. Specify <o:k> to turn OFF. Some Extra FipHdr fields are available for the OPI call Bounding Box parameters - F1, F2, F3, F4 Bounding Box plus x/y offset - F5, F6, F7, F8 Just the filename name - FJ Full path and name - FR eg : %%BeginObject: FipOpi \$V %ALDImageFileName: /\FJ %ALDImageCropRect: \F1 \F2 \F3 \F4 %ALDImagePosition: \F5 \F6 \F5 \F8 \F7 \F8 \F7 \F6 %%EndObject For setting the maximum or minimum leading acceptable Minimum <o:min:3.3> Maximum <o:max:9.3> To reset max <o:max> To reset both <o:m> To ignore text on the line for a Mark <o:x:no> To account for text on the line for a Mark <o:x:yes> default Note that the X value normally includes any text or spaces on the line up to the point where the Mark is made. To use the X from the start of the column (or tab stop) use the option <o:x:no> (and to turn back on <o:x:yes>) k Include file - for PostScript this is an EPSF <k:name> The pathname is /fip/spool/epsf unless changed on startup. Note that the currentpoint is NOT set explictly so that you may insert after text. However normally you will want to <q> just before. eg for a 32 pt blob : GOOD : <x:32><q><k:widget> BAD : <q><x:32><k:widget> 32pt xlead will be ignored Note also that the filename is exactly that specfied. So if you specify spaces, they will need to be in the file : <k:A Long EPSF> "/fip/spool/epsf/A Long EPSF" <k: A Long EPSF> "/fip/spool/epsf/ A Long EPSF" <k:/data1/oinky/01234.eps> "/data1/oinky/01234.eps" <k:../oinky/01234.eps> "/fip/spool/oinky/01234.eps" These can be OPI calls if the Option 'k' flag is set: <q><j><q:z> <x:325.980000><w:150.240000> <o:k:OPI-STUB-D> <k:150.240000:-467.720000:293.390000:595.280000:10945-1.EPS> <q:z> <o:k> Here we have a Jump back to a 'marked' position. Then and X and Y movement Then we state we want this to be an OPI call using OPI-STUB-D as a parameter file (see the Options section above) The 4 numbers in the 'k' are the Aldus corner positions bottom left 150.24,-467.72 top right 293.39,595.28 Actual OPI filename 10945-1.EPS Finally we turn OFF opi calls with <o:k> Note that if you want to set a < or > - which are normally cmd chrs - use the alernate chrs which are usually 0376 for < and 0377 for >. ------------------ SETPAGE FILE ----------------------------------- The Pagination parameter file, SETPAGE, is optional and is used for ONLY those files requiring some sort of pagination. The syntax is : Note that there can be several lines for the same page - all starting with the 'page:' keyword. In fact for any parameters that may be specified several times, such as 'hole:', these MUST be on separate lines otherwise only the last on the line will be used. ; comment page: (filename) col: (col1),(col2).. page: (filename) name: (newname) page: (filename) filename-size: (length) page: (filename) hole:(col):(depth):(StartPosn) page: (filename) noholecolhdr: page: (filename) gutter: (width) page: (filename) vjinc:12 page: (filename) widow: (NoOfLines) page: (filename) orphan: (NoOfLines) page: (filename) pagebreak: (col), (col)... page: (filename) rules:(indent),(width),(top),(bottom) page: (filename) shortrules: page: (filename) rephead: (col), (col)... or rephead:all page: (filename) althead: (col), (col)... or althead:all page: (filename) bboxX: (replacement bounding box width) page: (filename) bboxY: (replacement bounding box depth) page: (filename) bboxX-zero: (b-box X start if not 0) page: (filename) bboxY-zero: (b-box Y start if not 0) page: (filename) bboxX-delta: page: (filename) bboxY-delta: page: (filename) all-in-one-file: calculate-zero-bbox: email-ignore-hyphens:yes/no opi-script: eps-script: ; these are percentages min-letter-space:100 opt-letter-space:100 max-letter-space:100 min-word-space:40 opt-word-space:95 max-word-space:300 always-set-loose: always-set-tight: These two are hints for the HNJ to set tight or loose. where filename is case-sensitive and is the name specified in the hdr field FK or FN or SN. - NAME is an new name for the output file. This is forced to a maximum of 31 chrs, Mac style, unless amended by 'filename-size'. If more than one page (which means output file) is specified using the 'pagebreak' parameter, then the name show have some means of uniqueness like sequence number OR a different name. To specify a sequence number: page:OINKY name:Oinky.\$s To Specify different names: page:OINKY name:Oinky1,Oinky2,BigOinky.\$d Note that any FipSeq can be used including System Variables and Fip Hdr fields from the incoming file. page:OINKY name:\SN.\$d - FILENAME-SIZE is the maximum filename size - default is 31 chrs - GUTTER is the width in points of the gutter AND column. This is the left movement for the start of a new column. - WIDOW is the no of lines required at the bottom of a column. Maximum is 100 lines. - ORPHAN is the no of lines required at the top of a column. Maximum is 100 lines. Eg: page:SHARES widow:10 orphan:10 - COL is the no of points per column. There can be multiple 'col'. - REPHEAD will allow column header replacement if a Block (which is normally a header) is at the top of the column. This can be the word ALL or a series of columns. Note we assume the first column ALWAYS has a Block. see note below. - ALTHEAD uses the alternate header. This also replaces the next header block. The alt header is assumed to be the same depth as the normal header. It needs rephead to be flagged previously on the columns is question. - VJINC is the maximum extra lead to inset at each vj point. This defaults to 120 points. example: page:MICMAC vjinc:300 - PAGEBREAK will start newpages/output files at the top of this/these columns example: page:PAGE3 pagebreak:3,6 page:PAGE3 col:100,100,100,100,100,120,120,200,200 This will create 3 files, the first containing 2 cols, the second 3 cols and the third 4 cols. - RULES allows you to specify column rules in the gutters indent is the 1st rule from the gutter measurement. width is the width of the rule. top is the drop from the top of the page. bottom is the bong from the bottom of the page. page:ricicles rules:2,.5,2,2 - SHORTRULES is for when 2 adjacent columns are of different length. Normally the column rule will be to the longer of the two. This keyword forces the rule to the bottom of the SHORTER column only. No other parameters are required for 'shortrules' as 'rules' specifies the lot. This is no longer valid as of v41k - HOLE allows you to leave a hole in a column for a specified depth either from the top of the column (default) or from a start depth. Where a block covers several columns, specify a 'hole' for each column. There is no restriction on the number of holes in a column. In the SETPAGE file, only one hole can be specified per line. So to specify several, use multiple lines : example: page:BIGGO col:300,300,300,300 page:BIGGO hole:2,20 page:BIGGO hole:3,20 This will leave a space of 20 points at the top of cols 2 and 3. Note for 'book' the 'hole' eill only apply to the first col/page unless the FipHdr field FHOLE-ON-EVERY-PAGE or setpage page (pagename) hole-on-every-page: - HOLE-ON-EVERY-PAGE - see above; books only. - BOOK: Variable no of pages using the same col depth - no VJ. No Widow and orphan control - use <a:3:50> to check before - DOCUMENT: Variable no of pages which are VJed and/or widow/orphan. Max is about 200 pages of 200 lines - BBOXX: Replacement bounding box width in points. - BBOXY: Replacement bounding box depth in points. - BBOXX-ZERO: Replacement bounding box X position (default 0) in points. - BBOXY-ZERO: Replacement bounding box Y position (default 0) in points. Normally the bounding box is calculated internally. This allows a different BB to be specified when you may have used PassThru (z command) to add extra text and rules. These are in points and can ONLY be defined as whole numbers These can also be specified as BBOX-ZERO-X and -Y for clarity (!) - BBOX-ROUND-UP - round the BoundingBox measurements up to the nearest point (rather than the default which is down). If the actual X or Y amount is negetive, it is rounded down. Normally ipsetter runs tight - and ignores slight BBox overspill. Use this where some device is clipping exactly to the BBox and is shaving the image by a couple of decipoints - BBOX-DELTA-X (and ..-Y) add this number of points to the BoundingBox. - NOHOLECOLHDR: if using Holes - Do NOT add a col hdr if the Hole is in the middle of text - ie holes for island ads but still place them at the top of each Column wherever it starts. - ALWAYS-SET-LOOSE Flag for NEVER set tight lines for hyphenation - CALCULATE-ZERO-BBOX track the 0.0 position for the Bounding Box. - EMAIL-IGNORE-HYPHENS:yes/no if hyphenation is ON, break long email addresses but do NOT hyphenate. Default: hyphenate ------------------ SETTER FILE ----------------------------------- The parameter file holding font information, normally SETTER, has the following syntax : ; comment name: postscript name of the output device defscale:1000 default scale if none specified band:5 band letterspace:3 letterspace unprint:o number system used for non-printable chrs o - octal (default), d - decimal, h - hex. ; first font = this will be font 0 font:helvroman:Helvetica font: IpsetterName : OutputDeviceName scale:960 scale if different from the default 222='`ijl widths - all letters in this font with this width OR (more likely) afminclude:FranklinGothicITCbyBT-Book Name of an AFM file in form/fonts and/or, if specified, the font-folder (also specified in SETTER). OR cawtinclude:FranklinGothicITCbyBT-Book Name of an Cawt file in form/cawt and/or, if specified, the font-folder (also specified in SETTER). font-folder: queue name for an alternative or supplementary folder containing AFMs and actual fonts if 'embedfont' is used in the SETTER file reencoding-chrs:FLOW_CLSADS_CHRS.MAP List of character names and position in a re-encoded font from an AFM file. Use this where you use a PShdr with added or repositioned characters (FF:no or small) It is an external file in tables/form, one entry per line, ';' is a comment, CASE is inportant (see Euro !), position can be DEC or HEX (with x) This parameter should be at the top of the SETTER file, before any AFM ; FLOW_CLSADS_CHRS.MAP ; numbersign x81 Euro x82 endash xAC endash xAD Width is repeated for each different width for all the chrs of a font. Font and widths may be repeated as many times as is needed. If the character is not printable, it can be specified in the normal \000 fashion. NOTE that backslash should be specified as either \\ or \134. Note also that comments start with a semi-colon - ';'. So to Specify a semicolon, use \073 (if octal) or \059 (decimal). The font can be embedded in the output file if a PFB file is left in form/fonts or the alternate folder font-folder Specify : embedfont:(Filename in form/fonts) eg embedfont:EuroLogon.pfb ------------------ INPUT SWITCHES ----------------------------------- Input parameters are (all optional) : -1 : Name of a single file to process then stop. default: spooled -0 : do NOT flag zero width chrs in the item log. default: yes -b : do NOT add bounding box default: YES -c : do NOT output comments default: leave comments in -C : copy the output file default: link it The output queue is normally on the same partition as /fip/x. If NOT, use -C to copy the file over. -d : default output destination if not overwritten by FU FK or FN hdr fields default: none -e : Path for EPSF includes default: spool/epsf -E : do NOT flag missing epsfs default: log errors -f : exclude font calls default: include -F : default is NOT EPSF on %!PS line default: add -G : Block-as-group is default default: Block-as-column-header -h : def header file name default: tables/form/postscript/PSHDR -H : no ps header or trailer pls default: add both -i : input queue if not default default: spool/2set -l : do NOT log items through default: log -L : log items AND log each col details default: log only -n : Name of this Setter default: SETTER Used ONLY for the Sequence Numbers -o : output queue if not default default: spool/setit -O : default Output filename in FipSeq default: SN FipHdr field or 'name:' in the SetPage file -p : default output parameter file default: tables/form/SETTER -P : Pass Thru fudge default: do NOT fudge see notes below -r : use an encoding table for fonts default: use the raw font This is usually CMP in the PSHDR file. -s : Split Input files using this splitter string default: none Use this when the input file is really several files with a splitter string between. -S : For Book work, use a single output file with multiple pages inside default: one file per page -t : def trailer file name default: tables/form/postscript/PSTLR -u : User header file name in tables/form/postscript default: none -w : do NOT overwrite this file default: replace -W : file creep time in seconds default: none For files arriving from a network, this is the wait time Generally this should be 5 secs or more for NFS/FTP/RCPed files etc. -x : make x, y independent (ie transform) -v : version and exit ------------------ VARIABLES ----------------------------------- There are a number of save zones available to store and reuse settings. For the following types, up to 100 zones can be saved : - Font Numbers - PointSize - SetSize - Leading - Column Width - Xlead values (vertical movement) - White Space (horizontal movement) plus there are 9 marks (numbers 1-9) whose positions can be used. - Of the 100 zones, note that zone 1 (one) is used by the system to hold the current value and zone 0 (zero) is used to hold the previous - ie current one before the last change. - There are several notations used : The normal one is to ignore these save zones and just put the fixed amount in the markup <ws: 20> 20 points of white space <xtraLead= 99.3> 99.3 points of extra lead <tab:s 10mm, 20mm, 30mm> Tabs set at 10, 20 and 30 millimetres The normal one is % (optional Type Code) (Zone Number or Current flag or Previous flag) The % (percent) is the precedent char for a variable. The Type Code can be : f - Font Numbers p - PointSize s - SetSize l - Leading c - Column Width x - Xlead values (vertical movement) w - White Space (horizontal movement) j - Offsets from certain Mark.Jumps The Type Code can be left out if it is the same as that specifed. ie These are the same : <p:%p88> <p:%88> <colwidth= %c66> <c:%66> Current value can be specified (QuarkLike) as a '$' (dollar) : make setsize the current pointsize : <s:%p$> or <s:%p1> Previous valid value can be specified as '#' (hash/numbersign : reload the pointsize used before the last change : <p:#> or <p:%p0> The six main types are : %p22 Use contents of PointSize zone 22. %22 Use contents of zone 22 of whatever you are specifying. %p$ Use the current pointsize %p# Use the previous value pointsize $ Use the current value of whatever you are specifying # Use the previous value of whatever you are specifying or -%l$ Use the negative of the current leading There is a special case for offsets against a Mark or Jump. There are 20 marks available The syntax is '%j' (mark number) (0 to 5 type number) The folowing examples show the 6 options or variants : option 0 %j40 - for mark 4 - the X value of that mark option 1 %j81 - for mark 8 - the difference between the Column Width and the X value of the mark option 2 %j72 - for mark 7 - the difference between the X value of the mark and the current X posn option 3 %j33 - for mark 3 - the Y value of that mark option 4 %j94 - for mark 9 - the difference between the Y value of the mark and the current Y posn option 5 %j95 - for mark 9 - the difference between the maximum Y attained on the page/column and Y value of the mark Obviously Current and Previous values (zones 1 and 0) are loaded automatically by the program. To Load values in other zones, use the Option command : <o:v:c23:22.2> load 22.2 into colwidth zone 23 <o:v:s88 : %p88> save contents of pointsize zone 88 in setsize zone 88 <o:v:l66 : %p$> save the current pointsize as leading zone 66 These values may be DISPLAYED as a PostScript Comment in the output file. Note that the values are held as DECIpoints which appear to be 10 times bigger that they need to be. This makes it easier for the program to process. To Display, use Option with NO load values : <o:v:c77> display the contents of colwidth zone 77 This produces : %FipSet Variables:ColumnWidth : 77 = 2000 or %FipSet Variables:ColumnWidth : 77 = NotInUse To Display ALL zones with data stored, use a '*' (star) : <o:v:p*> display all Pointsize zones used. To Display ALL Types and ALL zones with data stored, use a type code of 'a' and '*' (star) : <o:v:a*> display all zones used. %FipSet Variables:Font : Previous = f17 (0), Current = helvroman (90) %FipSet Variables:PointSize : Previous = 240, Current = 260, 22 = 2000 ------------------ Tips, Hints and Notes ----------------------------------- -- To Spread data within a tab : ie push data either side of the centre, use <ws> (a <w> command with no parameter) <t>12345<ws>789<t> will be presented as (tab)12345 789(tab) - Note that SOME the included header and trailer files MAY contain FipSeq : FH-PSHDR and FM-PSUSER - are added to the file with NO alterations All others - FEC, FAC1-9, FT-PSTLR, FAM1-9 and all the DCS files are FipSeq'ed. This may be important if you have files with '\' in. - Millimetres were introduced at 41j. They can be used for boh markup and SETPAGE definitions. eg <p:9m> page:Shares col:137.65mm,143.33mm - Indents and tabs - dont mix them in this version. wot you can do is strip tabs, redo col width, add indent TEXT .. say no turn here (a:n), quad and reverse, reset col, reset tabs and tab goddit ? -- RULE is placed at gutter minus diff from left of column ie if gutter:132 and rules:6,.5 = rule .5 pt wide drawn at 126 pts -- COL is depth ignoring any holes -- HOLES - pls specify only one per line only. If you have more than one hole, use more than one line! -- GUTTER - currently only possible to set a regular gutter - use PassThru to alter/Translate if you need different -- Notes on PassThru : - Note that the scale factor is 1000 so all sizes, Moves etc need to multiplied by 1000. - ALWAYS top and tail gsave and grestore so that the address space is NOT touched. - preserve currentpoint .... use gsave/grestore and opt Z <o:z:p> -- The -P for the PassThru Fudge : if -P is off - ie the default - any passthru ois placed where you specify it. text, leader dots etc can all be added before and after if -P is specified, if the 'z:' is FIRST item on a line or in a tab it is flush left (or right if <o:p:r> is set) otherwise it is where it should be on the line. Note that both EPSFs and PassThrus has no width - even if you give one. The currentpoint AFTER either is exactly the same as that before. So if you have one in the middle of the line, add a white space after the EPSF/PassThru ( eg <ws:10> ) with the width in points of the item. Plus you need to preserve Currentpoint with a <o:p:p>. This works for a single pass thru ONLY per line or tab. -- Ignore DOCUMENT for the moment - use BOOK. -- WIDOWS and ORPHANS can be up to 100 -- If you get a log message : Wed Sep 18 00:06:11 ipsetter !x : ** Pls Check for Missing Data - End of Data and NOT last column AMEX 4 More often than NOT it is because you have added a <b> at the begining of a fixed block and forgotten to end it with a <e>. This message says it has been unable to turn the column as there is no break point within a fixed block. OR, on Unix, you are copying a large file into the spooled queue rather than linking. OR you have forgotten to put any QUADS in (except Quad:Zero) - <q>, <q:r> OR the leading is set to 0 or a negative - <l:0> -- Use <b> and <e> to top and tail Pagehdrs and ColHdrs (using [b] and [e]) of course) Version Control ;43z24 08jan05 added embedfont:(pfb filename) ;d-e 30may05 tuning shrink ;f-g 01dec05 added email-ignore-hyphens in SETPAGE and opi-script/eps-script added ;h-j 10dec05 redid save_mark ;k 6apr06 added newFP ;l-m 15apr06 added colour to tints and allow gutter rules for book ;n-s 14may06 bug in Break/NoBreak and colhdrs (43r also tabs bugette with lots of dec places) ;t 11dec06 added FBBOX: to override the bounding box on the fly ;u-v 21feb07 small bugette with shrink and the last col ;w-y 27mar07 added cawtinclude and o:y letterspacing and rule offset ;z1-5 28jul07 added slow check and F/FSET ;2 rework of pfb ;3 15feb11 bugette with tight lines ;4 variables simplified ;5 bugette when 2 'z' in sequence ;6 upped max Marx to 100 ;7-9 25mar14 added -O default new name and <o:n:fiphdr....> plus use ipset.h ;10-12 25jul14 v long and stupid words in hyp and softquads ;13-15 9dec14 make setpage parameter FipSeqable ;16-17 4feb15 added reencodemap for SETTER file ;18 tuning softQuads ;19 minMcol added ;20-21 1apr16 bugette in fonts with afms > 300 entries ;22 4jul16 added default width if not specified ;23 11aug16 meaningless error for SEQNO on startup ;24 10jun17 bugette in re-encode for 64bit boxes ;042z 28nov02 2 bugs in hyphenation plus W not A if 100% plus if totx<mcol & QC, allow original quad ;c 23jan03 added bbox-round-up: and bbox-delta-x/y ;d 11feb03 added spcIsOpt for when spacing is : exact=0, OKtight=-1, OKloose=1 TOOtight=-2 TOOloose=2 ;e-j 27feb03 added -s splitter and log begin/end ;k 21jun03/01may03 added bbox-round-up: and bbox-delta-x/y as globals for ALL pages in setpage file ;l 04aug03 added neg BBox tracking 'calculate-zero-bbox:' ;m 11nov03 allow other drives for WinNT includes : <k:S:/live/ads/1234> ;n 01dec03 rounding errors - <ws:0.04000) treated wrongly ;o 30jan04 added option cap K for scale EPSF <o:K:143:93> scale the next eps to fit in a box 143 wide by 93 high (bugette todo - ts is NOT mm/inch) ;p 17feb04 added -D to display NOT copy file ;q-r 26feb04 BUG - hyphenation version where there was no separator - plus shrink_line not always being called correctly ;s-u 01apr04 BUG where a line ended '\ ) spc ws ' ;v-y 10dec04 added -Z for Fip OPI ;z 03jan05 added Variables for Fonts, buglette is vary for Set ;041z 02dec00 added col:* and columns-per-page ;a/b 25jan01 bugette was colturns ;c 22feb01 strip leading/trailing spaces from afminclude filenames ;d 13mar01 X amount for mark now includes any <w> ;e 22mar01 in DCS, output the black plate LAST ;f 30apr01 added FnoFipHdr: for output files.. plus FQ not just under /fip/spool ;g/h 09may01 added FAM1-9 plus allow negative wpsc : <ws:-20> ;j 27jun01 allow setpage in millimetres ;k 01aug01 added filename-size in setpage plus allow setpage in inches ;l/m 05oct01 bugette - bboxX may occasionally be too big if a full width rule is involved ;o 15jan02 allow althead and colhead to have diff (and varying) depth added h:althead:(depth) and h:depth:(depth) ;p 19jun02 added output-metadata-file ;r 28jun02 output queue is now in FipSeq FQ:/data/\\PP/\\PO (remember to use double \\) ;s 09jul02 added FSTYLE-FILE ;t 03oct02 added FOUTPUT-META-APPEND and ..OUTPUT and FBBOX-MULTIPLIER ;u/v/w 10oct02 indents revisited ;x/y/z 06nov02 better control of spacing and hyphens and scaling ;040z 23apr99 OPI calls and FEC: extra PS comments plus added -1 single plus added 'noholecolhdr:island/all' ;a 18jun99 added top/bottomleaders <o:w:bottomleaders> ;b 23jul99 added min-leading and max-leading ;c 21oct99 started all-in-one-file: ;d 19nov99 -S single book file plus WINNT bug for Binary files ;e 22nov99 added FMULTIPLE ;f 22feb00 added FIPHDR: and do_widgets ;g 16mar00 added FSCRIPT: and FAC1-9: ;h/i 03may00 redid SETTER chr widths code and added afminclude ;j 12may00 bugette in INDENT ;k 20jul00 NOTE new version of parse -> use \$V not \$S ;m 31jul00 seqno on SetterName ;n 10aug00 OPI- Aldus include better ;o 06sep00 variables now work for rules too ;p 21sep00 bugette in ColHdrs-rephead if using JUMPS ;r 27sep00 added FDCS-PLATES for Outputting DCS Plates ;s 03oct00 added Parse of PSTLR for NoOfCopies..... ;t 05oct00 bugette when mixing z:PassThru and k:EpsfOrOpi on same line ;u 19oct00 added FP as FipHdr with PageNumber.. ;v/w 23nov00 cleanup/added FKEEP-BOOK-NAME ;y/z 27nov00 added FAM ! (copyright) 2018 and previous years FingerPost Ltd.