A Guide to QuarkXPress Server 2018

QuarkXPress Server Features

Dynamic Pagination and Flow

The Evolved Mechanics sample, demonstrating the flow automation constructs, can be downloaded from the QXPS Administration home page, using the Download SDK and Samples link.

There are three main division in the structure of any document:

  1. the front page content

  2. the body content

  3. the back page content

The Dynamic Pagination and Flow feature gives you the ability to define multiple page layouts in a single flow. The Page Sequences can be a logical section or a chapter comprised of a single flow. Different pages of a Page Sequence can be based on different master pages. Pages will be organized while adhering to defined constraints.

The following is a list of customer use cases that can be fullfilled using the new modifier XML markup:

  • The ability to specify running headers and running footers.

  • The ability to pre-define the sequence of the application of the available master pages on the various pages being created dynamically.

  • The ability to express/segment the flow content into logical sections.

  • Bulleted text, Section numbering, Text Styling, colors etc

  • Components that are re-usable across multiple document types. For example, disclaimers and copy right notices.

  • The ability to impose constraints on the page count (odd or even) per section, enabling you to automatically insert blank pages for print versions of documentation.

  • The ability to specify the desired page numbering formats for various sections (for example, index or glossary pages having roman numerals).

  • The ability to have repeatable interactivy aspects.

  • The ability to present tablular content in various ways:

  • inline

  • spanned across columns

  • full width spanned

  • full page - rotated / un-rotated.

  • The ability to format tables in the following various ways:

  • horizontal and vertical

  • gridlines

  • grouping headers

  • shading rows and columns

  • the inclusion of table notes with the table

  • The ability to break content across pages along with headers.

  • The ability to specify the placement of images and charts in the following scenarios:

  • inline

  • spanned across columns

  • full page

  • The ability to specify a different Table of Contents for digital and print issues.

Example User Pagination Requirement

Dynamic Pagination and Flow Problem

Consider the following pagination requirement.

