XML Professional Publisher (XPP) Standard Features
The following is information about some of XPP's standard publishing features and capabilities.
Note: SDL also provides optional software for specific applications. For more information, please see XPP Product Options.
- Composition and Pagination
- Style Specifications
- Tags (elements) and Macros
- Pickups (graphics, tables, and illustrations)
- Tables
- Footnotes
- Interactive Page Layout
- Edit Trace
- Hyphenation and Spell Check
- Job Processing
- XPP Command Line Utilities
- Transformations: XyChange, XSLT, Perl and OmniMark
- Autoprocessing
![]()
Composition and Pagination
Composition is a general term for the arrangement of type on one or more pages. When computers compose text, they hyphenate, justify, and format text automatically. Pagination is the electronically composed arrangement of page elements that produces a complete page with all elements in place. XPP performs composition and pagination together. The two are generally referred to as composition. When you request composition, XPP makes page breaks, eliminates widows and orphans, performs hyphenation and justification, and formats text as defined in the style specs.
XPP supports interactive composition and background composition. Interactive composition allows you to compose in the foreground, obtaining immediate results. Background composition allows you to compose in the background, keeping the workstation free for other tasks.
You can compose a whole division or any part of a division, such as a page, a block, or a line. When you choose a part of a division to compose, XPP restricts composition to that part without affecting other parts. XPP attempts to squeeze or expand text characters and spacebands to accommodate your change. This enables you to compose a part of a division in which you have made changes without affecting the rest of the text.
There are three methods you can use to initiate composition:
- Interactive composition
- Background composition
- Job processing
![]()
Style Specifications
XML Professional Publisher (XPP) style specs specify the document style, and the composition and pagination parameters for a job. Using the style specs, you control a variety of factors such as the page size, column width, fonts, hyphenation, and widows/orphans.
The following lists the mnemonic for each style spec and briefly describes how composition uses the spec:
- Hyphenation/Justification (HJ) the spaceband width and hyphenation points.
- Hung Punctuation (HT) the placement of specific characters to the left or right of the line measure.
- Item Formats (IF) typographic style of the text elements.
- Page Column Override (PC) the number, width, and placement of columns other than those specified in the Page Layout Spec.
- Page Layout (PL) the format of pages and blocks (width, depth, and so on).
- Pagination Style (PS) the sequence of page layouts (left and right pages, filler pages, and so on).
- Pagination Tries (PT) the boundaries at which to break text and to justify the page.
- Exception Macros (XX) the macros to use in a specific job.
Style Spec Bundles
A bundle is a group of specs for a particular style. A bundle consists of one of each of the eight style specs. The name of a style spec corresponds to the bundle to which it belongs. For example, the style spec bundle named docplan contains a Hyphenation/Justification (HJ) Spec named docplan, a Hung Punctuation (HT) Spec named docplan, and so on.
You can store specs at either the library level or the job level. Specs stored at the library level are referred to as master specs. Specs stored at the job level are referred to as local specs.
Master Library Specs
Master specs can affect many jobs. If you have several jobs that have the same style, you can create one bundle of specs for that style and maintain the bundle of specs at the library level. If a job has an exception to the style, you can create a local style spec or use macros. By specifying the library name and spec bundle name in each Job Ticket, you can use the master specs for more than one job. Using one set of specs is a more efficient use of disk space than storing the same style bundle with each job that uses that style.
Local Job Specs
If you have a job that has a unique style, store the specs with that job. Since local specs affect only divisions in the job where they are stored, you do not need to specify that you want to use them. If XPP finds a local spec with the specified style name, it uses the local spec when composing a division.
Job Ticket
The Job Ticket is a control file that draws together all the resources needed to compose and paginate the divisions within a job. The fields of the Job Ticket identify the style specs, fonts, image libraries, and dictionaries to be used in processing the divisions in that job. Each job has its own Job Ticket.
![]()
Tags (elements) and Macros
In addition to using the style specs, to control the look of a document, you can enter commands directly into the text. A command is an instruction to XPP to execute a specified function. Commands include tags and macros. You can enter and edit tags and macros in any stream in composed or uncomposed divisions. The effects of the tags and macros are evident only after you compose the division.
Tags (elements)
The Item Formats Spec defines typographic parameters such as typeface, point size, leading, visual space above and below elements of the style, measure, and paragraph indents for text.
The Item Formats Spec consists of one text component or a series of text components, such as a subhead and subsequent paragraphs. This includes "Tags" and their related "pgrafs" in standard XPP text, and "Element Tags" in an XML/SGML environment. Based on how you write them, you can assign specific functions to the tags or element tags.
In an XML/SGML environment you can specify the XPP tag selection criteria based on its position in the XML/SGML hierarchy or on its parentage. By inserting additional style rules for the XML/SGML tag, with different XML/SGML path definitions, you can create as many different variations of the same tag as needed. You can base rules on an elements position in the XML/SGML hierarchy, existence of a particular set of attributes, attributes that have a specific value, or on all of the criteria.
If you are running XPP in XML/SGML mode, a Perl script ml2if creates an Item Formats Spec that contains all the tags it find in those divisions. Each tag definition includes the XPath where the tag occurs in the document.
Macros
A macro is an abbreviated set of instructions to XML Professional Publisher (XPP). Instructions range from simple (such as “quad this line left”) to complex (such as “draw a box with a one-point gutter around this text and return the cursor to its starting point”). There are three types of macros:
- XyMacros
- User-defined macros
- Attribute macros
XyMacros
XPP includes a set of XyMacros created, written, and maintained by SDL. XyMacros provide a range of basic typesetting instructions. You can use XyMacros to accomplish the following:
- Mark specific typographical needs, such as changes in line measure,
typeface, leading between lines or paragraphs, line justification, and so on,
when producing customized single
pages or exception pages. - Override typographic parameters defined in XPP style specs, which contain rules that control the composition and pagination of a document.
- Indicate logical divisions of text with specific style requirements, calling in the appropriate style spec definitions by entering tags within the text.
- Make local changes in format by inserting XyMacros during text entry or during editing.
User-defined Macros
To meet your production needs, you can construct your own macros.
User-defined macros are not part of the standard XyMacro set, but they follow
the conventions used in XyMacros. You can
write your own macros to:
- Save keystrokes by grouping commands and activities under one macro command, such as grouping a bullet with an em space and a font change.
- Collect page element values, such as testing for the vertical (y) position of a line of text.
- Conditionally process or output formatting or typographic instructions, such as testing whether a tag’s vertical position exceeds a specified amount and ending the current page when it does.
- Provide further information for tag and pgraf processing, such as inserting a macro in a tag’s Preprocess field to affect how the tag formats text.
Attribute Macros
Attribute macros provide compatibility with tags and attributes in structured markup languages such as Standard Generalized Markup Language (SGML) and Extensible Markup Language (XML). Using attribute macros, you can convert SGML and XML tags and attributes to XyEnterprise Standard Format (XSF).
The syntax of attribute macros differs from standard XyMacro syntax, but you can use standard XPP tools to access tag attributes and values. There are many ways to use attribute macros, even if you do not work with SGML or XML.
![]()
Pickups (graphics, tables, and illustrations)
Integrating graphics, art, and illustrations into a document enhances the written word. With XPP, you can integrate text and graphics by creating and editing pickups. You can think of a pickup as the container into which you can place any combination of the following:
- Graphics, such as line drawings and charts
- Text, such as annotations, captions, and titles
- Tables
The pickup/ container occupies space on a page and excludes the flow of text from the area. You use a pickup to incorporate illustrations, diagrams, charts, maps, icons, and tables into a document. You can also use a pickup as a place holder for art or photos to be supplied later in the production cycle.
Types of Pickups
To place a pickup in text, XPP uses information from two sources:
- Information you specify when you create the pickup.
- Information that you define in the style specs.
The pickup type controls how and where XPP places the pickup during composition. There are two types of pickups:
- Frozen
- Anchored
There are several types of anchored pickups, and if pickups must split across multiple pages, there are additional anchored types.
![]()
Tables
Using XPP standard tabular features, you can create tables in a variety of styles and formats. You can control the dimensions as well as the typographic and composition characteristics of a table by designing one or more tabular styles.
When creating a table in a document, you specify the appropriate style for that table. You can use the same tabular style for more than one table. XPP also provides a comprehensive set of tabular XyMacros that you can use directly in a table to create exceptions to the values defined in the tabular style.
![]()
Footnotes
XPP supports both block-type and page-type footnote pagination along with journal abstract footnotes, end notes and table notes. You can use footnotes to:
- Acknowledge borrowed material.
- Notify the reader of the source of quotations.
- Present explanatory material not appropriate to the text.
- Provide cross-references to other parts of the document.
Types of Footnote Pagination
Because XPP paginates footnotes separate from the rest of the page, footnotes can have their own specified layout. This allows XPP to support both block-type and page-type footnote pagination.
Block-type Footnotes
A block-type footnote occupies space at the bottom of the main-text block that contains the footnote reference. Block-type footnotes are placed only in the block in which they are referenced and extend only the width of that block.
For example, in a two-column layout, XPP places the block-type footnote referenced in the first column at the bottom of the first block, and places the block-type footnotes referenced in the second column at the bottom of the second block. Each footnote occupies space at the bottom of its respective main-text block.
Page-type Footnotes
A page-type footnote occupies space at the bottom of the page where it is referenced, regaruless of which main-text block contains the footnote reference.
For example, in a 2-column layout, XPP places page-type footnotes — whether referenced in the first column or the second column — across the width of both main-text blocks.
Journal Abstract Footnotes
The first page of a Journal article typically consists of three main-text blocks. The first main-text block is often a single column that spans the page and contains the Journal abstract. The remainder of the page usually consists of a two-column layout: main-text block 2 and main-text block 3.
When you reference footnotes in a main-text block, XPP places them at the bottom of the block containing the footnote. However, in Journal articles, when you reference a footnote in the Journal abstract, you want XPP to position it at the bottom of the second main-text block on the page.
Styles of Footnotes
Using tags and macros, you can create and manage various footnote layouts and styles. You can create footnotes in one or more columns across the extent of the defined footnote scope — block or page. For example, you can create:
- Single-column block-type footnotes
- Single-column page-type footnotes beneath one or more columns
- Balanced multi-column page-type footnotes beneath one or more columns
XPP supports vertically-stacked footnotes, horizontally-stacked footnotes, and endnotes.
Vertically-stacked footnotes are positioned one below the other. Horizontally-stacked footnotes are positioned side-by-side across the defined scope of the footnote. Horizontally-stacked footnotes are also called biblical style footnotes. Each footnote is placed to the right of the preceding footnote.
![]()
Interactive Page Layout
Interactive Page Layout is a standard XPP feature you can use as a design tool and as an editing tool.
A Design Tool
You can use Layout to create and produce original page designs and hard-copy dummy layouts. You can also copy and revise existing layouts throughout the entire page revision cycle. The Layout tools are modeled on traditional design and production functions, but instead of working with dummy boards, you work with electronic layouts. You “paste up” text by flowing it electronically onto pages displayed in the Xyview window.
Page design is determined by fixed criteria, such as whether a page is a right, a left, or a filler page. The fixed criteria are defined in style specs, such as the Page Layout spec. For standard-format publications like books, journals, financial reports, and technical documentation, fixed criteria are necessary to provide consistency in the design. However, these publications often require exception pages that do not fit in the predefined structure. You can use Layout on a page-by-page basis to quickly produce exceptions to style-generated pages as needed.
Other publications, such as magazines, catalogs, newsletters, and brochures, may require that a page design be determined independently of the fixed criteria in the style specs. You can use Layout to create layouts for these design-intensive publications.
You can:
- Create a new layout based on an existing layout (a template). You can use the new page layout immediately or store it as a template.
- Use the mouse to draw new layout blocks. As you draw a block, its
dimensions are displayed and updated dynamically. If you change block
dimensions, Layout automatically reformats the text when the
page is recomposed. - Move layout blocks and their contents to any location.
An Editing Tool
You can also use Layout to fine-tune a document. For example, you can:
- Push lines from one block to another
- Move pickups to any location on the page
- Insert rules or draw irregular text-exclusion shapes directly in the document
![]()
Edit Trace
Edit Trace indicates the changes—insertions and deletions—made to the text of a division. Edit Trace does not indicate changes caused by editing the style specs or by composing a division using different style specs. Using Edit Trace, you can mark, display, and print:
- All the changes made to a document during a revision cycle.
- Only the changes that occurred during the current editing session.
You can also select different combinations of traces, selectively expand or delete existing traces, and clear all traces from a division. Edit Trace uses different marks or symbols to indicate revisions in a document.
![]()
Hyphenation and Spell Check
XPP Spell Check and Hyphenation software ensures the following:
- Words of a language are spelled correctly
- Words properly hyphenate when they break across lines.
XPP achieves proper hyphenation and correct spelling using the following Hyphenation and Spell Check components:
- Main dictionaries
- Hyphenation algorithms
- Exception dictionaries
Main dictionaries
A Main dictionary contains the correct spelling and proper hyphenation points for commonly used words in a language. Please see XPP Languages for more information.
The Spell Check component of the Main dictionary contains the phonetic rules, punctuation rules, valid prefixes and suffixes, and numeric conventions (decimal point and digit separator) for a specific language. This is called the language environment. You can consider the language environment as a subcomponent of Spell Check.
The Spell Check component of an XPP language Main dictionary also contains a list of the most frequently used words in a specific language. This is called the core lexicon (corelex). You can consider the corelex as a subcomponent of Spell Check, also.
XPP provides a Main dictionary for the English language. It also delivers Main dictionary files for sixteen (16) languages, plus five (5) expanded dictionaries for English/British that include additional legal, medical and other specilaized words as well as the language environment and corelex files for these 16 languages. Although SDL provides all languages at the time you install XPP, you must purchase a license to use languages other than English.
Hyphenation Algorithms
A hyphenation algorithm provides a set of rules for hyphenating words in a certain language. SDL provides a hyphenation algorithm for the English language. It also delivers several other algorithm-only languages at the time you install XPP. To use any language other than English, you must purchase a special license.
Exception Dictionaries
You can create the following Exception dictionaries:
Hyphenation Exception dictionary
Spelling Exception dictionary
Temporary Spelling Exception dictionary
![]()
Job Processing
Job processing is a feature that allows you to process one or more divisions in a job at the same time. Job processing is much faster than running processes on one division at a time. For example, if you have a job that is a book consisting of several chapters, and each chapter is a separate division in the job, you can use job processing to run Spell Check on all chapters of the book, then compose and print the chapters.
Job processing can generate page, pickup, and footnote numbers that are consecutive from one chapter (division) to the next. You can use Job processing through PathFinder.
![]()
XPP Command Line Utilities
XPP command line utilities enable you to accomplish tasks at the operating system command level rather than through PathFinder. Generally, all the tasks you must perform to work with XPP can be accomplished either through the XPP interface (PathFinder) or the operating system command line. Running the utilities also gives you the option of defining your own "batch processes" to run the utilities from operating system scripts or other automated methods.
![]()
Transformations
XyChange is a powerful, delivered SDL transformation program. Using any one or any combination of the following customized transformation tables, Perl or OmniMark scripts, or XSLT style sheets with XyChange, you can transform text to a format appropriate for your needs.
Whenever you choose to transform data during Import or Export, these processes launch the XyChange program. Based on the file extension of the table names you enter in the Job Ticket or in the Table Names fields, the Import or Export process may continue running standard XPP XyChange or it may launch the Perl, OmniMark, and/or XSLT transformation engine(s). You may use any and all combinations of transformations.
XyChange Transformations
There are two types of transformations you can specify in transformation table rules: unconditional and conditional.
Unconditional Transformation
An unconditional transformation tells XyChange to replace one string of characters with another string of characters. To specify an unconditional transformation in a transformation table, you enter:
- The character string that XyChange looks for in the input text, or match string.
- The replacement string of characters, or output string.
Conditional Transformation
A conditional transformation tells XyChange to replace one string of characters with another string of characters if certain conditions are true. To specify a conditional transformation in a transformation table, you specify:
- The string XyChange looks for, or match string.
- The conditions that must exist before the transformation occurs.
- Any processing that should take place before the transformation occurs.
- The replacement string of characters, or output string.
XSLT Transformations
SDL has integrated an XSLT processor, Xalan C++, into XPP. Xalan C++ performs the transformation of the XML/SGML documents into the desired format, using the .xsl style sheets. PathFinder manages these style sheets in the same manner that it manages standard XPP style data files, organizing and locating them when they are needed. The style sheets can reside in any folder in which an XPP style file is allowed, such as in the Style Library or at the job level.
Perl and OmniMark Transformations
For the transformation process, you may also use Perl and OmniMark scripts in any combination. Please refer to the vendor documentation for information on writing these scripts.
![]()
Autoprocessing
Autoprocessing, XPP automatic processing, processes files in the background without operator intervention. You can use autoprocessing for tasks such as:
- Importing ASCII text files into divisions.
- Printing
- Creating PDFs
![]()