% $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}{} }