The template has 5 master pages:

  • Cover - a master page for the cover page

  • Introduction - a master page for introduction page(s)

  • Section First Page - a master page for the first page of each section (a section's cover page)

  • Section Content - a master page to be used for each page that has body content

  • Back Page - a master page for the back page (a back cover)

The pagination requirement is:

  1. Cover

  2. Introduction

  3. Multiple sections

    • Section First Page

    • Section Content

  4. Back Page

Example User Pagination Requirement

Previously, when a desktop user created this document, he accomplished this manually by dragging and dropping the desired master pages onto each page. The user was not able to achieve the desired pagination using the automated dynamic publishing workflows (XML--> PDF or XML-->iPad).

Dynamic Pagination and Flow Solution

The Dynamic Pagination and Flow feature introduced in the 9.5.1 release of QuarkXPress Server, solves this problem.

New Parts of the ModifierXML:

  1. The MASTERPAGESEQUENCE element gives you the ability to describe the use and application of master pages by the QuarkXPress Server Modifier XML processor and further by its layout engine. It also allows the user to define the pagination pattern with a name.

  2. The PAGESEQUENCE element contains the actual flow content with reference to the MASTERPAGESEQAUENCE via a @MASTERPAGESEQUENEREF and a @MASTERPAGEREF respectively. Each PAGESEQUENCE element will have a certain non-variable static content segment (represented by STATICCONTENT) containing the content that is intended to be repeated across multiple flow pages.

    Each PAGESEQUENCE has a child object STORY which acts as a container for the flow content containing multiple PARAGRAPH elements.

    Each PARAGRAPH object holds RICHTEXT giving you the ability to apply a wide variety of styling.

  3. The SINGLEMASTERPAGEREFERENCE element defines a sequence in which a particular master page will be applied to a singles page in a page sequence. It contains the name of the master page in the QuarkXPress template to be used. The given master page is applied to one page of a page sequence. This is useful for front matter, back matter and section start pages.

    The following is an example of the use of the SINGLEMASTERPAGEREFERENCE

    <MASTERPAGESEQUENCE NAME="SingleMaster">
      <SINGLEMASTERPAGEREFERENCE NAME="A-MasterA"></SINGLEMASTERPAGEREFERENCE>
      <SINGLEMASTERPAGEREFERENCE NAME="B-MasterB"></SINGLEMASTERPAGEREFERENCE>
      <SINGLEMASTERPAGEREFERENCE NAME="C-MasterC"></SINGLEMASTERPAGEREFERENCE>
    </MASTERPAGESEQUENCE>

    This applies the A-MasterAmaster page to the first page, B-MasterB master page to the second page, and the C-MasterC master page to the third page and onwards.

  4. The REPEATABLEMASTERPAGEREFERENCE element defines a sequence in which a master page will be applied to multiple pages in a page sequence. It contains the name of the master page in the QuarkXPress template to be used. This is useful for constructing runs of identical pages and causes a bounded or unbounded sequence of pages to be generated using the same master page.

    This element is a super set of the SINGLEMASTERPAGEREFERENCE element. It allows an application of a particular master page upto n number of pages using the MAXREPEATS attribute.

    The following is an example of the use of the REPEATABLEMASTERPAGEREFERENCE.

    <MASTERPAGESEQUENCE NAME="RepeatableMaster">
      <REPEATABLEMASTERPAGEREFERENCE MAXREPEATS="5" NAME="B-MasterB"/>
      <REPEATABLEMASTERPAGEREFERENCE NAME="C-MasterC"/>
    </MASTERPAGESEQUENCE>

    This applies the B-MasterB master page to the first 5 pages. From the sixth page onward, the C-MasterC master page will be applied.

  5. The REPEATABLEMASTERPAGEALTERNATIVES element defines a master page along with conditions that must be satisfied to apply the given master page on a page. It contains one or more CONDITIONALMASTERPAGEREFERENCE elements that define the conditions.

    This is a super set of the first two master page sequences. It allows an application of a particular master page on even pages, a different master page on odd pages and a different master page on first and last pages.

    The following is an example of the use of the REPEATABLEMASTERPAGEALTERNATIVES.

    <MASTERPAGESEQUENCE NAME="ConditionalMaster">
      <REPEATABLEMASTERPAGEALTERNATIVES>
        <CONDITIONALMASTERPAGEREFERENCE NAME="D-MasterD" POSITION="FIRST"/>
        <CONDITIONALMASTERPAGEREFERENCE NAME="A-MasterA" ODDOREVEN="EVEN" POSITION="REST"/>
        <CONDITIONALMASTERPAGEREFERENCE NAME="C-MasterC" ODDOREVEN="ODD" POSITION="REST"/>
        <CONDITIONALMASTERPAGEREFERENCE NAME="B-MasterB" POSITION="LAST"/>
      </REPEATABLEMASTERPAGEALTERNATIVES>
    </MASTERPAGESEQUENCE>

    This applies the D-MasterD master page to the first page, the A-MasterA master page to all even numbered pages, the C-MasterC master page to all odd numbered pages, and the B-MasterB master page to the last page.

  6. The CONDITIONALMASTERPAGEREFERENCE element gives you the ability to specify the master page along with the conditions that must be satisfied to apply the given master page on a page. The following conditions may be specified:

    • a page's position within a sequence

    • the odd or even page number property

    • whether or not a particular page is blank

    contains the actual flow content with reference to the MASTERPAGESEQAUENCE via a @MASTERPAGESEQUENEREF and a @MASTERPAGEREF respectively. Each PAGESEQUENCE element will have a certain non-variable static content segment (represented by STATICCONTENT) containing the content that is intended to be repeated across multiple flow pages.

  7. The STATICCONTENT element gives you the ability to specify content chunks that are intended to be repeated across multiple flow pages. For example, running headers or footers.

  8. The SECTIONNUMBERFORMAT element gives you the ability to specify the page number format.

 

<PROJECT>
<LAYOUT>
  <ID UID="1"/>
  <MASTERPAGESEQUENCE NAME="APSMasterPages">
    <REPEATABLEMASTERPAGEALTERNATIVES>
      <CONDITIONALMASTERPAGEREFERENCE POSITION="FIRST" NAME="C-ArticleFirst"/>
      <CONDITIONALMASTERPAGEREFERENCE POSITION="REST" NAME="D-ArticleRest"/>
      <CONDITIONALMASTERPAGEREFERENCE POSITION="LAST" NAME="E-ArticleLast"/>
      <CONDITIONALMASTERPAGEREFERENCE BLANKORNOTBLANK="BLANK" 
        NAME="F-BlankMaster"/>
    </REPEATABLEMASTERPAGEALTERNATIVES>
  </MASTERPAGESEQUENCE>
  <PAGESEQUENCE MASTERPAGESEQUENCEREF="APSMasterPages" FORCEPAGECOUNT="ENDONEVEN">
    <SECTIONNUMBERFORMAT FORMAT="NUMERIC" INITIALPAGENUMBER="1"/>
    <STATICCONTENT>
      <BOX>
        <ID NAME="logo"/>
        <TEXT>
          <STORY>
            <PARAGRAPH PARASTYLE="Article SubHead">
              <RICHTEXT BOLD="true">Article Sub heading goes here </RICHTEXT>
            </PARAGRAPH>
          </STORY>
        </TEXT>
      </BOX>
      <BOX>
        <ID NAME="title"/>
        <TEXT>
          <STORY>
            <PARAGRAPH MERGE="FALSE" PARASTYLE="NORMAL">
              <FORMAT ALIGNMENT="RIGHT"/>              
              <RICHTEXT BOLD="true" COLOR="White" SIZE="14">
                Automation System</RICHTEXT>
            </PARAGRAPH>
          </STORY>
        </TEXT>
      </BOX>
    </STATICCONTENT>
    <STORY BOXNAME="flow">
      <PARAGRAPH PARASTYLE="Article Opening Paragraph">
      <PARAGRAPH PARASTYLE="Article Section Start"> 
      <PARAGRAPH PARASTYLE="Article Body Copy">
      <PARAGRAPH PARASTYLE="Article Body Copy">
      <PARAGRAPH PARASTYLE="Article Body Copy">
      <PARAGRAPH PARASTYLE="Article Section Start">
      <PARAGRAPH PARASTYLE="Article Body Copy">
      <PARAGRAPH PARASTYLE="Article Body Copy">
    </STORY>
  </PAGESEQUENCE>              
</LAYOUT>
</PROJECT>

Landscape pagination

The support for mixed orientation in the PDF output gives you the ability to define different page orientations in a single flow. This can be accomplished by using the PAGESEQUENCE element of the ModifierXML. The PAGESEQUENCE element contains a new attribute ORIENTATION which allows you to specifiy a page orientation for each page in the flow. Setting the value of ORIENTATION to Landscape would cause the contents of the STORY element of the page sequence to flow into a Landscape layout made available in the template. The following steps allow you to achieve mixed orientation pages in the PDF output:

  1. Add a landscape layout in the template, giving the page width and height as:

    • Page Height = The width of a page in portrait mode

    • Page Width = The height of a page in portrait mode

  2. Designate the new layout as the Landscape layout by giving it the name Landscape.

  3. Use this new layout to create pages with the Landscape orientation.

Creating pages with the Landscape layout

The following is an example of the MASTERPAGESEQUENCE to be used for Landscape mode.

<MASTERPAGESEQUENCE NAME="Landscape">
  <SINGLEMASTERPAGEREFERENCE NAME="A-Landscape"></SINGLEMASTERPAGEREFERENCE>
</MASTERPAGESEQUENCE>

The following is an example of the PARAGRAPH element with the PARASTYLE attribute set to flow. This cause the landscape flow content under the PAGESEQUENCE that has ORIENTATION set to LANDSCAPE to be flown into the flow boxes in the layout with the name Landscape.

<PARAGRAPH PARASTYLE="Flow">
  <RICHTEXT BACKGROUNDCOLOR="yellow">Text here</RICHTEXT>
</PARAGRAPH>

The following is an example of a nested PAGESEQUENCE depicting Landscape mode. The landscape flow content under the PAGESEQUENCE that has ORIENTATION set to LANDSCAPE is flown into the flow boxes in the layout with the name Landscape.

<PAGESEQUENCE ORIENTATION="LANDSCAPE"MASTERREFERENCE="Landscape">
  <STORY BOXNAME="flow">
    <PARAGRAPH PARASTYLE="Title">
      <RICHTEXT>Deliver the Benefits of Automation</RICHTEXT>
    </PARAGRAPH>
    <PARAGRAPH PARASTYLE="Flow">
      <RICHTEXT>Text Here</RICHTEXT>
    </PARAGRAPH>
    <PARAGRAPH PARASTYLE="Bulletstyle">
    <PARAGRAPH PARASTYLE="Bulletstyle">
    <PARAGRAPH PARASTYLE="Bulletstyle">
    <PARAGRAPH PARASTYLE="Bulletstyle">
    <PARAGRAPH PARASTYLE="Flow">
    <PARAGRAPH PARASTYLE="Flow">
    <PARAGRAPH PARASTYLE="Bulletstyle">
    <PARAGRAPH PARASTYLE="Bulletstyle">
    <PARAGRAPH PARASTYLE="Bulletstyle">
    <PARAGRAPH PARASTYLE="Bulletstyle">
    <PARAGRAPH PARASTYLE="Title">
    <PARAGRAPH PARASTYLE="Flow">
    <PARAGRAPH PARASTYLE="Flow">
    <PARAGRAPH PARASTYLE="Flow">
    <PARAGRAPH/>
    <PARAGRAPH/>
    <INLINETABLE TABLESTYLEREF= "quark">
      <COLGROUP>
      <THREAD>
        <TROW>
          <ENTRY>
            <PARAGRAPH PARASTYLE="TableCOntent">
              <FORMAT ALIGNMENT= "CENTERED"/>
              <RICHTEXT>Text Here</RICHTEXT>
            </PARAGRAPH>
          </ENTRY>
          <ENTRY>
            <PARAGRAPH PARASTYLE="TableCOntent">
              <FORMAT ALIGNMENT= "CENTERED"/>
              <RICHTEXT>Text Here</RICHTEXT>
            </PARAGRAPH>
          </ENTRY>
        </THROW>
      </THREAD>
    </INLINETABLE>
  </STORY>
</PAGESEQUENCE>
<!---Portrait Mode Resumed--->
<PARAGRAPH PARASTYLE="Title">
  <RICHTEXT>Text here</RICHTEXT>
</PARAGRAPH>
Flowing content onto pages created with the Landscape layout

The following is an example of a PROJECT element. The landscape flow content under the PAGESEQUENCE that has ORIENTATION set to LANDSCAPE is flown into the flow boxes in the layout with the name Landscape.

<PROJECT>
  <TABLESTYLE>
  <TABLESTYLE>
  <LAYOUT>
    <ID UID="1"/>
    <MASTERPAGESEQUENCE NAME= "Cover">
    <MASTERPAGESEQUENCE NAME= "Flow">
    <MASTERPAGESEQUENCE NAME= "Flow2">
      <SINGLEMASTERPAGEREFERENCE NAME= "A-Flow2"/>
    </MASTERPAGESEQUENCE>
    <MASTERPAGESEQUENCE NAME= "Flow3">
      <SINGLEMASTERPAGEREFERENCE NAME= "B-Flow3"/>
    </MASTERPAGESEQUENCE>    <PARAGRAPH PARASTYLE="Bulletstyle">
    <MASTERPAGESEQUENCE NAME= "Disclaimer">
    <PAGESEQUENCE MASTERREFERENCE="Cover">
    <PAGESEQUENCE MASTERREFERENCE="Flow">
    <PAGESEQUENCE MASTERREFERENCE="Flow">
    <PAGESEQUENCE MASTERREFERENCE="Flow2" ORIENTATION= "LANDSCAPE">
      <STORY BOXNAME= "StoryFlow2">
        <INLINETABLE TABLESTYLEREF= "Rating">
      </STORY>
    </PAGESEQUENCE>
    <PAGESEQUENCE MASTERREFERENCE="Flow">
    <PAGESEQUENCE MASTERREFERENCE="Flow">
    <PAGESEQUENCE MASTERREFERENCE="Flow3" ORIENTATION= "LANDSCAPE">
      <STATICCONTENT>      
      <STORY BOXNAME= "StoryFlow2">
        <INLINETABLE TABLESTYLEREF= "NoGrids">
      </STORY>
    </PAGESEQUENCE>
    <PAGESEQUENCE MASTERREFERENCE="Flow3" ORIENTATION= "LANDSCAPE">
      <STATICCONTENT>      
      <STORY BOXNAME= "StoryFlow2">
        <INLINETABLE TABLESTYLEREF= "NoGrids">
      </STORY>
    </PAGESEQUENCE>
    <PAGESEQUENCE MASTERREFERENCE="Disclaimer">
  </LAYOUT>
</PROJECT>
 
The landscape flow content under the PAGESEQUENCE that has ORIENTATION = LANDSCAPE is flown into the flow boxes in the layout with the name Landscape.

The following is the resultant PDF from the above example:

A PDF with a mixed orientation.

Automatic callout stacking

Automatic callout stacking allows for the tiling of multiple callouts. You use the CALLOUTANCHOR element to automate your layout design. The CALLOUTANCHOR@CALLOUTSTYLE requires a callout style to be created in the template. The callout style defines the placement of the graphics object.

Edit Callout Style dialog box

Automatic callout stacking example

In the following example the 2 graphic objects on the right side are related to the sub-sections on the left side.

Example Automatic Callout Stacking

The callout anchors applied with the same callout style will be stacked automatically.

Result Automatic Callout Stacking

Nested anchoring

Nested anchoring allows you to anchor an item within another anchored item. This allows for nesting of INLINEBOX and INLINETABLE elements.

Nested anchoring examples

Nesting an INLINEBOX within an INLINEBOX
Nesting an INLINEBOX within an ENTRY of an INLINETABLE
An INLINEBOX within an ENTRY of anINLINETABLE
Nesting an INLINETABLE within an INLINETABLE
An INLINETABLE within an INLINETABLE
An INLINETABLE within an INLINETABLE
Nesting an INLINETABLE within an INLINEBOX
An INLINETABLE within an INLINEBOX