summaryrefslogtreecommitdiff
path: root/macros/plain/formats/xmltex/contrib/passivetex/fotex.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/plain/formats/xmltex/contrib/passivetex/fotex.sty')
-rw-r--r--macros/plain/formats/xmltex/contrib/passivetex/fotex.sty1724
1 files changed, 1724 insertions, 0 deletions
diff --git a/macros/plain/formats/xmltex/contrib/passivetex/fotex.sty b/macros/plain/formats/xmltex/contrib/passivetex/fotex.sty
new file mode 100644
index 0000000000..bccbf77a03
--- /dev/null
+++ b/macros/plain/formats/xmltex/contrib/passivetex/fotex.sty
@@ -0,0 +1,1724 @@
+%RCS: $Id: //TEI/web/Software/passivetex/fotex.sty#29 $, $Date: 2002/06/26 $
+%
+% 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>
+%
+\ProvidesPackage{fotex}[2002/06/25: version 1.17. support for XSL formatting, S Rahtz]
+\RequirePackage{graphicx}
+\IfFileExists{multicol.sty}
+ {\RequirePackage{multicol}[1997/12/16]}
+ {\newenvironment{multicols}[1]%
+ {\typeout{Warning, at line \the\inputlineno, multicol package not available}}{}%
+}
+\RequirePackage{rotating}
+\RequirePackage{array}
+\gdef\arraybackslash{\let\\=\@arraycr}
+\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}
+\newcolumntype{C}[1]{>{\centering\arraybackslash}p{#1}}
+\newcolumntype{R}[1]{>{\raggedleft\arraybackslash}p{#1}}
+\newcolumntype{P}[1]{>{\arraybackslash}p{#1}}
+\RequirePackage{amsmath}
+\let\Vec\undefined
+\RequirePackage{longtable}
+\RequirePackage{url}
+\RequirePackage[normalem]{ulem}
+\RequirePackage{color}
+\RequirePackage{times}
+\RequirePackage{mlnames}
+\RequirePackage{unicode}
+\RequirePackage{marvosym}
+\RequirePackage{ucharacters}
+%\usepackage{ucs}\usepackage[utf8]{inputenc}
+\RequirePackage{nameref}
+\RequirePackage[colorlinks=false,plainpages=true,hypertexnames=false,pdfborder={1 0 0}]{hyperref}[1999/08/1]
+%-------------------------------------------
+\newcount\FOListBlocks
+\newcount\FOTableNesting
+\newcount\FOinList
+\newcount\FOinTable
+\newcount\NCols
+\newcount\RowCount
+\newdimen\CurrentCellWidth
+\newdimen\FObalancespace
+\newdimen\FOspaceleft
+\newdimen\MasterBottomMargin
+\newdimen\MasterLeftMargin
+\newdimen\MasterRightMargin
+\newdimen\MasterTopMargin
+\newdimen\NoTableCellHeight
+\newdimen\TableWidth
+\newdimen\XFOendindent
+\newdimen\XFOstartindent
+\newdimen\bottommargin
+\newdimen\FOtempdim
+\newif\ifFOBlockGrab
+\newif\ifFODebug
+\newif\ifFODefiningPage
+\newif\ifFOFirstCell
+\newif\ifFOListBody
+\newif\ifFOListInnerPar
+\newif\ifFOSub
+\newif\ifFOSuper
+\newif\ifFOinLayout
+\newif\ifFOinOutput
+\newif\ifMulticolPending
+\newif\ifNoTableCheckHeight
+\newif\ifStartWithOmit
+\newsavebox\BlockBox
+\newsavebox\CellBox
+\newsavebox\FOBOX
+\newsavebox\ItemBox
+\newtoks\ColSpecs
+%
+\FODebugfalse
+\FOBlockGrabfalse
+\FODefiningPagefalse
+\FOListBodyfalse
+\FOListInnerParfalse
+\FOinLayoutfalse
+\FOinList0
+\FOinOutputfalse
+\FOTableNesting0
+\FOinTable0
+\MasterBottomMargin\z@
+\MasterLeftMargin\z@
+\MasterRightMargin\z@
+\MasterTopMargin\z@
+\MulticolPendingfalse
+\StartWithOmitfalse
+\def\DEBUG#1{%
+ \ifFODebug
+ \typeout{#1, at \the\inputlineno}%
+ \fi
+}
+\def\expandFont#1 #2 #3\\{%
+ \typeout{FONT expanding to #1 / #2 / #3}%
+}
+\def\expandBorder#1 #2 #3\\{%
+ \def\FOborderstartcolor{#3}%
+ \def\FOborderendcolor{#3}%
+ \def\FOborderbeforecolor{#3}%
+ \def\FOborderaftercolor{#3}%
+ \def\FOborderstartwidth{#1}%
+ \def\FOborderendwidth{#1}%
+ \def\FOborderbeforewidth{#1}%
+ \def\FOborderafterwidth{#1}%
+ \def\FOborderstartstyle{#2}%
+ \def\FOborderendstyle{#2}%
+ \def\FOborderbeforestyle{#2}%
+ \def\FOborderafterstyle{#2}%
+}
+\def\FOexpandattributes{%
+%
+% links
+\ifx\FObordertopstyle\LINK\else\let\FOborderbeforestyle\FObordertopstyle\fi
+\ifx\FOborderbottomstyle\LINK\else\let\FOborderafterstyle\FOborderbottomstyle\fi
+\ifx\FOborderrightstyle\LINK\else\let\FOborderendstyle\FOborderrightstyle\fi
+\ifx\FOborderleftstyle\LINK\else\let\FOborderstartstyle\FOborderleftstyle\fi
+\ifx\FObordertopwidth\LINK\else\let\FOborderbeforewidth\FObordertopwidth\fi
+\ifx\FOborderbottomwidth\LINK\else\let\FOborderafterwidth\FOborderbottomwidth\fi
+\ifx\FOborderrightwidth\LINK\else\let\FOborderendwidth\FOborderrightwidth\fi
+\ifx\FOborderleftwidth\LINK\else\let\FOborderstartwidth\FOborderleftwidth\fi
+\ifx\FObordertopcolor\LINK\else\let\FOborderbeforecolor\FObordertopcolor\fi
+\ifx\FOborderbottomcolor\LINK\else\let\FOborderaftercolor\FOborderbottomcolor\fi
+\ifx\FOborderrightcolor\LINK\else\let\FOborderendcolor\FOborderrightcolor\fi
+\ifx\FOborderleftcolor\LINK\else\let\FOborderstartcolor\FOborderleftcolor\fi
+% shortcuts
+ \ifx\FObordercolor\att@black
+ \else
+ \let\FOborderstartcolor\FObordercolor
+ \let\FOborderendcolor\FObordercolor
+ \let\FOborderbeforecolor\FObordercolor
+ \let\FOborderaftercolor\FObordercolor
+ \fi
+ \ifx\FOborderwidth\@empty
+ \else
+ \let\FOborderstartwidth\FOborderwidth
+ \let\FOborderendwidth\FOborderwidth
+ \let\FOborderbeforewidth\FOborderwidth
+ \let\FOborderafterwidth\FOborderwidth
+ \fi
+ \ifx\FOborderstyle\@empty
+ \else
+ \let\FOborderstartstyle\FOborderstyle
+ \let\FOborderendstyle\FOborderstyle
+ \let\FOborderbeforestyle\FOborderstyle
+ \let\FOborderafterstyle\FOborderstyle
+ \fi
+ \ifx\FOborder\@empty
+ \else
+ \expandafter\expandBorder\FOborder\\{}%
+ \fi
+% \ifx\FOfont\@empty
+% \else
+% \expandafter\expandFont\FOfont\relax \\{}%
+% \fi
+ \ifdim\FOpadding>\z@
+ \let\FOpaddingstart\FOpadding
+ \let\FOpaddingend\FOpadding
+ \let\FOpaddingbefore\FOpadding
+ \let\FOpaddingafter\FOpadding
+ \fi
+ \ifx\FOmargin\@empty
+ \else
+ \let\tmpmargin\FOmargin
+ \let\FOmarginleft\tmpmargin
+ \let\FOmarginright\tmpmargin
+ \let\FOmargintop\tmpmargin
+ \let\FOmarginbottom\tmpmargin
+ \fi
+% end of shortcuts
+ \ifx\FOborderendstyle\att@solid
+ \ifx\FOborderendwidth\att@thin\def\FOborderendwidth{0.4pt}\fi
+ \ifx\FOborderendwidth\att@medium\def\FOborderendwidth{0.8pt}\fi
+ \ifx\FOborderendwidth\att@thick\def\FOborderendwidth{1.2pt}\fi
+ \FOBlockGrabtrue
+ \else
+ \def\FOborderendwidth{\z@}%
+ \fi
+ \ifx\FOborderstartstyle\att@solid
+ \ifx\FOborderstartwidth\att@thin\def\FOborderstartwidth{0.4pt}\fi
+ \ifx\FOborderstartwidth\att@medium\def\FOborderstartwidth{0.8pt}\fi
+ \ifx\FOborderstartwidth\att@thick\def\FOborderstartwidth{1.2pt}\fi
+ \FOBlockGrabtrue
+ \else
+ \def\FOborderstartwidth{\z@}%
+ \fi
+ \ifx\FOborderafterstyle\att@solid
+ \ifx\FOborderafterwidth\att@thin\def\FOborderafterwidth{0.4pt}\fi
+ \ifx\FOborderafterwidth\att@medium\def\FOborderafterwidth{0.8pt}\fi
+ \ifx\FOborderafterwidth\att@thick\def\FOborderafterwidth{1.2pt}\fi
+ \else
+ \def\FOborderafterwidth{\z@}%
+ \fi
+ \ifx\FOborderbeforestyle\att@solid
+ \ifx\FOborderbeforewidth\att@thin\def\FOborderbeforewidth{0.4pt}\fi
+ \ifx\FOborderbeforewidth\att@medium\def\FOborderbeforewidth{0.8pt}\fi
+ \ifx\FOborderbeforewidth\att@thick\def\FOborderbeforewidth{1.2pt}\fi
+ \FOBlockGrabtrue
+ \else
+ \def\FOborderbeforewidth{\z@}%
+ \fi
+}
+%-------------------------------------------
+%
+% NoTable. Making tables using fixed width cells.
+% From ideas and code by C V Radhakrishnan.
+%
+\newcount\AbsoluteTableCount
+\newcount\CellCount
+\newcount\arraylength
+\newcounter{ArrayIndex}%
+\newcounter{zeroCtr}%
+\def\DeclareArray#1{%
+ \Array{#1}[0]{}%
+ \expandafter\gdef\csname #1\endcsname[##1]{\csname #1##1\endcsname}%
+}
+\def\Array#1[#2]#3{%
+ \expandafter\xdef\csname #1#2\endcsname{#3}%
+}
+
+%
+\def\getArraylength#1{%
+ \arraylength0
+ \loop\expandafter\ifx\csname #1\the\arraylength\endcsname\relax%
+ \else\advance\arraylength by1\repeat}%
+%
+\def\addToArray#1#2{\arraylength0%
+ \loop\expandafter\ifx\csname #1\the\arraylength\endcsname\relax%
+ \else\advance\arraylength by 1\repeat%
+ \Array{#1}[\the\arraylength]{#2}}%
+%
+\def\clearArray#1{\getArraylength{#1}%
+ \loop\ifnum\arraylength >0%
+ \global\expandafter\let\csname #1\the\arraylength\endcsname\relax%
+ \advance\arraylength by-1\repeat}%
+%
+\long\def\ArrayIterator#1#2{%
+ \setcounter{ArrayIndex}{1}\getArraylength{#1}%
+ \setcounter{zeroCtr}{\c@arraylength}%
+ \loop\ifnum\c@ArrayIndex<\c@zeroCtr{#2}%
+ \stepcounter{ArrayIndex}\repeat%
+}%
+
+\def\NoTableSetup{%
+ \global\advance\AbsoluteTableCount by 1
+ \DeclareArray{fotable\the\AbsoluteTableCount:}%
+ \global\CellCount0
+}
+
+\def\NoTableStart#1{#1}
+
+\def\NoTableEnd{\clearArray{fotable\the\AbsoluteTableCount:}}
+
+\def\NoTableColumn{%
+ \ifx\@empty\FOcolumnnumber
+ \global\advance\NCols by 1
+ \else
+ \global\NCols\FOcolumnnumber
+ \fi
+ \ifx\prop@width\FOcolumnwidth\def\FOcolumnwidth{1in}\fi
+ \ifx\@empty\FOcolumnwidth\def\FOcolumnwidth{1in}\fi
+ \TablePercentToDimen{\FOcolumnwidth}%
+ \addToArray{fotable\the\AbsoluteTableCount:}{\the\@tempdima}%
+ \DEBUG{Table Column \the\NCols, in Table \the\AbsoluteTableCount,
+ \FOcolumnwidth, = \the\@tempdima}%
+}
+\def\NoTableRow#1{%
+ \setbox0=\vbox{\strut They}%
+ \NoTableCellHeight=\ht0
+ \advance\NoTableCellHeight by \dp0
+ \global\CellCount0
+ \NoTableCheckHeightfalse
+ \setbox0=\hbox{#1}%
+ \@tempdima=\ht0
+ \advance\@tempdima by \dp0
+ \FOspaceleft=\pagegoal
+ \advance\FOspaceleft by -\pagetotal
+% \DEBUG{Space check for \the\@tempdima, [\the\FOspaceleft] PageTotal [\the\pagetotal/\the\pagegoal] l.\the\inputlineno}%
+ \ifdim\FOspaceleft<\@tempdima
+ \DEBUG{ .. page in table break fires, l. \the\inputlineno... }%
+ \clearpage
+ \fi
+ \ifdim\@tempdima>\NoTableCellHeight
+%\typeout{row pass 2 at \the\inputlineno, as [\the\@tempdima] > [\the\NoTableCellHeight]}%
+ \global\CellCount0
+ \NoTableCellHeight=\@tempdima
+ \NoTableCheckHeighttrue
+ \vbox{\hbox{#1}}%
+ \else
+ \box0\relax
+ \fi
+ \vskip-\lineskip
+}
+
+\def\NoTableCell#1{%
+ \ifx\FOstartsrow\att@true
+ \vskip-\lineskip
+ \global\CellCount1
+ \else
+ \global\advance\CellCount by 1
+ \fi
+ \ifnum\NCols<1
+ \CurrentCellWidth\z@
+ \setbox0=\hbox{#1}%
+ \CurrentCellWidth=\wd0
+\DEBUG{report \the\CurrentCellWidth}%
+ \else
+ \CurrentCellWidth=\csname fotable\the\AbsoluteTableCount:\the\CellCount\endcsname
+ \fi
+ \advance\CurrentCellWidth by -\FOpaddingstart
+ \advance\CurrentCellWidth by -\FOpaddingend
+ \ifx\FOborderstartstyle\att@solid\advance\CurrentCellWidth by -\FOborderstartwidth\fi
+ \ifx\FOborderendstyle\att@solid\advance\CurrentCellWidth by -\FOborderendwidth\fi
+ \advance\CurrentCellWidth by -\FOmarginright
+ \advance\CurrentCellWidth by -\FOmarginleft
+ \ifnum\FOnumbercolumnsspanned>1
+ \@tempcnta1
+ \loop\ifnum\@tempcnta<\FOnumbercolumnsspanned
+ \advance\@tempcnta by 1
+ \global\advance\CellCount by 1
+ \advance\CurrentCellWidth\csname fotable\the\AbsoluteTableCount:\the\CellCount\endcsname
+% \typeout{add extra column \the\@tempcnta, to reach \FOnumbercolumnsspanned: \the\CurrentCellWidth}%
+ \repeat
+ \fi
+ \ifx\XML@parent\FOTableRow
+ \FOTableCellBlock#1\FOEndTableCellBlock
+ \else
+ \leavevmode\hbox{\FOTableCellBlock#1\FOEndTableCellBlock}%
+ \fi
+ \ifx\FOendsrow\att@true
+ \vskip-\lineskip
+ \global\CellCount0
+ \fi
+}
+
+\def\FOTableCellBlock{%
+ \begin{lrbox}{\CellBox}%
+ \vbox\bgroup
+ \hsize\the\CurrentCellWidth
+ \color@begingroup
+ \FOSetFont{tablecellblock}%
+ \ifx\FOwhitespace\att@pre\obeyspaces\obeylines\fi
+ \ifx\FOwhitespacecollapse\att@false\obeyspaces\fi
+ \ifx\FOwrapoption\att@nowrap\obeylines\fi
+ \ifx\TOverticalalign\att@bottom\vfill\fi
+ }
+
+\def\FOEndTableCellBlock{%
+ \ifx\TOverticalalign\att@top\vfill\fi
+ \color@endgroup
+ \egroup
+ \end{lrbox}%
+ \@tempdima\FOmargintop
+ \advance\@tempdima\FOpaddingbefore
+ \ifx\FOborderbeforestyle\att@solid\advance\@tempdima\FOborderbeforewidth\fi
+% \advance\@tempdima\dp\CellBox
+%\typeout{CELL to height \the\NoTableCellHeight. Padding \FOpaddingbefore,\FOpaddingafter,\FOpaddingstart,\FOpaddingend; Border \FOborderbeforewidth,\FOborderafterwidth,\FOborderstartwidth,\FOborderendwidth; lower by \the\@tempdima; Margin \FOmargintop,\FOmarginbottom,\FOmarginleft,\FOmarginright}%
+\@tempdimb\wd\CellBox
+\advance\@tempdimb by \FOpaddingstart
+\advance\@tempdimb by \FOpaddingend
+\hbox{%
+ \lower\@tempdima
+ \hbox{%
+ \hskip\FOmarginleft
+ \vbox{%
+ \vskip\FOmargintop
+ \vbox{%
+ \ifx\FOborderbeforestyle\att@solid
+ {\color{\FOborderbeforecolor}\hrule\@height\FOborderbeforewidth}%
+ \fi
+ \hbox{%
+ \ifx\FOborderstartstyle\att@solid
+ {\color{\FOborderstartcolor}\vrule\@width\FOborderstartwidth}%
+ \fi
+ \ifx\FObackgroundcolor\att@transparent
+ \else
+ {\color{\FObackgroundcolor}\vrule\@width\@tempdimb\kern-\@tempdimb}%
+ \fi
+ \ifNoTableCheckHeight
+% According to FOdisplayalign property, we put glue
+% before and/or after the cell contents
+ \vtop to \NoTableCellHeight{%
+ \vskip\FOpaddingbefore
+ \ifx\FOdisplayalign\att@auto
+ \else\ifx\FOdisplayalign\att@after
+ \else\ifx\FOdisplayalign\att@before\vfil
+ \else\ifx\FOdisplayalign\att@centered\vfil\fi
+ \fi
+ \fi
+ \fi
+ \hbox{\kern\FOpaddingstart\box\CellBox\kern\FOpaddingend}%
+ \ifx\FOdisplayalign\att@auto\vfil
+ \else\ifx\FOdisplayalign\att@after\vfil
+ \else\ifx\FOdisplayalign\att@before
+ \else\ifx\FOdisplayalign\att@centered\vfil\fi
+ \fi
+ \fi
+ \fi
+ \vskip\FOpaddingafter
+ }%
+ \else
+ \vbox{%
+ \vskip\FOpaddingbefore
+ \hbox{\kern\FOpaddingstart\box\CellBox\kern\FOpaddingend}%
+ \vskip\FOpaddingafter
+ }%
+ \fi
+ \ifx\FOborderendstyle\att@solid
+ {\color{\FOborderendcolor}\vrule\@width\FOborderendwidth}%
+ \fi
+ }%
+ \ifx\FOborderafterstyle\att@solid
+ {\color{\FOborderaftercolor}\hrule\@height\FOborderafterwidth}\fi
+ }%
+ \vskip\FOmarginbottom
+ }%
+ \hskip\FOmarginright
+ }%
+ }%
+}
+
+\def\FOBoxedBlock#1{%
+ \ifdim\@tempdimb=\z@
+ \setbox0=\hbox{#1}\@tempdimb\wd0
+%\typeout{report \the\CurrentCellWidth}%
+ \else
+ \@tempdimb#1%
+ \fi
+ \advance\@tempdimb by -\FOpaddingstart
+ \advance\@tempdimb by -\FOpaddingend
+ \ifx\FOborderstartstyle\att@solid\advance\@tempdimb by -\FOborderstartwidth\fi
+ \ifx\FOborderendstyle\att@solid\advance\@tempdimb by -\FOborderendwidth\fi
+ \advance\@tempdimb by -\FOmarginright
+ \advance\@tempdimb by -\FOmarginleft
+ \begin{lrbox}{\BlockBox}%
+ \vbox\bgroup
+ \hsize\the\@tempdimb
+ \FOSetFont{tableblock}%
+ \color@begingroup
+ \ifx\FOwhitespace\att@pre\obeyspaces\obeylines\fi
+ \ifx\FOwhitespacecollapse\att@false\obeyspaces\fi
+ \ifx\FOwrapoption\att@nowrap\obeylines\fi
+ \parindent\FOtextindent
+ \Quadding
+ \strut
+ }
+
+\def\FOEndBoxedBlock{%
+ \par
+ \color@endgroup
+ \egroup
+ \end{lrbox}%
+ \@tempdimb\FOmargintop
+ \advance\@tempdimb\FOpaddingbefore
+ \ifx\FOborderbeforestyle\att@solid\advance\@tempdimb\FOborderbeforewidth\fi
+% \advance\@tempdimb by \dp\BlockBox
+%\typeout{BLOCK. Padding \FOpaddingbefore,\FOpaddingafter,\FOpaddingstart,\FOpaddingend; Border \FOborderbeforewidth,\FOborderafterwidth,\FOborderstartwidth,\FOborderendwidth; lower by \the\@tempdimb, margin \FOmargintop,\FOmarginbottom,\FOmarginleft,\FOmarginright}%
+\@tempdimc\wd\BlockBox
+\advance\@tempdimc by \FOpaddingstart
+\advance\@tempdimc by \FOpaddingend
+\FOtempdim\FOmarginleft
+\advance\FOtempdim by \FOtextindent
+\hbox{%
+ \lower\@tempdimb
+ \hbox{%
+ \kern\FOtempdim
+ \vbox{%
+ \vskip\FOmargintop
+ \vbox{%
+ \ifx\FOborderbeforestyle\att@solid
+ {\color{\FOborderbeforecolor}\hrule\@height\FOborderbeforewidth}%
+ \fi
+ \hbox{%
+ \ifx\FOborderstartstyle\att@solid
+ {\color{\FOborderstartcolor}\vrule\@width\FOborderstartwidth}\fi
+ \ifx\FObackgroundcolor\att@transparent
+ \else
+ {\color{\FObackgroundcolor}\vrule\@width\@tempdimc\kern-\@tempdimc}%
+ \fi
+ \vbox{%
+ \vskip\FOpaddingbefore
+ \hbox{\kern\FOpaddingstart\box\BlockBox\kern\FOpaddingend}%
+ \vskip\FOpaddingafter
+ }%
+ \ifx\FOborderendstyle\att@solid
+ {\color{\FOborderendcolor}\vrule\@width\FOborderendwidth}\fi
+ }%
+ \ifx\FOborderafterstyle\att@solid
+ {\color{\FOborderaftercolor}\hrule\@height\FOborderafterwidth}\fi
+ }%
+ \vskip\FOmarginbottom
+ }%
+ \kern\FOmarginright
+ }%
+ }%
+}
+
+\def\OldTableCell#1{%
+ \ifx\FOendsrow\att@true
+ \gdef\w@@t{\\}%
+ \else
+ \gdef\w@@t{\tabcellsep}%
+ \fi
+ \ifx\FOstartsrow\att@true
+ \gdef\w@@@t{\\}%
+ \else
+ \gdef\w@@@t{}%
+ \fi
+ \xdef\MyRows{\FOnumberrowsspanned}%
+ \xdef\MyCols{\FOnumbercolumnsspanned}%
+ \ifnum\MyCols>1
+ \gdef\w@t{\multicolumn{\MyCols}{l}{#1}\w@@t}%
+ \else
+ \ifnum\MyRows>1
+ \gdef\w@t{\sbox{\FOBOX}{\hbox{#1}}%
+ \@tempdima\ht\FOBOX
+ \advance\@tempdima by -\baselineskip
+ \raisebox{-\@tempdima}[\z@][\z@]{\usebox{\FOBOX}}\w@@t}%
+ \else
+ \gdef\w@t{\w@@@t#1\w@@t}%
+ \fi
+ \fi
+ \aftergroup\w@t
+}
+%-------------------------------------------
+% utility macros
+\def\protectCS#1{%
+ \begingroup
+ \utfeight@protect@chars
+ \xdef\FOtempCS{#1}%
+ \endgroup
+ \let#1\FOtempCS}%
+\def\GrabFileName#1:#2\@nil{%
+ \DEBUG{Graphic #1 + #2}%
+ \xdef\FOsrcname{#1}%
+}
+\def\NColumns{1}
+\def\Pass#1\\{\expandafter\@Pass#1}
+\def\@Pass#1|#2|#3|#4|{%
+ \columnsep=#1
+ \def\NColumns{#2}%
+ \def\Marginbottom{#3}%
+ \def\Margintop{#4}%
+ }
+\def\FOfiletest#1#2#3#4#5#6#7#8\@{%
+ \def\@tempa{#1#2#3#4#5#6#7}%
+ \def\@tempb{#1#2#3#4#5}%
+ \def\@tempc{#1#2#3#4}%
+ \ifx\@tempa\file@prefix
+ \xdef\FOsrcname{#8}%
+ \else
+ \ifx\@tempb\file@shortprefix
+ \xdef\FOsrcname{#6#7#8}%
+ \else
+ \ifx\@tempc\file@urlprefix
+ \expandafter\FOurlfiletest#5#6#7#8\@empty\@empty\@empty\@empty\@empty\@empty\@empty\@empty\@empty\@empty
+ \else
+ \xdef\FOsrcname{#1#2#3#4#5#6#7#8}%
+ \fi
+ \fi
+ \fi}
+
+\def\FOurlfiletest#1#2#3#4#5#6#7#8){%
+ \def\@tempa{#1#2#3#4#5#6#7}%
+ \def\@tempb{#1#2#3#4#5}%
+ \ifx\file@prefix\@tempa
+ \xdef\FOsrcname{#8}%
+ \else
+ \ifx\@tempb\file@shortprefix
+ \xdef\FOsrcname{#6#7#8}%
+ \else
+ \xdef\FOsrcname{#1#2#3#4#5#6#7#8}%
+ \fi
+ \fi}
+{\catcode`\%=13
+\gdef\percenttest#1%#2#3\@{\ifx#2\relax\def\percentval{#1}\expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi}
+\gdef\TablePercentToDimen#1{\expandafter\percenttest#1\relax%.\@
+ {\@tempdimb\percentval pt\relax\divide\@tempdimb by 100
+ \edef\SCALE{\strip@pt\@tempdimb}\global\@tempdima=\SCALE\TableWidth}{\global\@tempdima#1}
+}
+\gdef\PercentToDimen#1{\expandafter\percenttest#1\relax%.\@
+ {\@tempdimb\percentval pt\relax\divide\@tempdimb by 100
+ \edef\SCALE{\strip@pt\@tempdimb}\global\@tempdima=\SCALE\hsize}{\global\@tempdima#1}
+}
+\gdef\FOSetGWidth{\expandafter\percenttest\FOcontentwidth\relax%.\@
+ {\@tempdima\percentval pt\relax\divide\@tempdima by 100
+ \edef\WSCALE{\strip@pt\@tempdima}\setkeys{Gin}{width=\WSCALE\Gin@nat@width}}{\setkeys{Gin}{width=\FOcontentwidth}}}
+
+\gdef\FOSetGHeight{\expandafter\percenttest\FOcontentheight\relax%.\@
+ {\@tempdima\percentval pt\relax\divide\@tempdima by 100
+ \edef\HSCALE{\strip@pt\@tempdima}\setkeys{Gin}{height=\HSCALE\Gin@nat@height}}{\setkeys{Gin}{height=\FOcontentheight}}}
+
+\gdef\PlayWithFSize#1{\@default\f@size pt
+ \expandafter\percenttest#1\relax%.\@
+ {\dimen@0.01\@default
+ \multiply\dimen@\percentval\relax}{\dimen@#1}\edef\FOfontsizefinal{\the\dimen@}}
+\gdef\PlayWithShift{\expandafter\percenttest\FOverticalalign\relax%.\@
+ {\dimen@0.01\baselineskip\multiply\dimen@\percentval\relax}{\dimen@\FOverticalalign}}
+}
+\def\strip@pt@and@otherjunk#1{\expandafter\rem@ptetc\the#1!}
+\begingroup
+ \catcode`P=12
+ \catcode`T=12
+ \lowercase{\endgroup
+ \gdef\rem@ptetc#1.#2PT#3!{#1\ifnum#2>\z@.#2\fi}%
+}
+\catcode`\/\active
+
+\def\@basiclink#1//#2\@nil#3\@nil#4\@nil{%
+ {%
+\ifx\\#2\\%
+ \href{#4}{\FO@inlinesequence{#1}}%
+\else
+ \href{#4}{\FO@inlinesequence{\XURL{#3}}}%
+\fi
+ }%
+}
+\catcode`\/=12
+%
+\def\BlankPage{%
+ \def\@thehead{\csname\FirstHead\endcsname}%
+ \def\@thefoot{\csname\FirstTail\endcsname}%
+ \let\@themargin\oddsidemargin
+ \def\headheight{\FirstHeadExtent}%
+ \def\tailheight{\FirstTailExtent}%
+ \mark{}%
+ \DEBUG{Blank Page \the\c@page}%
+ \hbox{}
+}
+%-----------------------------------------------
+% longtable
+\LTpre\z@
+\LTpost-10\p@
+\def\LTleft@center{\LTleft=\FOmarginleft plus 1.0fill}
+\def\LTright@center{\LTright=\FOmarginright plus 1.0fill}
+\def\LTleft@start{\LTleft=\FOmarginleft}
+\def\LTright@start{\LTright=\fill}
+\def\LTleft@end{\LTleft=\fill}
+\def\LTright@end{\LTright=\FOmarginright}
+\def\LTleft@justify{\LTleft=\fill}
+\def\LTright@justify{\LTright=\fill}
+\gdef\LeftMargin{\FOmarginleft}
+\gdef\RightMargin{\FOmarginright}
+\gdef\TopMargin{\Margintop}
+\gdef\BottomMargin{\Marginbottom}
+\gdef\EndIndent{\ifx\FOendindent\att@labelend\z@\else\FOendindent\fi}
+\gdef\StartIndent{\ifx\FOstartindent\att@bodystart\z@\else\FOstartindent\fi}
+\gdef\OddTail {}
+\gdef\OddHead {}
+\gdef\EvenTail {}
+\gdef\EvenHead {}
+\gdef\FirstTail {}
+\gdef\FirstHead {}
+\gdef\OddTailExtent{\z@}
+\gdef\OddHeadExtent{\z@}
+\gdef\EvenTailExtent{\z@}
+\gdef\EvenHeadExtent{\z@}
+\gdef\FirstTailExtent{\z@}
+\gdef\FirstHeadExtent{\z@}
+
+\DefineCharacter{8232}{2028}{\newline}
+\DefineCharacter{8208}{2010}{-\/}
+\def\XURL{\begingroup \urlstyle{same}\Url}
+\def\T@pageref#1{%
+ \expandafter\@setref\csname r@#1\endcsname\@secondoffive{#1}%
+}
+\let\@@ReadBookmarks\ReadBookmarks
+\def\ReadBookmarks{{\let\InputIfFileExists\@input\@@ReadBookmarks}}
+\def\XReadBookmarks{%
+ \begingroup
+ \escapechar=`\\%
+ \let\escapechar\@gobble %
+ \def\@@BOOKMARK [##1][##2]##3##4##5{\calc@bm@number{##5}}%
+ \@input{\jobname.out}%
+ \ifx\WriteBookmarks\relax
+ \global\let\WriteBookmarks\relax
+ \fi
+ \def\@@BOOKMARK[##1][##2]##3##4##5{%
+ \def\Hy@temp{##4}%
+ \pdfoutline goto
+ name{##3}%
+ count ##2\check@bm@number{##3}{%
+ \expandafter\strip@prefix\meaning\Hy@temp
+ }%
+ }%
+ {%
+ \def\WriteBookmarks{0}%
+ \@input{\jobname.out}%
+ }%
+ %{\escapechar\m@ne\InputIfFileExists{\jobname.out}{}{}}%
+ \ifx\WriteBookmarks\relax\else
+ \if@filesw\immediate\openout\@outlinefile=\jobname.out
+ \ifHy@typexml
+ \immediate\write\@outlinefile{<relaxxml>\relax}%
+ \fi
+ \fi
+ \fi
+ \endgroup
+}
+
+\def\TableHeader{}
+\def\DECO@{\@firstofone}
+\def\DECO@blink{\uwave}
+\def\DECO@underline{\uline}
+\expandafter\def\csname DECO@line-through\endcsname{\sout}
+\def\QuaddingStart{%
+ \ifx\FOtextalignlast\att@relative
+ \csname startQ@\FOtextalign\endcsname
+ \else
+ \csname startQ@\FOtextalignlast\endcsname
+ \fi
+}%
+\def\QuaddingEnd{%
+ \ifx\FOtextalignlast\att@relative
+ \csname endQ@\FOtextalign\endcsname
+ \else
+ \csname endQ@\FOtextalignlast\endcsname
+ \fi
+}%
+\def\Quadding{%
+ \ifx\FOtextalignlast\att@relative
+ \csname Q@\FOtextalign\endcsname
+ \else
+ \csname Q@\FOtextalignlast\endcsname
+ \fi
+}%
+% page number compression (by David Carlisle)
+
+\def\fopagecitation{\pageref{\FOrefid}}
+%was \hyperlink{\FOrefid}{\pageref{\FOrefid}}}
+\newcount\sortcount
+\newtoks\sorttoks
+\def\fosortpagecitation{%
+ \setbox0\hbox{\global\sortcount=0\expandafter\expandafter\expandafter
+ \@secondoffive\csname r@\FOrefid\endcsname
+ \relax\relax\relax\relax\relax}
+ \let\@elt\fosort@elt
+ \global\sorttoks\expandafter{\expandafter}\the\sorttoks
+ \ifnum\sortcount<\maxdimen
+ \global\sorttoks\expandafter{%
+ \the\expandafter\sorttoks\expandafter\@elt\expandafter{\the\sortcount}}
+ \fi
+ }
+
+\def\fosort@elt#1{%
+ \ifnum#1>\sortcount
+ \global\sorttoks\expandafter{\the\expandafter\sorttoks\expandafter\@elt
+ \expandafter{\the\sortcount}\@elt{#1}}%
+ \global\sortcount\maxdimen
+ \else
+ \ifnum#1<\sortcount
+ \global\sorttoks\expandafter{\the\sorttoks\@elt{#1}}%
+ \fi
+ \fi
+}
+
+\gdef\focompress@elt#1{%
+ \global\advance\sortcount\@ne
+ \ifnum#1=\sortcount
+ \ifx\foheld\relax
+ \edef\foheld{#1}%
+ \else
+ \def\foheld{\textendash#1}%
+ \fi
+ \else
+ \foheld\fosep#1
+ \fi
+ \global\sortcount#1
+ \def\fosep{, }%
+}
+
+% headers
+\def\FirstHead{\csname right-xsl-before\endcsname}
+\def\FirstFoot{\csname right-xsl-after\endcsname}
+\expandafter\def\csname left-xsl-before\endcsname{}
+\expandafter\def\csname left-xsl-after\endcsname{}
+\expandafter\def\csname right-xsl-before\endcsname{}
+\expandafter\def\csname right-xsl-after\endcsname{}
+\@ifundefined{pdfoutput}{}{\def\pdfBorderAttrs{/Border [0 0 0]}}
+
+%color
+\def\@declaredcolor#1{%
+ \@ifundefined{\string\color @#1}%
+ {\expandafter\HTMLXColor#1000000\\{#1}}%
+ {}%
+ \expandafter\let\expandafter\current@color
+ \csname\string\color @#1\endcsname
+ \set@color
+ \ignorespaces}
+
+\def\HTMLXColor#1#2#3#4#5#6#7#8\\#9{%
+% \typeout{Defining color #9 as RGB "#2#3, "#4#5, "#6#7}%
+ \toks@{\definecolor{#9}{RGB}}%
+\uppercase{\the\toks@{"#2#3, "#4#5, "#6#7}}%
+}
+\def\HTMLColor#1#2#3#4#5#6#7#8{%
+ \definecolor{#1}{RGB}{"#3#4, "#5#6, "#7#8}}
+\HTMLColor{aqua}.00FFFF
+\HTMLColor{black}.000000
+\HTMLColor{blue}.0000FF
+\HTMLColor{fuchsia}.FF00FF
+\HTMLColor{gray}.808080
+\HTMLColor{green}.008000
+\HTMLColor{lime}.00FF00
+\HTMLColor{maroon}.800000
+\HTMLColor{navy}.000080
+\HTMLColor{olive}.808000
+\HTMLColor{purple}.800080
+\HTMLColor{red}.FF0000
+\HTMLColor{silver}.C0C0C0
+\HTMLColor{teal}.008080
+\HTMLColor{white}.FFFFFF
+\HTMLColor{yellow}.FFFF00
+
+\definecolor{orange}{cmyk}{0,0.61,0.87,0}
+ \long\def\@firstoffive#1#2#3#4#5{#1}%
+ \long\def\@secondoffive#1#2#3#4#5{#2}%
+ \long\def\@thirdoffive#1#2#3#4#5{#3}%
+ \long\def\@fourthoffive#1#2#3#4#5{#4}%
+ \long\def\@fifthoffive#1#2#3#4#5{#5}%
+
+\expandafter\let\csname Format-1\endcsname\@arabic
+\expandafter\let\csname Format-i\endcsname\@roman
+\expandafter\let\csname Format-I\endcsname\@Roman
+\expandafter\let\csname Format-a\endcsname\@alph
+\expandafter\let\csname Format-A\endcsname\@Alph
+
+\def\FOgeneratePage#1#2\@null{\csname Format-#1\endcsname{\c@page}#2}
+
+\def\@item[#1]{%
+ \if@noparitem
+ \@donoparitem
+ \else
+ \if@inlabel
+ \indent \par
+ \fi
+ \ifhmode
+ \unskip\unskip \par
+ \fi
+ \if@newlist
+% removed this test 2000/11/05. always put in topsep.
+% \if@nobreak
+% \@nbitem
+% \else
+ \addpenalty\@beginparpenalty
+ \addvspace\@topsep
+ \addvspace{-\parskip}%
+% \fi
+ \else
+ \addpenalty\@itempenalty
+ \addvspace\itemsep
+ \fi
+ \global\@inlabeltrue
+ \fi
+ \global\everypar{%
+ \@minipagefalse
+ \global\@newlistfalse
+ \if@inlabel
+ \global\@inlabelfalse
+ {\setbox\z@\lastbox
+ \ifvoid\z@
+ \kern-\itemindent
+ \fi}%
+ \box\@labels
+ \penalty\z@
+ \fi
+ \if@nobreak
+ \global\@nobreakfalse
+ \clubpenalty \@M
+ \else
+ \clubpenalty \@clubpenalty
+ \global\everypar{}%
+ \fi}%
+ \if@noitemarg
+ \@noitemargfalse
+ \if@nmbrlist
+ \refstepcounter\@listctr
+ \fi
+ \fi
+ \sbox\@tempboxa{\makelabel{#1}}%
+%\typeout{LIST at \the\inputlineno, \the\itemindent, \the\labelwidth, \the\wd\@tempboxa}%
+ \global\setbox\@labels\hbox{%
+ \unhbox\@labels
+ \hskip \itemindent
+ \hskip -\labelwidth
+ \hskip -\labelsep
+ \ifdim \wd\@tempboxa >\labelwidth
+ \box\@tempboxa
+ \else
+ \hbox to\labelwidth {\unhbox\@tempboxa}%
+ \fi
+ \hskip \labelsep}%
+ \ignorespaces}
+
+
+% support for markers
+\gdef\FOmarks{}
+
+\gdef\FOaddmarker#1#2{%
+ \ifx\relax#1
+ \else
+ \def\FOtemp{#1}%
+ \ifx\FOtemp\FOmarkerclassname
+ \else
+ \toks@\expandafter{\the\toks@{#1}{#2}}%
+ \fi
+ \expandafter\FOaddmarker
+ \fi}
+
+
+\gdef\FOgetmarker#1#2{%
+ \ifx\relax#1
+ \DEBUG{unknown mark \FOretrieveclassname, at \the\inputlineno}%
+ \else
+ \def\FOtemp{#1}%
+ \ifx\FOtemp\FOthisretrieveclassname
+% \typeout{\the\inputlineno: Retrieve mark (\FOretrieveposition):
+% \FOthisretrieveclassname: #2}%
+ \FOmarkergobble{#2}%
+ \fi
+ \expandafter\FOgetmarker
+ \fi}
+
+\gdef\FOmarkergobble#1#2\relax\relax{\fi\fi#1}
+
+% linebreak
+\def\FOLINEBREAK{%
+\ifnum\FOTableNesting>0
+\else
+ \\
+\fi
+}
+
+
+% vertical spacing
+\newskip\FOafterskip
+\def\FOvspaceafter{%
+\ifFOinOutput
+\else
+ \ifnum\FOTableNesting>0
+ \else
+ \ifx\@empty\FOspaceafter
+ \@tempdima\FOspaceafteroptimum
+ \advance\@tempdima by -\FOspaceafterminimum
+ \@tempdimb\FOspaceafteroptimum
+ \advance\@tempdimb by \FOspaceaftermaximum
+ \FOafterskip\FOspaceafteroptimum plus \@tempdimb minus \@tempdima
+ \else
+ \FOafterskip\FOspaceafter
+ \fi
+ \@tempswafalse
+ \ifx\FOkeepwithnext\att@always\@tempswatrue\fi
+ \ifx\FOkeepwithnextColumn\att@always\@tempswatrue\fi
+ \ifx\FOkeepwithnextPage\att@always\@tempswatrue\fi
+ \if@tempswa\addpenalty{\@M}\fi
+ \addvspace\FOafterskip
+ \fi
+\fi
+}
+
+\def\FOvspacebefore{%
+\ifFOinOutput
+\else
+ \ifx\@empty\FOspacebefore
+ \@tempdima\FOspacebeforeoptimum
+ \advance\@tempdima by -\FOspacebeforeminimum
+ \@tempdimb\FOspacebeforeoptimum
+ \advance\@tempdimb by \FOspacebeforemaximum
+ \@tempskipa\FOspacebeforeoptimum plus \@tempdimb minus \@tempdima
+ \else
+ \@tempskipa\FOspacebefore
+ \fi
+%\typeout{SPACE BEFORE \the\inputlineno: \the\@tempskipa, \FOspacebeforeminimum/\FOspacebeforemaximum/\FOspacebeforeoptimum}%
+ \ifnum\FOTableNesting>0
+ \rule{\z@}{\@tempskipa}%
+ \else
+ \@tempswafalse
+ \ifx\FOkeepwithnext\att@always\@tempswatrue\fi
+ \ifx\FOkeepwithnextColumn\att@always\@tempswatrue\fi
+ \ifx\FOkeepwithnextPage\att@always\@tempswatrue\fi
+ \if@tempswa\addpenalty\@secpenalty\fi
+ \addvspace\@tempskipa
+ \fi
+\fi
+\def\FOspacebefore{\z@}%
+}
+
+% lets do some setup
+% setup
+\paperwidth211mm
+\paperheight297mm
+\hoffset-1in
+\voffset-1in
+\def\fps@table{!htbp}
+\def\fps@figure{!htbp}
+\parindent\z@
+\parskip\z@
+\emergencystretch 3em
+\tabcolsep3pt
+\hbadness=4000
+\hyphenpenalty=400
+\pretolerance=500
+\relpenalty=500
+\tolerance=1000
+\vbadness=3000
+\widowpenalty=8000
+\clubpenalty=8000
+\@twosidetrue
+\fboxsep0pt
+\setcounter{topnumber}{5}
+\renewcommand\topfraction{.9}
+\setcounter{bottomnumber}{12}
+\renewcommand\bottomfraction{.9}
+\setcounter{totalnumber}{6}
+\renewcommand\textfraction{.1}
+\def\FOpdfsetpagesize#1#2{%
+ \@ifundefined{pdfoutput}{}{%
+ \global\pdfpagewidth\paperwidth
+ \global\pdfpageheight\paperheight
+ \DEBUG{Setting pdf size to \the\pdfpagewidth, \the\pdfpageheight}%
+ }%
+}
+\let\SpecialOffset\z@
+% and now read the .cfg
+\openin\@inputcheck fotex.cfg
+\ifeof\@inputcheck\relax
+\else
+ \closein\@inputcheck
+ \input{fotex.cfg}
+\fi
+\begingroup
+\catcode`\^^M\active\catcode`\ \active\gdef\@resetactivechars{\def^^M{<m>}\def {<s>}}\endgroup
+%\catcode`\^^M\active\gdef\@resetactivechars{\def^^M{x}}\endgroup
+
+\def\@outputpage{%
+\begingroup % the \endgroup is put in by \aftergroup
+ \let \protect \noexpand
+% \@resetactivechars
+ \@parboxrestore
+ \shipout \vbox{%
+ \set@typeset@protect
+ \aftergroup \endgroup
+ \aftergroup \set@typeset@protect
+ % correct? or just restore by ending
+ % the group?
+ \if@specialpage
+ \global\@specialpagefalse
+ \def\@thehead{\csname\FirstHead\endcsname}%
+ \def\@thefoot{\csname\FirstTail\endcsname}%
+ \let\@themargin\oddsidemargin
+ \def\headheight{\FirstHeadExtent}%
+ \def\tailheight{\FirstTailExtent}%
+ \else
+ \ifodd\count\z@
+ \def\@thehead{\csname\OddHead\endcsname}%
+ \def\@thefoot{\csname\OddTail\endcsname}%
+ \let\@themargin\oddsidemargin
+ \def\headheight{\OddHeadExtent}%
+ \def\tailheight{\OddTailExtent}%
+ \else
+ \def\@thehead{\csname\EvenHead\endcsname}%
+ \def\@thefoot{\csname\EvenTail\endcsname}%
+ \let\@themargin\evensidemargin
+ \def\headheight{\EvenHeadExtent}%
+ \def\tailheight{\EvenTailExtent}%
+ \fi
+ \fi
+ \@tempdima\textwidth
+ \advance\@tempdima by -\FOheadindent
+ \reset@font
+ \normalsize
+ \normalsfcodes
+ \let\label\@gobble
+ \let\index\@gobble
+ \let\glossary\@gobble
+ \baselineskip\z@skip \lineskip\z@skip \lineskiplimit\z@
+ \@begindvi
+ \vskip \topmargin
+ \moveright\@themargin \vbox {%
+ \setbox\@tempboxa \vbox to\headheight{%
+ \color@hbox
+ \normalcolor
+ \hb@xt@\textwidth{\hfill\llap{\hb@xt@\@tempdima{\@thehead}}}%
+ \color@endbox
+ \vfil
+ }%
+ \dp\@tempboxa \z@
+ \box\@tempboxa
+ \vskip \headsep
+ \box\@outputbox
+ \baselineskip \footskip
+ \vskip \bottommargin
+ \@tempdima\textwidth
+ \advance\@tempdima by -\FOheadindent
+ \setbox\@tempboxa \vbox to\tailheight{%
+ \color@hbox
+ \normalcolor
+ \hb@xt@\textwidth{\hfill\llap{\hb@xt@\@tempdima{\@thefoot}}}%
+ \color@endbox
+ \vfil
+ }%
+ \dp\@tempboxa \z@
+ \box\@tempboxa
+ }%
+ }%
+ \global \@colht \textheight
+ \stepcounter{page}%
+ \let\firstmark\botmark
+}
+
+%%%%
+\def\FO@character#1{%
+\ifx\FOverticalalign\att@baseline
+ #1%
+\else
+ \ifx\FOverticalalign\att@super
+ \textsuperscript{#1}%
+ \else
+ \ifx\FOverticalalign\att@sub
+ \textsubscript{#1}%
+ \else
+ \PlayWithShift
+ \raisebox{\dimen@}{#1}%
+ \fi
+ \fi
+\fi
+}
+\def\FO@inlinesequence#1{%
+ \FOSetFont{normal}%
+\ifx\FOverticalalign\att@baseline
+ \csname DECO@\FOtextdecoration\endcsname{\FOlabel#1}%
+\else
+ \ifx\FOverticalalign\att@super
+ \textsuperscript{\csname DECO@\FOtextdecoration\endcsname{\FOlabel#1}}%
+ \else
+ \ifx\FOverticalalign\att@sub
+ \textsubscript{\csname DECO@\FOtextdecoration\endcsname{\FOlabel#1}}%
+ \else
+ \PlayWithShift
+ \raisebox{\dimen@}{\csname DECO@\FOtextdecoration\endcsname{\FOlabel#1}}%
+ \fi
+ \fi
+\fi
+}
+\def\FOboxedsequence#1{%
+\FOSetFont{normal}%
+\ifx\FOborderwidth\@empty\else\fboxrule\FOborderwidth\fi
+\ifx\FOverticalalign\att@baseline
+ \fbox{\csname DECO@\FOtextdecoration\endcsname{\FOlabel#1}}%
+\else
+ \ifFOSuper
+ \fbox{\textsuperscript{\FOlabel#1}}%
+ \else
+ \ifFOSub
+ \fbox{\textsubscript{\FOlabel#1}}%
+ \else
+ \PlayWithShift
+ \fbox{\raisebox{\dimen@}{\FOlabel#1}}%
+ \fi
+ \fi
+\fi
+}
+%
+\def\FOSetStatic{\expandafter\@SetStatic\FOtextindent\\}
+\def\@SetStatic#1\\{\expandafter\@@SetStatic\FOfontsize\\{#1}}
+\def\@@SetStatic#1\\#2{\expandafter\@@@SetStatic\FOfontweight\\{#1}{#2}}
+\def\@@@SetStatic#1\\#2#3{\expandafter\@@@@SetStatic\FOfontvariant\\{#1}{#2}{#3}}
+\def\@@@@SetStatic#1\\#2#3#4{\expandafter\@@@@@SetStatic\FOfontstyle\\{#1}{#2}{#3}{#4}}
+\def\@@@@@SetStatic#1\\#2#3#4#5{\expandafter\@@@@@@SetStatic\FOfontstretch\\{#1}{#2}{#3}{#4}{#5}}
+\def\@@@@@@SetStatic#1\\#2#3#4#5#6{\expandafter\@@@@@@@SetStatic\FOfontfamily\\{#1}{#2}{#3}{#4}{#5}{#6}}
+
+\expandafter\def\csname Static:DummyRegion\endcsname{}
+\def\@@@@@@@SetStatic#1\\#2#3#4#5#6#7#8#9{%
+ \DEBUG{ set up static area Static:#9 [#8]}%
+ \expandafter\gdef\csname Static:#9\endcsname{%
+ {%
+ {\def\XML@parent{}\global\FOinOutputtrue
+ \def\FOwhitespacecollapse{true}%
+ \def\FOwrapoption{wrap}%
+ \def\FOtextalign{start}%
+ \def\FOfontfamily{#1}%
+ \def\FOfontsize{#6}%
+ \def\FOfontstretch{#2}%
+ \def\FOfontvariant{#4}%
+ \def\FOfontweight{#5}%
+ \def\FOfontstyle{#3}#8\global\FOinOutputfalse}}}%
+}
+
+\let\olditem\item
+\def\item{\if@inlabel\leavevmode\fi\olditem}
+\def\FOlabel{%
+ \ifx\@empty\FOid\else
+ % \typeout{Hypertext label \FOid, at \the\inputlineno}%
+ \@bsphack
+ \protected@write\@mainaux{}%
+ {\string\newlabel{\FOid}{{}{\expandafter\FOgeneratePage\FOformat\@null}{}{\FOid}{}}}%
+ \@esphack
+ \hyper@@anchor{\FOid}{\relax}%
+ \global\let\FOid\@empty
+ \fi
+}
+
+\def\FOListBlock{%
+ \FOSetFont{normal}%
+ \get@external@font\xdef\FOlistlabelfont{\external@font}%
+ \ifx\@empty\FOspacebefore
+ \@tempdima\FOspacebeforeoptimum
+ \advance\@tempdima by -\FOspacebeforeminimum
+ \@tempdimb\FOspacebeforeoptimum
+ \advance\@tempdimb by \FOspacebeforemaximum
+ \itemsep\FOspacebeforeoptimum plus \@tempdimb minus \@tempdima
+ \else
+ \itemsep\FOspacebefore
+ \fi
+ \itemindent=\FOstartindent
+ \leftmargin=\FOprovisionaldistancebetweenstarts
+ \rightmargin=\FOmarginright
+ \labelwidth=\FOprovisionaldistancebetweenstarts
+ \advance\labelwidth by -\FOprovisionallabelseparation
+ \expandafter\csname List\FOtextalign\endcsname
+%\typeout{List at \the\inputlineno: labelwidth: \the\labelwidth,
+% labelsep: \the\labelsep, leftmargin: \the\leftmargin, itemindent
+% \the\itemindent, makelabel: \meaning\makelabel,
+% itemsep: \the\itemsep, \FOtextalign}%
+}
+
+\def\FOOutputBlock{%
+ \FOSetFont{output}%
+ \ifFOBlockGrab
+ \FOBoxedBlock{\textwidth}%
+ \fi
+ \ifx\FOtextalignlast\att@relative
+ \csname startQ@\FOtextalign\endcsname
+ \csname Q@\FOtextalign\endcsname
+ \else
+ \csname startQ@\FOtextalignlast\endcsname
+ \csname Q@\FOtextalignlast\endcsname
+ \fi
+}
+
+\def\FONormalBlock{%
+ \let\@x\relax
+ \ifnum\FOTableNesting>0
+ \ifx\FOtextalign\att@centered
+ \centering
+ \fi
+ \let\@x\relax
+ \FOSetFont{normalblock}%
+ \vrule height \f@baselineskip depth \z@ width \z@
+ \else
+ \ifnum\FOinList>0
+ \FOlabel
+ \ifFOListInnerPar\par\FOvspacebefore\fi
+ \ifx\FOwhitespace\att@pre\obeyspaces\obeylines\fi
+ \ifx\FOwhitespacecollapse\att@false\obeyspaces\fi
+ \ifx\FOwrapoption\att@nowrap\obeylines\fi
+ \else
+ \ifx\FObreakbefore\att@page
+ \let\tempID\FOid
+ \penalty -\@M
+ \let\FOid\tempID
+ \else
+ \ifx\FObreakbefore\att@oddpage
+ \let\tempID\FOid
+ \penalty -\@M
+ \ifodd\c@page\else\BlankPage\newpage\fi
+ \let\FOid\tempID
+ \fi
+ \fi
+ \par
+ \FOlabel
+ \Quadding
+ \ifFOBlockGrab
+ \FOBoxedBlock{\linewidth}%
+ \else
+ \FOBorderTop
+ \ifdim\FOpaddingbefore>\z@
+ \vskip\FOpaddingbefore
+ \fi
+ \FOvspacebefore
+ \parindent\FOtextindent
+ \advance\leftskip by \FOpaddingstart
+ \advance\leftskip by \FOmarginleft
+ \advance\rightskip by \FOpaddingend
+ \advance\rightskip by \FOmarginright
+ \fi
+% \par
+ \ifx\FOwhitespace\att@pre\obeyspaces\obeylines\fi
+ \ifx\FOwhitespacecollapse\att@false\obeyspaces\fi
+ \ifx\FOwrapoption\att@nowrap\obeylines\fi
+ \fi
+ \FOSetFont{normal}%
+ \fi
+\@x
+}
+
+\def\FOEndOutputBlock{%
+ \ifx\FOtextalignlast\att@relative
+ \csname endQ@\FOtextalign\endcsname
+ \else
+ \csname endQ@\FOtextalignlast\endcsname
+ \fi
+ \ifFOBlockGrab
+ \FOEndBoxedBlock
+ \fi
+ \par
+}
+\def\FOEndBlock{%
+ \ifx\XML@parent\FOListItemLabel
+ \else
+ \ifnum\FOinList>0
+ \ifFOListInnerPar\par\fi
+ \else
+ \ifnum\FOTableNesting>0
+ \else
+ \FOEndBlockTwo
+ \fi
+ \fi
+ \fi
+}
+
+\def\FOEndBlockTwo{%
+ \par
+ \ifFOBlockGrab
+ \FOEndBoxedBlock
+ \else
+ \ifdim\FOpaddingafter>\z@
+ \vskip\FOpaddingafter
+ \fi
+ \FOBorderBottom
+ \fi
+ \ifx\FObreakafter\att@page
+ \penalty -\@M
+ \else
+ \ifx\FObreakafter\att@oddpage
+ \cleardoublepage
+ \fi
+ \fi
+ \@tempswafalse
+ \ifx\FOkeepwithnext\att@always\@tempswatrue\fi
+ \ifx\FOkeepwithnextColumn\att@always\@tempswatrue\fi
+ \ifx\FOkeepwithnextPage\att@always\@tempswatrue\fi
+ \if@tempswa\nobreak\fi
+ \FOvspaceafter
+ \if@tempswa\@afterheading\fi
+}
+
+
+\def\FOStartGrab#1{%
+ \@tempdima#1
+ \XFOstartindent\FOstartindent
+ \ifnum\XFOstartindent=\z@
+ \else
+ \advance\XFOstartindent by -\FOmarginleft
+ \advance\XFOstartindent by -\FOborderstartwidth
+ \advance\XFOstartindent by -\FOpaddingstart
+ \advance\@tempdima by -\XFOstartindent
+ \fi
+ \advance\@tempdima by -\FOmarginleft
+ \advance\@tempdima by -\FOborderstartwidth
+ \advance\@tempdima by -\FOpaddingstart
+ \XFOendindent\FOendindent
+ \ifx\FOstartindent\att@bodystart
+ \let\FOstartindent\z@
+ \fi
+ \ifx\FOendindent\att@labelend
+ \let\FOendindent\z@
+ \fi
+ \ifnum\XFOendindent=\z@
+ \else
+ \advance\XFOendindent by -\FOpaddingend
+ \advance\XFOendindent by -\FOmarginright
+ \advance\XFOendindent by -\FOborderendwidth
+ \advance\@tempdima by -\XFOendindent
+ \fi
+ \advance\@tempdima by -\FOpaddingend
+ \advance\@tempdima by -\FOmarginright
+ \advance\@tempdima by -\FOborderendwidth
+%\typeout{Block at\the\inputlineno,Padding:\FOpaddingstart/\FOpaddingend,Border:\FOborderstartwidth/\FOborderendwidth,Margin:\FOmarginleft/\FOmarginleft,Indent:\FOstartindent/\FOendindent, \the\XFOstartindent/\the\XFOendindent}%
+%
+ \begin{lrbox}{\BlockBox}%
+ \begin{minipage}[b]{\@tempdima}%
+ \vskip\FOpaddingbefore
+ \parindent\FOtextindent\leftskip\z@\rightskip\z@
+}
+\def\FOEndGrab#1{%
+ \vspace*{\FOpaddingafter}%
+ \end{minipage}%
+ \end{lrbox}%
+%\typeout{Grabbed Block at\the\inputlineno,Padding:\FOpaddingstart/\FOpaddingend,|\FOpaddingbefore/\FOpaddingafter, Border:\FOborderstartwidth/\FOborderendwidth,Margin:\FOmarginleft/\FOmarginleft,Indent:\FOstartindent/\FOendindent, \the\XFOstartindent/\the\XFOendindent}%
+ \FOvspacebefore
+ \@tempdima\ht\BlockBox
+% \advance\@tempdima by \FOpaddingbefore
+% \advance\@tempdima by \FOpaddingafter
+ \advance\@tempdima by \FOborderbeforewidth
+ \advance\@tempdima by \FOborderafterwidth
+ \ifx\FOborderstyle\att@solid
+ \ifx\FObackgroundcolor\att@transparent
+ \fboxrule\FOborderwidth
+ \fboxsep\FOpadding
+ \vbox to \@tempdima{\hsize#1\parindent\z@\vfil
+ \hbox{\hfil\fbox{\usebox{\BlockBox}}\hfil}\vfil}%
+ \else
+ \vbox to \@tempdima{\hsize#1\vfil\fboxsep\FOpadding\fboxrule\FOborderwidth
+ \hbox{\hfil\fcolorbox{\FObordercolor}{\FObackgroundcolor}%
+ {\box\BlockBox}\hfil}\vfil}%
+ \fi
+ \else
+ \vbox to \@tempdima{\hsize#1\parindent\z@\vfil
+ \ifdim\FOborderbeforewidth>\z@
+ {\color{\FOborderbeforecolor}%
+ \vrule width #1 depth \z@ height \FOborderbeforewidth}%
+ \fi
+ \hbox{%
+ \hskip\XFOstartindent
+ \hskip\FOmarginleft
+ \ifdim\FOborderstartwidth>\z@
+ {\color{\FOborderstartcolor}%
+ \vrule width \FOborderstartwidth height \the\@tempdima}%
+ \fi
+ \hskip\FOpaddingstart
+ \ifx\FObackgroundcolor\att@transparent
+ \hbox{\box\BlockBox}%
+ \else
+ \colorbox{\FObackgroundcolor}%
+ {\box\BlockBox}%
+ \fi
+ \hskip\FOpaddingend
+ \ifdim\FOborderendwidth>\z@
+ {\color{\FOborderendcolor}%
+ \vrule width \FOborderendwidth depth \z@ height
+ \the\@tempdima}%
+ \fi
+ \hskip\FOmarginright
+ \hskip\XFOendindent
+ }%
+ \ifdim\FOborderafterwidth>\z@
+ {\color{\FOborderaftercolor}%
+ \vrule width #1 depth \z@ height \FOborderafterwidth }%
+ \fi
+ \vfil
+ }%
+ \fi
+}
+
+\def\FOBorderBottom{%
+ \ifx\FOborderafterstyle\att@solid
+ \ifx\FOborderafterwidth\att@thin\def\FOborderafterwidth{0.4pt}\fi
+ \ifx\FOborderafterwidth\att@medium\def\FOborderafterwidth{0.8pt}\fi
+ \ifx\FOborderafterwidth\att@thick\def\FOborderafterwidth{1.2pt}\fi
+ \else
+ \def\FOborderafterwidth{\z@}%
+ \fi
+ \ifx\FOborderbeforestyle\att@solid
+ \ifx\FOborderbeforewidth\att@thin\def\FOborderbeforewidth{0.4pt}\fi
+ \ifx\FOborderbeforewidth\att@medium\def\FOborderbeforewidth{0.8pt}\fi
+ \ifx\FOborderbeforewidth\att@thick\def\FOborderbeforewidth{1.2pt}\fi
+ \FOBlockGrabtrue
+ \else
+ \def\FOborderbeforewidth{\z@}%
+ \fi
+ \ifdim\FOborderafterwidth>\z@
+ \ifx\FOborderafterstyle\att@solid
+ {\color{\FObordercolor}\hrule height \FOborderafterwidth}%
+ \fi
+ \fi
+}
+
+\def\FOBorderTop{%
+ \ifdim\FOborderbeforewidth>\z@
+ \ifx\FOborderbeforestyle\att@solid
+ {\color{\FObordercolor}\hrule height \FOborderbeforewidth}%
+ \fi
+ \fi
+}
+
+\def\FOfootnotemark{\protect\@FOfootnotemark}
+\def\@FOfootnotemark#1{% tag
+ \def\@thefnmark{#1}%
+ \expandafter\let\csname p@footnote\endcsname\relax
+ \@footnotemark%
+}
+\def\FOfootnotetext{\protect\@FOfootnotetext}
+\def\@FOfootnotetext#1#2{% plain tag and text, no interpretation
+ \def\@thefnmark{#1}%
+ \expandafter\let\csname p@footnote\endcsname\relax
+ \@footnotetext{\FOlabel#2}}
+
+\def\FOplainfootmark#1{#1}
+\long\def\FOplainfoottext#1{\insert\footins{%
+ \reset@font\footnotesize
+ \interlinepenalty\interfootnotelinepenalty
+ \splittopskip\footnotesep
+ \splitmaxdepth \dp\strutbox \floatingpenalty \@MM
+ \hsize\columnwidth \@parboxrestore
+ \color@begingroup
+ #1\unskip\ifhmode\nobreak\fi\vskip\lineskip
+ \color@endgroup}%
+}
+\ColSpecs={}%
+\NCols0
+\RowCount0
+\def\doTable#1\\#2{%
+ \par
+ \advance\leftskip by \FOpaddingstart
+ \advance\rightskip by \FOpaddingend
+ \advance\rightskip by \FOmarginright
+ \advance\leftskip by \FOmarginleft
+ \FOSetFont{normal}%
+ \csname LTleft@\FOtextalign\endcsname
+ \csname LTright@\FOtextalign\endcsname
+%\typeout{LT: \FOtextalign, \the\LTleft, \the\LTright}%
+ \FOlabel
+ \ifnum\NColumns>1
+ \tabular{#1}
+ \else
+ \ifnum\FOTableNesting>1
+ \tabular{#1}%
+ \else
+ \longtable{#1}%
+ \fi
+ \fi
+ #2}
+
+\newdimen\@default
+\@default=10pt
+
+% set up hyphenation and font-related things
+\def\LastLanguage{(undefined)}
+\selectlanguage{english}
+
+\def\LoadLanguage#1{%
+ \begingroup\utfeight@protect@chars\xdef\newL{#1}\endgroup
+% \@ifundefined{L@\newL}{%
+% \DEBUG{WARNING: unknown language \newL, loading english}%
+% \csname L@us\endcsname
+% }{%
+ \ifx\newL\LastLanguage
+ \else
+ \DEBUG{\the\inputlineno: hyphenation \newL, to replace \LastLanguage}%
+ \csname L@\newL\endcsname
+ \fi
+%}
+\edef\LastLanguage{\newL}}
+
+\def\FOSetHyphenation{%
+ \ifx\FOhyphenate\att@true
+ \LoadLanguage{\FOlanguage}%
+ \hyphenpenalty=\exhyphenpenalty
+ \else
+ \hyphenpenalty=10000
+ \fi
+}
+\def\FOSetFont#1{%
+ \FOSetHyphenation
+ \edef\LaTeXshape{\csname Width@\FOfontstretch\endcsname
+ \csname Weight@\FOfontweight\endcsname}%
+ \ifx\LaTeXshape\@empty\def\LaTeXshape{m}\fi
+\edef\fFamName{\FOfontfamily}%
+%\typeout{#1 At \the\inputlineno, \FOfontweight, \FOfontstyle,
+% \FOfontsize, \FOtextalign, \LaTeXshape}%
+ \edef\f@series{\LaTeXshape}%
+ \edef\f@shape{\csname Posture@\FOfontstyle\endcsname}%
+ \ifx\FOfontvariant\att@smallcaps
+ \def\f@shape{sc}%
+ \fi
+ \let\f@family\relax
+ \@for\FOfoo:=\FOfontfamily\do{%
+ \ifx\f@family\relax
+ \expandafter\let\expandafter\f@family
+ \csname Family@\FOfoo\endcsname
+ \fi}%
+ \ifx\f@family\relax
+ \def\f@family{\csname Family@\Defaultx@fontfamily\endcsname}%
+ \fi
+ \FOSetFontSize
+ \selectfont
+ \ifx\FOcolor\@empty
+ \else
+ \color{\FOcolor}%
+ \fi
+}
+\expandafter\def\csname size-xx-small\endcsname{7pt}
+\expandafter\def\csname size-x-small\endcsname{8pt}
+\expandafter\def\csname size-small\endcsname{9pt}
+\expandafter\def\csname size-medium\endcsname{10pt}
+\expandafter\def\csname size-large\endcsname{14.4pt}
+\expandafter\def\csname size-x-large\endcsname{18pt}
+\expandafter\def\csname size-xx-large\endcsname{20pt}
+\def\computeFOfontsize{%
+ \expandafter\ifx\csname size-\FOfontsize\endcsname\relax
+ \PlayWithFSize\FOfontsize
+ \else
+ \edef\FOfontsizefinal{\csname size-\FOfontsize\endcsname}%
+ \fi
+}
+\def\FOSetFootFont{%
+ \computeFOfontsize
+ \ifx\FOlineheight\att@normal
+ \@tempdima\FOfontsizefinal
+ \multiply\@tempdima by 12
+ \divide\@tempdima by 10
+ \set@fontsize\FOfootnotesize{\FOfontsizefinal}{\@tempdima}%
+ \else
+ \@setfontsize\FOfootnotesize{\FOfontsizefinal}{\FOlineheight}%
+ \fi
+}
+\def\FOSetFontSize{%
+ \computeFOfontsize
+ \ifx\FOlineheight\att@normal
+ \@tempdima\FOfontsizefinal
+ \multiply\@tempdima by 12
+ \divide\@tempdima by 10
+ \set@fontsize\baselinestretch{\FOfontsizefinal}{\@tempdima}%
+ \else
+ \set@fontsize\baselinestretch{\FOfontsizefinal}{\FOlineheight}%
+ \fi
+}
+
+\DeclareRobustCommand*\textsubscript[1]{%
+ \@textsubscript{\selectfont#1}}
+\def\@textsubscript#1{%
+ {\m@th\ensuremath{_{\mbox{\fontsize\sf@size\z@#1}}}}}
+\def\reserved@e{}
+\def\FOSetPage{%
+ \bottommargin\Marginbottom
+ \headsep\Margintop
+ \topmargin\MasterTopMargin
+ \advance\topmargin by \SpecialOffset
+ \textheight\paperheight
+ \textwidth\paperwidth
+ \advance\textheight by -\FirstHeadExtent
+ \advance\textheight by -\FirstTailExtent
+ \advance\textheight by -\MasterTopMargin
+ \advance\textheight by -\Margintop
+ \advance\textheight by -\MasterBottomMargin
+ \advance\textheight by -\Marginbottom
+ \advance\textwidth by -\MasterLeftMargin
+ \advance\textwidth by -\MasterRightMargin
+ \FOpdfsetpagesize{\paperwidth}{\paperheight}
+ \@colht\textheight
+ \@colroom\textheight
+ \vsize\textheight
+ \linewidth\textwidth
+ \columnwidth\textwidth
+ \hsize\columnwidth \linewidth\hsize
+ \def\headheight{12pt}%
+ \DEBUG{Page size is \the\textwidth/\the\textheight,
+ on paper \the\paperwidth/\the\paperheight,^^J
+ with paper margins \the\MasterRightMargin/\the\MasterLeftMargin,
+ and region margins \the\topmargin/\the\MasterBottomMargin;^^J
+ footskip is \the\footskip, headsep is \the\headsep^^J
+ evensidemargin \the\evensidemargin, oddsidemargin \the\oddsidemargin}%
+ \global\@specialpagetrue
+}
+% don't ask
+\def\supppdf{supp-pdf}
+\let\FOinputIfFileExists\InputIfFileExists
+\def\InputIfFileExists#1#2#3{%
+ {\def\@tempa{#1}\ifx\@tempa\supppdf\else
+ \FOinputIfFileExists{#1}{#2}{#3}\fi}}
+%\catcode`^^M=10
+\providecommand\textasciitilde{~}
+
+\define@key{Gin}{scale}{%
+ \if@tempswa
+ \edef\@tempa{\toks@{\noexpand\Gscale@box{#1}[#1]{\the\toks@}}}%
+ \@tempa
+ \else
+ \def\Gin@req@sizes{%
+ \def\Gin@scalex{#1}\let\Gin@scaley\Gin@exclamation
+ \Gin@req@height\Gin@scalex\Gin@nat@height
+ \Gin@req@width\Gin@scalex\Gin@nat@width}%
+ \fi
+ \@tempswatrue}
+
+
+\def\usewhitespace{%
+ \UnicodeCharacter{13}{ \ignorespaces}%
+ \UnicodeCharacter{32}{ \ignorespaces}%
+ \UnicodeCharacter{9}{ \ignorespaces}%
+}
+\def\ignorewhitespace{%
+ \UnicodeCharacter{13}{}%
+ \UnicodeCharacter{32}{}%
+ \UnicodeCharacter{9}{}%
+}
+
+% taken from Heiko Oberdiek's epstopdf.sty
+% but the redefinitions need to be global
+\global\let\orgGin@setfile\Gin@setfile
+\global\def\Gin@setfile#1#2#3{%
+ \if`\@car #3\relax\@nil
+ \let\Gin@base\filename@base
+ \immediate\write18{\@cdr #3\@empty\@nil}%
+ \orgGin@setfile{#1}{#2}{\filename@base #2}%
+ \else
+ \orgGin@setfile{#1}{#2}{#3}%
+ \fi
+}
+
+% support .gif and .eps
+\g@addto@macro\Gin@extensions{,.eps}
+\g@addto@macro\Gin@extensions{,.gif}
+\@namedef{Gin@rule@.eps}#1{{pdf}{.pdf}{`epstopdf #1}}
+\@namedef{Gin@rule@.gif}#1{{png}{.png}{`giftopng #1}}
+
+\endinput