summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/flowfram/samples
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/flowfram/samples
Initial commit
Diffstat (limited to 'macros/latex/contrib/flowfram/samples')
-rw-r--r--macros/latex/contrib/flowfram/samples/egg.eps129
-rw-r--r--macros/latex/contrib/flowfram/samples/egg.pngbin0 -> 930 bytes
-rw-r--r--macros/latex/contrib/flowfram/samples/sample-article.pdfbin0 -> 162965 bytes
-rw-r--r--macros/latex/contrib/flowfram/samples/sample-article.tex283
-rw-r--r--macros/latex/contrib/flowfram/samples/sample-blanks.tex19
-rw-r--r--macros/latex/contrib/flowfram/samples/sample-brochure.pdfbin0 -> 101864 bytes
-rw-r--r--macros/latex/contrib/flowfram/samples/sample-brochure.tex345
-rw-r--r--macros/latex/contrib/flowfram/samples/sample-news.pdfbin0 -> 47955 bytes
-rw-r--r--macros/latex/contrib/flowfram/samples/sample-news.tex189
-rw-r--r--macros/latex/contrib/flowfram/samples/sample-news2.pdfbin0 -> 52800 bytes
-rw-r--r--macros/latex/contrib/flowfram/samples/sample-news2.tex217
-rw-r--r--macros/latex/contrib/flowfram/samples/sample-pages.pdfbin0 -> 136770 bytes
-rw-r--r--macros/latex/contrib/flowfram/samples/sample-pages.tex104
-rw-r--r--macros/latex/contrib/flowfram/samples/sample-poster.pdfbin0 -> 91411 bytes
-rw-r--r--macros/latex/contrib/flowfram/samples/sample-poster.tex355
-rw-r--r--macros/latex/contrib/flowfram/samples/sample-rot.pdfbin0 -> 54567 bytes
-rw-r--r--macros/latex/contrib/flowfram/samples/sample-rot.tex49
-rw-r--r--macros/latex/contrib/flowfram/samples/sample.pdfbin0 -> 100455 bytes
-rw-r--r--macros/latex/contrib/flowfram/samples/sample.tex379
-rw-r--r--macros/latex/contrib/flowfram/samples/sample1.pdfbin0 -> 151194 bytes
-rw-r--r--macros/latex/contrib/flowfram/samples/sample1.tex305
-rw-r--r--macros/latex/contrib/flowfram/samples/sample2.pdfbin0 -> 142653 bytes
-rw-r--r--macros/latex/contrib/flowfram/samples/sample2.tex272
-rw-r--r--macros/latex/contrib/flowfram/samples/sample3.pdfbin0 -> 46646 bytes
-rw-r--r--macros/latex/contrib/flowfram/samples/sample3.tex65
-rw-r--r--macros/latex/contrib/flowfram/samples/sampleRL.pdfbin0 -> 31648 bytes
-rw-r--r--macros/latex/contrib/flowfram/samples/sampleRL.tex16
-rw-r--r--macros/latex/contrib/flowfram/samples/sheep.eps135
-rw-r--r--macros/latex/contrib/flowfram/samples/sheep.pngbin0 -> 1199 bytes
29 files changed, 2862 insertions, 0 deletions
diff --git a/macros/latex/contrib/flowfram/samples/egg.eps b/macros/latex/contrib/flowfram/samples/egg.eps
new file mode 100644
index 0000000000..46bd52f592
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/egg.eps
@@ -0,0 +1,129 @@
+%!PS-Adobe-1.0 EPSF-3.0
+%%BoundingBox: 0 766 71 842
+%%Creator: KDE 3.5.3-0.2.fc4 Red Hat
+%%CreationDate: Mon Aug 20 21:23:59 2007
+%%Orientation: Portrait
+%%Pages: 1
+%%DocumentFonts:
+
+%%EndComments
+%%BeginProlog
+% Prolog copyright 1994-2003 Trolltech. You may copy this prolog in any way
+% that is directly related to this document. For other use of this prolog,
+% see your licensing agreement for Qt.
+/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D
+/D0{0 ED}D/LT{lineto}D/MT{moveto}D/S{stroke}D/F{setfont}D/SW{setlinewidth}D
+/CP{closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{setmatrix}D
+/TR{translate}D/SD{setdash}D/SC{aload pop setrgbcolor}D/CR{currentfile read
+pop}D/i{index}D/bs{bitshift}D/scs{setcolorspace}D/DB{dict dup begin}D/DE{end
+d}D/ie{ifelse}D/sp{astore pop}D/BSt 0 d/LWi 1 d/PSt 1 d/Cx 0 d/Cy 0 d/WFi
+false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d/BDArr[0.94 0.88
+0.63 0.50 0.37 0.12 0.06]d/defM matrix d/nS 0 d/GPS{PSt 1 ge PSt 5 le and{{
+LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 sub get}ie}{[]}ie}D/QS{PSt 0 ne{
+gsave LWi SW true GPS 0 SD S OMo PSt 1 ne and{BkCol SC false GPS dup 0 get
+SD S}if grestore}if}D/r28{{CR dup 32 gt{exit}if pop}loop 3{CR}repeat 0 4{7
+bs exch dup 128 gt{84 sub}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL
+0 eq{/rA r28 d/rL 28 d}if dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB
+exch bs add}{dup rA 16#fffffff 3 -1 roll bs not and exch dup rL exch sub/rL
+ED neg rA exch bs/rA ED}ie}D/uc{/rL 0 d 0{dup 2 i length ge{exit}if 1 rB 1
+eq{3 rB dup 3 ge{1 add dup rB 1 i 5 ge{1 i 6 ge{1 i 7 ge{1 i 8 ge{128 add}if
+64 add}if 32 add}if 16 add}if 3 add exch pop}if 3 add exch 10 rB 1 add{dup 3
+i lt{dup}{2 i}ie 4 i 3 i 3 i sub 2 i getinterval 5 i 4 i 3 -1 roll
+putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0 eq{exit}if 3
+1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add}repeat}ie}loop pop}D
+/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{/colorimage where{pop false 3
+colorimage}{exec/QCIcolor ED/QCIgray QCIcolor length 3 idiv string d 0 1
+QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex 3 mul d QCIgray
+QCIindex QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul QCIcolor x 2
+add get 0.11 mul add add cvi put}for QCIgray image}ie}D/di{gsave TR 1 i 1 eq
+{false eq{pop true 3 1 roll 4 i 4 i false 4 i 4 i imagemask BkCol SC
+imagemask}{pop false 3 1 roll imagemask}ie}{dup false ne{/languagelevel
+where{pop languagelevel 3 ge}{false}ie}{false}ie{/ma ED 8 eq{/dc[0 1]d
+/DeviceGray}{/dc[0 1 0 1 0 1]d/DeviceRGB}ie scs/im ED/mt ED/h ED/w ED/id 7
+DB/ImageType 1 d/Width w d/Height h d/ImageMatrix mt d/DataSource im d
+/BitsPerComponent 8 d/Decode dc d DE/md 7 DB/ImageType 1 d/Width w d/Height
+h d/ImageMatrix mt d/DataSource ma d/BitsPerComponent 1 d/Decode[0 1]d DE 4
+DB/ImageType 3 d/DataDict id d/MaskDict md d/InterleaveType 3 d end image}{
+pop 8 4 1 roll 8 eq{image}{QCI}ie}ie}ie grestore}d/BF{gsave BSt 1 eq{BCol SC
+WFi{fill}{eofill}ie}if BSt 2 ge BSt 8 le and{BDArr BSt 2 sub get/sc ED BCol{
+1. exch sub sc mul 1. exch sub}forall 3 array astore SC WFi{fill}{eofill}ie}
+if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip}ie defM SM pathbbox 3 i 3 i TR 4
+2 roll 3 2 roll exch sub/h ED sub/w ED OMo{NP 0 0 MT 0 h RL w 0 RL 0 h neg
+RL CP BkCol SC fill}if BCol SC 0.3 SW NP BSt 9 eq BSt 11 eq or{0 4 h{dup 0
+exch MT w exch LT}for}if BSt 10 eq BSt 11 eq or{0 4 w{dup 0 MT h LT}for}if
+BSt 12 eq BSt 14 eq or{w h gt{0 6 w h add{dup 0 MT h sub h LT}for}{0 6 w h
+add{dup 0 exch MT w sub w exch LT}for}ie}if BSt 13 eq BSt 14 eq or{w h gt{0
+6 w h add{dup h MT h sub 0 LT}for}{0 6 w h add{dup w exch MT w sub 0 exch LT
+}for}ie}if S}if BSt 24 eq{}if grestore}D/mat matrix d/ang1 D0/ang2 D0/w D0/h
+D0/x D0/y D0/ARC{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED mat CM pop x w 2 div
+add y h 2 div add TR 1 h w div neg scale ang2 0 ge{0 0 w 2 div ang1 ang1
+ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 add arcn}ie mat SM}D/C D0/P{NP MT
+0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP fill}D/M{/Cy ED/Cx ED}D/L{NP Cx Cy
+MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP MT LT QS}D/HL{1 i DL}D/VL{2 i exch DL}D/R
+{/h ED/w ED/y ED/x ED NP x y MT 0 h RL w 0 RL 0 h neg RL CP BF QS}D/ACR{/h
+ED/w ED/y ED/x ED x y MT 0 h RL w 0 RL 0 h neg RL CP}D/xr D0/yr D0/rx D0/ry
+D0/rx2 D0/ry2 D0/RR{/yr ED/xr ED/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y
+w h R}{xr 100 ge yr 100 ge or{x y w h E}{/rx xr w mul 200 div d/ry yr h mul
+200 div d/rx2 rx 2 mul d/ry2 ry 2 mul d NP x rx add y MT x y rx2 ry2 180 -90
+x y h add ry2 sub rx2 ry2 270 -90 x w add rx2 sub y h add ry2 sub rx2 ry2 0
+-90 x w add rx2 sub y rx2 ry2 90 -90 ARC ARC ARC ARC CP BF QS}ie}ie}D/E{/h
+ED/w ED/y ED/x ED mat CM pop x w 2 div add y h 2 div add TR 1 h w div scale
+NP 0 0 w 2 div 0 360 arc mat SM BF QS}D/A{16 div exch 16 div exch NP ARC QS}
+D/PIE{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED NP x w 2 div add y h 2 div add MT
+x y w h ang1 16 div ang2 16 div ARC CP BF QS}D/CH{16 div exch 16 div exch NP
+ARC CP BF QS}D/BZ{curveto QS}D/CRGB{255 div 3 1 roll 255 div 3 1 roll 255
+div 3 1 roll}D/BC{CRGB BkCol sp}D/BR{CRGB BCol sp/BSt ED}D/WB{1 W BR}D/NB{0
+B BR}D/PE{setlinejoin setlinecap CRGB PCol sp/LWi ED/PSt ED LWi 0 eq{0.25
+/LWi ED}if PCol SC}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM SM concat}D/MF{true
+exch true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3
+-1 roll eq{exit}if}forall exch dup 1 get/fxscale ED 2 get/fslant ED exch
+/fencoding ED[fxscale 0 fslant 1 0 0]makefont fencoding false eq{}{dup
+maxlength dict begin{1 i/FID ne{def}{pop pop}ifelse}forall/Encoding
+fencoding d currentdict end}ie definefont pop}D/MFEmb{findfont dup length
+dict begin{1 i/FID ne{d}{pop pop}ifelse}forall/Encoding ED currentdict end
+definefont pop}D/DF{findfont/fs 3 -1 roll d[fs 0 0 fs -1 mul 0 0]makefont d}
+D/ty 0 d/Y{/ty ED}D/Tl{gsave SW NP 1 i exch MT 1 i 0 RL S grestore}D/XYT{ty
+MT/xyshow where{pop pop xyshow}{exch pop 1 i dup length 2 div exch
+stringwidth pop 3 -1 roll exch sub exch div exch 0 exch ashow}ie}D/AT{ty MT
+1 i dup length 2 div exch stringwidth pop 3 -1 roll exch sub exch div exch 0
+exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 d/OMo false d}D/QP{C restore
+showpage}D/SPD{/setpagedevice where{1 DB 3 1 roll d end setpagedevice}{pop
+pop}ie}D/SV{BSt LWi PSt Cx Cy WFi OMo BCol PCol BkCol/nS nS 1 add d gsave}D
+/RS{nS 0 gt{grestore/BkCol ED/PCol ED/BCol ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt
+ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/CLSTART{/clipTmp matrix CM d defM SM NP}
+D/CLEND{clip NP clipTmp SM}D/CLO{grestore gsave defM SM}D
+
+/LArr[ [] [] [ 10.000 3.000 ] [ 3.000 10.000 ] [ 3.000 3.000 ] [ 3.000 3.000 ] [ 5.000 3.000 3.000 3.000 ] [ 3.000 5.000 3.000 3.000 ] [ 5.000 3.000 3.000 3.000 3.000 ] [ 3.000 5.000 3.000 3.000 3.000 3.000 ] ] d
+/pageinit {
+% 210*297mm (portrait)
+0 842 translate 1 -1 scale/defM matrix CM d } d
+%%EndProlog
+%%BeginSetup
+%%EndSetup
+%%Page: 1 1
+%%BeginPageSetup
+QI
+%%EndPageSetup
+[1 0 0 1 0 0]ST
+CLSTART
+0 0 71 76 ACR
+CLEND
+B P1
+NB
+W BC
+/sl 5396 string uc
+î½L*îçËDWçÓUÕ?ÇSÑç±ÈÀN°Þæݺ×ô;*ÎÉòçµ-M2ë±Y;L2*ËGU¹ðÂ:ÒSINÂL*JGóL¾òÕ3;.JÐQݽM
+¾Ê3BÀâÊCWLÆÔW=RÂ:*æDéòã¿2K*ÇÜíÄ6+ÊPá2àÒç>7;ËL.+VÚ;JðÊ6+<Qæ2Þ°PÄ*@=²Â=X*0ìÞßÏ
+.âØDù¯.¯ìºPÑK³éDÍË;.YÜ·C,îÛ²MÆÍIñ°.öCEMÆÇ=ñ°.BCEM2ÊBñ°.¾·çÄ:SÑäã2:³´Ä:±åäã2Z
+´íCàÃ7;-06ÚÀÁÁ7*SÑËØÎÁU,¶Ô;ÕVZÅĶI0åAîîAì5L¸Å¶Æ/Q:ï²/ð´Â-ÆÖ:MFP¿Ò6ïö;Ì=LXÃ*³
+íÄè,7ïJ1¾ãÊ4+VÜ6ܹC¸²-:·PÄ*ÇÍÕóóÃä¶Dé±Âé<*PÑK.¯è²ÈÄ*òѯ.KÍüä7¿üµëDÅL¾Ô·<à6*â
+Ê*;NäÊ÷@ÀúÍH+MÆòçõí2òI³èÕ5+RåÊ2QXøR:P-¾ôê5¯KĶ+ôÕ2;.Z1ÄÞPËÔòèÓéÈU¯Âù7öü7ï·êR
+ðÅÖ8MFSÁÙÄÆ@=XÅßKMNö2ù¯ÂùZÆÙ;ÐöÀWBL4CÖ*6Oí25:,%%
+d
+71 76[1 0 0 1 0 0]sl 8 false 0 0 di
+
+QP
+%%Trailer
+%%Pages: 1
+%%DocumentFonts:
+%%EOF
diff --git a/macros/latex/contrib/flowfram/samples/egg.png b/macros/latex/contrib/flowfram/samples/egg.png
new file mode 100644
index 0000000000..f67b013c34
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/egg.png
Binary files differ
diff --git a/macros/latex/contrib/flowfram/samples/sample-article.pdf b/macros/latex/contrib/flowfram/samples/sample-article.pdf
new file mode 100644
index 0000000000..668b591a31
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sample-article.pdf
Binary files differ
diff --git a/macros/latex/contrib/flowfram/samples/sample-article.tex b/macros/latex/contrib/flowfram/samples/sample-article.tex
new file mode 100644
index 0000000000..ba165bd9be
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sample-article.tex
@@ -0,0 +1,283 @@
+ % This file is public domain.
+
+\documentclass[a4paper]{article}
+
+\usepackage[margin=1in,top=1in,bottom=1in]{geometry}
+\usepackage{url}
+\usepackage{color}
+\usepackage{flowfram}
+
+\newcommand{\sty}[1]{\textsf{#1}}
+\newcommand{\env}[1]{\textsf{#1}}
+\newcommand{\cmdname}[1]{\texttt{\symbol{92}#1}}
+\newcommand{\meta}[1]{\textnormal{\textless\textit{#1}\textgreater}}
+
+
+\twocolumnStop[1]{2in}
+\setstaticframe{1}{label=title}
+
+\twocolumn[>1]
+
+\begin{document}
+\begin{staticcontents*}{title}
+\title{Creating Flow Frames for Posters or Magazines}
+\author{Nicola L. C. Talbot\\[1cm]\url{http://www.dickimaw-books.com/}}
+\date{}
+\maketitle
+\end{staticcontents*}
+
+This document is a sample document, see \linebreak
+\texttt{ffuserguide.pdf} for
+an up-to-date guide on how to use the \sty{flowfram} package.
+
+\section{Introduction}
+
+The \sty{flowfram} package is designed to enable you to create
+frames in a document such that the
+contents of the \env{document} environment flow from one
+frame to the next in the order that they were defined.
+This is useful for creating posters\marginpar{A marginal note}
+or magazines or any other form of document that does not
+conform to the standard one or two column layout.
+
+\subsection{Setting up Frames}
+
+The \sty{flowfram} package provides three types of frame:
+{flow frames}, {static
+frames} and {dynamic frames}.
+
+\subsubsection{Flow Frames}
+
+The flow frame is the principle type of frame.
+The text of the \env{document} environment will flow from
+one frame to the next in order of definition. Each
+flow frame has an associated width, height,
+position on the page, and optionally a border\footnote{A
+footnote!}.
+
+\subsubsection{Static Frames}
+
+A static frame is a rectangular area in which text neither
+flows into, nor flows out of. The contents must be set
+explicitly, and once set, the contents of the static frame will
+remain the same on each page until it is explicitly
+changed. Thus, a static frame can be used, for example, to make
+a company logo appear in the same place on every page.
+
+\subsubsection{Dynamic Frames}
+
+A dynamic frame is similar to a static frame, but its contents
+are re-typeset on each page. (A static frame stores its
+contents in a savebox, whereas a dynamic frame stores its
+contents in a macro).
+
+\section{Frame Attributes}
+\label{sec:modattr}
+
+Once you have defined the {flow frames}, {static frames} and
+{dynamic frames}, their attributes can be changed.
+The three types of frame mostly have the
+same set of attributes, but some are specific to a certain type.
+The available attributes are as follows
+(\textsuperscript{\textbf{F}} indicates the key is
+only available for {flow frames},
+\textsuperscript{\textbf{S}} indicates the key is only available
+for {static frames}
+and \textsuperscript{\textbf{D}} indicates the key
+is only available for {dynamic frames}):
+
+\begin{description}
+\item[width=\meta{length}] The width of the frame.
+
+\item[height=\meta{length}] The height of the frame.
+
+\item[x=\meta{length}] The x-coordinate of the frame.
+
+\item[y=\meta{length}] The y-coordinate of the frame.
+
+\item[border=\meta{style}] The style of the border around the
+frame, this can take the values: \texttt{none} (no border),
+\texttt{plain} (plain border) or the name of a \LaTeX\
+frame making command without the preceding backslash.
+The value \texttt{fbox} is equivalent to \texttt{plain}.
+
+\item[offset=\meta{offset}] The border offset, if it is a
+user-defined border. This is the distance from the outer
+edge of the left hand border to the left edge of the
+bounding box of the text inside the border. The \sty{flowfram}
+package is able to compute the border for
+known frame making commands.
+If you define your own frame making command, you may need to
+specify the offset explicitly, or the frames
+may end up shifted to the right or left.
+
+\item[bordercolor=\meta{colour}] The colour of the border
+if you are using a standard frame making command.
+The colour can either be specified as, e.g.\ \texttt{green},
+or including the colour model, e.g. \verb/[rgb]{0,1,0}/.
+
+\item[textcolor=\meta{colour}] The text colour for that
+frame. Again, the colour can either be specified as,
+e.g.\ \texttt{green}, or including the colour model,
+e.g. \verb/[rgb]{0,1,0}/.
+
+\item[pages=\meta{page list}] The {list of
+pages} for which the frame
+should appear. This can either have the values: \texttt{all},
+\texttt{even}, \texttt{odd} or \texttt{none} (the latter
+removes the frame from that point on---useful if you
+have multiple pages with the same number), or it can be a
+comma-separated list of single pages, or
+{page ranges}.
+
+\item[margin=\meta{side}\textsuperscript{F}] The side of
+the flow frame that its corresponding margin should go on. This
+can take the values \texttt{left} or \texttt{right}.
+
+\item[clear=\meta{boolean}\textsuperscript{S}] If this value
+is set, the static frame will be cleared at the start of the
+next page.
+
+\item[style=\meta{cmd}\textsuperscript{D}] This should be
+the name of a command \emph{without} the preceding backslash,
+to be applied to the contents of the specified dynamic frame.
+The command may either be a declaration, for example \verb/style=large/
+which will set the contents of all the dynamic frames in a
+large font, or it can be a command that takes a single argument,
+for example \verb/style=textbf/
+which will make the text for all the dynamic frames come out in
+bold. To unset a style, do \verb/style=none/.
+
+\end{description}
+
+\section{Miscellaneous}
+
+\subsection{Page Layout}
+
+The \sty{flowfram} package has the package option \texttt{draft}
+which will draw the {bounding boxes} for
+each frame defined. At the bottom right of each
+bounding box (except for the bounding box denoting the
+typeblock), a marker will be shown to indictate the type
+of frame, its IDN and its IDL.
+
+You can see the layout for the current page (irrespective of
+whether or not the \texttt{draft} option has been set) using
+the command:\newline
+\cmdname{flowframeshowlayout}
+
+The headers and footers will appear as usual (but will not
+be shown in draft mode), according to the format given by
+\cmdname{pagestyle}.
+
+\subsection{Frame Stacking Order}
+
+The material on each page is placed in the following order:
+\begin{enumerate}
+\item Each static frame defined for that page in ascending
+order of IDN.
+
+\item Each flow frame defined for that page in ascending
+order of IDN.
+
+\item Each dynamic frame defined for that page in ascending
+order of IDN.
+
+\item {Bounding boxes} if the \texttt{draft}
+package option has been used.
+\end{enumerate}
+
+This ordering can be used to determine if you want something
+to overlay or underlay everything else on the page.
+
+\subsection{Prematurely Ending a Flow Frame}
+
+You can force text to move immediately to the next defined
+flow frame using one of the standard \LaTeX\ page breaking commands
+which work in an analogous way to the way they
+work in standard two column mode.
+
+The command \cmdname{framebreak} is provided for situations
+where a paragraph spans two flow frames
+of different widths, as \TeX's output routine does not
+adjust to the new value of \cmdname{hsize} until the last
+paragraph of the previous frame has ended. As a
+result, the end of the paragraph at the beginning of the new
+flow frame retains the width of the previous flow frame.
+
+If you want to start a new page, rather than simply move to the
+next frame, use the command\newline
+\cmdname{finishthispage}.
+
+\subsection{Floats}
+
+Since floats (such as figures and tables) can only go in
+{flow frames}, this package provides
+the additional environments:
+\env{staticfigure} and
+\env{statictable} which can be used in static frames
+and dynamic frames. Unlike their \env{figure} and
+\env{table} counterparts, they are fixed in place, and
+so do not take an optional placement specifier. The
+\cmdname{caption} and \cmdname{label} commands can
+be used within \env{staticfigure} and \env{statictable} as
+usual.
+
+The standard \env{figure} and \env{table} commands will
+behave as usual in the flow frames, but their starred versions,
+\env{figure*} and \env{table*} behave no differently
+from \env{figure} and \env{table}.
+
+\subsection{Global Values}
+
+The following macros can be changed using \cmdname{renewcommand}:
+
+\begin{itemize}
+\item \cmdname{setffdraftcolor}
+
+This sets the colour of the bounding box
+when it is displayed in draft mode.
+
+\item
+\cmdname{setffdrafttypeblockcolor}
+
+This sets the colour of
+the bounding box of the typeblock when it is displayed
+in draft mode.
+
+\item \cmdname{fflabelfont}
+
+This sets the font size for the bounding box markers in
+draft mode.
+
+\end{itemize}
+
+The following are lengths, which can be changed using
+\cmdname{setlength}:
+\marginpar{Another marginal note}
+
+\begin{itemize}
+\item \cmdname{fflabelsep}
+
+This is the distance from the right hand side of the
+bounding box at which to place the bounding box marker.
+
+\item \cmdname{flowframesep}
+
+This is the gap between the text of the frame and
+its border, for the standard border types.
+
+\item \cmdname{flowframerule}
+
+This is the width of the frame's border, if using
+a border given by a frame making command that uses \cmdname{fboxsep}
+to set its border width.
+\end{itemize}
+
+\section*{Contact Details}
+
+Dr Nicola Talbot\\
+Dickimaw Books\\
+\url{http://www.dickimaw-books.com/}
+
+\end{document}
diff --git a/macros/latex/contrib/flowfram/samples/sample-blanks.tex b/macros/latex/contrib/flowfram/samples/sample-blanks.tex
new file mode 100644
index 0000000000..6296b14f57
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sample-blanks.tex
@@ -0,0 +1,19 @@
+ % This file is public domain.
+
+\documentclass{article}
+
+\usepackage{lipsum}
+\usepackage[draft]{flowfram}
+
+\onecolumn[odd]
+
+\newdynamicframe{1in}{1in}{-1in}{-1in}
+\setdynamiccontents{1}{\arabic{absolutepage}-\arabic{page}}
+
+\begin{document}
+
+\lipsum[1-4]
+
+\lipsum[1-4]
+
+\end{document}
diff --git a/macros/latex/contrib/flowfram/samples/sample-brochure.pdf b/macros/latex/contrib/flowfram/samples/sample-brochure.pdf
new file mode 100644
index 0000000000..2b4e4a1ab2
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sample-brochure.pdf
Binary files differ
diff --git a/macros/latex/contrib/flowfram/samples/sample-brochure.tex b/macros/latex/contrib/flowfram/samples/sample-brochure.tex
new file mode 100644
index 0000000000..c1b499a024
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sample-brochure.tex
@@ -0,0 +1,345 @@
+ % This file is public domain.
+
+\documentclass[a4paper]{report}
+
+\usepackage[landscape,margin=1in]{geometry}
+\usepackage{color}
+\usepackage{flowfram}
+\usepackage[colorlinks]{hyperref}
+
+\renewcommand{\familydefault}{cmss}
+
+\adjustheight{\textheight}
+
+\onecolumninarea[1,2]{0.6\textwidth}{\textheight}{0.4\textwidth}{0pt}
+\twocolumninarea[>2]{0.6\textwidth}{\textheight}{0.4\textwidth}{0pt}
+
+
+\newdynamicframe{0.4\textwidth}{\textheight}{0pt}{0pt}[left]
+
+\dfchaphead*{left}
+\renewcommand{\DFchapterstyle}[1]{%
+\raggedright\Huge\slshape\MakeUppercase{#1}\par}
+
+\vtwotone[1]{0.6\paperwidth}{[cmyk]{0.65,0.13,0,0}}{backleft}%
+{0.4\paperwidth}{[cmyk]{0.94,0.54,0,0}}{backright}
+
+\vtwotonetop{1cm}{0.6\paperwidth}{[cmyk]{0.65,0.13,0,0}}{topleft}%
+{0.4\paperwidth}{[cmyk]{0.94,0.54,0,0}}{topright}
+
+\newstaticframe{0.2\textwidth}{0.25\textheight}{0pt}{0pt}[logo]
+
+\pagestyle{empty}
+
+\renewcommand{\chapterfirstpagestyle}{empty}
+
+\newdynamicframe[>1]{\textwidth}{\headheight}{0pt}{-\footskip}[footer]
+
+\setdynamiccontents*{footer}{%
+School of Computing Sciences, University of East Anglia\hfill
+http://www.cmp.uea.ac.uk/\hfill
+page \thepage\ of \pageref*{lastpage}}
+
+\newcommand{\env}[1]{\texttt{#1}}
+\newcommand{\cmdname}[1]{\texttt{\symbol{92}#1}}
+\newcommand{\meta}[1]{\textnormal{\textless\textit{#1}\textgreater}}
+
+\begin{document}
+
+\setstaticcontents*{logo}{\sffamily{\Huge\slshape FLF} Flowfram}
+
+{\noindent
+\slshape\Huge\MakeUppercase{A Sample Brochure}\par
+\vskip0.5in
+\noindent\large\MakeUppercase{Nicola Talbot}\\
+}
+
+\chapter{Introduction}
+
+The \textsl{flowfram} package is designed to enable you to create
+frames in a document such that the
+contents of the \env{document} environment flow from one
+frame to the next in the order that they were defined.
+This is useful for creating posters
+or magazines or any other form of document that does not
+conform to the standard one or two column layout.
+
+This is a modified version of the manual for the \textsl{flowfram} package.
+It is intended to illustrated what can be done. See the full
+manual (ffuserguide.pdf) for
+a comprehensive description, as some parts of this document
+may now be out of date.
+If the columns are very narrow, it may be better to
+use \cmdname{raggedright}, otherwise \TeX\ may have a
+problem working out the line breaks.
+
+This is column~\thedisplayedframe.
+
+The main type of frame is the flow frame. This is described on
+column~\ref{flow:flowframe} on page~\pageref{flow:flowframe}.
+The order used to draw the contents of each frame on the page
+is described in column~\ref{flow:stacking} on
+page~\pageref{flow:stacking}. Floats are describe in
+column~\ref{flow:floats} on page~\pageref{flow:floats}.
+
+\chapter{Setting up Frames}
+
+This is column~\thedisplayedframe.
+
+The \textsl{flowfram} package provides three types of frame:
+{flow frames}, {static
+frames} and {dynamic frames}.
+
+\section*{Flow Frames}
+
+\labelflow{flow:flowframe}
+The flow frame is the principle type of frame.
+The text of the \env{document} environment will flow from
+one frame to the next in order of definition. Each
+flow frame has an associated width, height,
+position on the page, and optionally a border.
+
+It is recommended that all the flow frames in a document
+have the same width, otherwise problems may occur
+when a paragraph spans to flow frames of unequal
+widths. This is because \TeX's output routine does not
+register the change in \cmdname{hsize} until it reaches
+a paragraph break. If it is absolutely necessary for
+flow frames to have unequal widths, judicious use of
+\cmdname{framebreak} is required.
+
+\section*{Static Frames}
+
+A static frame is a rectangular area in which text neither
+flows into, nor flows out of. The contents must be set
+explicitly, and once set, the contents of the static frame will
+remain the same on each page until it is explicitly
+changed. Thus, a static frame can be used, for example, to make
+a company logo appear in the same place on every page.
+
+\section*{Dynamic Frames}
+
+A dynamic frame is similar to a static frame, but its contents
+are re-typeset on each page. (A static frame stores its
+contents in a savebox, whereas a dynamic frame stores its
+contents in a macro).
+
+This is column~\thedisplayedframe.
+
+\chapter{Frame Attributes}
+\label{sec:modattr}
+
+Once you have defined the {flow frames}, {static frames} and
+{dynamic frames}, their attributes can be changed.
+The three types of frame mostly have the
+same set of attributes, but some are specific to a certain type.
+The available attributes are as follows
+(\textsuperscript{\textbf{F}} indicates the key is
+only available for {flow frames},
+\textsuperscript{\textbf{S}} indicates the key is only available
+for {static frames}
+and \textsuperscript{\textbf{D}} indicates the key
+is only available for {dynamic frames}):
+
+\begin{description}
+\item[width=\meta{length}]\mbox{}\par The width of the frame.
+
+\item[height=\meta{length}]\mbox{}\par The height of the frame.
+
+\item[x=\meta{length}]\mbox{}\par The x-coordinate of the frame.
+
+\item[y=\meta{length}]\mbox{}\par The y-coordinate of the frame.
+
+\item[border=\meta{style}]\mbox{}\par The style of the border around the
+frame, this can take the values: \texttt{none} (no border),
+\texttt{plain} (plain border) or the name of a \LaTeX\
+frame making command without the preceding backslash.
+The value \texttt{fbox} is equivalent to \texttt{plain}.
+
+\item[offset=\meta{offset}]\mbox{}\par The border offset, if it is a
+user-defined border. This is the distance from the outer
+edge of the left hand border to the left edge of the
+bounding box of the text inside the border. The \textsl{flowfram}
+package is able to compute the border for
+known frame making commands.
+If you define your own frame making command, you may need to
+specify the offset explicitly, or the frames
+may end up shifted to the right or left.
+
+\item[bordercolor=\meta{colour}]\mbox{}\par The colour of the border
+if you are using a standard frame making command.
+The colour can either be specified as, e.g.\ \texttt{green},
+or including the colour model, for example
+\verb/[rgb]{0,1,0}/.
+
+\item[textcolor=\meta{colour}]\mbox{}\par The text colour for that
+frame. Again, the colour can either be specified as,
+e.g.\ \texttt{green}, or including the colour model,
+for example \verb/[rgb]{0,1,0}/.
+
+\item[pages=\meta{page list}]\mbox{}\par The {list of
+pages} for which the frame
+should appear. This can either have the values: \texttt{all},
+\texttt{even}, \texttt{odd} or \texttt{none} (the latter
+removes the frame from that point on---useful if you
+have multiple pages with the same number), or it can be a
+comma-separated list of single pages, or
+{page ranges}.
+
+\item[margin=\meta{side}\textsuperscript{F}]\mbox{}\par The side of
+the flow frame that its corresponding margin should go on. This
+can take the values \texttt{left} or \texttt{right}.
+
+\item[clear=\meta{boolean}\textsuperscript{S}] If this value
+is set, the static frame will be cleared at the start of the
+next page.
+
+\item[style=\meta{cmd}\textsuperscript{D}]\mbox{}\par This should be
+the name of a command \emph{without} the preceding backslash,
+to be applied to the contents of the specified dynamic frame.
+The command may either be a declaration, for example \verb/style=large/
+which will set the contents of all the dynamic frames in a
+large font, or it can be a command that takes a single argument,
+for example \verb/style=textbf/
+which will make the text for all the dynamic frames come out in
+bold. To unset a style, do \verb/style=none/.
+
+\end{description}
+
+\chapter{Miscellaneous}
+
+\section*{Page Layout}
+
+The \textsl{flowfram} package has the package option \texttt{draft}
+which will draw the {bounding boxes} for
+each frame defined. At the bottom right of each
+bounding box (except for the bounding box denoting the
+typeblock), a marker will be shown to indictate the type
+of frame, its IDN and its IDL.
+
+You can see the layout for the current page (irrespective of
+whether or not the \texttt{draft} option has been set) using
+the command:\newline
+\cmdname{flowframeshowlayout}
+
+The headers and footers will appear as usual (but will not
+be shown in draft mode), according to the format given by
+\cmdname{pagestyle}.
+
+\section*{Frame Stacking Order}
+
+\labelflow{flow:stacking}
+The material on each page is placed in the following order:
+\begin{enumerate}
+\item Each static frame defined for that page in ascending
+order of IDN.
+
+\item Each flow frame defined for that page in ascending
+order of IDN.
+
+\item Each dynamic frame defined for that page in ascending
+order of IDN.
+
+\item {Bounding boxes} if the \texttt{draft}
+package option has been used.
+\end{enumerate}
+
+This ordering can be used to determine if you want something
+to overlay or underlay everything else on the page.
+
+\section*{Prematurely Ending a Flow Frame}
+
+You can force text to move immediately to the next defined
+flow frame using one of the standard \LaTeX\ page breaking commands
+which work in an analogous way to the way they
+work in standard two column mode.
+
+The command \cmdname{framebreak} is provided for situations
+where a paragraph spans two flow frames
+of different widths, as \TeX's output routine does not
+adjust to the new value of \cmdname{hsize} until the last
+paragraph of the previous frame has ended. As a
+result, the end of the paragraph at the beginning of the new
+flow frame retains the width of the previous flow frame.
+
+If you want to start a new page, rather than simply move to the
+next frame, use the command\newline
+\cmdname{finishthispage}.
+
+\section*{Floats}
+
+\labelflow{flow:floats}
+Since floats (such as figures and tables) can only go in
+{flow frames}, this package provides
+the additional environments:
+\env{staticfigure} and
+\env{statictable} which can be used in static frames
+and dynamic frames. Unlike their \env{figure} and
+\env{table} counterparts, they are fixed in place, and
+so do not take an optional placement specifier. The
+\cmdname{caption} and \cmdname{label} commands can
+be used within \env{staticfigure} and \env{statictable} as
+usual.
+
+The standard \env{figure} and \env{table} commands will
+behave as usual in the flow frames, but their starred versions,
+\env{figure*} and \env{table*} behave no differently
+from \env{figure} and \env{table}.
+
+\section*{Global Values}
+
+The following macros can be changed using\linebreak \cmdname{renewcommand}:
+
+\begin{itemize}
+\item \cmdname{setffdraftcolor}
+
+This sets the colour of the bounding box
+when it is displayed in draft mode.
+
+\item
+\cmdname{setffdrafttypeblockcolor}
+
+This sets the colour of
+the bounding box of the typeblock when it is displayed
+in draft mode.
+
+\item \cmdname{fflabelfont}
+
+This sets the font size for the bounding box markers in
+draft mode.
+
+\end{itemize}
+
+The following are lengths, which can be changed using
+\cmdname{setlength}:
+
+\begin{itemize}
+\item \cmdname{fflabelsep}
+
+This is the distance from the right hand side of the
+bounding box at which to place the bounding box marker.
+
+\item \cmdname{flowframesep}
+
+This is the gap between the text of the frame and
+its border, for the standard border types.
+
+\item \cmdname{flowframerule}
+
+This is the width of the frame's border, if using
+a border given by a frame making command that uses \cmdname{fboxsep}
+to set its border width.
+
+\item \cmdname{columnsep}
+
+This is the horizontal distance between flow frames when using one of the
+\cmdname{Ncolumn} type of commands
+
+\item \cmdname{vcolumnsep}
+
+This is the vertical distance between the flow frames and the static or
+dynamic frame when using one of the \cmdname{Ncolumntop} type of commands.
+\end{itemize}
+
+\label{lastpage}
+\end{document}
diff --git a/macros/latex/contrib/flowfram/samples/sample-news.pdf b/macros/latex/contrib/flowfram/samples/sample-news.pdf
new file mode 100644
index 0000000000..dbef799fb0
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sample-news.pdf
Binary files differ
diff --git a/macros/latex/contrib/flowfram/samples/sample-news.tex b/macros/latex/contrib/flowfram/samples/sample-news.tex
new file mode 100644
index 0000000000..d3f98184ff
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sample-news.tex
@@ -0,0 +1,189 @@
+ % This file is public domain.
+
+\documentclass{article}
+
+\usepackage{color}
+\usepackage{flowfram}
+\usepackage[a5paper,top=10mm,bottom=10mm,margin=10mm]{geometry}
+\usepackage{graphicx}
+
+\newlength\leftX
+\newlength\leftY
+\newlength\leftH
+\newlength\leftW
+
+\newlength\rightX
+\newlength\rightY
+\newlength\rightH
+\newlength\rightW
+
+\setlength{\leftH}{2cm}
+\setlength{\leftY}{\textheight}
+\addtolength{\leftY}{-\leftH}
+
+\newstaticframe[1]{\textwidth}{\leftH}{0pt}{\leftY}[title]
+
+
+\setlength{\leftH}{7cm}
+\adjustheight{\leftH}
+\addtolength{\leftY}{-\leftH}
+\setlength{\leftW}{0.5\textwidth}
+
+\newflowframe[1]{\leftW}{\leftH}{0pt}{\leftY}
+
+\setlength{\rightH}{\leftH}
+\setlength{\rightY}{\leftY}
+
+
+\setlength{\leftH}{3.5cm}
+\adjustheight{\leftH}
+\addtolength{\leftY}{-\leftH}
+
+\newflowframe[1]{\textwidth}{\leftH}{0pt}{\leftY}
+
+
+\setlength{\rightX}{\leftW}
+\addtolength{\rightX}{\columnsep}
+\setlength{\rightW}{\textwidth}
+\addtolength{\rightW}{-\rightX}
+
+\newflowframe[1]{\rightW}{\rightH}{\rightX}{\rightY}
+
+
+\insertvrule{flow}{1}{flow}{3}
+
+
+\addtolength{\rightX}{-0.5\columnsep}
+\addtolength{\rightX}{-0.5\columnseprule}
+\inserthrule[-\rightX]{flow}{3}{flow}{2}
+
+
+\addtolength{\rightY}{\rightH}
+\addtolength{\rightY}{-10mm}
+\setlength{\rightW}{0.75in}
+\setlength{\rightH}{0.8in}
+\addtolength{\rightY}{-\rightH}
+\setlength{\rightX}{\textwidth}
+\addtolength{\rightX}{-\rightW}
+\newstaticframe[1]{\rightW}{\rightH}{\rightX}{\rightY}[egg]
+
+\setstaticcontents*{egg}{\includegraphics[scale=0.75]{egg}}
+
+
+\setlength{\leftH}{2cm}
+\addtolength{\leftY}{-\leftH}
+
+\newstaticframe[1]{\textwidth}{\leftH}{0pt}{\leftY}[midhead]
+
+\inserthrule*{flow}{2}{static}{midhead}
+
+
+\setlength{\leftH}{\leftY}
+\adjustheight{\leftH}
+\setlength{\leftW}{0.6\textwidth}
+
+\newflowframe[1]{\leftW}{\leftH}{0pt}{0pt}
+
+
+\setlength{\rightX}{\leftW}
+\addtolength{\rightX}{\columnsep}
+\setlength{\rightW}{\textwidth}
+\addtolength{\rightW}{-\rightX}
+
+\newflowframe[1]{\rightW}{\leftH}{\rightX}{0pt}
+
+
+\newstaticframe[1]{0.8in}{0.8in}{0pt}{0pt}[sheep]
+
+\setstaticcontents*{sheep}{\includegraphics[scale=0.75]{sheep}}
+
+\onecolumn[>1] % for any text that falls off the last page
+
+\setcounter{secnumdepth}{0}
+\pagestyle{empty}
+
+\begin{document}
+
+\begin{staticcontents*}{title}
+\begin{center}
+\bfseries\Huge
+Fairy Tale Times
+\end{center}
+\hfill Issue 1. 20 November 2005.
+\end{staticcontents*}
+
+\section{Killer Wolf on the Loose}
+
+The authorites are warning of a killer wolf on the
+loose. He has so far devoured an old grandmother and
+two pig brothers. He is described as being furry with
+big eyes and big teeth.
+
+On Monday this week he broke into a house, and devoured
+an old lady. He then disguised himself as the old lady
+in order to deceive her granddaughter. Luckily for the little
+girl a woodsman arrived in time to rescue her. Parents are
+being cautioned not to let their children wander about on
+their own, and to remind them not to talk to strangers.\par
+\framebreak
+
+The next day the wolf struck again, this time targeting two
+pig brothers who had most incautiously made their dwellings
+on the cheap using inadequate materials. The wolf also made
+an attempt on the third pig brother, but was unable to break
+into his house.
+
+Police are appealing to the public for witnesses and remind
+people to keep their doors securely fastened at all times.
+
+``Always ask to see identification,'' said one police advisor,
+``and invest in improving the general security of your property.''
+
+\framebreak
+\section{Tragic Wall Accident}
+
+{\parshape=6 0pt 13em 0pt 13em 0pt 11em 0pt 11em 0pt 13em
+0pt 17em
+An egg person tragically fell from a six foot wall yesterday
+afternoon and was smash\-ed to pieces. The king's cavalry rushed
+to the scene, but regretted that they were unable to help him.
+\par}
+
+Humpty Dumpty was believed to be sitting
+on the wall when he fell. Police have ruled out foul play, but
+are advising people not to play on high walls, particularly
+those vulnerable members of the population suffering from
+eggshell syndrome.
+
+\begin{staticcontents*}{midhead}
+\section{Relief as Missing Sheep Finally Return Home}
+\end{staticcontents*}
+
+\framebreak
+There was much celebration yesterday morning when Little Bo
+Peep's sheep finally returned home. They had been missing
+for more than a week.
+
+{\parshape=8 0pt \linewidth 0pt \linewidth 0pt \linewidth
+0pt \linewidth 40pt 180pt 36pt 184pt 29pt 191pt
+0pt \linewidth
+``I just didn't know where to find them,'' the shepherdess
+stated, ``but I was told to leave them alone and they'd come
+home.'' Unusual advice perhaps, but it seems to have worked
+as they did indeed come home. Eye witnesses reported that their
+tails were wagging behind them.
+``I'm just so happy they've come home,'' Little Bo Peep said
+in a press conference yesterday\framebreak}afternoon.
+The sheep themselves made no comment, and police are still
+trying to determine what happened to them.
+
+\noindent\hrulefill
+
+This is a sample document illustrating the
+flowfram package. It uses \TeX's \verb|\parshape| command
+to create irregularly shaped paragraphs.
+
+\hfill Nicola Talbot
+\framebreak
+
+\end{document}
diff --git a/macros/latex/contrib/flowfram/samples/sample-news2.pdf b/macros/latex/contrib/flowfram/samples/sample-news2.pdf
new file mode 100644
index 0000000000..18ab26a51e
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sample-news2.pdf
Binary files differ
diff --git a/macros/latex/contrib/flowfram/samples/sample-news2.tex b/macros/latex/contrib/flowfram/samples/sample-news2.tex
new file mode 100644
index 0000000000..8752e95a77
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sample-news2.tex
@@ -0,0 +1,217 @@
+ % This file is public domain.
+
+\documentclass[12pt]{article}
+
+\usepackage{graphicx}
+\usepackage{color}
+\usepackage{flowfram}
+\usepackage[a4paper,margin=20mm]{geometry}
+
+\newlength\leftX
+\newlength\leftY
+\newlength\leftH
+\newlength\leftW
+
+\newlength\rightX
+\newlength\rightY
+\newlength\rightH
+\newlength\rightW
+
+\setlength{\leftH}{3cm}
+\setlength{\leftY}{\textheight}
+\addtolength{\leftY}{-\leftH}
+
+\newstaticframe[1]{\textwidth}{\leftH}{0pt}{\leftY}[title]
+
+
+\setlength{\leftH}{13cm}
+\adjustheight{\leftH}
+\addtolength{\leftY}{-\leftH}
+
+\newstaticframe[1]{\textwidth}{\leftH}{0pt}{\leftY}[L]
+\setstaticframe*{L}{shape={\parshape=24
+0pt 0.5\linewidth
+0pt 0.5\linewidth
+0pt 0.5\linewidth
+0pt 0.5\linewidth
+0pt 0.5\linewidth
+0pt 0.5\linewidth
+0pt 0.5\linewidth
+0pt 0.5\linewidth
+0pt 0.5\linewidth
+0pt 0.5\linewidth
+0pt 0.5\linewidth
+0pt 0.5\linewidth
+0pt 0.5\linewidth
+0pt 0.5\linewidth
+0pt 0.5\linewidth
+0pt 0.5\linewidth
+0pt 0.5\linewidth
+0pt \linewidth
+0pt \linewidth
+0pt \linewidth
+0pt \linewidth
+0pt \linewidth
+0pt \linewidth
+0pt \linewidth
+}}
+
+
+\addtolength{\rightY}{\leftY}
+\addtolength{\rightY}{73mm}
+\setlength{\rightW}{0.9in}
+\setlength{\rightH}{1.5in}
+\setlength{\rightX}{\textwidth}
+\addtolength{\rightX}{-\rightW}
+\newstaticframe[1]{\rightW}{\rightH}{\rightX}{\rightY}[egg]
+
+\setstaticcontents*{egg}{\includegraphics[scale=0.9]{egg}}
+
+
+\setlength{\rightX}{0.5\textwidth}
+\addtolength{\rightX}{\columnsep}
+\setlength{\rightW}{\textwidth}
+\addtolength{\rightW}{-\rightX}
+\setlength{\rightY}{\leftY}
+\addtolength{\rightY}{2.8cm}
+\setlength{\rightH}{\leftH}
+\addtolength{\rightH}{-2.8cm}
+
+\newstaticframe[1]{\rightW}{\rightH}{\rightX}{\rightY}[right]
+
+\setstaticframe*{right}{shape={\parshape=15
+0pt \linewidth
+0pt \linewidth
+0pt \linewidth
+0pt 0.75\linewidth
+0pt 0.65\linewidth
+0pt 0.75\linewidth
+0pt 0.8\linewidth
+0pt 0.8\linewidth
+0pt \linewidth
+0pt \linewidth
+0pt \linewidth
+0pt \linewidth
+0pt \linewidth
+0pt \linewidth
+0pt \linewidth
+}}
+
+\addtolength{\rightX}{-0.5\columnsep}
+\newstaticframe[1]{0pt}{\rightH}{\rightX}{\rightY}[Lrule]
+\setstaticcontents*{Lrule}{\makebox[0pt][l]{%
+\rule{\columnseprule}{\rightH}\rule{\rightW}{\columnseprule}}}
+
+
+\setlength{\leftH}{2cm}
+\addtolength{\leftY}{-\leftH}
+
+\newstaticframe[1]{\textwidth}{\leftH}{0pt}{\leftY}[midhead]
+
+\inserthrule*{static}{L}{static}{midhead}
+
+\twocolumninarea{\textwidth}{\leftY}{0pt}{0pt}
+
+
+\newstaticframe[1]{1.6in}{1.6in}{0pt}{0pt}[sheep]
+
+\setstaticcontents*{sheep}{\includegraphics[scale=1.2]{sheep}}
+
+\setcounter{secnumdepth}{0}
+\setlength{\sdfparindent}{\parindent}
+
+\begin{document}
+\begin{staticcontents*}{title}
+\begin{center}
+\bfseries\Huge
+Fairy Tale Times
+\end{center}
+\hfill Issue 2. 7 December 2005.
+\end{staticcontents*}
+
+\begin{staticcontents*}{L}
+\section{Killer Wolf on the Loose}
+
+The authorites are warning of a killer wolf on the
+loose. He has so far devoured an old grandmother and
+two pig brothers. He is described as being furry with
+big eyes and big teeth.
+
+On Monday this week he broke into a house, and devoured
+an old lady. He then disguised himself as the old lady
+in order to deceive her granddaughter. Luckily for the little
+girl a woodsman arrived in time to rescue her. Parents are
+being cautioned not to let their children wander about on
+their own, and to remind them not to talk to strangers.
+
+The next day the wolf struck again, this time targeting two
+pig brothers who had most incautiously made their dwellings
+on the cheap using inadequate materials. The wolf also made
+an attempt on the third pig brother, but was unable to break
+into his house.
+
+Police are appealing to the public for witnesses and remind
+people to keep their doors securely fastened at all times.
+``Always ask to see identification,'' said one police advisor,
+``and invest in improving the general security of your property.''
+\end{staticcontents*}
+
+\begin{staticcontents*}{right}
+\section{Tragic Wall Accident}
+
+An egg person tragically fell from a six foot wall yesterday
+afternoon and was smash\-ed to pieces. The king's cavalry rushed
+to the scene, but regretted that they were unable to help him.
+
+Humpty Dumpty was believed to be sitting on the wall when he fell. Police have ruled out foul play, but
+are advising people not to play on high walls, particularly
+those vulnerable members of the population suffering from
+eggshell syndrome.
+
+\small\em
+Exclusive interview with one of the King's men on page 6
+\end{staticcontents*}
+
+\begin{staticcontents*}{midhead}
+\section{Relief as Missing Sheep Finally Return Home}
+\end{staticcontents*}
+
+There was much celebration yesterday morning when Little Bo
+Peep's sheep finally returned home. They had been missing
+for more than a week.
+
+``I just didn't know where to find them,'' the shepherdess
+stated, ``but I was told to leave them alone and they'd come
+home.''
+
+\parshape=8
+0pt \linewidth
+0pt \linewidth
+0.3\linewidth 0.7\linewidth
+0.3\linewidth 0.7\linewidth
+0.25\linewidth 0.75\linewidth
+0.25\linewidth 0.75\linewidth
+0pt \linewidth
+0pt \linewidth
+Unusual advice perhaps, but it seems to have worked
+as they did indeed come home. Eye witnesses reported that their
+tails were wagging behind them.
+``I'm just so happy they've come home,'' Little Bo Peep said
+in a press conference yesterday afternoon.
+The sheep themselves made no comment, and police are%
+\framebreak\parshape=0
+still trying to determine what happened to them.
+The big bad wolf is reportedly helping them with their inquiries.
+
+\noindent\hrulefill
+
+This is a sample document illustrating the
+flowfram package. It uses \TeX's \verb|\parshape| command
+to create irregularly shaped paragraphs. This can be a complicated
+and somewhat tiresome task, and is generally not recommended.
+Using the shapepar package provides you with more intricate
+shapes, but as its documentation says, it is not intended
+for use in large documents.
+
+\hfill Nicola Talbot
+\end{document}
diff --git a/macros/latex/contrib/flowfram/samples/sample-pages.pdf b/macros/latex/contrib/flowfram/samples/sample-pages.pdf
new file mode 100644
index 0000000000..45bb05e20e
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sample-pages.pdf
Binary files differ
diff --git a/macros/latex/contrib/flowfram/samples/sample-pages.tex b/macros/latex/contrib/flowfram/samples/sample-pages.tex
new file mode 100644
index 0000000000..38e52856a4
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sample-pages.tex
@@ -0,0 +1,104 @@
+ % This file is public domain.
+
+\documentclass{book}
+
+\usepackage[demo]{graphicx}
+\usepackage{lipsum}
+\usepackage{color}
+\usepackage[
+ draft,
+ verbose,
+ pages=absolute
+ ]{flowfram}
+
+\onecolumn
+
+\setflowframe{1}{label=single}
+
+\twocolumnDtop[none]{2in}
+
+\setdynamicframe{1}{label=title}
+\setflowframe{2}{label=shortleft}
+\setflowframe{3}{label=shortright}
+
+\twocolumn[none]
+
+\setflowframe{4}{label=left}
+\setflowframe{5}{label=right}
+
+\newdynamicframe[none]{\textwidth}{\textheight}{0pt}{0pt}[image]
+
+\setdynamicframe*{image}{valign=c}
+
+\title{Sample Document}
+\author{A.N. Other}
+
+\begin{document}\raggedright
+\maketitle
+
+\frontmatter
+\tableofcontents
+\chapter{Acknowledgements}
+
+\lipsum[1]
+
+\flowswitchoffnextodd*{single}%
+\flowswitchonnextoddonly*{shortleft,shortright}%
+\dynamicswitchonnextoddonly*{title}%
+\dfchaphead*{title}
+
+\mainmatter
+\chapter{Sample}
+
+\flowswitchonnext*{left,right}%
+\renewcommand{\ffprechapterhook}{%
+ \flowswitchoffnextoddonly*{left,right}%
+ \flowswitchonnextoddonly*{shortleft,shortright}%
+ \dynamicswitchonnextoddonly*{title}%
+}
+
+\lipsum
+
+\lipsum
+
+\chapter{Another Sample Chapter}
+
+\lipsum[1-20]
+
+
+\flowswitchoffnextonly*{left,right}
+\flowswitchonnextonly*{single}
+
+\clearpage
+
+\begin{figure}[p]
+\centering
+ \includegraphics{image1}
+\caption{A Sample Figure}
+\label{fig:sample}
+\end{figure}
+
+\clearpage
+
+\lipsum[21-30]
+
+\chapter{Here's Another Chapter}
+
+\lipsum[1-20]
+
+
+\flowswitchoffnextonly*{left,right}
+\dynamicswitchonnextonly*{image}
+
+\setdynamiccontents*{image}{%
+ \begin{staticfigure}
+ \centering
+ \includegraphics{image2}
+ \caption{Another Sample Figure}
+ \label{fig:sample2}
+ \end{staticfigure}
+}
+
+\lipsum[21-40]
+
+\end{document}
diff --git a/macros/latex/contrib/flowfram/samples/sample-poster.pdf b/macros/latex/contrib/flowfram/samples/sample-poster.pdf
new file mode 100644
index 0000000000..d46b9c78b5
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sample-poster.pdf
Binary files differ
diff --git a/macros/latex/contrib/flowfram/samples/sample-poster.tex b/macros/latex/contrib/flowfram/samples/sample-poster.tex
new file mode 100644
index 0000000000..c8d2784525
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sample-poster.tex
@@ -0,0 +1,355 @@
+ % This file is public domain.
+
+\documentclass[a0]{a0poster}
+
+\usepackage{color}
+\usepackage{mathptmx}
+\usepackage{courier}
+\usepackage[scaled=0.92]{helvet}
+\usepackage{url}
+\usepackage{flowfram}
+
+
+\setlength{\columnsep}{2cm}
+
+\NcolumnStop{4}{0.2\textheight}
+\setstaticframe{\value{maxstatic}}{label={title},backcolor=[cmyk]{0.64,0,0.95,0.40},textcolor=white}
+
+\insertvrule{flow}{2}{flow}{3}
+
+\setflowframe{3,4}{pages={>1}}
+
+\computeflowframearea{3,4}
+\twocolumnSbottominarea[1]{0.5\ffareaheight}{\ffareawidth}{\ffareaheight}{\ffareax}{\ffareay}
+\setstaticframe{\value{maxstatic}}{label={info},backcolor=[cmyk]{0.26,0,0.76,0},clear}
+
+\inserthrule*[0.5\columnsep]{flow}{5}{static}{info}
+
+\setallflowframes{backcolor=[cmyk]{0.15,0,0.69,0}}
+
+\newcommand{\sty}[1]{\textsf{#1}}
+\newcommand{\env}[1]{\textsf{#1}}
+\newcommand{\cmdname}[1]{\texttt{\symbol{92}#1}}
+\newcommand{\meta}[1]{\textnormal{\textless\textit{#1}\textgreater}}
+
+
+\begin{document}
+\begin{staticcontents*}{title}
+\begin{center}
+\bfseries\veryHuge flowframe.sty : Creating Posters, Magazines or Brochures in \LaTeX
+\vskip1cm
+\huge Nicola L. C. Talbot
+\vskip2ex
+\normalsize \url{http://www.dickimaw-books.com/}
+\end{center}
+\end{staticcontents*}
+
+\pagestyle{empty}
+
+\begin{staticcontents*}{info}
+\begin{staticfigure}
+
+\begin{verbatim}
+ % Make the distance between columns = 1.5cm
+ \setlength{\columnsep}{2cm}
+
+ % Make a 4 column layout with a static frame on top.
+ % The static frame has height = 0.2\textheight
+ \NcolumnStop{4}{0.2\textheight}
+
+ % give the static frame a label to make it easier to keep track of
+ \setstaticframe{\value{maxstatic}}{label={title},backcolor=[cmyk]{0.64,0,0.95,0.40},textcolor=white}
+
+ % On the first page, replace the 3rd and 4th columns
+ % with two shorter columns with a static frame underneath
+ \setflowframe{3,4}{pages={>1}}
+
+ % The area taken up by the 3rd and 4th columns is given by
+ \computeflowframearea{3,4}
+
+ % Set up new frames in this area
+ \twocolumnSbottominarea[1]{0.5}{\ffareawidth}{\ffareaheight}{\ffareax}{\ffareay}
+
+ % Assign a label to the last static frame to be created, and set background colour
+ \setstaticframe{\value{maxstatic}}{label={info},backcolor=[cmyk]{0.26,0,0.76,0}}
+
+ % Set the background colour for all flow frames
+ \setallflowframes{backcolor=[cmyk]{0.15,0,0.69,0}}
+\end{verbatim}
+
+\caption{The commands used to define the frames for this document}
+\protect\label{fig:thisdoc}
+\end{staticfigure}
+\end{staticcontents*}
+
+This is a modified version of the manual for the \sty{flowfram}
+package. It is intended to illustrated what can be done. See the
+full manual (ffuserguide.pdf) for
+a comprehensive description, as this may now be out of date. The commands used to define the frames for
+this document are shown in Figure~\ref{fig:thisdoc}.
+If the columns are very narrow, it may be better to
+use \cmdname{raggedright}, otherwise \TeX\ may have a
+problem working out the line breaks.
+
+\section{Introduction}
+
+The \sty{flowfram} package is designed to enable you to create
+frames in a document such that the
+contents of the \env{document} environment flow from one
+frame to the next in the order that they were defined.
+This is useful for creating posters
+or magazines or any other form of document that does not
+conform to the standard one or two column layout.
+
+\section{Setting up Frames}
+
+The \sty{flowfram} package provides three types of frame:
+{flow frames}, {static
+frames} and {dynamic frames}.
+
+\subsection{Flow Frames}
+
+The flow frame is the principle type of frame.
+The text of the \env{document} environment will flow from
+one frame to the next in order of definition. Each
+flow frame has an associated width, height,
+position on the page, and optionally a border.
+
+It is recommended that all the flow frames in a document
+have the same width, otherwise problems may occur
+when a paragraph spans to flow frames of unequal
+widths. This is because \TeX's output routine does not
+register the change in \cmdname{hsize} until it reaches
+a paragraph break. If it is absolutely necessary for
+flow frames to have unequal widths, judicious use of
+\cmdname{framebreak} is required.
+
+\subsection{Static Frames}
+
+A static frame is a rectangular area in which text neither
+flows into, nor flows out of. The contents must be set
+explicitly, and once set, the contents of the static frame will
+remain the same on each page until it is explicitly
+changed. Thus, a static frame can be used, for example, to make
+a company logo appear in the same place on every page.
+
+\subsection{Dynamic Frames}
+
+A dynamic frame is similar to a static frame, but its contents
+are re-typeset on each page. (A static frame stores its
+contents in a savebox, whereas a dynamic frame stores its
+contents in a macro).
+
+\section{Frame Attributes}
+\label{sec:modattr}
+
+Once you have defined the {flow frames}, {static frames} and
+{dynamic frames}, their attributes can be changed.
+The three types of frame mostly have the
+same set of attributes, but some are specific to a certain type.
+The available attributes are as follows
+(\textsuperscript{\textbf{F}} indicates the key is
+only available for {flow frames},
+\textsuperscript{\textbf{S}} indicates the key is only available
+for {static frames}
+and \textsuperscript{\textbf{D}} indicates the key
+is only available for {dynamic frames}):
+
+\begin{description}
+\item[width=\meta{length}] The width of the frame.
+
+\item[height=\meta{length}] The height of the frame.
+
+\item[x=\meta{length}] The x-coordinate of the frame.
+
+\item[y=\meta{length}] The y-coordinate of the frame.
+
+\item[border=\meta{style}] The style of the border around the
+frame, this can take the values: \texttt{none} (no border),
+\texttt{plain} (plain border) or the name of a \LaTeX\
+frame making command without the preceding backslash.
+The value \texttt{fbox} is equivalent to \texttt{plain}.
+
+\item[offset=\meta{offset}] The border offset, if it is a
+user-defined border. This is the distance from the outer
+edge of the left hand border to the left edge of the
+bounding box of the text inside the border. The \sty{flowfram}
+package is able to compute the border for
+known frame making commands.
+If you define your own frame making command, you may need to
+specify the offset explicitly, or the frames
+may end up shifted to the right or left.
+
+\item[bordercolor=\meta{colour}] The colour of the border
+if you are using a standard frame making command.
+The colour can either be specified as, e.g.\ \texttt{green},
+or including the colour model, e.g. \verb/[rgb]{0,1,0}/.
+
+\item[textcolor=\meta{colour}] The text colour for that
+frame. Again, the colour can either be specified as,
+e.g.\ \texttt{green}, or including the colour model,
+e.g. \verb/[rgb]{0,1,0}/.
+
+\item[pages=\meta{page list}] The {list of
+pages} for which the frame
+should appear. This can either have the values: \texttt{all},
+\texttt{even}, \texttt{odd} or \texttt{none} (the latter
+removes the frame from that point on---useful if you
+have multiple pages with the same number), or it can be a
+comma-separated list of single pages, or
+{page ranges}.
+
+\item[margin=\meta{side}\textsuperscript{F}] The side of
+the flow frame that its corresponding margin should go on. This
+can take the values \texttt{left} or \texttt{right}.
+
+\item[clear=\meta{boolean}\textsuperscript{S}] If this value
+is set, the static frame will be cleared at the start of the
+next page.
+
+\item[style=\meta{cmd}\textsuperscript{D}] This should be
+the name of a command \emph{without} the preceding backslash,
+to be applied to the contents of the specified dynamic frame.
+The command may either be a declaration, for example \verb/style=large/
+which will set the contents of all the dynamic frames in a
+large font, or it can be a command that takes a single argument,
+for example \verb/style=textbf/
+which will make the text for all the dynamic frames come out in
+bold. To unset a style, do \verb/style=none/.
+
+\end{description}
+
+\section{Miscellaneous}
+
+\subsection{Page Layout}
+
+The \sty{flowfram} package has the package option \texttt{draft}
+which will draw the {bounding boxes} for
+each frame defined. At the bottom right of each
+bounding box (except for the bounding box denoting the
+typeblock), a marker will be shown to indictate the type
+of frame, its IDN and its IDL.
+
+You can see the layout for the current page (irrespective of
+whether or not the \texttt{draft} option has been set) using
+the command:\newline
+\cmdname{flowframeshowlayout}
+
+The headers and footers will appear as usual (but will not
+be shown in draft mode), according to the format given by
+\cmdname{pagestyle}.
+
+\subsection{Frame Stacking Order}
+
+The material on each page is placed in the following order:
+\begin{enumerate}
+\item Each static frame defined for that page in ascending
+order of IDN.
+
+\item Each flow frame defined for that page in ascending
+order of IDN.
+
+\item Each dynamic frame defined for that page in ascending
+order of IDN.
+
+\item {Bounding boxes} if the \texttt{draft}
+package option has been used.
+\end{enumerate}
+
+This ordering can be used to determine if you want something
+to overlay or underlay everything else on the page.
+
+\subsection{Prematurely Ending a Flow Frame}
+
+You can force text to move immediately to the next defined
+flow frame using one of the standard \LaTeX\ page breaking commands
+which work in an analogous way to the way they
+work in standard two column mode.
+
+The command \cmdname{framebreak} is provided for situations
+where a paragraph spans two flow frames
+of different widths, as \TeX's output routine does not
+adjust to the new value of \cmdname{hsize} until the last
+paragraph of the previous frame has ended. As a
+result, the end of the paragraph at the beginning of the new
+flow frame retains the width of the previous flow frame.
+
+If you want to start a new page, rather than simply move to the
+next frame, use the command\newline
+\cmdname{finishthispage}.
+
+\subsection{Floats}
+
+Since floats (such as figures and tables) can only go in
+{flow frames}, this package provides
+the additional environments:
+\env{staticfigure} and
+\env{statictable} which can be used in static frames
+and dynamic frames. Unlike their \env{figure} and
+\env{table} counterparts, they are fixed in place, and
+so do not take an optional placement specifier. The
+\cmdname{caption} and \cmdname{label} commands can
+be used within \env{staticfigure} and \env{statictable} as
+usual.
+
+The standard \env{figure} and \env{table} commands will
+behave as usual in the flow frames, but their starred versions,
+\env{figure*} and \env{table*} behave no differently
+from \env{figure} and \env{table}.
+
+\subsection{Global Values}
+
+The following macros can be changed using \cmdname{renewcommand}:
+
+\begin{itemize}
+\item \cmdname{setffdraftcolor}
+
+This sets the colour of the bounding box
+when it is displayed in draft mode.
+
+\item
+\cmdname{setffdrafttypeblockcolor}
+
+This sets the colour of
+the bounding box of the typeblock when it is displayed
+in draft mode.
+
+\item \cmdname{fflabelfont}
+
+This sets the font size for the bounding box markers in
+draft mode.
+
+\end{itemize}
+
+The following are lengths, which can be changed using
+\cmdname{setlength}:
+
+\begin{itemize}
+\item \cmdname{fflabelsep}
+
+This is the distance from the right hand side of the
+bounding box at which to place the bounding box marker.
+
+\item \cmdname{flowframesep}
+
+This is the gap between the text of the frame and
+its border, for the standard border types.
+
+\item \cmdname{flowframerule}
+
+This is the width of the frame's border, if using
+a border given by a frame making command that uses \cmdname{fboxsep}
+to set its border width.
+
+\item \cmdname{columnsep}
+
+This is the horizontal distance between flow frames when using one of the
+\cmdname{Ncolumn} type of commands
+
+\item \cmdname{vcolumnsep}
+
+This is the vertical distance between the flow frames and the static or
+dynamic frame when using one of the \cmdname{Ncolumntop} type of commands.
+\end{itemize}
+
+\end{document}
diff --git a/macros/latex/contrib/flowfram/samples/sample-rot.pdf b/macros/latex/contrib/flowfram/samples/sample-rot.pdf
new file mode 100644
index 0000000000..a735b63def
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sample-rot.pdf
Binary files differ
diff --git a/macros/latex/contrib/flowfram/samples/sample-rot.tex b/macros/latex/contrib/flowfram/samples/sample-rot.tex
new file mode 100644
index 0000000000..f62944db3a
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sample-rot.tex
@@ -0,0 +1,49 @@
+ % This file is public domain.
+
+\documentclass[a4paper]{article}
+
+\usepackage[draft]{flowfram}
+\usepackage{supertabular}
+
+\newflowframe{0.3\textwidth}{0.25\textheight}{0.5\textwidth}{0.5\textheight}
+
+\newflowframe{0.3\textwidth}{0.2\textheight}{0pt}{0.1\textheight}
+
+\newflowframe{0.3\textwidth}{0.2\textheight}{0.5\textwidth}{0.1\textheight}
+
+\setflowframe{1}{angle=45}
+\setflowframe{3}{angle=90}
+
+\begin{document}
+
+This is a sample document illustrating the use of the
+flowfram package. The first flow frame has been rotated
+by an angle of 45 degrees. There is an asterisk in the
+margin\marginpar{*}. There is also a
+footnote\footnote{down here.}.
+
+\framebreak
+\begin{supertabular}{rl}
+1 & A\\
+2 & B\\
+3 & C\\
+4 & D\\
+5 & E\\
+6 & F\\
+7 & G\\
+8 & H\\
+9 & I\\
+10 & J\\
+11 & K\\
+12 & L\\
+13 & M\\
+14 & N\\
+15 & O\\
+16 & P\\
+17 & Q\\
+18 & R\\
+19 & S\\
+20 & T\\
+\end{supertabular}
+
+\end{document}
diff --git a/macros/latex/contrib/flowfram/samples/sample.pdf b/macros/latex/contrib/flowfram/samples/sample.pdf
new file mode 100644
index 0000000000..5ea4cc46fc
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sample.pdf
Binary files differ
diff --git a/macros/latex/contrib/flowfram/samples/sample.tex b/macros/latex/contrib/flowfram/samples/sample.tex
new file mode 100644
index 0000000000..1bf6ccf629
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sample.tex
@@ -0,0 +1,379 @@
+ % This file is public domain.
+
+\documentclass[a4paper,twoside]{book}
+
+\usepackage{times}
+\usepackage{courier}
+\usepackage{helvet}
+\usepackage[margin=1in,top=1in,bottom=1in]{geometry}
+\usepackage[colorlinks,
+ linkcolor=black,
+ urlcolor=black,
+ plainpages=false,
+ pdfpagelabels=true]{hyperref}
+\usepackage{fancybox}
+\usepackage{color}
+\usepackage{flowfram}
+
+\newcommand{\sty}[1]{\textsf{#1}}
+\newcommand{\env}[1]{\textsf{#1}}
+\newcommand{\cmdname}[1]{\texttt{\symbol{92}#1}}
+\newcommand{\meta}[1]{\textnormal{\textless\textit{#1}\textgreater}}
+
+\newlength{\leftwidth}
+\newlength{\rightwidth}
+
+\computeleftedgeodd{\leftwidth}
+\setlength{\leftwidth}{-\leftwidth}
+\addtolength{\leftwidth}{0.4\textwidth}
+\setlength{\rightwidth}{\paperwidth}
+\addtolength{\rightwidth}{-\leftwidth}
+\vtwotone[1]{\leftwidth}{magenta}{backleft}{\rightwidth}{[cmyk]{0,0.48,0,0}}{backright}
+
+\vtwotone[none]{\rightwidth}{[cmyk]{0,0.48,0,0}}{lastbackright}{\leftwidth}{magenta}{lastbackleft}
+
+\vtwotonetop[odd]{1cm}{\leftwidth}{magenta}{oddtopleft}{\rightwidth}{[cmyk]{0,0.48,0,0}}{oddtopright}
+\vtwotonetop[even]{1cm}{\rightwidth}{[cmyk]{0,0.48,0,0}}{eventopleft}{\leftwidth}{magenta}{eventopright}
+
+\setlength{\marginparwidth}{2cm}
+
+\newflowframe{0.6\textwidth}{\textheight}{0pt}{0pt}[main]
+\newdynamicframe{0.38\textwidth}{\textheight}{0.62\textwidth}{0pt}[chaphead]
+
+\setflowframe*{main}{evenx=0.4\textwidth}
+\setdynamicframe*{chaphead}{evenx=0pt}
+
+\setflowframe*{main}{margin=inner}
+
+\dfchaphead*{chaphead}
+
+\appenddfminitoc*{chaphead}
+
+
+\renewcommand{\DFchapterstyle}[1]{%
+\raggedright\sffamily\bfseries\Huge\color{blue}#1\par
+}
+
+\renewcommand{\DFschapterstyle}[1]{\raggedright\sffamily\bfseries\Huge\color{blue} #1\par
+}
+
+
+\makethumbtabs{2in}
+\enableminitoc
+
+\setthumbtab{1}{backcolor=[rgb]{0.15,0.15,1}}
+\setthumbtab{2}{backcolor=[rgb]{0.2,0.2,1}}
+\setthumbtab{3}{backcolor=[rgb]{0.25,0.25,1}}
+\setthumbtab{4}{backcolor=[rgb]{0.3,0.3,1}}
+
+\newcommand{\thumbtabstyle}[1]{\textsc{\sffamily #1}}
+\setthumbtab{all}{style=thumbtabstyle,textcolor=white}
+
+
+\pagestyle{plain}
+
+\makedfheaderfooter
+
+\newlength{\xoffset}
+\computerightedgeodd{\xoffset}
+\addtolength{\xoffset}{-2cm}
+\newlength{\yoffset}
+\computebottomedge{\yoffset}
+
+\newcommand{\footstyle}[1]{\bfseries\LARGE #1}
+
+
+\setdynamicframe*{footer}{oddx=\xoffset,y=\yoffset,width=2cm,height=2cm,
+backcolor=blue,textcolor=white,style=footstyle,pages=none}
+
+
+\computeleftedgeeven{\xoffset}
+\setdynamicframe*{footer}{evenx=\xoffset}
+
+\begin{document}
+\ffswapoddeven*{main}% swap odd and even position of frame for the title page
+\dfswapoddeven*{chaphead}
+\title{Creating Flow Frames for Posters or Magazines}
+\author{Nicola L. C. Talbot\\[1cm]\url{http://www.dickimaw-books.com/}}
+\date{}
+\pagenumbering{alph}
+\maketitle
+
+\cleardoublepage
+\setstaticframe*{backleft}{pages=none}
+\setstaticframe*{backright}{pages=none}
+
+\frontmatter
+\tocandthumbtabindex
+\setdynamicframe*{footer}{pages=all}
+
+\clearpage
+\dfswapoddeven*{chaphead}
+\ffswapoddeven*{main}% swap back again
+
+\mainmatter
+\chapter{Introduction}
+\enablethumbtabs
+\pagenumbering{arabic}
+
+The \sty{flowfram} package is designed to enable you to create
+frames in a document such that the
+contents of the \env{document} environment flow from one
+frame to the next in the order that they were defined.
+This is useful for creating posters\marginpar{A marginal note}
+or magazines or any other form of document that does not
+conform to the standard one or two column layout.
+
+This document has \themaxflow\ flow
+\ifthenelse{\value{maxflow}=1}{frame}{frames}, \themaxstatic\ static
+\ifthenelse{\value{maxstatic}=1}{frame}{frames} and
+\themaxdynamic\ dynamic \ifthenelse{\value{maxdynamic}=1}{frame}{frames}.
+
+\chapter{Setting up Frames}
+
+The \sty{flowfram} package provides three types of frame:
+{flow frames}, {static
+frames} and {dynamic frames}.
+
+\section{Flow Frames}
+
+The flow frame is the principle type of frame.
+The text of the \env{document} environment will flow from
+one frame to the next in order of definition. Each
+flow frame has an associated width, height,
+position on the page, and optionally a border\footnote{A
+footnote!}.
+
+\section{Static Frames}
+
+A static frame is a rectangular area in which text neither
+flows into, nor flows out of. The contents must be set
+explicitly, and once set, the contents of the static frame will
+remain the same on each page until it is explicitly
+changed. Thus, a static frame can be used, for example, to make
+a company logo appear in the same place on every page.
+
+\section{Dynamic Frames}
+
+A dynamic frame is similar to a static frame, but its contents
+are re-typeset on each page. (A static frame stores its
+contents in a savebox, whereas a dynamic frame stores its
+contents in a macro).
+
+\chapter{Frame Attributes}
+\label{sec:modattr}
+
+Once you have defined the {flow frames}, {static frames} and
+{dynamic frames}, their attributes can be changed.
+The three types of frame mostly have the
+same set of attributes, but some are specific to a certain type.
+The available attributes are as follows
+(\textsuperscript{\textbf{F}} indicates the key is
+only available for {flow frames},
+\textsuperscript{\textbf{S}} indicates the key is only available
+for {static frames}
+and \textsuperscript{\textbf{D}} indicates the key
+is only available for {dynamic frames}):
+
+\begin{description}
+\item[width=\meta{length}] The width of the frame.
+
+\item[height=\meta{length}] The height of the frame.
+
+\item[x=\meta{length}] The x-coordinate of the frame.
+
+\item[y=\meta{length}] The y-coordinate of the frame.
+
+\item[border=\meta{style}] The style of the border around the
+frame, this can take the values: \texttt{none} (no border),
+\texttt{plain} (plain border) or the name of a \LaTeX\
+frame making command without the preceding backslash.
+The value \texttt{fbox} is equivalent to \texttt{plain}.
+
+\item[offset=\meta{offset}] The border offset, if it is a
+user-defined border. This is the distance from the outer
+edge of the left hand border to the left edge of the
+bounding box of the text inside the border. The \sty{flowfram}
+package is able to compute the border for
+known frame making commands.
+If you define your own frame making command, you may need to
+specify the offset explicitly, or the frames
+may end up shifted to the right or left.
+
+\item[bordercolor=\meta{colour}] The colour of the border
+if you are using a standard frame making command.
+The colour can either be specified as, e.g.\ \texttt{green},
+or including the colour model, e.g. \verb/[rgb]{0,1,0}/.
+
+\item[textcolor=\meta{colour}] The text colour for that
+frame. Again, the colour can either be specified as,
+e.g.\ \texttt{green}, or including the colour model,
+e.g. \verb/[rgb]{0,1,0}/.
+
+\item[pages=\meta{page list}] The {list of
+pages} for which the frame
+should appear. This can either have the values: \texttt{all},
+\texttt{even}, \texttt{odd} or \texttt{none} (the latter
+removes the frame from that point on---useful if you
+have multiple pages with the same number), or it can be a
+comma-separated list of single pages, or
+{page ranges}.
+
+\item[margin=\meta{side}\textsuperscript{F}] The side of
+the flow frame that its corresponding margin should go on. This
+can take the values \texttt{left} or \texttt{right}.
+
+\item[clear=\meta{boolean}\textsuperscript{S}] If this value
+is set, the static frame will be cleared at the start of the
+next page.
+
+\item[style=\meta{cmd}\textsuperscript{D}] This should be
+the name of a command \emph{without} the preceding backslash,
+to be applied to the contents of the specified dynamic frame.
+The command may either be a declaration, for example \verb/style=large/
+which will set the contents of all the dynamic frames in a
+large font, or it can be a command that takes a single argument,
+for example \verb/style=textbf/
+which will make the text for all the dynamic frames come out in
+bold. To unset a style, do \verb/style=none/.
+
+\end{description}
+
+\chapter{Miscellaneous}
+
+\section{Page Layout}
+
+The \sty{flowfram} package has the package option \texttt{draft}
+which will draw the {bounding boxes} for
+each frame defined. At the bottom right of each
+bounding box (except for the bounding box denoting the
+typeblock), a marker will be shown to indictate the type
+of frame, its IDN and its IDL.
+
+You can see the layout for the current page (irrespective of
+whether or not the \texttt{draft} option has been set) using
+the command:\newline
+\cmdname{flowframeshowlayout}
+
+The headers and footers will appear as usual (but will not
+be shown in draft mode), according to the format given by
+\cmdname{pagestyle}.
+
+\section{Frame Stacking Order}
+
+The material on each page is placed in the following order:
+\begin{enumerate}
+\item Each static frame defined for that page in ascending
+order of IDN.
+
+\item Each flow frame defined for that page in ascending
+order of IDN.
+
+\item Each dynamic frame defined for that page in ascending
+order of IDN.
+
+\item {Bounding boxes} if the \texttt{draft}
+package option has been used.
+\end{enumerate}
+
+This ordering can be used to determine if you want something
+to overlay or underlay everything else on the page.
+
+\section{Prematurely Ending a Flow Frame}
+
+You can force text to move immediately to the next defined
+flow frame using one of the standard \LaTeX\ page breaking commands
+which work in an analogous way to the way they
+work in standard two column mode.
+
+The command \cmdname{framebreak} is provided for situations
+where a paragraph spans two flow frames
+of different widths, as \TeX's output routine does not
+adjust to the new value of \cmdname{hsize} until the last
+paragraph of the previous frame has ended. As a
+result, the end of the paragraph at the beginning of the new
+flow frame retains the width of the previous flow frame.
+
+If you want to start a new page, rather than simply move to the
+next frame, use the command\newline
+\cmdname{finishthispage}.
+
+\section{Floats}
+
+Since floats (such as figures and tables) can only go in
+{flow frames}, this package provides
+the additional environments:
+\env{staticfigure} and
+\env{statictable} which can be used in static frames
+and dynamic frames. Unlike their \env{figure} and
+\env{table} counterparts, they are fixed in place, and
+so do not take an optional placement specifier. The
+\cmdname{caption} and \cmdname{label} commands can
+be used within \env{staticfigure} and \env{statictable} as
+usual.
+
+The standard \env{figure} and \env{table} commands will
+behave as usual in the flow frames, but their starred versions,
+\env{figure*} and \env{table*} behave no differently
+from \env{figure} and \env{table}.
+
+\section{Global Values}
+
+The following macros can be changed using \cmdname{renewcommand}:
+
+\begin{itemize}
+\item \cmdname{setffdraftcolor}
+
+This sets the colour of the bounding box
+when it is displayed in draft mode.
+
+\item
+\cmdname{setffdrafttypeblockcolor}
+
+This sets the colour of
+the bounding box of the typeblock when it is displayed
+in draft mode.
+
+\item \cmdname{fflabelfont}
+
+This sets the font size for the bounding box markers in
+draft mode.
+
+\end{itemize}
+
+The following are lengths, which can be changed using
+\cmdname{setlength}:
+\marginpar{Another marginal note}
+
+\begin{itemize}
+\item \cmdname{fflabelsep}
+
+This is the distance from the right hand side of the
+bounding box at which to place the bounding box marker.
+
+\item \cmdname{flowframesep}
+
+This is the gap between the text of the frame and
+its border, for the standard border types.
+
+\item \cmdname{flowframerule}
+
+This is the width of the frame's border, if using
+a border given by a frame making command that uses \cmdname{fboxsep}
+to set its border width.
+\end{itemize}
+
+\chapter*{Contact Details}
+\disablethumbtabs
+
+Dr Nicola Talbot\\
+School of Computing Sciences\\
+University of East Anglia\\
+Norwich. Norfolk. NR4 7TJ. UK\\
+\url{http://theoval.cmp.uea.ac.uk/~nlct/}
+
+\finishthispage\mbox{}
+\setdynamiccontents*{chaphead}{}
+\setdynamicframe*{footer}{pages=none}
+\setstaticframe*{lastbackleft,lastbackright}{pages=even}
+\end{document}
diff --git a/macros/latex/contrib/flowfram/samples/sample1.pdf b/macros/latex/contrib/flowfram/samples/sample1.pdf
new file mode 100644
index 0000000000..05615edb0e
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sample1.pdf
Binary files differ
diff --git a/macros/latex/contrib/flowfram/samples/sample1.tex b/macros/latex/contrib/flowfram/samples/sample1.tex
new file mode 100644
index 0000000000..6fd4d999fc
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sample1.tex
@@ -0,0 +1,305 @@
+ % This file is public domain.
+
+\documentclass[a4paper]{article}
+
+\usepackage[a4paper,landscape,margin=1in]{geometry}
+\usepackage{fancybox}
+\usepackage{color}
+\usepackage{flowfram}
+
+\showframebboxtrue
+\showtypeblocktrue
+
+
+\NcolumnStop{4}{1in}
+
+\setflowframe{3,4}{pages={>1}}
+\twocolumnSbottominarea[1]{1in}{0.5\textwidth}{\flowframeheight{3}}{0.5\textwidth}{0pt}
+
+\begin{staticcontents}{2}
+The page layout for this document was obtained with
+the following commands:
+\begin{verbatim}
+\NcolumnStop{4}{1in}
+\setflowframe{3,4}{pages={>1}}
+\twocolumnSbottominarea[1]{1in}{0.5\textwidth}{flowframeheight{3}}
+{0.5\textwidth}{0pt}
+\end{verbatim}
+\end{staticcontents}
+
+\newcommand{\sty}[1]{\textsf{#1}}
+\newcommand{\env}[1]{\textsf{#1}}
+\newcommand{\cmdname}[1]{\texttt{\symbol{92}#1}}
+\newcommand{\meta}[1]{\textnormal{\textless\textit{#1}\textgreater}}
+
+\raggedright
+
+\begin{document}
+
+\begin{staticcontents}{1}
+\title{Creating Flow Frames for Posters or Magazines}
+\author{Nicola L. C. Talbot}
+\date{}
+\maketitle
+\end{staticcontents}
+
+This is a modified version of the manual for the \sty{flowfram} package.
+It is intended to illustrated what can be done. See the full manual for
+a comprehensive description.
+
+If the columns are very narrow, it may be better to
+use \cmdname{raggedright}, otherwise \TeX\ may have a
+problem working out the line breaks.
+
+\section{Introduction}
+
+The \sty{flowfram} package is designed to enable you to create
+frames in a document such that the
+contents of the \env{document} environment flow from one
+frame to the next in the order that they were defined.
+This is useful for creating posters
+or magazines or any other form of document that does not
+conform to the standard one or two column layout.
+
+\section{Setting up Frames}
+
+The \sty{flowfram} package provides three types of frame:
+{flow frames}, {static
+frames} and {dynamic frames}.
+
+\subsection{Flow Frames}
+
+The flow frame is the principle type of frame.
+The text of the \env{document} environment will flow from
+one frame to the next in order of definition. Each
+flow frame has an associated width, height,
+position on the page, and optionally a border.
+
+It is recommended that all the flow frames in a document
+have the same width, otherwise problems may occur
+when a paragraph spans to flow frames of unequal
+widths. This is because \TeX's output routine does not
+register the change in \cmdname{hsize} until it reaches
+a paragraph break. If it is absolutely necessary for
+flow frames to have unequal widths, judicious use of
+\cmdname{framebreak} is required.
+
+\subsection{Static Frames}
+
+A static frame is a rectangular area in which text neither
+flows into, nor flows out of. The contents must be set
+explicitly, and once set, the contents of the static frame will
+remain the same on each page until it is explicitly
+changed. Thus, a static frame can be used, for example, to make
+a company logo appear in the same place on every page.
+
+\subsection{Dynamic Frames}
+
+A dynamic frame is similar to a static frame, but its contents
+are re-typeset on each page. (A static frame stores its
+contents in a savebox, whereas a dynamic frame stores its
+contents in a macro).
+
+\section{Frame Attributes}
+\label{sec:modattr}
+
+Once you have defined the {flow frames}, {static frames} and
+{dynamic frames}, their attributes can be changed.
+The three types of frame mostly have the
+same set of attributes, but some are specific to a certain type.
+The available attributes are as follows
+(\textsuperscript{\textbf{F}} indicates the key is
+only available for {flow frames},
+\textsuperscript{\textbf{S}} indicates the key is only available
+for {static frames}
+and \textsuperscript{\textbf{D}} indicates the key
+is only available for {dynamic frames}):
+
+\begin{description}
+\item[width=\meta{length}] The width of the frame.
+
+\item[height=\meta{length}] The height of the frame.
+
+\item[x=\meta{length}] The x-coordinate of the frame.
+
+\item[y=\meta{length}] The y-coordinate of the frame.
+
+\item[border=\meta{style}] The style of the border around the
+frame, this can take the values: \texttt{none} (no border),
+\texttt{plain} (plain border) or the name of a \LaTeX\
+frame making command without the preceding backslash.
+The value \texttt{fbox} is equivalent to \texttt{plain}.
+
+\item[offset=\meta{offset}] The border offset, if it is a
+user-defined border. This is the distance from the outer
+edge of the left hand border to the left edge of the
+bounding box of the text inside the border. The \sty{flowfram}
+package is able to compute the border for
+known frame making commands.
+If you define your own frame making command, you may need to
+specify the offset explicitly, or the frames
+may end up shifted to the right or left.
+
+\item[bordercolor=\meta{colour}] The colour of the border
+if you are using a standard frame making command.
+The colour can either be specified as, e.g.\ \texttt{green},
+or including the colour model, e.g. \verb/[rgb]{0,1,0}/.
+
+\item[textcolor=\meta{colour}] The text colour for that
+frame. Again, the colour can either be specified as,
+e.g.\ \texttt{green}, or including the colour model,
+e.g. \verb/[rgb]{0,1,0}/.
+
+\item[pages=\meta{page list}] The {list of
+pages} for which the frame
+should appear. This can either have the values: \texttt{all},
+\texttt{even}, \texttt{odd} or \texttt{none} (the latter
+removes the frame from that point on---useful if you
+have multiple pages with the same number), or it can be a
+comma-separated list of single pages, or
+{page ranges}.
+
+\item[margin=\meta{side}\textsuperscript{F}] The side of
+the flow frame that its corresponding margin should go on. This
+can take the values \texttt{left} or \texttt{right}.
+
+\item[clear=\meta{boolean}\textsuperscript{S}] If this value
+is set, the static frame will be cleared at the start of the
+next page.
+
+\item[style=\meta{cmd}\textsuperscript{D}] This should be
+the name of a command \emph{without} the preceding backslash,
+to be applied to the contents of the specified dynamic frame.
+The command may either be a declaration, for example \verb/style=large/
+which will set the contents of all the dynamic frames in a
+large font, or it can be a command that takes a single argument,
+for example \verb/style=textbf/
+which will make the text for all the dynamic frames come out in
+bold. To unset a style, do \verb/style=none/.
+
+\end{description}
+
+\section{Miscellaneous}
+
+\subsection{Page Layout}
+
+The \sty{flowfram} package has the package option \texttt{draft}
+which will draw the {bounding boxes} for
+each frame defined. At the bottom right of each
+bounding box (except for the bounding box denoting the
+typeblock), a marker will be shown to indictate the type
+of frame, its IDN and its IDL.
+
+You can see the layout for the current page (irrespective of
+whether or not the \texttt{draft} option has been set) using
+the command:\newline
+\cmdname{flowframeshowlayout}
+
+The headers and footers will appear as usual (but will not
+be shown in draft mode), according to the format given by
+\cmdname{pagestyle}.
+
+\subsection{Frame Stacking Order}
+
+The material on each page is placed in the following order:
+\begin{enumerate}
+\item Each static frame defined for that page in ascending
+order of IDN.
+
+\item Each flow frame defined for that page in ascending
+order of IDN.
+
+\item Each dynamic frame defined for that page in ascending
+order of IDN.
+
+\item {Bounding boxes} if the \texttt{draft}
+package option has been used.
+\end{enumerate}
+
+This ordering can be used to determine if you want something
+to overlay or underlay everything else on the page.
+
+\subsection{Prematurely Ending a Flow Frame}
+
+You can force text to move immediately to the next defined
+flow frame using one of the standard \LaTeX\ page breaking commands
+which work in an analogous way to the way they
+work in standard two column mode.
+
+The command \cmdname{framebreak} is provided for situations
+where a paragraph spans two flow frames
+of different widths, as \TeX's output routine does not
+adjust to the new value of \cmdname{hsize} until the last
+paragraph of the previous frame has ended. As a
+result, the end of the paragraph at the beginning of the new
+flow frame retains the width of the previous flow frame.
+
+If you want to start a new page, rather than simply move to the
+next frame, use the command\newline
+\cmdname{finishthispage}.
+
+\subsection{Floats}
+
+Since floats (such as figures and tables) can only go in
+{flow frames}, this package provides
+the additional environments:
+\env{staticfigure} and
+\env{statictable} which can be used in static frames
+and dynamic frames. Unlike their \env{figure} and
+\env{table} counterparts, they are fixed in place, and
+so do not take an optional placement specifier. The
+\cmdname{caption} and \cmdname{label} commands can
+be used within \env{staticfigure} and \env{statictable} as
+usual.
+
+The standard \env{figure} and \env{table} commands will
+behave as usual in the flow frames, but their starred versions,
+\env{figure*} and \env{table*} behave no differently
+from \env{figure} and \env{table}.
+
+\subsection{Global Values}
+
+The following macros can be changed using \cmdname{renewcommand}:
+
+\begin{itemize}
+\item \cmdname{setffdraftcolor}
+
+This sets the colour of the bounding box
+when it is displayed in draft mode.
+
+\item
+\cmdname{setffdrafttypeblockcolor}
+
+This sets the colour of
+the bounding box of the typeblock when it is displayed
+in draft mode.
+
+\item \cmdname{fflabelfont}
+
+This sets the font size for the bounding box markers in
+draft mode.
+
+\end{itemize}
+
+The following are lengths, which can be changed using
+\cmdname{setlength}:
+
+\begin{itemize}
+\item \cmdname{fflabelsep}
+
+This is the distance from the right hand side of the
+bounding box at which to place the bounding box marker.
+
+\item \cmdname{flowframesep}
+
+This is the gap between the text of the frame and
+its border, for the standard border types.
+
+\item \cmdname{flowframerule}
+
+This is the width of the frame's border, if using
+a border given by a frame making command that uses \cmdname{fboxsep}
+to set its border width.
+\end{itemize}
+
+\end{document}
diff --git a/macros/latex/contrib/flowfram/samples/sample2.pdf b/macros/latex/contrib/flowfram/samples/sample2.pdf
new file mode 100644
index 0000000000..222707cba7
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sample2.pdf
Binary files differ
diff --git a/macros/latex/contrib/flowfram/samples/sample2.tex b/macros/latex/contrib/flowfram/samples/sample2.tex
new file mode 100644
index 0000000000..d1ca099223
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sample2.tex
@@ -0,0 +1,272 @@
+ % This file is public domain.
+
+\documentclass[a4paper,twoside]{report}
+
+\usepackage{url}
+
+\newcommand{\cmdname}[1]{\texttt{\char`\\#1}}
+\newcommand{\sty}[1]{\texttt{#1}}
+\newcommand{\env}[1]{\texttt{#1}}
+\newcommand{\meta}[1]{$\langle$\emph{#1}$\rangle$}
+
+\begin{document}
+
+\title{Creating Flow Frames for Posters or Magazines}
+\author{Nicola L. C. Talbot\\[1cm]\url{http://www.dickimaw-books.com/}}
+\date{}
+\pagenumbering{alph}
+\maketitle
+
+\pagenumbering{roman}
+\tableofcontents
+
+\chapter{Introduction}
+\pagenumbering{arabic}
+
+The \sty{flowfram} package is designed to enable you to create
+frames in a document such that the
+contents of the \env{document} environment flow from one
+frame to the next in the order that they were defined.
+This is useful for creating posters
+or magazines or any other form of document that does not
+conform to the standard one or two column layout.
+
+\chapter{Setting up Frames}
+
+The \sty{flowfram} package provides three types of frame:
+{flow frames}, {static
+frames} and {dynamic frames}.
+
+\section{Flow Frames}
+
+The flow frame is the principle type of frame.
+The text of the \env{document} environment will flow from
+one frame to the next in order of definition. Each
+flow frame has an associated width, height,
+position on the page, and optionally a border.
+
+\section{Static Frames}
+
+A static frame is a rectangular area in which text neither
+flows into, nor flows out of. The contents must be set
+explicitly, and once set, the contents of the static frame will
+remain the same on each page until it is explicitly
+changed. Thus, a static frame can be used, for example, to make
+a company logo appear in the same place on every page.
+
+\section{Dynamic Frames}
+
+A dynamic frame is similar to a static frame, but its contents
+are re-typeset on each page. (A static frame stores its
+contents in a savebox, whereas a dynamic frame stores its
+contents in a macro).
+
+\chapter{Frame Attributes}
+\label{sec:modattr}
+
+Once you have defined the {flow frames}, {static frames} and
+{dynamic frames}, their attributes can be changed.
+The three types of frame mostly have the
+same set of attributes, but some are specific to a certain type.
+The available attributes are as follows
+(\textsuperscript{\textbf{F}} indicates the key is
+only available for {flow frames},
+\textsuperscript{\textbf{S}} indicates the key is only available
+for {static frames}
+and \textsuperscript{\textbf{D}} indicates the key
+is only available for {dynamic frames}):
+
+\begin{description}
+\item[width=\meta{length}] The width of the frame.
+
+\item[height=\meta{length}] The height of the frame.
+
+\item[x=\meta{length}] The x-coordinate of the frame.
+
+\item[y=\meta{length}] The y-coordinate of the frame.
+
+\item[border=\meta{style}] The style of the border around the
+frame, this can take the values: \texttt{none} (no border),
+\texttt{plain} (plain border) or the name of a \LaTeX\
+frame making command without the preceding backslash.
+The value \texttt{fbox} is equivalent to \texttt{plain}.
+
+\item[offset=\meta{offset}] The border offset, if it is a
+user-defined border. This is the distance from the outer
+edge of the left hand border to the left edge of the
+bounding box of the text inside the border. The \sty{flowfram}
+package is able to compute the border for
+known frame making commands.
+If you define your own frame making command, you may need to
+specify the offset explicitly, or the frames
+may end up shifted to the right or left.
+
+\item[bordercolor=\meta{colour}] The colour of the border
+if you are using a standard frame making command.
+The colour can either be specified as, e.g.\ \texttt{green},
+or including the colour model, e.g. \verb/[rgb]{0,1,0}/.
+
+\item[textcolor=\meta{colour}] The text colour for that
+frame. Again, the colour can either be specified as,
+e.g.\ \texttt{green}, or including the colour model,
+e.g. \verb/[rgb]{0,1,0}/.
+
+\item[pages=\meta{page list}] The {list of
+pages} for which the frame
+should appear. This can either have the values: \texttt{all},
+\texttt{even}, \texttt{odd} or \texttt{none} (the latter
+removes the frame from that point on---useful if you
+have multiple pages with the same number), or it can be a
+comma-separated list of single pages, or
+{page ranges}.
+
+\item[margin=\meta{side}\textsuperscript{F}] The side of
+the flow frame that its corresponding margin should go on. This
+can take the values \texttt{left} or \texttt{right}.
+
+\item[clear=\meta{boolean}\textsuperscript{S}] If this value
+is set, the static frame will be cleared at the start of the
+next page.
+
+\item[style=\meta{cmd}\textsuperscript{D}] This should be
+the name of a command \emph{without} the preceding backslash,
+to be applied to the contents of the specified dynamic frame.
+The command may either be a declaration, for example \verb/style=large/
+which will set the contents of all the dynamic frames in a
+large font, or it can be a command that takes a single argument,
+for example \verb/style=textbf/
+which will make the text for all the dynamic frames come out in
+bold. To unset a style, do \verb/style=none/.
+
+\end{description}
+
+\chapter{Miscellaneous}
+
+\section{Page Layout}
+
+The \sty{flowfram} package has the package option \texttt{draft}
+which will draw the {bounding boxes} for
+each frame defined. At the bottom right of each
+bounding box (except for the bounding box denoting the
+typeblock), a marker will be shown to indictate the type
+of frame, its IDN and its IDL.
+
+You can see the layout for the current page (irrespective of
+whether or not the \texttt{draft} option has been set) using
+the command:\newline
+\cmdname{flowframeshowlayout}
+
+The headers and footers will appear as usual (but will not
+be shown in draft mode), according to the format given by
+\cmdname{pagestyle}.
+
+\section{Frame Stacking Order}
+
+The material on each page is placed in the following order:
+\begin{enumerate}
+\item Each static frame defined for that page in ascending
+order of IDN.
+
+\item Each flow frame defined for that page in ascending
+order of IDN.
+
+\item Each dynamic frame defined for that page in ascending
+order of IDN.
+
+\item {Bounding boxes} if the \texttt{draft}
+package option has been used.
+\end{enumerate}
+
+This ordering can be used to determine if you want something
+to overlay or underlay everything else on the page.
+
+\section{Prematurely Ending a Flow Frame}
+
+You can force text to move immediately to the next defined
+flow frame using one of the standard \LaTeX\ page breaking commands
+which work in an analogous way to the way they
+work in standard two column mode.
+
+The command \cmdname{framebreak} is provided for situations
+where a paragraph spans two flow frames
+of different widths, as \TeX's output routine does not
+adjust to the new value of \cmdname{hsize} until the last
+paragraph of the previous frame has ended. As a
+result, the end of the paragraph at the beginning of the new
+flow frame retains the width of the previous flow frame.
+
+If you want to start a new page, rather than simply move to the
+next frame, use the command\newline
+\cmdname{finishthispage}.
+
+\section{Floats}
+
+Since floats (such as figures and tables) can only go in
+{flow frames}, this package provides
+the additional environments:
+\env{staticfigure} and
+\env{statictable} which can be used in static frames
+and dynamic frames. Unlike their \env{figure} and
+\env{table} counterparts, they are fixed in place, and
+so do not take an optional placement specifier. The
+\cmdname{caption} and \cmdname{label} commands can
+be used within \env{staticfigure} and \env{statictable} as
+usual.
+
+The standard \env{figure} and \env{table} commands will
+behave as usual in the flow frames, but their starred versions,
+\env{figure*} and \env{table*} behave no differently
+from \env{figure} and \env{table}.
+
+\section{Global Values}
+
+The following macros can be changed using \cmdname{renewcommand}:
+
+\begin{itemize}
+\item \cmdname{setffdraftcolor}
+
+This sets the colour of the bounding box
+when it is displayed in draft mode.
+
+\item
+\cmdname{setffdrafttypeblockcolor}
+
+This sets the colour of
+the bounding box of the typeblock when it is displayed
+in draft mode.
+
+\item \cmdname{fflabelfont}
+
+This sets the font size for the bounding box markers in
+draft mode.
+
+\end{itemize}
+
+The following are lengths, which can be changed using
+\cmdname{setlength}:
+
+\begin{itemize}
+\item \cmdname{fflabelsep}
+
+This is the distance from the right hand side of the
+bounding box at which to place the bounding box marker.
+
+\item \cmdname{flowframesep}
+
+This is the gap between the text of the frame and
+its border, for the standard border types.
+
+\item \cmdname{flowframerule}
+
+This is the width of the frame's border, if using
+a border given by a frame making command that uses \cmdname{fboxsep}
+to set its border width.
+\end{itemize}
+
+\chapter*{Contact Details}
+
+Dr Nicola Talbot\\
+Dickimaw Books\\
+\url{http://www.dickimaw-books.com/}
+
+\end{document}
diff --git a/macros/latex/contrib/flowfram/samples/sample3.pdf b/macros/latex/contrib/flowfram/samples/sample3.pdf
new file mode 100644
index 0000000000..4f60f5b5ad
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sample3.pdf
Binary files differ
diff --git a/macros/latex/contrib/flowfram/samples/sample3.tex b/macros/latex/contrib/flowfram/samples/sample3.tex
new file mode 100644
index 0000000000..56bfcf7981
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sample3.tex
@@ -0,0 +1,65 @@
+ % This file is public domain.
+
+\documentclass{article}
+
+\usepackage{color}
+\usepackage[draft]{flowfram}
+\usepackage{tikz}
+\usetikzlibrary{snakes}
+
+\newstaticframe[1,2]{3in}{3in}{0pt}{0pt}[sf1]
+\newdynamicframe[1,3]{2in}{3in}{0.5\textwidth}{0.5\textheight}[df1]
+
+\newstaticframe[2]{3in}{3in}{0.5\textwidth}{0.5\textheight}[sf2]
+
+\newdynamicframe[3]{2in}{2in}{0.5\textwidth}{0pt}[df2]
+
+\setlength{\sdfparindent}{\parindent}
+
+\onecolumn
+
+\newlength\fancywidth
+\newlength\fancyheight
+\newlength\fancydepth
+
+\newcommand{\fancyframe}[1]{%
+\settowidth{\fancywidth}{#1}%
+\settoheight{\fancyheight}{#1}%
+\settodepth{\fancydepth}{#1}%
+\addtolength{\fancyheight}{\fancydepth}%
+\hspace{-\flowframesep}%
+\tikz[baseline=0pt]{%
+\draw[snake=bumps,raise snake=\flowframesep,line width=\flowframerule]
+ (0pt,0pt)
+ rectangle (\fancywidth,\fancyheight);
+}}
+
+\begin{document}
+\setstaticframe{1,2}{valign=t}
+\setstaticframe{1}{border=fancyframe}
+\setstaticcontents{1}{Top\par
+\vfill
+Bottom}
+
+
+\mbox{}
+
+\newpage\mbox{}
+
+\begin{staticcontents*}{sf1}
+Some text on the left static frame.
+\continueonframe[continued \relativeframelocation{static}{2}{static}{1}]{sf2}
+Some more text on the right static frame, and
+some more text to pad it out a bit.
+\end{staticcontents*}
+
+\newpage\mbox{}
+
+\begin{dynamiccontents}{1}
+Some text in the first dynamic frame.
+\continueonframe[continued \reldynamicloc*{df2}{df1}]{2}
+Some more text in the second dynamic frame, and
+some more text to pad it out a bit.
+\end{dynamiccontents}
+
+\end{document}
diff --git a/macros/latex/contrib/flowfram/samples/sampleRL.pdf b/macros/latex/contrib/flowfram/samples/sampleRL.pdf
new file mode 100644
index 0000000000..fcf38f2f95
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sampleRL.pdf
Binary files differ
diff --git a/macros/latex/contrib/flowfram/samples/sampleRL.tex b/macros/latex/contrib/flowfram/samples/sampleRL.tex
new file mode 100644
index 0000000000..48f4f5e615
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sampleRL.tex
@@ -0,0 +1,16 @@
+ % This file is public domain.
+
+\documentclass{article}
+
+\usepackage{lipsum}
+\usepackage[RL,draft]{flowfram}
+
+\twocolumn
+
+\begin{document}
+This is the start of the text.
+
+\lipsum
+
+This is the end of the text.
+\end{document}
diff --git a/macros/latex/contrib/flowfram/samples/sheep.eps b/macros/latex/contrib/flowfram/samples/sheep.eps
new file mode 100644
index 0000000000..525aec2992
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sheep.eps
@@ -0,0 +1,135 @@
+%!PS-Adobe-1.0 EPSF-3.0
+%%BoundingBox: 0 796 58 842
+%%Creator: KDE 3.5.3-0.2.fc4 Red Hat
+%%CreationDate: Mon Aug 20 21:24:28 2007
+%%Orientation: Portrait
+%%Pages: 1
+%%DocumentFonts:
+
+%%EndComments
+%%BeginProlog
+% Prolog copyright 1994-2003 Trolltech. You may copy this prolog in any way
+% that is directly related to this document. For other use of this prolog,
+% see your licensing agreement for Qt.
+/d/def load def/D{bind d}bind d/d2{dup dup}D/B{0 d2}D/W{255 d2}D/ED{exch d}D
+/D0{0 ED}D/LT{lineto}D/MT{moveto}D/S{stroke}D/F{setfont}D/SW{setlinewidth}D
+/CP{closepath}D/RL{rlineto}D/NP{newpath}D/CM{currentmatrix}D/SM{setmatrix}D
+/TR{translate}D/SD{setdash}D/SC{aload pop setrgbcolor}D/CR{currentfile read
+pop}D/i{index}D/bs{bitshift}D/scs{setcolorspace}D/DB{dict dup begin}D/DE{end
+d}D/ie{ifelse}D/sp{astore pop}D/BSt 0 d/LWi 1 d/PSt 1 d/Cx 0 d/Cy 0 d/WFi
+false d/OMo false d/BCol[1 1 1]d/PCol[0 0 0]d/BkCol[1 1 1]d/BDArr[0.94 0.88
+0.63 0.50 0.37 0.12 0.06]d/defM matrix d/nS 0 d/GPS{PSt 1 ge PSt 5 le and{{
+LArr PSt 1 sub 2 mul get}{LArr PSt 2 mul 1 sub get}ie}{[]}ie}D/QS{PSt 0 ne{
+gsave LWi SW true GPS 0 SD S OMo PSt 1 ne and{BkCol SC false GPS dup 0 get
+SD S}if grestore}if}D/r28{{CR dup 32 gt{exit}if pop}loop 3{CR}repeat 0 4{7
+bs exch dup 128 gt{84 sub}if 42 sub 127 and add}repeat}D/rA 0 d/rL 0 d/rB{rL
+0 eq{/rA r28 d/rL 28 d}if dup rL gt{rA exch rL sub rL exch/rA 0 d/rL 0 d rB
+exch bs add}{dup rA 16#fffffff 3 -1 roll bs not and exch dup rL exch sub/rL
+ED neg rA exch bs/rA ED}ie}D/uc{/rL 0 d 0{dup 2 i length ge{exit}if 1 rB 1
+eq{3 rB dup 3 ge{1 add dup rB 1 i 5 ge{1 i 6 ge{1 i 7 ge{1 i 8 ge{128 add}if
+64 add}if 32 add}if 16 add}if 3 add exch pop}if 3 add exch 10 rB 1 add{dup 3
+i lt{dup}{2 i}ie 4 i 3 i 3 i sub 2 i getinterval 5 i 4 i 3 -1 roll
+putinterval dup 4 -1 roll add 3 1 roll 4 -1 roll exch sub dup 0 eq{exit}if 3
+1 roll}loop pop pop}{3 rB 1 add{2 copy 8 rB put 1 add}repeat}ie}loop pop}D
+/sl D0/QCIgray D0/QCIcolor D0/QCIindex D0/QCI{/colorimage where{pop false 3
+colorimage}{exec/QCIcolor ED/QCIgray QCIcolor length 3 idiv string d 0 1
+QCIcolor length 3 idiv 1 sub{/QCIindex ED/x QCIindex 3 mul d QCIgray
+QCIindex QCIcolor x get 0.30 mul QCIcolor x 1 add get 0.59 mul QCIcolor x 2
+add get 0.11 mul add add cvi put}for QCIgray image}ie}D/di{gsave TR 1 i 1 eq
+{false eq{pop true 3 1 roll 4 i 4 i false 4 i 4 i imagemask BkCol SC
+imagemask}{pop false 3 1 roll imagemask}ie}{dup false ne{/languagelevel
+where{pop languagelevel 3 ge}{false}ie}{false}ie{/ma ED 8 eq{/dc[0 1]d
+/DeviceGray}{/dc[0 1 0 1 0 1]d/DeviceRGB}ie scs/im ED/mt ED/h ED/w ED/id 7
+DB/ImageType 1 d/Width w d/Height h d/ImageMatrix mt d/DataSource im d
+/BitsPerComponent 8 d/Decode dc d DE/md 7 DB/ImageType 1 d/Width w d/Height
+h d/ImageMatrix mt d/DataSource ma d/BitsPerComponent 1 d/Decode[0 1]d DE 4
+DB/ImageType 3 d/DataDict id d/MaskDict md d/InterleaveType 3 d end image}{
+pop 8 4 1 roll 8 eq{image}{QCI}ie}ie}ie grestore}d/BF{gsave BSt 1 eq{BCol SC
+WFi{fill}{eofill}ie}if BSt 2 ge BSt 8 le and{BDArr BSt 2 sub get/sc ED BCol{
+1. exch sub sc mul 1. exch sub}forall 3 array astore SC WFi{fill}{eofill}ie}
+if BSt 9 ge BSt 14 le and{WFi{clip}{eoclip}ie defM SM pathbbox 3 i 3 i TR 4
+2 roll 3 2 roll exch sub/h ED sub/w ED OMo{NP 0 0 MT 0 h RL w 0 RL 0 h neg
+RL CP BkCol SC fill}if BCol SC 0.3 SW NP BSt 9 eq BSt 11 eq or{0 4 h{dup 0
+exch MT w exch LT}for}if BSt 10 eq BSt 11 eq or{0 4 w{dup 0 MT h LT}for}if
+BSt 12 eq BSt 14 eq or{w h gt{0 6 w h add{dup 0 MT h sub h LT}for}{0 6 w h
+add{dup 0 exch MT w sub w exch LT}for}ie}if BSt 13 eq BSt 14 eq or{w h gt{0
+6 w h add{dup h MT h sub 0 LT}for}{0 6 w h add{dup w exch MT w sub 0 exch LT
+}for}ie}if S}if BSt 24 eq{}if grestore}D/mat matrix d/ang1 D0/ang2 D0/w D0/h
+D0/x D0/y D0/ARC{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED mat CM pop x w 2 div
+add y h 2 div add TR 1 h w div neg scale ang2 0 ge{0 0 w 2 div ang1 ang1
+ang2 add arc}{0 0 w 2 div ang1 ang1 ang2 add arcn}ie mat SM}D/C D0/P{NP MT
+0.5 0.5 rmoveto 0 -1 RL -1 0 RL 0 1 RL CP fill}D/M{/Cy ED/Cx ED}D/L{NP Cx Cy
+MT/Cy ED/Cx ED Cx Cy LT QS}D/DL{NP MT LT QS}D/HL{1 i DL}D/VL{2 i exch DL}D/R
+{/h ED/w ED/y ED/x ED NP x y MT 0 h RL w 0 RL 0 h neg RL CP BF QS}D/ACR{/h
+ED/w ED/y ED/x ED x y MT 0 h RL w 0 RL 0 h neg RL CP}D/xr D0/yr D0/rx D0/ry
+D0/rx2 D0/ry2 D0/RR{/yr ED/xr ED/h ED/w ED/y ED/x ED xr 0 le yr 0 le or{x y
+w h R}{xr 100 ge yr 100 ge or{x y w h E}{/rx xr w mul 200 div d/ry yr h mul
+200 div d/rx2 rx 2 mul d/ry2 ry 2 mul d NP x rx add y MT x y rx2 ry2 180 -90
+x y h add ry2 sub rx2 ry2 270 -90 x w add rx2 sub y h add ry2 sub rx2 ry2 0
+-90 x w add rx2 sub y rx2 ry2 90 -90 ARC ARC ARC ARC CP BF QS}ie}ie}D/E{/h
+ED/w ED/y ED/x ED mat CM pop x w 2 div add y h 2 div add TR 1 h w div scale
+NP 0 0 w 2 div 0 360 arc mat SM BF QS}D/A{16 div exch 16 div exch NP ARC QS}
+D/PIE{/ang2 ED/ang1 ED/h ED/w ED/y ED/x ED NP x w 2 div add y h 2 div add MT
+x y w h ang1 16 div ang2 16 div ARC CP BF QS}D/CH{16 div exch 16 div exch NP
+ARC CP BF QS}D/BZ{curveto QS}D/CRGB{255 div 3 1 roll 255 div 3 1 roll 255
+div 3 1 roll}D/BC{CRGB BkCol sp}D/BR{CRGB BCol sp/BSt ED}D/WB{1 W BR}D/NB{0
+B BR}D/PE{setlinejoin setlinecap CRGB PCol sp/LWi ED/PSt ED LWi 0 eq{0.25
+/LWi ED}if PCol SC}D/P1{1 0 5 2 roll 0 0 PE}D/ST{defM SM concat}D/MF{true
+exch true exch{exch pop exch pop dup 0 get dup findfont dup/FontName get 3
+-1 roll eq{exit}if}forall exch dup 1 get/fxscale ED 2 get/fslant ED exch
+/fencoding ED[fxscale 0 fslant 1 0 0]makefont fencoding false eq{}{dup
+maxlength dict begin{1 i/FID ne{def}{pop pop}ifelse}forall/Encoding
+fencoding d currentdict end}ie definefont pop}D/MFEmb{findfont dup length
+dict begin{1 i/FID ne{d}{pop pop}ifelse}forall/Encoding ED currentdict end
+definefont pop}D/DF{findfont/fs 3 -1 roll d[fs 0 0 fs -1 mul 0 0]makefont d}
+D/ty 0 d/Y{/ty ED}D/Tl{gsave SW NP 1 i exch MT 1 i 0 RL S grestore}D/XYT{ty
+MT/xyshow where{pop pop xyshow}{exch pop 1 i dup length 2 div exch
+stringwidth pop 3 -1 roll exch sub exch div exch 0 exch ashow}ie}D/AT{ty MT
+1 i dup length 2 div exch stringwidth pop 3 -1 roll exch sub exch div exch 0
+exch ashow}D/QI{/C save d pageinit/Cx 0 d/Cy 0 d/OMo false d}D/QP{C restore
+showpage}D/SPD{/setpagedevice where{1 DB 3 1 roll d end setpagedevice}{pop
+pop}ie}D/SV{BSt LWi PSt Cx Cy WFi OMo BCol PCol BkCol/nS nS 1 add d gsave}D
+/RS{nS 0 gt{grestore/BkCol ED/PCol ED/BCol ED/OMo ED/WFi ED/Cy ED/Cx ED/PSt
+ED/LWi ED/BSt ED/nS nS 1 sub d}if}D/CLSTART{/clipTmp matrix CM d defM SM NP}
+D/CLEND{clip NP clipTmp SM}D/CLO{grestore gsave defM SM}D
+
+/LArr[ [] [] [ 10.000 3.000 ] [ 3.000 10.000 ] [ 3.000 3.000 ] [ 3.000 3.000 ] [ 5.000 3.000 3.000 3.000 ] [ 3.000 5.000 3.000 3.000 ] [ 5.000 3.000 3.000 3.000 3.000 ] [ 3.000 5.000 3.000 3.000 3.000 3.000 ] ] d
+/pageinit {
+% 210*297mm (portrait)
+0 842 translate 1 -1 scale/defM matrix CM d } d
+%%EndProlog
+%%BeginSetup
+%%EndSetup
+%%Page: 1 1
+%%BeginPageSetup
+QI
+%%EndPageSetup
+[1 0 0 1 0 0]ST
+CLSTART
+0 0 58 46 ACR
+CLEND
+B P1
+NB
+W BC
+/sl 2668 string uc
+îý´+*öA*V¹8º¼ùðãÁAYܺÆIAHÚñ/×Y³+¾ýüûÙ¶óðãíÍÞMêüûùñÍ+*ù-*=+Á+NH¸ò=1¼¶ïàÉYI½Xü
+¯¹êJ8P7¾ûÞÊî6ñìG¹õ/**üâP¾*GÍGùâ¿É?U´ëßÕYMAôëIÑ-åI½¼øð×±ÕXÏI½XÚ¶ï;Dü¹öîßÃ=Å8Û
+UÅ8ÛöêÇ=é»JGʳëàýÁ1ýʸÔ:1ÀIý¶4Õ̺öîݱݼëLÅ8û÷*JF¾ÝÌGÙ´ëØYµP»ùÈ»:1X³éÜ»MUÕìü
+7F.î¶óè½å8Gøðâضïß½ýô»**¼¶ïâÇEµìº×7ÔUµéR-*ÎÚ,éX@XFû=¶*ù-FúõíÒ=9HÚÕXVÙ´WزáÀÄ
+*ZëÙ¹õô7ÅJ¹éÔG·¶Þ?Ö´°ïàãÝ:ÐWâ¿ÙåÌÛöéÕ5õó³éÈ?Ù³éÔVÍ*¾²/Eø:*ÎâîP8LUÌÖê/X0ý>DFç
+¾ÀÀæ-*ÙÜ+ÞH¾+=ÙµíéÅÀ²3·*÷ÍWßç/F×·9ìØÓèØÉA5½ð·¯·CãßZÂÆÓEÈäõìÓE÷õíìñÁú1Ê=ð:Zã
+HõëÉôÛÑÚMž<èùöïÖKÆGÞ+êI3íëâ+Æ»°´µñÞÙÈ?Uµïæϳ-ï+ù<½ü±±ËTUFêسùP¼ûضÐXÛú¹OÜÅF
+æîßM9HÚ´,·2¹2Wß»=åÌûÚº÷1Qí÷Ù1YÚöéÃ5Ý×ç=A¸ÁÀ;NÚõðê×ÏÉAý2·T8ú¼÷åÍåܺ·YJE0÷ÀWMC
+PüXòßâ+´üûÙ¸÷õÖ°5·2µ7U´ÝYݼFÔº,ÞçÐOÙ´WÛ¸óÈÙµÁÌéGLÆâîæ;1ÞüGñʸ¾úóñØøðàÃ1ýW*:Á
+5A*6ÊÅH¶ØµýüÛFù÷ñ¯·Añ:¾ìëÉÕXÛöêÕYM*Í+*2G**X1*ÖæÏEQ8ÉλùüWÚ·ñ;C¯½ýOÔ6ë-ùUÆ-ݽ
+Ý»÷ð×UAìÃ-ö7*¾îàÃ5ïâá*¶ï¿Ið¸òÎ.,JÙô¶Q;Iý3ÖÜù?åI½¼ùðßÁ1¾Û-*ÞGºöîÁ,:ºóèÓM9»**
+L=ê÷ñèãÝóÏËâß+é÷ûôë-Z9**ù>½üû+*Þ¼îÅÉõìÛ¸**Ò-JîßѽX?åðß*î1*JBÞÇO¾úß1K3*JVL@µR
+.Z*ü-*î>=L=Ð÷ÄÛãßÆJÊJXµæ.·¶÷.·ä߯PÚìÂñ·¶V.ç×Kà·*
+d
+58 46[1 0 0 1 0 0]sl 8 false 0 0 di
+
+QP
+%%Trailer
+%%Pages: 1
+%%DocumentFonts:
+%%EOF
diff --git a/macros/latex/contrib/flowfram/samples/sheep.png b/macros/latex/contrib/flowfram/samples/sheep.png
new file mode 100644
index 0000000000..d7cb351761
--- /dev/null
+++ b/macros/latex/contrib/flowfram/samples/sheep.png
Binary files differ