summaryrefslogtreecommitdiff
path: root/macros/plain/formats/xmltex/contrib/passivetex/fotex.xmt
diff options
context:
space:
mode:
Diffstat (limited to 'macros/plain/formats/xmltex/contrib/passivetex/fotex.xmt')
-rw-r--r--macros/plain/formats/xmltex/contrib/passivetex/fotex.xmt1644
1 files changed, 1644 insertions, 0 deletions
diff --git a/macros/plain/formats/xmltex/contrib/passivetex/fotex.xmt b/macros/plain/formats/xmltex/contrib/passivetex/fotex.xmt
new file mode 100644
index 0000000000..4ddb49bd1e
--- /dev/null
+++ b/macros/plain/formats/xmltex/contrib/passivetex/fotex.xmt
@@ -0,0 +1,1644 @@
+% $Id: //depot/Master/texmf/tex/xmltex/passivetex/fotex.xmt#90 $, $Date: 2002/06/25 $
+%
+% PassiveTeX version 1.17
+%
+% Copyright 2002 Sebastian Rahtz/Oxford University
+% <sebastian.rahtz@oucs.ox.ac.uk>
+%
+% Permission is hereby granted, free of charge, to any person obtaining
+% a copy of this software and any associated documentation files (the
+% ``Software''), to deal in the Software without restriction, including
+% without limitation the rights to use, copy, modify, merge, publish,
+% distribute, sublicense, and/or sell copies of the Software, and to
+% permit persons to whom the Software is furnished to do so, subject to
+% the following conditions:
+%
+% The above copyright notice and this permission notice shall be included
+% in all copies or substantial portions of the Software.
+%
+% Includes fixes from Tomas Bures <ghort@pauline.vellum.cz>
+% Yura Zotov <yznews@hotbox.ru>
+% Anton V. Boyarshinov <boyarsh@ru.echo.fr>
+\DeclareNamespace{fotex}{http://www.tug.org/fotex}
+\DeclareNamespace{fo}{http://www.w3.org/1999/XSL/Format}
+\def\string@autoauto{autoauto}
+\XMLstring\FirstOnPage<>first-starting-within-page</>
+\XMLstring\LastOnPage<>last-starting-within-page</>
+\XMLstring\LINK<>LINK</>
+\XMLstring\file@urlprefix<>url(</>
+\XMLstring\file@prefix<>file://</>
+\XMLstring\file@shortprefix<>file:</>
+\XMLstringX\prop@width<>proportional-column-width(1)</>
+\XMLstringX\@staticafter<>xsl-after</>
+\XMLstringX\@staticbefore<>xsl-before</>
+\XMLstringX\@staticstart<>xsl-start</>
+\XMLstring\att@labelend<>label-end()</>
+\XMLstring\att@bodystart<>body-start()</>
+\XMLstringX\att@NaN<>NaN</>
+\XMLstringX\att@all<>all</>
+\XMLstringX\att@always<>always</>
+\XMLstringX\att@any<>any</>
+\XMLstringX\att@auto<>auto</>
+\XMLstringX\att@autoodd<>auto-odd</>
+\XMLstringX\att@autoeven<>auto-even</>
+\XMLstringX\att@endonodd<>end-on-odd</>
+\XMLstringX\att@endoneven<>end-on-even</>
+\XMLstringX\att@baseline<>baseline</>
+\XMLstringX\att@blank<>blank</>
+\XMLstringX\att@black<>black</>
+\XMLstringX\att@bottom<>bottom</>
+\XMLstringX\att@centered<>center</>
+\XMLstringX\att@false<>false</>
+\XMLstringX\att@first@starting@within@page<>first-starting-within-page</>
+\XMLstringX\att@first<>first</>
+\XMLstringX\att@even<>even</>
+\XMLstringX\att@odd<>odd</>
+\XMLstringX\att@lr@tb<>lr-tb</>
+\XMLstringX\att@maximum<>maximum</>
+\XMLstringX\att@maximumuniform<>maximum-uniform</>
+\XMLstringX\att@medium<>medium</>
+\XMLstringX\att@no<>no</>
+\XMLstringX\att@no@limit<>no-limit</>
+\XMLstringX\att@none<>none</>
+\XMLstringX\att@normal<>normal</>
+\XMLstringX\att@nowrap<>no-wrap</>
+\XMLstringX\att@oddpage<>odd-page</>
+\XMLstringX\att@page<>page</>
+\XMLstringX\att@page@sequence<>page-sequence</>
+\XMLstringX\att@pre<>pre</>
+\XMLstringX\att@preserve<>preserve</>
+\XMLstringX\att@relative<>relative</>
+\XMLstringX\att@repeat<>repeat</>
+\XMLstringX\att@replace<>replace</>
+\XMLstringX\att@scroll<>scroll</>
+\XMLstringX\att@scaletofit<>scale-to-fit</>
+\XMLstringX\att@show<>show</>
+\XMLstringX\att@smallcaps<>small-caps</>
+\XMLstringX\att@solid<>solid</>
+\XMLstringX\att@static<>static</>
+\XMLstringX\att@sub<>sub</>
+\XMLstringX\att@super<>super</>
+\XMLstringX\att@top<>top</>
+\XMLstringX\att@transparent<>transparent</>
+\XMLstringX\att@true<>true</>
+\XMLstringX\att@tiny<>true</>
+\XMLstringX\att@thin<>thin</>
+\XMLstringX\att@thick<>thick</>
+\XMLstringX\att@uniform<>uniform</>
+\XMLstringX\att@use@font@metrics<>use-font-metrics</>
+\XMLstringX\att@visible<>visible</>
+\XMLstringX\att@xsl@any<>xsl-any</>
+\XMLstringX\att@yes<>yes</>
+\XMLstringX\leader@pattern@space<>space</>
+\XMLstringX\leader@pattern@rule<>rule</>
+\XMLstringX\leader@pattern@dots<>dots</>
+\XMLstringX\rule@style@dashed<>dashed</>
+\XMLstringX\rule@style@dotted<>dotted</>
+\XMLnamespaceattributeX{fo}{media-usage}{\FOmediausage}{}
+% The "media-usage" property is used to control
+% how the selected display medium is used to
+% present the page(s) specified by the stylesheet.
+\XMLnamespaceattributeX{fo}{text-altitude}{\FOtextaltitude}{}
+% Specifies the "height" to be used for the ascent
+% above the dominant baseline
+\XMLnamespaceattributeX{fo}{text-depth}{\FOtextdepth}{}
+% Specifies the "depth" to be used for the descent
+% below the domiant baseline.
+%auto | absolute | fixed | inherit
+%\XMLnamespaceattributeX{fo}{absolute-position}{\FOabsoluteposition}{auto}
+%link | visited | active | hover | focus
+%\XMLnamespaceattributeX{fo}{active-state}{\FOactivestate}{}
+%auto | <percentage> | <length> | inherit
+\XMLnamespaceattributeX{fo}{alignment-adjust}{\FOalignmentadjust}{auto}
+%yes | no
+%\XMLnamespaceattributeX{fo}{auto-restore}{\FOautorestore}{\inherit}
+%<angle> | [[ left-side | far-left | left
+%| center-left | center | center-right | right | far-right | right-side
+%] || behind ] | leftwards | rightwards | inherit
+%\XMLnamespaceattributeX{fo}{azimuth}{\FOazimuth}{\inherit}
+%[<background-color> ||
+%<background-image>
+%|| <background-repeat> || <background-attachment> || <background-position>
+%| ]]inherit
+\XMLnamespaceattributeX{fo}{background}{\FObackground}{}
+%scroll | fixed | inherit
+%\XMLnamespaceattributeX{fo}{background-attachment}{\FObackgroundattachment}{scroll}
+%<color> | transparent | inherit
+\XMLnamespaceattribute{fo}{background-color}{\FObackgroundcolor}{transparent}
+%<uri> | none | inherit
+%\XMLnamespaceattributeX{fo}{background-image}{\FObackgroundimage}{none}
+%[ [<percentage> | <length> ]{1,2} |
+% [ [top | center | bottom] || [left | center | right] ] ] | inherit
+%\XMLnamespaceattributeX{fo}{background-position}{\FObackgroundposition}{0\% 0\%}
+%<percentage> | <length> |
+%left | center | right | inherit
+%\XMLnamespaceattributeX{fo}{background-position-horizontal}{\FObackgroundpositionhorizontal}{0\%}
+%<percentage> | <length> |
+%top | center | bottom | inherit
+%\XMLnamespaceattributeX{fo}{background-position-vertical}{\FObackgroundpositionvertical}{0\%}
+%repeat | repeat-x | repeat-y | no-repeat | inherit
+%\XMLnamespaceattributeX{fo}{background-repeat}{\FObackgroundrepeat}{repeat}
+%baseline | before-edge
+%| text-before-edge | middle | after-edge
+%| text-after-edge | ideographic | alphabetic | hanging | mathematical
+%| inherit
+%\XMLnamespaceattributeX{fo}{baseline-identifier}{\FObaselineidentifier}{}
+%baseline | sub | super | <percentage> | <length> | inherit
+\XMLnamespaceattributeX{fo}{baseline-shift}{\FObaselineshift}{baseline}
+%blank | not-blank | any | inherit
+\XMLnamespaceattributeX{fo}{blank-or-not-blank}{\FOblankornotblank}{any}
+%auto | <length> | <percentage> | <length-range> | inherit
+%\XMLnamespaceattributeX{fo}{block-progression-dimension}{\FOblockprogressiondimension}{auto}
+%[ <border-width> || <border-style> || <color> ] | inherit
+\XMLnamespaceattributeX{fo}{border}{\FOborder}{}
+%<color> | inherit
+\XMLnamespaceattribute{fo}{border-after-color}{\FOborderaftercolor}{\FOcolor}
+%<border-style> | inherit
+\XMLnamespaceattributeX{fo}{border-after-style}{\FOborderafterstyle}{none}
+%<border-width> | <length-conditional> | inherit
+\XMLnamespaceattribute{fo}{border-after-width}{\FOborderafterwidth}{medium}
+%<color> | inherit
+\XMLnamespaceattribute{fo}{border-before-color}{\FOborderbeforecolor}{\FOcolor}
+%<border-style> | inherit
+\XMLnamespaceattributeX{fo}{border-before-style}{\FOborderbeforestyle}{none}
+%<border-width> | <length-conditional> | inherit
+\XMLnamespaceattribute{fo}{border-before-width}{\FOborderbeforewidth}{medium}
+\XMLnamespaceattributeX{fo}{border-collapse}{\FObordercollapse}{\inherit}
+%<color>{1,4} | transparent | inherit
+\XMLnamespaceattribute{fo}{border-color}{\FObordercolor}{black}
+%<color> | inherit
+\XMLnamespaceattribute{fo}{border-end-color}{\FOborderendcolor}{\FOcolor}
+%<border-style> | inherit
+\XMLnamespaceattributeX{fo}{border-end-style}{\FOborderendstyle}{none}
+%<border-width> | inherit
+\XMLnamespaceattributeX{fo}{border-end-width}{\FOborderendwidth}{medium}
+\XMLnamespaceattributeX{fo}{border-separation}{\FOborderseparation}{\inherit}
+%<length> <length>? | inherit
+\XMLnamespaceattributeX{fo}{border-spacing}{\FOborderspacing}{\inherit}
+%<color> | inherit
+\XMLnamespaceattribute{fo}{border-start-color}{\FOborderstartcolor}{\FOcolor}
+%<border-style> | inherit
+\XMLnamespaceattributeX{fo}{border-start-style}{\FOborderstartstyle}{none}
+%<border-width> | inherit
+\XMLnamespaceattributeX{fo}{border-start-width}{\FOborderstartwidth}{medium}
+%<border-style>{1,4} | inherit
+\XMLnamespaceattributeX{fo}{border-style}{\FOborderstyle}{}
+%<length> | <percentage> | auto | inherit
+\XMLnamespaceattributeX{fo}{border-width}{\FOborderwidth}{}
+\XMLnamespaceattributeX{fo}{border-bottom}{\FOborderbottom}{\LINK}
+\XMLnamespaceattribute{fo}{border-bottom-color}{\FOborderbottomcolor}{\LINK}
+\XMLnamespaceattributeX{fo}{border-bottom-style}{\FOborderbottomstyle}{\LINK}
+\XMLnamespaceattributeX{fo}{border-bottom-width}{\FOborderbottomwidth}{\LINK}
+\XMLnamespaceattributeX{fo}{border-left}{\FOborderleft}{\LINK}
+\XMLnamespaceattribute{fo}{border-left-color}{\FOborderleftcolor}{\LINK}
+\XMLnamespaceattributeX{fo}{border-left-style}{\FOborderleftstyle}{\LINK}
+\XMLnamespaceattributeX{fo}{border-left-width}{\FOborderleftwidth}{\LINK}
+\XMLnamespaceattributeX{fo}{border-right}{\FOborderright}{\LINK}
+\XMLnamespaceattribute{fo}{border-right-color}{\FOborderrightcolor}{\LINK}
+\XMLnamespaceattributeX{fo}{border-right-style}{\FOborderrightstyle}{\LINK}
+\XMLnamespaceattributeX{fo}{border-right-width}{\FOborderrightwidth}{\LINK}
+\XMLnamespaceattributeX{fo}{border-top}{\FObordertop}{\LINK}
+\XMLnamespaceattribute{fo}{border-top-color}{\FObordertopcolor}{\LINK}
+\XMLnamespaceattributeX{fo}{border-top-style}{\FObordertopstyle}{\LINK}
+\XMLnamespaceattributeX{fo}{border-top-width}{\FObordertopwidth}{\LINK}
+
+
+%<length> | <percentage> | auto | inherit
+\XMLnamespaceattributeX{fo}{bottom}{\FObottom}{auto}
+%auto | column | page | even-page | odd-page | inherit
+\XMLnamespaceattributeX{fo}{break-after}{\FObreakafter}{auto}
+%auto | column | page | even-page | odd-page | inherit
+\XMLnamespaceattributeX{fo}{break-before}{\FObreakbefore}{auto}
+%before | after | start | end | top | bottom | left | right | inherit
+\XMLnamespaceattributeX{fo}{caption-side}{\FOcaptionside}{\inherit}
+%<name>
+\XMLnamespaceattributeX{fo}{case-name}{\FOcasename}{}
+%<string>
+\XMLnamespaceattributeX{fo}{case-title}{\FOcasetitle}{}
+%<character>
+\XMLnamespaceattribute{fo}{character}{\FOcharacter}{}
+%start | end | left | right | both | none | inherit
+\XMLnamespaceattributeX{fo}{clear}{\FOclear}{none}
+%<shape> | auto | inherit
+\XMLnamespaceattributeX{fo}{clip}{\FOclip}{auto}
+%<color> | inherit
+\XMLnamespaceattribute{fo}{color}{\FOcolor}{\inherit}
+%<name> | inherit
+\XMLnamespaceattributeX{fo}{color-profile-name}{\FOcolorprofilename}{}
+%<number> | inherit
+\XMLnamespaceattributeX{fo}{column-count}{\FOcolumncount}{1}
+%<length> | <percentage> | inherit
+\XMLnamespaceattributeX{fo}{column-gap}{\FOcolumngap}{12.0pt}
+%<number>
+\XMLnamespaceattributeX{fo}{column-number}{\FOcolumnnumber}{}
+%<length>
+\XMLnamespaceattribute{fo}{column-width}{\FOcolumnwidth}{}
+%<string> | auto
+%\XMLnamespaceattributeX{fo}{content-type}{\FOcontenttype}{auto}
+
+%none | <country> | inherit
+\XMLnamespaceattributeX{fo}{country}{\FOcountry}{\inherit}
+%<cue-before> || <cue-after> | inherit
+%\XMLnamespaceattributeX{fo}{cue}{\FOcue}{}
+%<uri> | none | inherit
+%\XMLnamespaceattributeX{fo}{cue-after}{\FOcueafter}{none}
+%<uri> | none | inherit
+%\XMLnamespaceattributeX{fo}{cue-before}{\FOcuebefore}{none}
+%<length>
+%\XMLnamespaceattributeX{fo}{destination-placement-offset}{\FOdestinationplacementoffset}{\z@}
+%ltr | rtl | inherit
+\XMLnamespaceattributeX{fo}{direction}{\FOdirection}{\inherit}
+%auto | before | center | after | inherit
+\XMLnamespaceattributeX{fo}{display-align}{\FOdisplayalign}{\inherit}
+%auto | autosense-script | no-change | reset-size
+%| ideographic | alphabetic | hanging | mathematical | inherit
+%\XMLnamespaceattributeX{fo}{dominant-baseline}{\FOdominantbaseline}{auto}
+%<angle> | below | level | above | higher | lower | inherit
+%\XMLnamespaceattributeX{fo}{elevation}{\FOelevation}{\inherit}
+%show | hide | inherit
+\XMLnamespaceattributeX{fo}{empty-cells}{\FOemptycells}{\inherit}
+%<length> | inherit
+\XMLnamespaceattribute{fo}{end-indent}{\FOendindent}{\inherit}
+%yes | no
+%\XMLnamespaceattributeX{fo}{ends-row}{\FOendsrow}{no}
+%<length> | <percentage> | inherit
+\XMLnamespaceattributeX{fo}{extent}{\FOextent}{0.0pt}
+%<uri-reference>
+\XMLnamespaceattributeX{fo}{external-destination}{\FOexternaldestination}{}
+%before | start | end | left | right | none | inherit
+\XMLnamespaceattributeX{fo}{float}{\FOfloat}{none}
+%<name>
+\XMLnamespaceattributeX{fo}{flow-name}{\FOflowname}{}
+%[ [ <font-style> || <font-variant>
+%|| <font-weight> ]? <font-size> [ / <line-height>]? <font-family>
+%] | caption | icon | menu | message-box | small-caption | status-bar
+%| inherit
+\XMLnamespaceattributeX{fo}{font}{\FOfont}{\inherit}
+%[[ <family-name> | <generic-family> ],]* [<family-name> | <generic-family>] | inherit
+\XMLnamespaceattributeX{fo}{font-family}{\FOfontfamily}{\inherit}
+%\XMLnamespaceattributeX{fo}{font-selection-strategy}{\FOselectionstrategy}{auto}
+%<absolute-size> | <relative-size> | <length> | <percentage> | inherit
+\XMLnamespaceattribute{fo}{font-size}{\FOfontsize}{\inherit}
+%<number> | none | inherit
+\XMLnamespaceattributeX{fo}{font-size-adjust}{\FOfontsizeadjust}{\inherit}
+%normal | wider | narrower | ultra-condensed
+% | extra-condensed | condensed | semi-condensed | semi-expanded |
+% expanded | extra-expanded | ultra-expanded |inherit
+\XMLnamespaceattributeX{fo}{font-stretch}{\FOfontstretch}{\inherit}
+%normal | italic | oblique | backslant | inherit
+\XMLnamespaceattributeX{fo}{font-style}{\FOfontstyle}{\inherit}
+%normal | small-caps | inherit
+\XMLnamespaceattributeX{fo}{font-variant}{\FOfontvariant}{\inherit}
+%normal | bold | bolder | lighter | 100 | 200
+% | 300 | 400 | 500 | 600 | 700 | 800 | 900 | inherit
+\XMLnamespaceattributeX{fo}{font-weight}{\FOfontweight}{\inherit}
+%auto | even | odd | end-on-even | end-on-odd | no-force | inherit
+\XMLnamespaceattributeX{fo}{force-page-count}{\FOforcepagecount}{auto}
+%<string>
+\XMLnamespaceattributeX{fo}{format}{\FOformat}{\inherit}
+%<angle> | inherit
+%\XMLnamespaceattributeX{fo}{glyph-orientation-horizontal}{\FOglyphorientationhorizontal}{\inherit}
+%auto | <angle> | inherit
+%\XMLnamespaceattributeX{fo}{glyph-orientation-vertical}{\FOglyphorientationvertical}{\inherit}
+%<character>
+\XMLnamespaceattributeX{fo}{grouping-separator}{\FOgroupingseparator}{}
+%<number>
+%\XMLnamespaceattributeX{fo}{grouping-size}{\FOgroupingsize}{}
+%<length> | <percentage> | auto | inherit
+\XMLnamespaceattributeX{fo}{height}{\FOheight}{auto}
+%false | true | inherit
+\XMLnamespaceattributeX{fo}{hyphenate}{\FOhyphenate}{\inherit}
+%<character> | inherit
+\XMLnamespaceattributeX{fo}{hyphenation-character}{\FOhyphenationcharacter}{\inherit}
+%auto | column | page | inherit
+%\XMLnamespaceattributeX{fo}{hyphenation-keep}{\FOhyphenationkeep}{\inherit}
+%no-limit | <number> | inherit
+%\XMLnamespaceattributeX{fo}{hyphenation-ladder-count}{\FOhyphenationladdercount}{\inherit}
+%<number> | inherit
+\XMLnamespaceattributeX{fo}{hyphenation-push-character-count}{\FOhyphenationpushcharactercount}{\inherit}
+%<number> | inherit
+%\XMLnamespaceattributeX{fo}{hyphenation-remain-character-count}{\FOhyphenationremaincharactercount}{\inherit}
+% <id>
+\XMLnamespaceattributeX{fo}{id}{\FOid}{}
+%yes | no
+%\XMLnamespaceattributeX{fo}{indicate-destination}{\FOindicatedestination}{no}
+%auto | auto-odd | auto-even | <number> | inherit
+\XMLnamespaceattributeX{fo}{initial-page-number}{\FOinitialpagenumber}{auto}
+%auto | <length> | <percentage> | <length-range> | inherit
+%\XMLnamespaceattributeX{fo}{inline-progression-dimension}{\FOinlineprogressiondimension}{auto}
+%null string | <idref>
+\XMLnamespaceattributeX{fo}{internal-destination}{\FOinternaldestination}{}
+%<keep> | inherit
+\XMLnamespaceattributeX{fo}{keep-together}{\FOkeeptogether}{\inherit}
+\XMLnamespaceattributeX{fo}{keep-together.within-line}{\FOkeeptogetherLine}{\inherit}
+% since we dont support column keeps, use Page here (not)
+\XMLnamespaceattributeX{fo}{keep-together.within-column}{\FOkeeptogetherColumn}{\inherit}
+\XMLnamespaceattributeX{fo}{keep-together.within-page}{\FOkeeptogetherPage}{\inherit}
+%<keep> | inherit
+\XMLnamespaceattributeX{fo}{keep-with-next}{\FOkeepwithnext}{auto}
+\XMLnamespaceattributeX{fo}{keep-with-next.within-line}{\FOkeepwithnextLine}{auto}
+\XMLnamespaceattributeX{fo}{keep-with-next.within-column}{\FOkeepwithnextColumn}{auto}
+\XMLnamespaceattributeX{fo}{keep-with-next.within-page}{\FOkeepwithnextPage}{auto}
+%<keep> | inherit
+\XMLnamespaceattributeX{fo}{keep-with-previous}{\FOkeepwithprevious}{auto}
+\XMLnamespaceattributeX{fo}{keep-with-previous.within-line}{\FOkeepwithpreviousLine}{auto}
+\XMLnamespaceattributeX{fo}{keep-with-previous.within-column}{\FOkeepwithpreviousColumn}{auto}
+\XMLnamespaceattributeX{fo}{keep-with-previous.within-page}{\FOkeepwithpreviousPage}{auto}
+%none | <language> | inherit
+\XMLnamespaceattributeX{fo}{language}{\FOlanguage}{\inherit}
+%<length> | <percentage> | inherit
+\XMLnamespaceattributeX{fo}{last-line-end-indent}{\FOlastlineendindent}{\inherit}
+%none | reference-area | page | inherit
+\XMLnamespaceattributeX{fo}{leader-alignment}{\FOleaderalignment}{\inherit}
+%<length-range> | inherit
+\XMLnamespaceattributeX{fo}{leader-length}{\FOleaderlength}{\inherit}
+%space | rule | dots | use-content | inherit
+\XMLnamespaceattributeX{fo}{leader-pattern}{\FOleaderpattern}{\inherit}
+%use-font-metrics | <length> | inherit
+\XMLnamespaceattributeX{fo}{leader-pattern-width}{\FOleaderpatternwidth}{\inherit}
+%<length> | <percentage> | auto | inherit
+\XMLnamespaceattributeX{fo}{left}{\FOleft}{auto}
+%normal | <length> | <space> | inherit
+\XMLnamespaceattributeX{fo}{letter-spacing}{\FOletterspacing}{\inherit}
+%auto | alphabetic | traditional
+\XMLnamespaceattributeX{fo}{letter-value}{\FOlettervalue}{auto}
+%ignore | preserve | treat-as-space | inherit
+\XMLnamespaceattributeX{fo}{linefeed-treatment}{\FOlinefeedtreatment}{\inherit}
+%normal | <length> | <number> | <percentage> | <space> | inherit
+\XMLnamespaceattributeX{fo}{line-height}{\FOlineheight}{\inherit}
+%consider-shifts | disregard-shifts | inherit
+\XMLnamespaceattributeX{fo}{line-height-shift-adjustment}{\FOlineheightshiftadjustment}{\inherit}
+%line-height | font-height | max-height | inherit
+\XMLnamespaceattributeX{fo}{line-stacking-strategy}{\FOlinestackingstrategy}{\inherit}
+%<margin-width>{1,4} | inherit
+\XMLnamespaceattributeX{fo}{margin}{\FOmargin}{}
+\XMLnamespaceattributeX{fo}{margin-left} {\FOmarginleft} {0pt}
+\XMLnamespaceattributeX{fo}{margin-right} {\FOmarginright} {0pt}
+\XMLnamespaceattributeX{fo}{margin-top} {\FOmargintop} {0pt}
+\XMLnamespaceattributeX{fo}{margin-bottom} {\FOmarginbottom} {0pt}
+%<name>
+\XMLnamespaceattributeX{fo}{marker-class-name}{\FOmarkerclassname}{}
+%<name>
+\XMLnamespaceattributeX{fo}{master-reference}{\FOmasterreference}{}
+\XMLnamespaceattributeX{fo}{master-name}{\FOmastername}{}
+%<length> | <percentage> | none | inherit
+\XMLnamespaceattributeX{fo}{max-height}{\FOmaxheight}{\z@}
+%<number> | no-limit | inherit
+\XMLnamespaceattributeX{fo}{maximum-repeats}{\FOmaximumrepeats}{no-limit}
+%<length> | <percentage> | none | inherit
+\XMLnamespaceattributeX{fo}{max-width}{\FOmaxwidth}{none}
+%<length> | <percentage> | inherit
+\XMLnamespaceattributeX{fo}{min-height}{\FOminheight}{\z@}
+%<length> | <percentage> | inherit
+\XMLnamespaceattributeX{fo}{min-width}{\FOminwidth}{}
+%<number>
+\XMLnamespaceattributeX{fo}{number-columns-repeated}{\FOnumbercolumnsrepeated}{1}
+%<number>
+\XMLnamespaceattributeX{fo}{number-columns-spanned}{\FOnumbercolumnsspanned}{1}
+%<number>
+\XMLnamespaceattributeX{fo}{number-rows-spanned}{\FOnumberrowsspanned}{1}
+%odd | even | any | inherit
+\XMLnamespaceattributeX{fo}{odd-or-even}{\FOoddoreven}{any}
+%<integer> | inherit
+\XMLnamespaceattributeX{fo}{orphans}{\FOorphans}{\inherit}
+%visible | hidden | scroll | auto | inherit
+\XMLnamespaceattributeX{fo}{overflow}{\FOoverflow}{auto}
+%<padding-width>{1,4} | inherit
+\XMLnamespaceattributeX{fo}{padding}{\FOpadding}{\z@}
+%<padding-width> | <length-conditional> | inherit
+\XMLnamespaceattributeX{fo}{padding-after}{\FOpaddingafter}{\z@}
+%<padding-width> | <length-conditional> | inherit
+\XMLnamespaceattributeX{fo}{padding-before}{\FOpaddingbefore}{\z@}
+%<padding-width> | inherit
+\XMLnamespaceattributeX{fo}{padding-bottom}{\FOpaddingbottom}{\z@}
+%<padding-width> | inherit
+\XMLnamespaceattributeX{fo}{padding-end}{\FOpaddingend}{\z@}
+%<padding-width> | inherit
+\XMLnamespaceattributeX{fo}{padding-left}{\FOpaddingleft}{\z@}
+%<padding-width> | inherit
+\XMLnamespaceattributeX{fo}{padding-right}{\FOpaddingright}{\z@}
+%<padding-width> | inherit
+\XMLnamespaceattributeX{fo}{padding-start}{\FOpaddingstart}{\z@}
+%<padding-width> | inherit
+\XMLnamespaceattributeX{fo}{padding-top}{\FOpaddingtop}{\z@}
+%auto | always | avoid | left | right | inherit
+\XMLnamespaceattributeX{fo}{page-break-after}{\FOpagebreakafter}{auto}
+%auto | always | avoid | left | right | inherit
+\XMLnamespaceattributeX{fo}{page-break-before}{\FOpagebreakbefore}{auto}
+%auto | indefinite | <length> | inherit
+\XMLnamespaceattribute{fo}{page-height}{\FOpageheight}{auto}
+%first | last | rest | any | inherit
+\XMLnamespaceattributeX{fo}{page-position}{\FOpageposition}{any}
+%auto | indefinite | <length> | inherit
+\XMLnamespaceattribute{fo}{page-width}{\FOpagewidth}{auto}
+%[<time> | <percentage>]{1,2} | inherit
+%\XMLnamespaceattributeX{fo}{pause}{\FOpause}{}
+%<time> | <percentage> | inherit
+%\XMLnamespaceattributeX{fo}{pause-after}{\FOpauseafter}{}
+%<time> | <percentage> | inherit
+%\XMLnamespaceattributeX{fo}{pause-before}{\FOpausebefore}{}
+%<frequency> | x-low | low | medium | high | x-high | inherit
+%\XMLnamespaceattributeX{fo}{pitch}{\FOpitch}{\inherit}
+%<number> | inherit
+%\XMLnamespaceattributeX{fo}{pitch-range}{\FOpitchrange}{\inherit}
+%<uri> mix? repeat? | auto | none | inherit
+%\XMLnamespaceattributeX{fo}{play-during}{\FOplayduring}{auto}
+%static | relative | absolute | fixed | inherit
+\XMLnamespaceattributeX{fo}{position}{\FOposition}{static}
+%true | false | inherit
+\XMLnamespaceattributeX{fo}{precedence}{\FOprecedence}{false}
+%<length> | inherit
+\XMLnamespaceattributeX{fo}{provisional-distance-between-starts}{\FOprovisionaldistancebetweenstarts}{\inherit}
+%<length> | inherit
+\XMLnamespaceattributeX{fo}{provisional-label-separation}{\FOprovisionallabelseparation}{\inherit}
+% 0 | 90 | 180 | 270 | -90 | -180 | -270 | inherit
+\XMLnamespaceattributeX{fo}{reference-orientation}{\FOreferenceorientation}{0}
+%<idref> | inherit
+%\XMLnamespaceattributeX{fo}{ref-id}{\FOrefid}{}
+%xsl-region-body | xsl-region-start | xsl-region-end
+%| xsl-region-before | xsl-region-after | xsl-before-float-separator
+%| xsl-footnote-separator | <name>
+\XMLnamespaceattributeX{fo}{region-name}{\FOregionname}{}
+%before | baseline | inherit
+\XMLnamespaceattributeX{fo}{relative-align}{\FOrelativealign}{\inherit}
+%auto | static | relative | inherit
+\XMLnamespaceattributeX{fo}{relative-position}{\FOrelativeposition}{static}
+%auto | perceptual | relative-colorimetric | saturation |
+% absolute-colorimetric | inherit
+%\XMLnamespaceattributeX{fo}{rendering-intent}{\FOrenderingintent}{auto}
+%page | page-sequence | document
+%\XMLnamespaceattributeX{fo}{retrieve-boundary}{\FOretrieveboundary}{page-sequence}
+%<name>
+\XMLnamespaceattributeX{fo}{retrieve-class-name}{\FOretrieveclassname}{}
+%first-starting-within-page | first-including-carryover |
+% last-starting-within-page | last-ending-within-page
+\XMLnamespaceattributeX{fo}{retrieve-position}{\FOretrieveposition}{first-starting-within-page}
+%<number> | inherit
+%\XMLnamespaceattributeX{fo}{richness}{\FOrichness}{\inherit}
+%<length> | <percentage> | auto | inherit
+\XMLnamespaceattributeX{fo}{right}{\FOright}{auto}
+%<string> | none | inherit
+\XMLnamespaceattributeX{fo}{role}{\FOrole}{none}
+%none | dotted | dashed | solid | double | groove
+% | ridge | inherit
+\XMLnamespaceattributeX{fo}{rule-style}{\FOrulestyle}{\inherit}
+%<length>
+\XMLnamespaceattributeX{fo}{rule-thickness}{\FOrulethickness}{\inherit}
+%uniform | non-uniform | inherit
+\XMLnamespaceattributeX{fo}{scaling}{\FOscaling}{uniform}
+%auto | integer-pixels | resample-any-method | inherit
+\XMLnamespaceattributeX{fo}{scaling-method}{\FOscalingmethod}{auto}
+%true | false | inherit
+\XMLnamespaceattributeX{fo}{score-spaces}{\FOscorespaces}{\inherit}
+%none | auto | <script> | inherit
+\XMLnamespaceattributeX{fo}{script}{\FOscript}{\inherit}
+%replace | new
+\XMLnamespaceattributeX{fo}{show-destination}{\FOshowdestination}{replace}
+%<length>{1,2} | auto | landscape | portrait | inherit
+\XMLnamespaceattributeX{fo}{size}{\FOsize}{auto}
+%<uri>+ | none | inherit
+%\XMLnamespaceattributeX{fo}{source-document}{\FOsourcedocument}{none}
+%<space> | inherit
+%\XMLnamespaceattributeX{fo}{space-after}{\FOspaceafter}{\z@}
+%<space> | inherit
+%\XMLnamespaceattributeX{fo}{space-before}{\FOspacebefore}{\z@}
+%<space> | inherit
+\XMLnamespaceattributeX{fo}{space-end}{\FOspaceend}{\z@}
+%<space> | inherit
+\XMLnamespaceattributeX{fo}{space-start}{\FOspacestart}{\z@}
+%ignore | preserve | inherit
+\XMLnamespaceattributeX{fo}{space-treatment}{\FOspacetreatment}{\inherit}
+%none | all | inherit
+\XMLnamespaceattributeX{fo}{span}{\FOspan}{none}
+%normal | none | spell-out | inherit
+%\XMLnamespaceattributeX{fo}{speak}{\FOspeak}{\inherit}
+%once | always | inherit
+%\XMLnamespaceattributeX{fo}{speak-header}{\FOspeakheader}{\inherit}
+%digits | continuous | inherit
+%\XMLnamespaceattributeX{fo}{speak-numeral}{\FOspeaknumeral}{\inherit}
+%code | none | inherit
+%\XMLnamespaceattributeX{fo}{speak-punctuation}{\FOspeakpunctuation}{\inherit}
+%<number> | x-slow | slow | medium | fast
+% | x-fast | faster | slower | inherit
+%\XMLnamespaceattributeX{fo}{speech-rate}{\FOspeechrate}{\inherit}
+% <uri> | inherit
+\XMLnamespaceattributeX{fo}{src}{\FOsrc}{}
+%<length> | inherit
+\XMLnamespaceattribute{fo}{start-indent}{\FOstartindent}{\inherit}
+%show | hide
+\XMLnamespaceattributeX{fo}{starting-state}{\FOstartingstate}{show}
+%yes | no
+%\XMLnamespaceattributeX{fo}{starts-row}{\FOstartsrow}{no}
+%<number> | inherit
+%\XMLnamespaceattributeX{fo}{stress}{\FOstress}{\inherit}
+%auto | suppress | retain | inherit
+\XMLnamespaceattributeX{fo}{suppress-at-line-break}{\FOsuppressatlinebreak}{auto}
+%xsl-preceding | xsl-following | xsl-any | <name>[ <name>]*
+\XMLnamespaceattributeX{fo}{switch-to}{\FOswitchto}{xsl-any}
+%auto | fixed | inherit
+\XMLnamespaceattributeX{fo}{table-layout}{\FOtablelayout}{auto}
+%yes | no
+\XMLnamespaceattributeX{fo}{table-omit-footer-at-break}{\FOtableomitfooteratbreak}{no}
+%yes | no
+\XMLnamespaceattributeX{fo}{table-omit-header-at-break}{\FOtableomitheaderatbreak}{no}
+%start | center | end | justify | inside | outside
+% | left | right | <string> | inherit
+\XMLnamespaceattributeX{fo}{text-align}{\FOtextalign}{\inherit}
+%relative | start | center | end | justify | inside
+% | outside | left | right | <string> | inherit
+\XMLnamespaceattributeX{fo}{text-align-last}{\FOtextalignlast}{\inherit}
+%none | [ [ underline | no-underline] || [ overline | no-overline ]
+%|| [ line-through | no-line-through ] || [ blink | no-blink ] ]| inherit
+\XMLnamespaceattributeX{fo}{text-decoration}{\FOtextdecoration}{none}
+%<length> | <percentage> | inherit
+\XMLnamespaceattributeX{fo}{text-indent}{\FOtextindent}{\inherit}
+%none | [<color> || <length> <length> <length>?
+%,]* [<color> || <length> <length> <length>?] | inherit
+\XMLnamespaceattributeX{fo}{text-shadow}{\FOtextshadow}{none}
+%capitalize | uppercase | lowercase | none |
+\XMLnamespaceattributeX{fo}{text-transform}{\FOtexttransform}{\inherit}
+%<length> | <percentage> | auto | inherit
+\XMLnamespaceattributeX{fo}{top}{\FOtop}{auto}
+%auto | yes | no | inherit
+\XMLnamespaceattributeX{fo}{treat-as-word-space}{\FOtreataswordspace}{auto}
+%normal | embed | bidi-override | inherit
+\XMLnamespaceattributeX{fo}{unicode-bidi}{\FOunicodebidi}{normal}
+%baseline | middle | sub | super | text-top |
+%text-bottom | <percentage> | <length> | top | bottom | inherit
+\XMLnamespaceattribute{fo}{vertical-align}{\FOverticalalign}{auto}
+%visible | hidden | collapse | inherit
+%\XMLnamespaceattributeX{fo}{visibility}{\FOvisibility}{visible}
+%[[<specific-voice> | <generic-voice>
+%],]* [<specific-voice> | <generic-voice> ] | inherit
+%\XMLnamespaceattributeX{fo}{voice-family}{\FOvoicefamily}{\inherit}
+%<number> | <percentage> | silent | x-soft
+%| soft | medium | loud | x-loud | inherit
+%\XMLnamespaceattributeX{fo}{volume}{\FOvolume}{\inherit}
+%normal | pre | nowrap | inherit
+\XMLnamespaceattributeX{fo}{white-space}{\FOwhitespace}{\inherit}
+%false | true | inherit
+\XMLnamespaceattributeX{fo}{white-space-collapse}{\FOwhitespacecollapse}{\inherit}
+%<integer> | inherit
+\XMLnamespaceattributeX{fo}{widows}{\FOwidows}{\inherit}
+%<length> | <percentage> | auto | inherit
+\XMLnamespaceattributeX{fo}{width}{\FOwidth}{auto}
+%normal | <length> | <space> | inherit
+\XMLnamespaceattributeX{fo}{word-spacing}{\FOwordspacing}{\inherit}
+%no-wrap | wrap | inherit
+\XMLnamespaceattributeX{fo}{wrap-option}{\FOwrapoption}{\inherit}
+%lr-tb | rl-tb | tb-rl | lr | rl | tb | inherit
+\XMLnamespaceattributeX{fo}{writing-mode}{\FOwritingmode}{lr-tb}
+%<country-language> | inherit
+%\XMLnamespaceattributeX{fo}{xml:lang}{\FOxmllang}{\inherit}
+%auto | <integer> | inherit
+\XMLnamespaceattributeX{fo}{z-index}{\FOzindex}{auto}
+%-------------------------------
+\XMLnamespaceattributeX{fotex}{column-align}{\FOcolumnalign}{}
+
+% Added attribute which controls table-placement.
+% It has the same syntax as LaTeX (e.g. !tbh)
+% Since XMLTeX doesn't process well attributes from another namespace,
+% I must use the workaround
+% with namespaces.
+\XMLnamespaceattributeX{fo}{fotex:placement}{\FOkplacement}{}
+\XMLname{fo:inline-container}{\FOInlineContainer}
+\XMLname{fo:list-item-label}{\FOListItemLabel}
+\XMLname{fo:list-item-body}{\FOListItemBody}
+\XMLname{fo:table-cell}{\FOTableCell}
+\XMLname{fo:table-row}{\FOTableRow}
+\def\SpaceAttributes{
+ \XMLattributeX{space-after.optimum}{\FOspaceafteroptimum}{\z@}
+ \XMLattributeX{space-after.maximum}{\FOspaceaftermaximum}{\z@}
+ \XMLattributeX{space-after.minimum}{\FOspaceafterminimum}{\z@}
+ \XMLattributeX{space-before.optimum}{\FOspacebeforeoptimum}{\z@}
+ \XMLattributeX{space-before.maximum}{\FOspacebeforemaximum}{\z@}
+ \XMLattributeX{space-before.minimum}{\FOspacebeforeminimum}{\z@}
+ \XMLattributeX{space-after}{\FOspaceafter}{}
+ \XMLattributeX{space-before}{\FOspacebefore}{}
+}
+\gdef\Defaultx@fontfamily{Times-Roman}
+\gdef\FOheadindent{\z@}
+ \gdef\FOautorestore{no}
+ \gdef\FOazimuth{center}
+ \gdef\FObordercollapse{collapse}
+ \gdef\FOborderseparation{\z@}
+ \gdef\FOborderspacing{\z@}
+ \gdef\FOcaptionside{before}
+ \gdef\FOcolor{}
+ \gdef\FOcountry{none}
+ \gdef\FOdirection{ltr}
+ \gdef\FOdisplayalign{auto}
+ \gdef\FOelevation{level}
+ \gdef\FOemptycells{show}
+ \gdef\FOendindent{\z@}
+ \gdef\FOfont{}
+ \gdef\FOfontfamily{Times-Roman}
+ \gdef\FOfontsizeadjust{none}
+ \gdef\FOfontsize{medium}
+ \gdef\FOfontstretch{normal}
+ \gdef\FOfontstyle{normal}
+ \gdef\FOfontvariant{normal}
+ \gdef\FOfontweight{normal}
+ \gdef\FOformat{1}
+ \gdef\FOglyphorientationhorizontal{0}
+ \gdef\FOglyphorientationvertical{auto}
+ \gdef\FOhyphenate{false}
+ \gdef\FOhyphenationcharacter{-}
+ \gdef\FOhyphenationkeep{none}
+ \gdef\FOhyphenationladdercount{no-limit}
+ \gdef\FOhyphenationpushcharactercount{2}
+ \gdef\FOhyphenationremaincharactercount{2}
+ \gdef\FOlanguage{none}
+ \gdef\FOlastlineendindent{\z@}
+ \gdef\FOleaderalignment{none}
+ \gdef\FOleaderlength{\z@}
+ \gdef\FOleaderpattern{space}
+ \gdef\FOleaderpatternwidth{}
+ \gdef\FOletterspacing{normal}
+ \gdef\FOlinefeedtreatment{treat-as-space}
+ \gdef\FOlineheight{normal}
+ \gdef\FOlineheightshiftadjustment{consider-shifts}
+ \gdef\FOlinestackingstrategy{line-height}
+ \gdef\FOorphans{2}
+ \gdef\FOpagebreakinside{auto}
+ \gdef\FOpitch{medium}
+ \gdef\FOpitchrange{50}
+ \gdef\FOprovisionaldistancebetweenstarts{24.0pt}
+ \gdef\FOprovisionallabelseparation{6.0pt}
+ \gdef\FOrelativealign{before}
+ \gdef\FOrichness{50}
+ \gdef\FOrulestyle{solid}
+ \gdef\FOrulethickness{1.0pt}
+ \gdef\FOscorespaces{true}
+ \gdef\FOscript{auto}
+ \gdef\FOspacetreatment{preserve}
+% \gdef\FOspeak{normal}
+% \gdef\FOspeakheader{once}
+% \gdef\FOspeaknumeral{continuous}
+% \gdef\FOspeakpunctuation{none}
+% \gdef\FOspeechrate{medium}
+ \gdef\FOstartindent{\z@}
+% \gdef\FOstress{50}
+ \gdef\FOtextalign{start}
+ \gdef\FOtextalignlast{relative}
+ \gdef\FOtextindent{\z@}
+ \gdef\FOtexttransform{none}
+% \gdef\FOvoicefamily{}
+ \gdef\FOvolume{medium}
+ \gdef\FOwhitespace{normal}
+ \gdef\FOwhitespacecollapse{true}
+ \gdef\FOwidows{2}
+ \gdef\FOwordspacing{normal}
+ \gdef\FOwrapoption{wrap}
+%<margin-width> | inherit
+ \gdef\FOmarginbottom{\z@}
+%<margin-width> | inherit
+\gdef\FOmarginleft{\z@}
+%<margin-width> | inherit
+\gdef\FOmarginright{\z@}
+%<margin-width> | inherit
+\gdef\FOmargintop{}
+
+\gdef\FOkplacement{}
+
+\XMLelement{fo:root}
+ {}
+ {\documentclass{article}
+ \usepackage{fotex}
+ \begin{document}
+ \pagestyle{empty}
+ \FOSetHyphenation
+ %\ignorewhitespace
+ }
+ {\end{document}}
+
+
+\XMLelement{fotex:inlinemath}
+ {}
+ {\(}
+ {\)}
+
+
+\XMLelement{fotex:equation}
+ {}
+ {\begin{equation}}
+ {\end{equation}}
+
+
+\XMLelement{fotex:displaymath}
+ {}
+ {\begin{displaymath}}
+ {\end{displaymath}}
+
+\XMLelement{fotex:eqnarray}
+ {}
+ {\xmlgrab}
+ {\begin{gather*}#1\end{gather*}}
+
+\XMLelement{fotex:subeqn}
+ {}
+ {\xmlgrab}
+ {\ifx\FOid\@empty
+ \gdef\w@t{#1\nonumber\\}
+ \else
+% needs the global version
+ \gdef\w@t{#1\label{\temp}\\}
+ \fi
+ \aftergroup\w@t}
+
+\XMLelement{fotex:bookmark}
+ {
+ \XMLattributeX{fotex-bookmark-level}{\FOTEXbookmarklevel}{0}
+ \XMLattributeX{fotex-bookmark-label}{\FOTEXbookmarklabel}{}
+ }
+ {\xmlgrab}
+ {\protectCS\FOTEXbookmarklabel
+ \let\ignorespaces\@empty
+ \pdfbookmark[\FOTEXbookmarklevel]{#1}{\FOTEXbookmarklabel}}
+
+\XMLelement{fo:block}
+ {\SpaceAttributes}
+ {%
+ \FOBlockGrabfalse
+ \FOexpandattributes
+ \FOSetHyphenation
+ %\edef\SavedNColumns{\NColumns}
+ \ifx\XML@parent\FOListItemLabel
+ \def\w@t{\FOListBlock}%
+ \def\@whattodonext{\FOEndBlock}%
+ \else
+ \ifFOinOutput
+ \ifx\FObackgroundcolor\att@transparent
+ \ifx\FOborderstyle\att@solid
+ \FOBlockGrabtrue
+ \fi
+ \else
+ \FOBlockGrabtrue
+ \fi
+ \def\w@t{\FOOutputBlock}%
+ \def\@whattodonext{\FOEndOutputBlock}%
+ \else
+% we care if a block is inside a table cell
+ \ifnum\FOinTable>\z@
+ \def\w@t{\FOBoxedBlock{\CurrentCellWidth}}%
+ \def\@whattodonext{\FOEndBoxedBlock}
+ \else
+ % we care if a block is a second or subsequent child of a list body
+ \ifx\XML@parent\FOListItemBody
+ \global\advance\FOListBlocks by 1%
+ \ifnum\FOListBlocks=1\relax\else\FOListInnerPartrue\fi
+ \else
+ % but also if its nested within a list body block
+ \ifFOListBody
+ \FOListInnerPartrue
+ \fi
+ \fi
+ \ifx\FObackgroundcolor\att@transparent
+ \ifx\FOborderstyle\att@solid
+ \FOBlockGrabtrue
+ \fi
+ \else
+ \FOBlockGrabtrue
+ \fi
+ \def\@whattodonext{\FOEndBlock}
+ \def\w@t{\FONormalBlock}%
+ \fi
+ \fi
+ \fi
+%\typeout{Block \the\inputlineno, \meaning\w@t, \meaning\@whattodonext}%
+ \w@t
+ \ifx\FOkeeptogether\att@always\samepage\fi
+ \ifx\FOkeeptogetherColumn\att@always\samepage\fi
+ \ifx\FOkeeptogetherPage\att@always\samepage\fi
+ %\usewhitespace\ignorespaces
+ }
+ {\ifx\FOkeeptogether\att@always\samepage\fi
+ \ifx\FOkeeptogetherColumn\att@always\samepage\fi
+ \ifx\FOkeeptogetherPage\att@always\samepage\fi
+ \@whattodonext
+}
+
+\XMLelement{fo:character}
+ {}
+ {
+ \ifx\FOverticalalign\att@auto
+ \let\FOverticalalign\FObaselineshift
+ \fi
+ \FO@character{\FOcharacter}}
+ {}
+
+\XMLelement{fo:external-graphic}
+ {
+%auto | <length> | <percentage> | inherit
+\XMLattribute{content-height}{\FOcontentheight}{auto}
+%auto | <length> | <percentage> | inherit
+\XMLattribute{content-width}{\FOcontentwidth}{auto}
+}
+ {
+{\utfeight@protect@chars\expandafter\FOfiletest\FOsrc\@empty\@empty\@empty\@empty\@empty\@empty\@empty\@}%
+\ifx\FOwidth\att@auto
+ \ifx\FOheight\att@auto%
+ \relax%
+ \else%
+ \def\FOcontentheight{\FOheight}%
+ \def\FOcontentwidth{auto}%
+ \fi
+\else
+ \def\FOcontentwidth{\FOwidth}%
+ \ifx\FOheight\att@auto%
+ \def\FOcontentheight{auto}%
+ \else%
+ \def\FOcontentheight{\FOheight}%
+ \fi
+\fi
+\ifx\FOcontentwidth\att@scaletofit
+ \setkeys{Gin}{width=\linewidth}%
+\else
+ \ifx\FOcontentwidth\att@auto\else\FOSetGWidth\fi
+\fi
+\ifx\FOcontentheight\att@scaletofit
+ \setkeys{Gin}{height=\textheight}%
+\else
+ \ifx\FOcontentheight\att@auto\else\FOSetGHeight\fi
+\fi
+\def\aligntype{center}
+\ifthenelse{\equal{\FOtextalign}{right}}{\def\aligntype{flushright}}{}
+\ifthenelse{\equal{\FOtextalign}{left}}{\def\aligntype{flushleft}}{}
+\def\Picscaled{\begin{\aligntype}\includegraphics{\FOsrcname}\end{\aligntype}}
+\ifx\FOscaling\att@uniform\else\setkeys{Gin}{keepaspectratio=false}\fi
+%\csname startQ@\FOtextalign\endcsname
+\ifx\FOborderstyle\att@solid\fbox{\Picscaled}\else\Picscaled\fi
+%\csname endQ@\FOtextalign\endcsname
+ }
+{}
+
+
+\XMLelement{fo:block-container}
+ {}
+ {}
+ {}
+
+\XMLelement{fo:float}
+ {\XMLattributeX{float}{\FOfloat}{float}}
+ {\ifx\FOfloat\att@none
+ \begin{figure}[!htp]
+ \else
+ \begin{figure}
+ \fi
+ \FOlabel}
+ {\end{figure}}
+
+\XMLelement{fo:flow}
+ {}
+ {\FOSetHyphenation
+ \clearpage
+ \DEBUG{New page, \the\c@page, \PageNumber}%
+ \ifx\PageNumber\att@auto
+ \else
+ \ifx\PageNumber\att@autoeven
+ \ifodd\c@page\hbox{}\newpage\fi
+ \else
+ \ifx\PageNumber\att@autoodd
+ \ifodd\c@page\else\hbox{}\newpage\fi
+ \else
+ \setcounter{page}{\PageNumber}%
+ \fi
+ \fi
+ \fi
+ \ifx\@empty\pendingID\else
+ \@bsphack
+ \protected@write\@mainaux{}%
+ {\string\newlabel{\pendingID}{{}{\expandafter\FOgeneratePage\FOformat\@null}{}{\pendingID}{}}}%
+ \@esphack
+ \hyper@@anchor{\pendingID}{\relax}%
+ \global\let\pendingID\@empty
+ \fi
+
+ \DEBUG{^^JStart page sequence, using layout \CurrentPageMaster, at page \the\c@page}
+
+ \@ifundefined{Atomic:\CurrentPageMaster}
+ {
+ \@ifundefined{First:\CurrentPageMaster}
+ {
+ \ifx\FOinitialpagenumber\att@auto
+ \ifodd\c@page
+ \DEBUG{Master \CurrentPageMaster: no first page, use odd page}
+ \edef\PFirst{\csname Odd:\CurrentPageMaster\endcsname}
+ \else
+ \DEBUG{Master \CurrentPageMaster: no first page, use even page}
+ \@ifundefined{Even:\CurrentPageMaster}
+ {\edef\PFirst{\csname Odd:\CurrentPageMaster\endcsname}}
+ {\edef\PFirst{\csname Even:\CurrentPageMaster\endcsname}}
+ \fi
+ \else
+ \ifx\FOinitialpagenumber\att@autoeven
+ \@ifundefined{Even:\CurrentPageMaster}
+ {\edef\PFirst{\csname Odd:\CurrentPageMaster\endcsname}}
+ {\edef\PFirst{\csname Even:\CurrentPageMaster\endcsname}}
+ \else
+ \ifx\FOinitialpagenumber\att@autoodd
+ \edef\PFirst{\csname Odd:\CurrentPageMaster\endcsname}
+ \else
+ \ifodd\FOinitialpagenumber
+ \edef\PFirst{\csname Odd:\CurrentPageMaster\endcsname}
+ \else
+ \@ifundefined{Even:\CurrentPageMaster}
+ {\edef\PFirst{\csname Odd:\CurrentPageMaster\endcsname}}
+ {\edef\PFirst{\csname Even:\CurrentPageMaster\endcsname}}
+ \fi
+ \fi
+ \fi
+ \fi
+ }
+ {
+ \edef\PFirst{\csname First:\CurrentPageMaster\endcsname}
+ }
+ \@ifundefined{Blank:\CurrentPageMaster}
+ {\edef\PBlank{\csname Odd:\CurrentPageMaster\endcsname}}
+ {\edef\PBlank{\csname Blank:\CurrentPageMaster\endcsname}}
+ \@ifundefined{Even:\CurrentPageMaster}
+ {\edef\PEven{\csname Odd:\CurrentPageMaster\endcsname}}
+ {\edef\PEven{\csname Even:\CurrentPageMaster\endcsname}}
+ \edef\POdd{\csname Odd:\CurrentPageMaster\endcsname}
+ }
+ {
+ \let\PFirst\CurrentPageMaster
+ \let\PBlank\CurrentPageMaster
+ \let\POdd\CurrentPageMaster
+ \let\PEven\CurrentPageMaster
+ }
+ \DEBUG{ first page master is [\PFirst]}
+ \DEBUG{ odd page master is [\POdd]}
+ \DEBUG{ even page master is [\PEven]}
+ \DEBUG{ blank page master is [\PBlank]}
+ \expandafter\Pass\csname\POdd:xsl-region-body\endcsname\\
+ \csname Atomic:\POdd\endcsname
+ \oddsidemargin\MasterLeftMargin
+ \evensidemargin\MasterLeftMargin
+ \advance\evensidemargin by \SpecialOffset
+ \advance\oddsidemargin by \SpecialOffset
+ \@ifundefined{Atomic:\PEven}{\DEBUG{no master for Atomic:\PEven}}
+ {\csname Atomic:\PEven\endcsname
+ \evensidemargin\MasterLeftMargin
+ \advance\evensidemargin by \SpecialOffset
+ }
+ \edef\EvenHeadExtent{\csname\PEven:before-extent\endcsname}
+ \edef\EvenHead{Static:\csname\PEven:before\endcsname}
+ \edef\EvenTailExtent{\csname\PEven:after-extent\endcsname}
+ \edef\EvenTail{Static:\csname\PEven:after\endcsname}
+ \edef\FirstHeadExtent{\csname\PFirst:before-extent\endcsname}
+ \edef\FirstHead{Static:\csname\PFirst:before\endcsname}
+ \edef\FirstTailExtent{\csname\PFirst:after-extent\endcsname}
+ \edef\FirstTail{Static:\csname\PFirst:after\endcsname}
+ \edef\OddHeadExtent{\csname\POdd:before-extent\endcsname}
+ \edef\OddHead{Static:\csname\POdd:before\endcsname}
+ \edef\OddTailExtent{\csname\POdd:after-extent\endcsname}
+ \edef\OddTail{Static:\csname\POdd:after\endcsname}
+ \edef\BlankHeadExtent{\csname\PBlank:before-extent\endcsname}
+ \edef\BlankHead{Static:\csname\PBlank:before\endcsname}
+ \edef\BlankTailExtent{\csname\PBlank:after-extent\endcsname}
+ \edef\BlankTail{Static:\csname\PBlank:after\endcsname}
+ \FOSetPage
+ \ifnum\NColumns>1\begin{multicols}{\NColumns}\fi
+% \ifnum\NColumns>1\MulticolPendingtrue
+% \begin{multicols}{\NColumns}\fi
+ }
+ {
+ \ifnum\NColumns>1\end{multicols}\fi
+ \clearpage
+ \ifx\ForcePage\att@auto
+ \else
+% remember that we'll do a \clearpage next time anyway.
+% so leave here on wrong sort of page
+ \ifx\ForcePage\att@endoneven
+ \ifodd\c@page\else\BlankPage\newpage\fi
+ \else
+ \ifx\ForcePage\att@endonodd
+ \ifodd\c@page\BlankPage\newpage\fi
+ \fi
+ \fi
+ \fi
+ }
+
+\XMLelement{fo:footnote-body}
+ {}
+ {}
+ {}
+
+
+\XMLelement{fo:footnote}
+ {}
+ {\xmlgrab}
+ {\xmltextwochildren\FOplainfootmark\FOplainfoottext#1}
+
+\XMLelement{fo:page-number-citation}
+ {\XMLattributeX{ref-id}{\FOrefid}{}}
+ {}
+ {\fopagecitation}
+
+\XMLelement{fotex:sort}
+ {}
+ {\let\fopagecitation\fosortpagecitation
+ \global\sorttoks{}}
+ {\global\sortcount-2\let\@elt\focompress@elt
+ \let\fosep\@empty
+ \let\foheld\relax
+ \the\sorttoks
+ \foheld}
+
+\XMLelement{fo:wrapper}
+ {}
+ {\FOSetFont{wrapper}\FOlabel}
+ {}
+
+\XMLelement{fo:leader}
+ {}
+ {
+\leavevmode
+\ifx\FOleaderpattern\leader@pattern@rule
+ \ifx\FOrulestyle\rule@style@dashed
+ \def\w@t{\cleaders\hbox{$\m@th \mkern1.5mu-\mkern1.5mu$}\hfil}%
+ \else
+ \ifx\FOrulestyle\rule@style@dotted
+ \def\w@t{\cleaders\hbox{$\m@th \mkern1.5mu.\mkern1.5mu$}\hfil}%
+ \else
+ \ifdim\FOrulethickness>\z@
+ \def\w@t{\leaders\hrule height \FOrulethickness\hfill}%
+ \else
+ \def\w@t{\hfill}%
+ \fi
+ \fi
+ \fi
+\else
+ \ifx\FOleaderpattern\leader@pattern@dots
+ \def\w@t{\cleaders\hbox{$\m@th \mkern1.5mu.\mkern1.5mu$}\hfill}%
+ \else % space
+ \def\w@t{\hfill}%
+ \fi
+\fi
+\PercentToDimen{\FOleaderlength}%
+\ifdim\@tempdima=\z@\w@t\else\hbox to \@tempdima{\w@t}\fi
+ }
+ {}
+
+\catcode`\/\active
+
+\XMLelement{fo:basic-link}
+ {
+\XMLattributeX{target-presentation-context}{\FOtargetpresentationcontext}{}
+\XMLattributeX{target-processing-context}{\FOtargetprocessingcontext}{}
+\XMLattributeX{target-stylesheet}{\FOtargetstylesheet}{}
+ }
+ {\xmlgrab}
+ {
+\ifx\FOverticalalign\att@auto
+ \let\FOverticalalign\FObaselineshift
+\fi
+\begingroup
+\utfeight@protect@chars\xdef\temp{\FOinternaldestination}%
+\endgroup
+\let\FOinternaldestination\temp
+\begingroup
+\utfeight@protect@chars\xdef\temp{\FOexternaldestination}%
+\endgroup
+\let\FOexternaldestination\temp
+ \ifx\FOindicatedestination\att@yes
+ \setkeys{Hyp}{pdfborder={0 0 1}}
+ \fi
+ \ifx\FOexternaldestination\@empty
+ \hyperlink{\FOinternaldestination}{\FO@inlinesequence{#1}}%
+ \let\FOinternaldestination\@empty
+ \else
+ \href{\FOexternaldestination}{#1}
+% this breaks any real content in the link text
+% \expandafter\@basiclink\relax#1//\@nil#1\@nil\FOexternaldestination\@nil%
+ \let\FOexternaldestination\@empty
+ \fi
+ }
+\catcode`\/=12
+
+\XMLelement{fo:inline-container}
+ {}
+ {}
+ {}
+
+\XMLelement{fo:list-block}
+ {\SpaceAttributes}
+ {
+ \ifx\FOstartindent\att@bodystart
+ \let\FOstartindent\z@
+ \fi
+ \ifx\FOendindent\att@labelend
+ \let\FOendindent\z@
+ \fi
+ \FOSetFont{normal}%
+ \advance\FOinList by 1\relax
+ \ifnum\FOinList>1\relax\leavevmode\fi
+ \begin{list}{}{%
+ \itemindent=\FOstartindent
+ \leftmargin=\FOprovisionaldistancebetweenstarts
+ \advance\leftmargin by \FOmarginleft
+ \rightmargin=\FOmarginright
+ \labelwidth=\FOprovisionaldistancebetweenstarts
+ \advance\labelwidth by -\FOprovisionallabelseparation
+ \expandafter\csname List\FOtextalign\endcsname
+ \labelsep\FOprovisionallabelseparation
+ \itemsep\z@
+ \parsep\z@
+ \topsep\z@
+ \parskip\z@
+ \ifx\@empty\FOspacebefore
+ \@tempdima\FOspacebeforeoptimum
+ \advance\@tempdima by -\FOspacebeforeminimum
+ \@tempdimb\FOspacebeforeoptimum
+ \advance\@tempdimb by \FOspacebeforemaximum
+ \topsep\FOspacebeforeoptimum plus \@tempdimb minus \@tempdima
+ \else
+ \topsep\FOspacebefore
+ \fi
+ }
+ }
+ {\end{list}
+ \advance\FOinList by -1
+ \par
+ }
+
+\XMLelement{fo:list-item-body}
+ {}
+ {\ifx\FOstartindent\att@bodystart
+ \let\FOstartindent\z@
+ \fi
+ \FOListBodytrue\FOListBlocks0}
+ {}
+
+\XMLelement{fo:list-item-label}
+ {}
+ {\xmlgrab}
+ {\ifx\FOstartindent\att@bodystart
+ \let\FOstartindent\z@
+ \fi
+ \ifx\FOendindent\att@labelend
+ \let\FOendindent\z@
+ \fi
+ \savebox{\ItemBox}{#1}\item[#1]\FOlabel}
+
+\XMLelement{fo:list-item}
+ {\SpaceAttributes}
+ {
+ \FOSetHyphenation
+ \ifx\@empty\FOspacebefore
+ \@tempdima\FOspacebeforeoptimum
+ \advance\@tempdima by -\FOspacebeforeminimum
+ \@tempdimb\FOspacebeforeoptimum
+ \advance\@tempdimb by \FOspacebeforemaximum
+ \vskip\FOspacebeforeoptimum plus \@tempdimb minus \@tempdima
+ \else
+ \vskip\FOspacebefore
+ \fi
+ \FOlabel}
+ {}
+
+\XMLelement{fo:page-number}
+ {}
+ {}
+ {\expandafter\FOgeneratePage\FOformat\@null}
+
+
+\XMLelement{fo:page-sequence}
+ {}
+ {\let\CurrentPageMaster\FOmasterreference
+ \let\pendingID\FOid
+ \let\PageNumber\FOinitialpagenumber
+ \let\ForcePage\FOforcepagecount
+ \FOSetHyphenation
+ \LoadLanguage{\FOlanguage}
+ }
+ {}
+
+\XMLelement{fo:region-after}
+ {}
+ {\ifx\FOregionname\@empty
+ \def\FOregionname{xsl-region-after}
+ \fi
+ \DEBUG{ Link [\FOMaster:after] to \FOregionname}
+ \begingroup
+ \utfeight@protect@chars
+ \expandafter\xdef\csname\FOMaster:after\endcsname{\FOregionname}
+ \expandafter\xdef\csname\FOMaster:after-extent\endcsname{\FOextent}
+ \endgroup
+ }
+ {}
+
+
+\XMLelement{fo:region-before}
+ {}
+ {\ifx\FOregionname\@empty
+ \def\FOregionname{xsl-region-before}
+ \fi
+ \DEBUG{ Link [\FOMaster:before] to \FOregionname}
+ \begingroup
+ \utfeight@protect@chars
+ \expandafter\xdef\csname\FOMaster:before\endcsname{\FOregionname}
+ \expandafter\xdef\csname\FOMaster:before-extent\endcsname{\FOextent}
+ \endgroup
+ }
+ {}
+
+\XMLelement{fo:region-body}
+ {}
+ {
+ \ifx\FOmargin\@empty\relax\else
+ \let\FOmarginright\FOmargin
+ \let\FOmarginleft\FOmargin
+ \let\FOmargintop\FOmargin
+ \let\FOmarginbottom\FOmargin
+ \fi
+ \xdef\InnerBottomMargin{\FOmarginbottom}
+ \xdef\InnerTopMargin{\FOmargintop}
+ \xdef\InnerLeftMargin{\FOmarginleft}
+ \xdef\InnerRightMargin{\FOmarginright}
+ \ifx\FOregionname\@empty
+ \def\FOregionname{xsl-region-body}
+ \fi
+ \DEBUG{ Set up [\FOMaster:\FOregionname] body content: \FOcolumngap|\FOcolumncount|\FOmarginbottom|\FOmargintop|}
+ \begingroup
+ \utfeight@protect@chars
+ \expandafter\xdef\csname\FOMaster:\FOregionname\endcsname{\FOcolumngap|\FOcolumncount|\FOmarginbottom|\FOmargintop|}
+ \endgroup
+ }
+ {}
+
+\XMLelement{fo:static-content}
+ {}
+ {\xmlgrab}
+ {\protectCS\FOflowname
+ \FOSetStatic{#1}{\FOflowname}}
+
+\XMLelement{fo:table-and-caption}
+ {}
+ {
+ \global\ColSpecs={}\NCols0
+ \TableWidth\linewidth
+ \advance\TableWidth by -\tabcolsep
+ \advance\TableWidth by -\FOmarginleft
+ \advance\TableWidth by -\FOmarginright
+ \gdef\TableHeader{}
+ \NoTableSetup
+ \ifx\XML@parent\FOInlineContainer
+ \ifnum\FOreferenceorientation=0
+ \FOlabel
+ \else
+ \begin{sidewaystable}\FOlabel
+ \fi
+ \else
+ \ifnum\FOreferenceorientation=0
+% We process FOkplacement atribute to override the placement of the table.
+ \ifx\FOkplacement\@empty
+ \begin{table}[!htbp]\FOlabel
+ \else
+ \edef\ktable{\noexpand\begin{table}[\FOkplacement]}
+ \ktable\FOlabel
+ \fi
+ \else
+ \begin{sidewaystable}\FOlabel
+ \fi
+ \fi
+ }
+ {\ifx\XML@parent\FOInlineContainer
+ \ifnum\FOreferenceorientation=0
+ \else
+ \end{sidewaystable}
+ \fi
+ \else
+ \ifnum\FOreferenceorientation=0
+ \end{table}
+ \else
+ \end{sidewaystable}
+ \fi
+ \fi
+ }
+
+\XMLelement{fo:table-body}
+ { }
+ {
+ \FOFirstCelltrue
+ \FOinTable1
+ \expandafter\NoTableStart{\TableHeader}%
+ }
+{
+ \ifnum\NCols<1
+ \typeout{Table end of no cols defined}
+ \fi
+ \NoTableEnd
+}
+
+
+\XMLelement{fo:table-caption}
+ {}
+ {}
+ {\par}
+
+\XMLelement{fo:table-cell}
+ {
+ \XMLattributeX{ends-row}{\FOendsrow}{false}
+ \XMLattributeX{starts-row}{\FOstartsrow}{false}
+ }
+ {\xmlgrab}
+ {\FOlabel
+ \FOexpandattributes
+ \NoTableCell{#1}}
+
+
+\XMLelement{fo:table-column}
+ {}
+ {
+ \@tempcnta0
+ \loop\ifnum\FOnumbercolumnsrepeated>\@tempcnta
+ \advance\@tempcnta by 1
+ {\NoTableColumn}%
+ \repeat
+ }
+ {}
+
+\XMLelement{fo:table-header}
+ {}
+ {\xmlgrab}
+ {\gdef\TableHeader{#1}}
+
+\XMLelement{fo:table-row}
+ {}
+ {\xmlgrab}
+ {\NoTableRow{#1}}
+
+\XMLelement{fo:table}
+ {}
+ {
+ \global\ColSpecs={}\NCols0
+ \TableWidth\linewidth
+ \advance\TableWidth by -\FOmarginleft
+ \advance\TableWidth by -\FOmarginright
+ \gdef\TableHeader{}
+ \NoTableSetup
+ }
+ {}
+
+\XMLelement{fo:inline}
+ {}
+ {\xmlgrab}
+ {
+ %\usewhitespace\ignorespaces
+ \ifx\FOverticalalign\att@auto
+ \let\FOverticalalign\FObaselineshift
+ \fi
+ \FOlabel
+ \ifx\FOborderstyle\att@solid
+ \ifx\FOborderwidth\att@thin\def\FOborderwidth{0.4pt}\fi
+ \ifx\FOborderwidth\att@medium\def\FOborderwidth{0.8pt}\fi
+ \ifx\FOborderwidth\att@thick\def\FOborderwidth{1.2pt}\fi
+ \FOboxedsequence{#1}%
+ \else
+ \FO@inlinesequence{#1}%
+ \fi}
+
+\XMLelement{fo:bidi-override}
+ {}
+ {\xmlgrab}
+ {\typeout{fo:bidi-override NOT IMPLEMENTED}}
+
+\XMLelement{fo:color-profile}
+ {}
+ {\xmlgrab}
+ {\typeout{fo:color-profile NOT IMPLEMENTED}}
+
+\XMLelement{fo:declarations}
+ {}
+ {\xmlgrab}
+ {\typeout{fo:declarations NOT IMPLEMENTED}}
+
+\XMLelement{fo:initial-property-set}
+ {}
+ {\xmlgrab}
+ {\typeout{fo:initial-property-set NOT IMPLEMENTED}}
+
+\XMLelement{fo:instream-foreign-object}
+ {}
+ {\xmlgrab}
+ {\typeout{fo:instream-foreign-object NOT IMPLEMENTED}}
+
+\XMLelement{fo:marker}
+ {}
+ {\xmlgrab}
+ {\toks@{}%
+ \expandafter\FOaddmarker\FOmarks\relax{}%
+ \toks@\expandafter{\the\expandafter\toks@\expandafter{\FOmarkerclassname}{#1}}%
+ \xdef\FOmarks{\the\toks@}%
+ \mark{\FOmarks}}
+
+\XMLelement{fo:retrieve-marker}
+ {}
+ {\xmlgrab}
+ {\begingroup
+ \utfeight@protect@chars
+\ifx\FOretrieveposition\FirstOnPage
+ \xdef\FOthismark{\topmark}%
+\else
+ \ifx\FOretrieveposition\LastOnPage
+ \xdef\FOthismark{\botmark}%
+ \else
+ \xdef\FOthismark{\topmark}%
+ \fi
+\fi
+ \xdef\FOthisretrieveclassname{\FOretrieveclassname}
+ \endgroup
+ \expandafter\FOgetmarker\FOthismark\relax\relax}
+
+\XMLelement{fo:multi-case}
+ {}
+ {\xmlgrab}
+ {\typeout{fo:multi-case NOT IMPLEMENTED}}
+
+\XMLelement{fo:multi-properties}
+ {}
+ {\xmlgrab}
+ {\typeout{fo:multi-properties NOT IMPLEMENTED}}
+
+\XMLelement{fo:multi-property-set}
+ {}
+ {\xmlgrab}
+ {\typeout{fo:multi-property-set NOT IMPLEMENTED}}
+
+\XMLelement{fo:multi-switch}
+ {}
+ {\xmlgrab}
+ {\typeout{fo:multi-switch NOT IMPLEMENTED}}
+
+\XMLelement{fo:multi-toggle}
+ {}
+ {\xmlgrab}
+ {\typeout{fo:multi-toggle NOT IMPLEMENTED}}
+
+\XMLelement{fo:region-end}
+ {}
+ {\xmlgrab}
+ {\typeout{fo:region-end NOT IMPLEMENTED}}
+
+\XMLelement{fo:region-start}
+ {}
+ {\xmlgrab}
+ {\typeout{fo:region-start NOT IMPLEMENTED}}
+
+\XMLelement{fo:table-footer}
+ {}
+ {\xmlgrab}
+ {\typeout{fo:table-footer NOT IMPLEMENTED}}
+
+
+\XMLelement{fo:layout-master-set}
+ {}
+ {\DEBUG{Start defining page masters}}
+ {\DEBUG{Finish defining page masters}}
+
+\XMLelement{fo:page-sequence-master}
+ {}
+ {
+ \DEBUG{Page sequence master: \FOmastername}
+ \let\Granpa\FOmastername
+ }
+ {}
+
+\XMLelement{fo:single-page-master-reference}
+ {}
+ {\DEBUG{ (single page in \Granpa: use master \FOmasterreference)}
+ \begingroup
+ \utfeight@protect@chars
+ \expandafter\xdef\csname First:\Granpa\endcsname{\FOmasterreference}
+ \expandafter\xdef\csname Blank:\Granpa\endcsname{\FOmasterreference}
+ \expandafter\xdef\csname Odd:\Granpa\endcsname{\FOmasterreference}
+ \expandafter\xdef\csname Even:\Granpa\endcsname{\FOmasterreference}
+ \endgroup
+ }
+ {}
+
+\XMLelement{fo:repeatable-page-master-reference}
+ {}
+ {\DEBUG{ (multiple pages in \Granpa: use master \FOmasterreference)}
+ \begingroup
+ \utfeight@protect@chars
+ \expandafter\xdef\csname Blank:\Granpa\endcsname{\FOmasterreference}
+ \expandafter\xdef\csname First:\Granpa\endcsname{\FOmasterreference}
+ \expandafter\xdef\csname Odd:\Granpa\endcsname{\FOmasterreference}
+ \expandafter\xdef\csname Even:\Granpa\endcsname{\FOmasterreference}
+ \endgroup
+ }
+ {}
+
+
+\XMLelement{fo:repeatable-page-master-alternatives}
+ {}
+ {
+ \DEBUG{ (complex page layout with alternatives)}
+ }
+ {}
+
+
+\XMLelement{fo:conditional-page-master-reference}
+ {}
+ {
+ \ifx\FOoddoreven\att@even
+ \DEBUG{ Even page for \Granpa: \FOmasterreference}
+ \begingroup
+ \utfeight@protect@chars
+ \expandafter\xdef\csname Even:\Granpa\endcsname{\FOmasterreference}
+ \endgroup
+ \else
+ \ifx\FOoddoreven\att@odd
+ \DEBUG{ Odd page for \Granpa: \FOmasterreference}
+ \begingroup
+ \utfeight@protect@chars
+ \expandafter\xdef\csname Odd:\Granpa\endcsname{\FOmasterreference}
+ \endgroup
+ \else
+ \ifx\FOpageposition\att@first
+ \DEBUG{ First page for \Granpa: \FOmasterreference}
+ \begingroup
+ \utfeight@protect@chars
+ \expandafter\xdef\csname First:\Granpa\endcsname{\FOmasterreference}
+ \endgroup
+ \else
+ \ifx\FOblankornotblank\att@blank
+ \DEBUG{ Blank page for \Granpa: \FOmasterreference}
+ \begingroup
+ \utfeight@protect@chars
+ \expandafter\xdef\csname Blank:\Granpa\endcsname{\FOmasterreference}
+ \endgroup
+ \else
+ \DEBUG{ Default page for \Granpa: \FOmasterreference}
+ \begingroup
+ \utfeight@protect@chars
+ \expandafter\xdef\csname Odd:\Granpa\endcsname{\FOmasterreference}
+ \endgroup
+ \fi
+ \fi
+ \fi
+ \fi
+ }
+ {}
+
+
+
+\XMLelement{fo:simple-page-master}
+ {}
+ {\let\FOMaster\FOmastername
+ \ifx\FOmargin\@empty\relax\else
+ \let\FOmarginright\FOmargin
+ \let\FOmarginleft\FOmargin
+ \let\FOmargintop\FOmargin
+ \let\FOmarginbottom\FOmargin
+ \fi
+ \ifx\FOpagewidth\att@auto\edef\FOpagewidth{\paperwidth}\fi
+ \ifx\FOpageheight\att@auto\edef\FOpageheight{\paperheight}\fi
+ \expandafter\xdef\csname\FOMaster:after\endcsname{DummyRegion}
+ \expandafter\xdef\csname\FOMaster:before\endcsname{DummyRegion}
+ \expandafter\xdef\csname\FOMaster:before-extent\endcsname{\FOextent}
+ \expandafter\xdef\csname\FOMaster:after-extent\endcsname{\FOextent}
+ }
+ {
+ \ifdim\InnerTopMargin>\FOmargintop\def\FOmargintop{\InnerTopMargin}\fi
+ \ifdim\InnerBottomMargin>\FOmarginbottom\def\FOmarginbottom{\InnerBottomMargin}\fi
+ \ifdim\InnerRightMargin>\FOmarginright\def\FOmarginright{\InnerRightMargin}\fi
+ \ifdim\InnerLeftMargin>\FOmarginleft\def\FOmarginleft{\InnerLeftMargin}\fi
+ \DEBUG{Define page master \FOmargin, \FOMaster, \FOmarginright/\FOmarginleft}
+ \begingroup
+ \utfeight@protect@chars
+ \expandafter\xdef\csname Atomic:\FOMaster\endcsname{
+ \MasterTopMargin\FOmargintop
+ \MasterBottomMargin\FOmarginbottom
+ \MasterRightMargin\FOmarginright
+ \MasterLeftMargin\FOmarginleft
+ \paperwidth\FOpagewidth
+ \paperheight\FOpageheight
+ }
+ \endgroup
+ }
+\endinput
+
+%%% white space hacking to try at some point
+\ignorewhitespace
+in the code for fo:root
+and
+\usewhitespace\ignorespaces
+(to turn on white space, except for any white space at the start of the
+element) at the end of any elements that take character data.
+
+definitions something like'
+\def\ignorewhitespace{
+ \UnicodeCharacter{13}{ \ignorespaces}
+ \UnicodeCharacter{32}{ \ignorespaces}
+ \UnicodeCharacter{9}{ \ignorespaces}
+}
+\def\usewhitespace{
+ \UnicodeCharacter{13}{}
+ \UnicodeCharacter{32}{}
+ \UnicodeCharacter{9}{}
+}
+