diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/epslatex-fr/fmparhack.sty')
-rw-r--r-- | Master/texmf-dist/doc/latex/epslatex-fr/fmparhack.sty | 315 |
1 files changed, 315 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/epslatex-fr/fmparhack.sty b/Master/texmf-dist/doc/latex/epslatex-fr/fmparhack.sty new file mode 100644 index 00000000000..5b53bc5eb18 --- /dev/null +++ b/Master/texmf-dist/doc/latex/epslatex-fr/fmparhack.sty @@ -0,0 +1,315 @@ +%% +%% This is file `fmparhack.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% mparhack.dtx (with options: `sty') +%% +%% Workaround for the marginpar bug. +%% +%% This program is free software; you can redistribute it and/or +%% modify it under the terms of the GNU General Public License +%% as published by the Free Software Foundation; either version 2 +%% of the License, or (at your option) any later version. +%% +%% This program is distributed in the hope that it will be useful, +%% but WITHOUT ANY WARRANTY; without even the implied warranty of +%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +%% GNU General Public License for more details. +%% +%% You should have received a copy of the GNU General Public License +%% along with this program; if not, write to the Free Software +%% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +%% +\NeedsTeXFormat{LaTeX2e} + \ProvidesPackage{fmparhack} + [1999/03/02 v1.0 (T. Sgouros and S. Ulrich)] +\def\@pkg@name{fmparhack} +\newif\if@mph@firstcol@ +\newif\if@mph@warning@ +\newif\if@mph@warning@notdone@ %JPFD +\@mph@warning@notdone@true %JPFD +\newif\if@debug@ +\newcommand*\mph@debug[2][]{% + \if@debug@ +%%% \PackageInfo{\@pkg@name}{#1}% + \typeout{DBG: #2}% + \else + \ifx#1\@empty\else + \typeout{DBG (#1): #2}% + \fi + \fi +} + +\DeclareOption{debug}{% + \global\@debug@true +}% +\ProcessOptions* +\newcommand*\mph@nr{0} +\newcommand*\mph@save{0} +\newcommand*\mph@lastpage{0} +\newcommand*\mph@cnt{0} +\newcommand*\mph@step@cnt[1]{% + \begingroup + \@tempcnta#1 + \advance\@tempcnta\@ne + \protected@xdef#1{\the\@tempcnta}% + \endgroup +} + +\newcommand\mph@setcol[2]{% + \expandafter\xdef\csname mph@last@#1\endcsname{#2}% +} +\newcommand\mph@check[2]{% + \edef\reserved@a{#2}% + \expandafter\ifx\csname mph@last@#1\endcsname\reserved@a + \mph@debug{#2 == \csname mph@last@#1\endcsname}% + \else + \mph@debug{#2 != \csname mph@last@#1\endcsname!}% + \global\@mph@warning@true + \fi +} +\newcommand\mph@do@warn{% + \if@mph@warning@notdone@ %JPFD + \if@mph@warning@ + \global\@mph@warning@notdone@false %JPFD + \PackageWarningNoLine{fmparhack}{Marginpars may have + changed.\MessageBreak Rerun to get them right% + }% + \fi + \fi %JPFD +} +\AtEndDocument{% + \let\mph@setcol\mph@check + \clearpage + \immediate\write\@auxout{% + \string\gdef\string\mph@lastpage{\thepage}% + \string\mph@do@warn + }% +} +\newcommand\mph@ifundef@or@gt[1]{% + \expandafter\ifx#1\relax + \let\@tempa\@firstoftwo + \else + \ifnum\mph@cnt>#1\relax + \let\@tempa\@firstoftwo + \else + \let\@tempa\@secondoftwo + \fi + \fi + \@tempa +} + +\newcommand\mph@get@margin{% + \begingroup + \loop + \@tempswafalse + \mph@debug{checking \mph@cnt}% + \if@twocolumn + \mph@debug{last on page \thepage: + \csname mph@last@i..\thepage\endcsname(i) + \csname mph@last@ii..\thepage\endcsname(ii), + switch \if@tempswa true \else false\fi + }% + \mph@ifundef@or@gt{% + \csname mph@last@i..\thepage\endcsname + }{% + \mph@ifundef@or@gt{% + \csname mph@last@ii..\thepage\endcsname + }{% + \global\@mph@firstcol@true + \@tempswatrue + \advance\c@page by 1 + \mph@debug{++page.. \thepage, set col to i, + switch \if@tempswa true \else false\fi + }% + }{% + \global\@mph@firstcol@false + \@tempswafalse + \mph@debug{exiting loop}% + }% + }{% + \@tempswafalse + \global\@mph@firstcol@true + \mph@debug{exiting loop}% + }% + \else + \mph@debug{last on page \thepage: + \csname mph@last@ii..\thepage\endcsname, + switch \if@tempswa true \else false\fi + }% + \mph@ifundef@or@gt{% + \csname mph@last@ii..\thepage\endcsname + }{% + \@tempswatrue + \advance\c@page by 1 + \mph@debug{++page.. \thepage, + switch \if@tempswa true \else false\fi + }% + }{% + \@tempswafalse + \mph@debug{exiting loop}% + }% + \fi + \ifnum\mph@lastpage>\c@page + \else + \@tempswafalse + \mph@debug{\thepage >= \mph@lastpage, + switch \if@tempswa true \else false\fi + }% + \fi + \if@tempswa + \mph@debug{iterating ...}% + \repeat + \mph@debug{=== marginpar \mph@cnt\space is on page \thepage% + \if@twocolumn, col \if@mph@firstcol@ 1 \else 2 \fi\fi + }% + \protected@xdef\mph@save{\thepage}% + \endgroup +} + +\def\@addmarginpar{% + \mph@step@cnt\mph@cnt + \protected@write\@auxout{}% + {\string\def\string\mph@nr{\mph@cnt}}% + \mph@get@margin + \@next\@marbox\@currlist{\@cons\@freelist\@marbox + \@cons\@freelist\@currbox}\@latexbug\@tempcnta\@ne + \if@twocolumn + \if@mph@firstcol@ \@tempcnta\m@ne \fi + \else + \if@mparswitch + \ifodd\mph@save \else\@tempcnta\m@ne \fi + \fi + \if@reversemargin \@tempcnta -\@tempcnta \fi + \fi + \ifnum\@tempcnta <\z@ \global\setbox\@marbox\box\@currbox \fi + \@tempdima\@mparbottom + \advance\@tempdima -\@pageht + \advance\@tempdima\ht\@marbox + \ifdim\@tempdima >\z@ + \@latex@warning@no@line {Marginpar on page \thepage\space moved}% + \else + \@tempdima\z@ + \fi + \global\@mparbottom\@pageht + \global\advance\@mparbottom\@tempdima + \global\advance\@mparbottom\dp\@marbox + \global\advance\@mparbottom\marginparpush + \advance\@tempdima -\ht\@marbox + \global\setbox \@marbox + \vbox {\vskip \@tempdima + \box \@marbox}% + \global \ht\@marbox \z@ + \global \dp\@marbox \z@ + \kern -\@pagedp + \nointerlineskip + \hb@xt@\columnwidth + {\ifnum \@tempcnta >\z@ + \hskip\columnwidth \hskip\marginparsep + \else + \hskip -\marginparsep \hskip -\marginparwidth + \fi + \if@debug@ + \smash{\llap{\tiny\mph@cnt}}% + \fi + \box\@marbox \hss}% + \nointerlineskip + \hbox{\vrule \@height\z@ \@width\z@ \@depth\@pagedp}% +} + +\def\@outputpage{% +\begingroup % the \endgroup is put in by \aftergroup + \let \protect \noexpand + \@resetactivechars + \@parboxrestore + \shipout \vbox{% + \set@typeset@protect + \aftergroup \endgroup + \aftergroup \set@typeset@protect + % correct? or just restore by ending + % the group? + \if@specialpage + \global\@specialpagefalse\@nameuse{ps@\@specialstyle}% + \fi + \if@twoside + \ifodd\count\z@ \let\@thehead\@oddhead \let\@thefoot\@oddfoot + \let\@themargin\oddsidemargin + \else \let\@thehead\@evenhead + \let\@thefoot\@evenfoot \let\@themargin\evensidemargin + \fi + \fi + \reset@font + \normalsize + \normalsfcodes + \let\label\@gobble + \let\index\@gobble + \let\glossary\@gobble + \baselineskip\z@skip \lineskip\z@skip \lineskiplimit\z@ + \@begindvi + \vskip \topmargin + \moveright\@themargin \vbox {% + \setbox\@tempboxa \vbox to\headheight{% + \vfil + \color@hbox + \normalcolor + \hb@xt@\textwidth{\@thehead}% + \color@endbox + }% %% 22 Feb 87 + \dp\@tempboxa \z@ + \box\@tempboxa + \vskip \headsep + \box\@outputbox + \baselineskip \footskip + \color@hbox + \normalcolor + \hb@xt@\textwidth{\@thefoot}% + \color@endbox + }% + }% + \global \@colht \textheight + \immediate\write\@auxout{% + \string\mph@setcol{ii..\thepage}{\string\mph@nr}% + }% + \stepcounter{page}% + \let\firstmark\botmark +} + +\def\@outputdblcol{% + \if@firstcolumn + \global \@firstcolumnfalse + \global \setbox\@leftcolumn \box\@outputbox + \else + \global \@firstcolumntrue + \setbox\@outputbox \vbox{% + \hb@xt@\textwidth {% + \hb@xt@\columnwidth {% + \box\@leftcolumn \hss + \write\@auxout{% + \string\mph@setcol{i..\thepage}{\string\mph@nr}}% + }% + \hfil + \vrule \@width\columnseprule + \hfil + \hb@xt@\columnwidth {% + \box\@outputbox \hss + \write\@auxout{% + \string\mph@setcol{ii..\thepage}{\string\mph@nr}}% + }% + }% + }% + \@combinedblfloats + \@outputpage + \begingroup + \@dblfloatplacement + \@startdblcolumn + \@whilesw\if@fcolmade \fi + {\@outputpage + \@startdblcolumn}% + \endgroup + \fi +} +\endinput +%% +%% End of file `fmparhack.sty'. |