summaryrefslogtreecommitdiff
path: root/Master/texmf-dist
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-11-28 23:52:30 +0000
committerKarl Berry <karl@freefriends.org>2011-11-28 23:52:30 +0000
commit463fd919920032de4e274499ddce84791bfc914a (patch)
treefcd9189c282a11f60dedd2eb25ca00b7ec376251 /Master/texmf-dist
parentdcd6c04aaf0753bb5c408f12a6487f780bda42c5 (diff)
new latex package fullwidth (28nov11)
git-svn-id: svn://tug.org/texlive/trunk@24684 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist')
-rw-r--r--Master/texmf-dist/doc/latex/fullwidth/README11
-rw-r--r--Master/texmf-dist/doc/latex/fullwidth/fullwidth-test.pdfbin0 -> 30885 bytes
-rw-r--r--Master/texmf-dist/doc/latex/fullwidth/fullwidth-test.tex14
-rw-r--r--Master/texmf-dist/doc/latex/fullwidth/fullwidth.pdfbin0 -> 251699 bytes
-rw-r--r--Master/texmf-dist/doc/latex/fullwidth/fullwidth.tex128
-rw-r--r--Master/texmf-dist/tex/latex/fullwidth/fullwidth.sty402
6 files changed, 555 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/fullwidth/README b/Master/texmf-dist/doc/latex/fullwidth/README
new file mode 100644
index 00000000000..b21b0f8473d
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/fullwidth/README
@@ -0,0 +1,11 @@
+This package provides the environment fullwidth.
+The package was inspired by a question of stack exchange
+
+This package provides the environment fullwidth which allows to
+set the left and right margins in a very simple way. It also allows page breaks.
+If you are using the twoside mode you can set the inner and outer margins.
+
+see also: http://tex.stackexchange.com/questions/34368/how-to-switch-between-two-margin-sizes
+
+Author's name: Marco Daniel
+version: 0.1a
diff --git a/Master/texmf-dist/doc/latex/fullwidth/fullwidth-test.pdf b/Master/texmf-dist/doc/latex/fullwidth/fullwidth-test.pdf
new file mode 100644
index 00000000000..75633396e75
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/fullwidth/fullwidth-test.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/fullwidth/fullwidth-test.tex b/Master/texmf-dist/doc/latex/fullwidth/fullwidth-test.tex
new file mode 100644
index 00000000000..5333dd739e8
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/fullwidth/fullwidth-test.tex
@@ -0,0 +1,14 @@
+\setcounter{errorcontextlines}{999}
+\documentclass[twoside]{article}
+\usepackage{showframe,lipsum}
+\usepackage[innermargin=-2.0cm,]{fullwidth}
+\begin{document}
+\lipsum
+
+%\clearpage
+\begin{fullwidth}[width=\linewidth+2cm]
+Start\par
+\lipsum[1] \lipsum \lipsum
+ENDE
+\end{fullwidth}
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/latex/fullwidth/fullwidth.pdf b/Master/texmf-dist/doc/latex/fullwidth/fullwidth.pdf
new file mode 100644
index 00000000000..d901eb54690
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/fullwidth/fullwidth.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/fullwidth/fullwidth.tex b/Master/texmf-dist/doc/latex/fullwidth/fullwidth.tex
new file mode 100644
index 00000000000..92e063b1fa3
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/fullwidth/fullwidth.tex
@@ -0,0 +1,128 @@
+%Documenation of the package fullwidth
+\setcounter{errorcontextlines}{999}
+\documentclass[parskip=false,english,11pt]{ltxmdf}
+\makeatletter
+\renewcommand\tableofcontents{%
+\setcounter{tocdepth}{1}%
+ \begin{multicols}{2}[\centering\textbf{\sffamily\Large\contentsname}]
+ \@starttoc{toc}
+ \end{multicols}
+}
+\ifoot{}
+\makeatother
+\usepackage{babel}
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+\usepackage{lipsum}
+%\usepackage[T1,altbullet]{lucidabr}
+\usepackage[scaled=0.82]{beramono}
+
+\usepackage{fullwidth}
+%\fullwidthsetup
+
+\def\fwdname{\texttt{fullwidth}\xspace}
+\title{The \fwdname package}
+\subtitle{Environment with adjustable margins for onside and twoside documents}
+\author{\href{mailto:marco.daniel@mada-nada.de}{Marco Daniel}%
+ \footnote{Sorry for bad English.}}
+\version{\fwdversion}
+\date{\today}
+\introduction{This package provides the environment \fwdname which allows to set the left and right margins in a very simple way. It also allows page breaks. If you are using the \texttt{twoside} mode you can set the inner and outer margins. \par
+By defining new environments the user may choose between several individual designs.%
+}
+
+
+\begin{document}
+\maketitle
+
+\section{Motivation}
+The package is inspired by many questions on \href{http://tex.stackexchange.com/}{tex stackexchange}. For example in the question \href{http://tex.stackexchange.com/questions/34368/how-to-switch-between-two-margin-sizes}{\emph{How to switch between two margin sizes?}} I solved the problem by using the package \mdname. However, since the package wasn't designed for such a environment, I decided to create a new package based on the algorithm of \mdname.
+
+
+
+\section{Syntax}\label{sec:syntax}
+The package itself loads the packages \mdpack{kvoptions} and \mdpack{etoolbox}.
+
+Load the package as usual:
+\begin{mdexample}
+ \usepackage[<GLOBAL OPTIONS>]{fullwidth}
+\end{mdexample}
+
+The package defines only one environment with the following syntax:
+\begin{mdexample}
+ \begin{fullwidth}[<LOCAL OPTIONS>]
+ <CONTENT>
+ \end{fullwidth}
+\end{mdexample}
+
+
+\minisec{Autodetecting floats}
+I added a detection of \mdpack{float} and \mdpack{minipage} environments. If \fwdname would be used within such an environment, \fwdname it would automatically use the option \mdoption{nobreak}.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%
+\section{Options}
+The package provides various options for manipulating frames. All options are listed in the following section. Some internal macros are not shown in this documentation, though they can be manipulated.
+\mdDescribeCmd{fullwidthsetup}The listed option can also be set via \mdcommand{fullwidthsetup}.
+
+\subsection{Options with lengths}
+
+All lengths will be evaluated by the \eTeX-command \mdcommand{dimexpr}.
+
+I know that the predefined lengths are not well prepared. Maybe I will change it later.
+
+
+\mdDescribeMacro[0pt]{width} Sets the width of the whole \fwdname environment.
+
+\mdDescribeMacro[\textbackslash topskip]{skipabove} Sets an additional skip above the frame.
+\mdDescribeMacro[\textbackslash topskip]{skipbelow} Sets an additional skip below the frame.
+
+\mdDescribeMacro[0pt]{leftmargin} Sets the length of the left margin of the environment.
+\mdDescribeMacro[0pt]{rightmargin} Sets the length of the right margin of the environment.
+
+\mdDescribeMacro[.4\textbackslash baselineskip]{innertopmargin} Sets the length of the inner top margin of the environment.
+\mdDescribeMacro[.4\textbackslash baselineskip]{innerbottommargin} Sets the length of the inner bottom margin of the environment.
+
+\mdDescribeMacro[0pt]{outermargin} Sets the length of the outer margin. This option is only avaidable in \texttt{twoside} mode.
+\mdDescribeMacro[0pt]{innermargin} Sets the length of the inner margin. This option is only avaidable in \texttt{twoside} mode.
+
+
+\mdDescribeMacro[\textbackslash topsep]{splittopskip} Sets the length of the skip above the split part of the environment.
+\mdDescribeMacro[0pt]{splitbottomskip} Sets the length of the skip below the split part of the environment.
+
+
+\subsection{General options}\label{genopt}
+
+\mdDescribeMacro[true]{twosidemode} The package detects wether \mdcommand{twoside} mode is active and uses \mdoption{innermargin} and \mdoption{outermagin} by default. If you don't know this you can use this option.
+
+\mdDescribeMacro[0pt]{needspace} Sometimes it is useful to set a minimum height before the environment should be splitted. For such cases you can use \mdoption{needspace}. The option requires a length which sets the minimum height before a frame will be splitted.
+
+\subsection{Footnotes}
+Inside the environment you can use the command \mdcommand{footnote} as usual. \mdname uses the syntax of the environment \mdpack{minipage} with the same counter.
+
+Every footnote text will be collected inside a box and will be displayed at the end of the environment \fwdname.
+
+\mdDescribeMacro[\mbox{} \mdcommand{bigskipamount}]{footnotedistance} The length is the distance between the end of the environment \fwdname and the displaying of the \mdcommand{footnoterule}.
+
+%\mdDescribeMacro[true]{footnoteinside} The position of the footnotes can be changed with the option \mdoption{footnoteinside}. The footnotes will be displayed at the end of the environment but you can decide whether the output is inside \fwdname or after.
+%
+%\vskip\baselineskip
+%\noindent\textbf{Note}\qquad The output of the footnotes with the option \mdoption{footnoteinside=false} are not in a splitted frame. I think it isn't useful because the first line of a new page shouldn't be a footnote.
+
+
+\section{Known Problems}
+ In this section I will collect known problems. In case you encounter any further problems, please
+ drop me an email, \href{mailto:marco.daniel@mada-nada.de}{marco.daniel at mada-nada.de}.
+
+ Do you have any ideas / wishes on further extensions to this package? Please let me know!
+
+\section{Acknowledgements}
+Thanks to the members of \href{http://tex.stackexchange.com/}{tex stackexchange}.
+
+\subsection{Revision history}\label{rev}
+\raggedright
+\minisec{Version 0.1 submitted 26 Nov 2011}
+\begin{itemize*}
+\item first upload to \href{http://dante.ctan.org/upload}{CTAN}
+\end{itemize*}
+\end{document}
diff --git a/Master/texmf-dist/tex/latex/fullwidth/fullwidth.sty b/Master/texmf-dist/tex/latex/fullwidth/fullwidth.sty
new file mode 100644
index 00000000000..cd3210f1b4c
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/fullwidth/fullwidth.sty
@@ -0,0 +1,402 @@
+%%
+%% Package fullwidth
+%%
+%% Currently the package has a beta-Status
+%%
+%% Copyright (c) 2011 Marco Daniel
+%%
+%% This package may be distributed under the terms of the LaTeX Project
+%% Public License, as described in lppl.txt in the base LaTeX distribution.
+%% Either version 1.0 or, at your option, any later version.
+
+
+%% Allgemeine Angaben
+\def\fwdversion{v0.1}
+\def\fwdpackagename{fullwidth}
+\def\fwddate{2011/11/18\space}
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{fullwidth}[\fwddate \fwdversion: \fwdpackagename]
+
+%%Benoetigte Pakete
+\RequirePackage{kvoptions,etoolbox}
+\RequirePackage{zref-abspage}
+\SetupKeyvalOptions{family=fwd,prefix=fwd@}
+%%Schleifenmakro zur Optioneneingabe
+\DeclareListParser*{\fwd@dolist}{,}
+
+%Laengenoptionen
+\def\fwd@do@lengthoption#1{%
+ \fwd@lengthoption@doubledo#1\@nil%
+}
+\def\fwd@lengthoption@doubledo#1==#2\@nil{%
+ \csdef{fwd@#1}{}
+ \expandafter\newlength\csname fwd@#1@length\endcsname%
+ \expandafter\deflength\csname fwd@#1@length\endcsname{#2\relax}%
+ \fdw@define@key@length{#1}%
+}
+\newrobustcmd*{\fdw@define@key@length}[1]{%
+ \define@key{fwd}{#1}{%
+ \expandafter\deflength\csname fwd@#1@length\endcsname{##1\relax}%
+ }%
+}
+
+\fwd@dolist{\fwd@do@lengthoption}{%
+ {width==\linewidth},%
+ {skipabove==\topskip},%
+ {skipbelow==\topskip},%
+ {leftmargin==\z@},%
+ {rightmargin==\z@},%
+ {innertopmargin==0.4\baselineskip},%
+ {innerbottommargin==0.4\baselineskip},%
+ {splittopskip==\topsep},%
+ {splitbottomskip==\z@},%
+ {outermargin==\z@},%
+ {innermargin==\z@},%
+ {footenotedistance==\medskipamount},
+}
+
+%Nutzung des Paketes needspace
+\define@key{fwd}{needspace}[\z@]{%
+ \begingroup%
+ \setlength{\dimen@}{#1}%
+ \vskip\z@\@plus\dimen@%
+ \penalty -100\vskip\z@\@plus -\dimen@%
+ \vskip\dimen@%
+ \penalty 9999%
+ \vskip -\dimen@%
+ \vskip\z@skip % hide the previous |\vskip| from |\addvspace|
+ \endgroup%
+}
+\DeclareBoolOption[true]{twosidemode}
+\DeclareBoolOption{nobreak}
+\DeclareBoolOption{footnoteinside}
+
+\ProcessKeyvalOptions*\relax
+\newrobustcmd{\fullwidthsetup}{\setkeys{fwd}}
+
+
+%%Anpassung lrbox
+\let\fwd@lrbox\lrbox
+\patchcmd\fwd@lrbox\hbox\vbox{}{}
+\patchcmd\fwd@lrbox\color@setgroup{%
+\color@setgroup%
+\hsize=\fwd@width@length%
+\columnwidth=\hsize%
+\textwidth=\hsize%
+\linewidth=\hsize%
+}{}{}
+\def\endfwd@lrbox{\unskip\color@endgroup}
+
+%Anpassung trivlist
+\let\fwd@trivlist\trivlist
+\let\endfwd@trivlist\endtrivlist
+\patchcmd\endfwd@trivlist\@endparenv\fwd@endparenv{}{}
+\def\fwd@endparenv{%
+ \addpenalty\@endparpenalty\addvspace\fwd@skipbelow@length\@endpetrue}
+
+\newrobustcmd*\fwd@footnoterule{%
+ \kern0\p@%
+ \hrule \@width 1in \kern 2.6\p@}
+
+
+\newrobustcmd*\fwd@footnoteoutput{%
+ \ifvoid\@mpfootins\else
+ \nobreak%
+ \vskip\fwd@footenotedistance@length%
+ \normalcolor%
+ \fwd@footnoterule
+ \unvbox\@mpfootins
+ \fi%
+}
+
+\newrobustcmd*\fwd@footnoteinput{%
+ \def\@mpfn{mpfootnote}%
+ \def\thempfn{\thempfootnote}%
+ \c@mpfootnote\z@%
+ \let\@footnotetext\@mpfootnotetext%
+}
+
+
+\let\fwd@reserved@a\@empty
+\newrobustcmd*\fwd@detect@output{%
+ \iffwd@nobreak%Option nobreak=true?
+ \def\fwd@reserved@a{\fwd@standalone}%
+ \else
+ \def\fwd@reserved@a{\fwd@putframe}%
+ \ifnum\@floatpenalty<0\relax%Detecting float
+ \if@twocolumn%
+ \ifx\@captype\@undefined
+ \def\fwd@reserved@a{\fwd@putframe}%
+ \else
+ \PackageWarning{fullwidth}{fullwidth inside float ^^J
+ fullwidth uses option nobreak}%
+ \def\fwd@reserved@a{\fwd@standalone}%
+ \fi
+ \else
+ \PackageWarning{fullwidth inside float ^^J
+ fullwidth uses option nobreak}%
+ \def\fwd@reserved@a{\fwd@standalone}%
+ \fi%
+ \fi%
+ \if@minipage%
+ \PackageWarning{fullwidth inside minipage ^^J
+ fullwidth uses option nobreak}%
+ \def\fwd@reserved@a{\fwd@standalone}%
+ \fi%
+ \ifinner%
+ \PackageWarning{fullwidth inside a box ^^J
+ fullwidth uses option nobreak }%
+ \def\fwd@reserved@a{\fwd@standalone}%
+ \fi%
+ \fi%
+%\fwd@standalone%
+\fwd@reserved@a%
+}
+
+
+\def\fullwidth{\@ifnextchar[\fullwidth@i\fullwidth@ii}%
+\def\fullwidth@ii{\fullwidth@i[]}%
+\def\fullwidth@i[#1]{% default-Umgebung
+ \begingroup
+ \fullwidthsetup{#1}%%
+ \fwd@twoside@checklength%
+ \let\width\z@%
+ \let\height\z@%
+ \setlength{\topsep}{\fwd@skipabove@length}%
+ \begingroup%
+ \let\partopsep\z@%
+ \expandafter\endgroup%
+ \begin{fwd@trivlist}\item\relax%
+ \hsize=\fwd@width@length\relax%
+ \fwd@footnoteinput%
+ \begin{fwd@lrbox}{\@tempboxa}%
+ }
+\def\endfullwidth{%
+ \iffwd@footnoteinside%
+ \def\fwd@reserveda{%
+ \fwd@footnoteoutput%
+ \end{fwd@lrbox}%
+ \fwd@detect@output}%
+ \else%
+ \def\fwd@reserveda{%
+ \end{fwd@lrbox}
+ \fwd@detect@output%
+ \fwd@footnoteoutput%
+ }%
+ \fi%
+ \fwd@reserveda%
+ \end{fwd@trivlist}%
+ \hrule \@height\z@ \@width\hsize
+\endgroup%\@endparenv%
+}
+
+
+
+%%==================================================%%
+%%================== Twoside-Modus =================%%
+%%==================================================%%
+\newrobustcmd*\fwd@twoside@checklength{%
+ \if@twoside
+ \setlength\fwd@rightmargin@length{\fwd@outermargin@length}%
+ \setlength\fwd@leftmargin@length{\fwd@innermargin@length}%
+% \booltrue{fwd@twosidemode}%
+ \else
+ \boolfalse{fwd@twosidemode}%
+ \fi%
+}
+
+\newcounter{fwd@zref@counter}%keine doppelten laebes
+\zref@newprop*{fwd@pagevalue}[0]{\number\value{page}}
+\zref@addprop{\ZREF@mainlist}{fwd@pagevalue}
+
+\newrobustcmd*\fwd@zref@label{%
+ \stepcounter{fwd@zref@counter}
+ \zref@label{fwd@pagelabel-\number\value{fwd@zref@counter}}%
+}
+
+\newrobustcmd*\if@fwd@pageodd{%
+ \zref@refused{fwd@pagelabel-\the\value{fwd@zref@counter}}%
+ \ifodd\zref@extract{fwd@pagelabel-\the\value{fwd@zref@counter}}{fwd@pagevalue}%
+ \edef\fwd@reserveda{\fwd@pageisodd}%
+ \else
+ \edef\fwd@reserveda{\fwd@pageiseven}%
+ \fi
+ \fwd@reserveda%
+}
+
+\newrobustcmd*\fwd@pageisodd{%
+ \setlength\fwd@rightmargin@length{\fwd@outermargin@length}%
+ \setlength\fwd@leftmargin@length{\fwd@innermargin@length}%
+}
+\newrobustcmd*\fwd@pageiseven{%
+ \setlength\fwd@leftmargin@length{\fwd@outermargin@length}%
+ \setlength\fwd@rightmargin@length{\fwd@innermargin@length}%
+}
+
+\newrobustcmd*\fwd@@setzref{\fwd@zref@label\if@fwd@pageodd}
+
+%%==================================================%%
+%%================= Platz auf Seite ================%%
+%%==================================================%%
+
+\newlength\fwd@freevspace@length
+\newrobustcmd*\fwd@freepagevspace{%
+ \penalty\@M \vskip 2\baselineskip \vskip\height
+ \penalty9999 \vskip -2\baselineskip \vskip-\height
+ \penalty9999
+ \ifdimequal{\pagegoal}{\maxdimen}%
+ {\fwd@freevspace@length\vsize}%
+ {\fwd@freevspace@length=\pagegoal\relax%
+ \advance\fwd@freevspace@length by -\pagetotal\relax%
+ }%
+}
+
+\newrobustcmd*\fwd@standalone{\relax%
+ \ifvoid\@tempboxa\relax
+ \PackageWarning{fullwidth}{The environment is empty\MessageBreak}%
+ \let\fwd@reserved@a\relax%
+ \else
+ \def\fwd@reserved@a{\fwd@putbox@tempboxa}%
+ \fi
+ \fwd@reserved@a%
+}
+
+
+\def\fwd@putframe{\relax%
+ \ifvoid\@tempboxa\relax
+ \PackageWarning{fullwidth}{The environment is empty\MessageBreak}%
+ \let\fwd@reserved@a\relax%
+ \else
+ \fwd@freepagevspace%
+ \ifdimless{\fwd@freevspace@length}{2\baselineskip}
+ {\PackageInfo{fullwidth}{Not enough space on this page}%die Seite hat nur noch minimal Platz
+ \vfill\eject%
+ \def\fwd@reserved@a{\fwd@putframe}%
+ }{%
+ \ifdimless{\ht\@tempboxa+\dp\@tempboxa}{\fwd@freevspace@length}%
+ {%passt auf Seite%
+ \begingroup
+ \ifbool{fwd@twosidemode}{\fwd@@setzref}{}%
+ \fwd@putbox@tempboxa%%
+ \endgroup
+ \let\fwd@reserved@a\relax}%
+ {\def\fwd@reserved@a{\fwd@putframe@i}}%passt nicht auf Seite
+ }%
+ \fi
+ \fwd@reserved@a%
+}
+
+\def\fwd@putframe@i{%Box muss gesplittet werden -- Ausgabe der ersten Teilbox
+ %Berechnung der Splittgroesse Abstand oben
+ \fwd@freepagevspace%
+ \dimen@=\the\fwd@freevspace@length%
+ \dimen@i=\fwd@innertopmargin@length%
+ \advance\dimen@i by 2\baselineskip%
+ \ifdim\dimen@<\dimen@i\relax
+ \hrule \@height\z@ \@width\hsize%
+ \vfill\eject%
+ \def\fwd@reserved@a{\fwd@putframe}%
+ \else%
+ \ifdimless{\ht\@tempboxa+\dp\@tempboxa}{\dimen@}%
+ {\PackageWarning{fullwidth}{You got a bad break\MessageBreak
+ you have to change it manually\MessageBreak
+ by changing the text, the space\MessageBreak
+ or something else}%
+ \advance\dimen@ by -1.8\baselineskip\relax%
+ }{}%
+ \advance\dimen@ by -1pt\relax%Box darf nicht zu Groß werden.
+ \splitmaxdepth\z@ \splittopskip\fwd@splittopskip@length%
+ \setbox\tw@\vsplit\@tempboxa to \dimen@
+ \setbox\tw@\vbox{\unvbox\tw@}%needed?
+ \ifdimgreater{\ht\tw@+\dp\tw@}{\dimen@}{%Falsch gesplittet
+ \PackageInfo{fullwidth}{Box was splittet wrong\MessageBreak}%
+ \dimen@i=\dimen@
+ \advance\dimen@ by -\ht\tw@
+ \advance\dimen@ by -\dp\tw@
+ \advance\dimen@i by 0.5\dimen@
+ \splittopskip\z@%
+ \setbox\@tempboxa\vbox{\unvbox\tw@%
+ \hrule \@height\dp\strutbox \@width\z@%benoetigt um Tiefe zu haben
+ \unvbox\@tempboxa}
+ \splittopskip\fwd@splittopskip@length%
+ \setbox\tw@\vsplit\@tempboxa to \dimen@i
+ \setbox\tw@\vbox{\unvbox\tw@}%
+ }{}%
+ \setbox\@tempboxa\vbox{\unvbox\@tempboxa}%PRUEFEN!!!!
+ \ifvoid\@tempboxa
+ \PackageWarning{fullwidth}{You got a bad break\MessageBreak
+ because the splittet box is empty\MessageBreak
+ You have to change the page settings\MessageBreak
+ like enlargethispage or something else}%
+ \setbox\@tempboxa\vbox{\box\tw@\box\@tempboxa}%
+ \def\fwd@reserved@a{\fwd@putframe}%
+ \fi
+ \ifvoid\tw@%%pruefe, ob erste Box leer ist
+ \hrule \@height\z@ \@width\hsize
+ \vfill\eject%
+ \def\fwd@reserved@a{\fwd@putframe}%
+ \else
+ \ifdimequal{\ht\tw@}{0pt}%
+ {\hrule \@height\z@ \@width\hsize%
+ \vfill\eject%
+ \setbox\@tempboxa\vbox{\unvbox\tw@\unvbox\@tempboxa}
+ \def\fwd@reserved@a{\fwd@putframe}%
+ }%
+ {%
+ \begingroup
+ \ifbool{fwd@twosidemode}{\fwd@@setzref}{}%
+ \fwd@putbox@tw@%Groesse des Splittens passt
+ \endgroup
+ \hrule \@height\z@ \@width\hsize
+ \vfill\eject%
+ \def\fwd@reserved@a{\fwd@putframe@ii}%
+ }%
+ \fi%
+ \fi%
+\fwd@reserved@a%
+}
+
+\def\fwd@putframe@ii{%Ausgabe der mittleren Box(en) wenn vorhanden
+ \setlength{\fwd@freevspace@length}{\vsize}%
+ \setlength{\dimen@}{\dimexpr\ht\@tempboxa+\dp\@tempboxa\relax}%
+ \ifdimgreater{\dimen@}{\fwd@freevspace@length}%
+ {%
+ \advance\fwd@freevspace@length by -\fwd@splitbottomskip@length
+ \splitmaxdepth\z@ \splittopskip\fwd@splittopskip@length%
+ \setbox\tw@\vsplit\@tempboxa to \fwd@freevspace@length%
+ \setbox\tw@\vbox{\unvbox\tw@}%PRUEFEN!!!
+ \setbox\@tempboxa\vbox{\unvbox\@tempboxa}%PRUEFEN!!!!
+ \ifvoid\@tempboxa\relax%
+ \fwd@PackageWarning{You got a bad break\MessageBreak
+ because the split box is empty\MessageBreak
+ You have to change the settings}%
+ \fi%
+ \begingroup
+ \ifbool{fwd@twosidemode}{\fwd@@setzref}{}%
+ \fwd@putbox@tw@%
+ \endgroup
+ \hrule \@height\z@ \@width\hsize
+ \vfill\eject
+ \def\fwd@reserved@a{\fwd@putframe@ii}%
+ }%Hier die Ausgabe der mittleren Box
+ {\ifvoid\@tempboxa
+ \fwd@PackageWarning{You got a bad break\MessageBreak
+ because the last split box is empty\MessageBreak
+ You have to change the settings}%
+ \fi%
+ \begingroup
+ \ifbool{fwd@twosidemode}{\fwd@@setzref}{}%
+ \fwd@putbox@tempboxa%
+ \endgroup
+ \let\fwd@reserved@a\relax%
+ }%Hier kommt die Ausgabe der letzten Box
+ \fwd@reserved@a%
+}
+
+
+\newrobustcmd\fwd@leftline[1]{\leftline{\hspace*{\fwd@leftmargin@length}#1}}%Keine Modifikation
+
+\newrobustcmd\fwd@putbox@tempboxa{\fwd@leftline{\box\@tempboxa}}
+\newrobustcmd\fwd@putbox@tw@{\fwd@leftline{\box\tw@}}
+
+\endinput