summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/frenchle/sources/mymaj.sty
blob: a74e72fae694587db891c24227f8e03d33dfc7a6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
% -----------   mymaj.sty  
% Permet de mettre un trait vertical dans la marge.
% 
%   Appel :
%                \maj ................... pour marquer une ligne seule
%                \begin{MAJ}...\end{MAJ}  pour une entite plus grande
%
%  Les trois variables suivantes permettent de parametrer la macro.
%        majwidth  epaisseur du trait
%        majhskip  espace entre le trait et le paragraphe
%
% Bugs connues :
%  1- ne pas utiliser dans une \footnote
%  2- ne pas mettre \maj dans \begin{MAJ} ... \end{MAJ}
%  3- les barres de mise a jour peuvent se retrouver anormalement en haut
%     ou bas de page.
%%
%%      checksum        = "65193 181 669 6726"
%%
%///////////////////////////////////////////
% Change bar document-style option for LaTeX.
%
% Copyright (C) 1990 by David B. Johnson (dbj@titan.rice.edu).
%
% These macros draw a solid bar down the right margin of the output,
% covering a range of the input file that has been declared to be changed.
%
% The beginning and end of a change bar in the text are marked with
% \chgbarbegin and \chgbarend, respectively.  For example,
%
%     Here is some sample text \chgbarbegin that was
%     changed\chgbarend{} and some that wasn't changed.
%
% The change bar is drawn continuously between the line of output
% containing the \chgbarbegin and the line of output containing the
% \chgbarend.  These lines can end up on separate pages, and the
% division at page boundaries is handled automatically.
%
% Two dimensions control the size and placement of the change bars:
%     \chgbarwidth      The width of a change bar
%     \chgbarsep        The distance between the text and the change bar
%
% Warning: it does not appear to be possible to do this completely
% correctly, due to the time at which the verticle glue on a page is
% finally set, and the way that page breaks are decided.  With
% \raggedbottom, this normally works fine.  It hasn't been tested with
% \flushbottom, but will probably behave worse.  In strange rare
% situations, a change bar might be drawn from the first line of a page
% up off the top of a page; this can usually be fixed by slightly moving
% the \chngbarend around, or by breaking a single change bar range
% into two ranges.
%
\newdimen\chgbarwidth \newdimen\chgbarsep
\chgbarwidth 4pt
\chgbarsep .25in
%
\def\chgbarbegin{\ifhmode\@chgbar{-2}\else\@chgbar{-3}\fi}
\def\chgbarend{\@chgbar{-4}}
%
\marginparpush 0pt
%
% The remainder of this is hacked up based on the LaTeX 2.09 latex.tex.
%
% copied from \marginpar
\def\@chgbar#1{\ifhmode \@bsphack\@floatpenalty -\@Mii\else
   \@floatpenalty-\@Miii\fi\ifinner
      \@parmoderr\@floatpenalty\z@
    \else\@next\@currbox\@freelist{\global
      \count\@currbox#1}{\@floatpenalty\z@ \@fltovf
      \def\@currbox{\@tempboxa}}\fi
     \setbox\@tempboxa\color@vbox\vbox
     \bgroup\end@float\@esphack}
%
\newdimen\@chgbarbegin
\newif\if@inchgbar \@inchgbarfalse
%
\def\@addmarginpar{%
\ifnum\count\@currbox = -2      % change bar begin from hmode
    \global\@chgbarbegin\@pageht \global\advance\@chgbarbegin -\baselineskip
    \global\@inchgbartrue
    \@cons\@freelist\@currbox
\else
\ifnum\count\@currbox = -3      % change bar begin not from hmode
    \global\@chgbarbegin\@pageht
    \global\@inchgbartrue
    \@cons\@freelist\@currbox
\else
\ifnum\count\@currbox = -4      % change bar end
    \if@inchgbar\else\@latexbug\fi
    \@tempdima\@pageht \advance\@tempdima -\@chgbarbegin
    \nointerlineskip
    \@tempcnta\@ne
    \if@twocolumn
        \if@firstcolumn \@tempcnta\m@ne \fi
    \else
      \if@mparswitch
         \ifodd\c@page \else\@tempcnta\m@ne \fi
      \fi
      \if@reversemargin \@tempcnta -\@tempcnta \fi
    \fi
    \hbox to\columnwidth
      {\ifnum \@tempcnta >\z@
          \hskip\columnwidth \hskip\chgbarsep
        \else \hskip -\chgbarsep \fi
\hbox{\vbox to 0pt{\vss
       \hrule \@height\@tempdima \@width\chgbarwidth \@depth\z@
}}
\hss}
    \nointerlineskip
    \global\@inchgbarfalse
    \@cons\@freelist\@currbox
\else
    \@next\@marbox\@currlist{\@cons\@freelist\@marbox
    \@cons\@freelist\@currbox}\@latexbug\@tempcnta\@ne
    \if@twocolumn
        \if@firstcolumn \@tempcnta\m@ne \fi
    \else
      \if@mparswitch
         \ifodd\c@page \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@
       \@warning{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\ht\@marbox\z@ \global\dp\@marbox\z@
    \vskip -\@pagedp \vskip\@tempdima\nointerlineskip
    \hbox to\columnwidth
      {\ifnum \@tempcnta >\z@
          \hskip\columnwidth \hskip\marginparsep
        \else \hskip -\marginparsep \hskip -\marginparwidth \fi
       \box\@marbox \hss}
    \vskip -\@tempdima
    \nointerlineskip
    \hbox{\vrule \@height\z@ \@width\z@ \@depth\@pagedp}
\fi\fi\fi}
%
\def\@makecol{\setbox\@outputbox\box\@cclv
   \if@inchgbar
    \@tempcnta\@ne
    \if@twocolumn
        \if@firstcolumn \@tempcnta\m@ne \fi
    \else
      \if@mparswitch
         \ifodd\c@page \else\@tempcnta\m@ne \fi
      \fi
      \if@reversemargin \@tempcnta -\@tempcnta \fi
    \fi
    \@tempdima\ht\@outputbox \advance\@tempdima -\@chgbarbegin
    \advance\@tempdima -\baselineskip
    \setbox\@outputbox
     \vbox{\boxmaxdepth \maxdepth
     \unvbox\@outputbox \nointerlineskip \hbox to\columnwidth
      {\ifnum \@tempcnta >\z@
          \hskip\columnwidth \hskip\chgbarsep
        \else \hskip -\chgbarsep \fi
       \hbox{\vbox to 0pt{\vss
         \hrule \@height\@tempdima \@width\chgbarwidth \@depth\z@}}\hss}}
    \global\@chgbarbegin 0pt
\fi
   \ifvoid\footins\else\setbox\@outputbox
     \vbox{\boxmaxdepth \maxdepth
     \unvbox\@outputbox\vskip\skip\footins\footnoterule\unvbox\footins}\fi
     \xdef\@freelist{\@freelist\@midlist}\gdef\@midlist{}\@combinefloats
     \setbox\@outputbox\vbox to\@colht{\boxmaxdepth\maxdepth
        \@texttop\dimen128=\dp\@outputbox\unvbox\@outputbox
        \vskip-\dimen128\@textbottom}
     \global\maxdepth\@maxdepth}
%///////////////////////////////////////////
\let\majwidth\chgbarwidth% The width of a change bar
\majwidth=0.5pt%
\let\majhskip\chgbarsep%   The distance between the text and the change bar
\let\MAJ\chgbarbegin\let\endMAJ\chgbarend%
\def\maj{\chgbarbegin\hbox to 0pt{}\chgbarend}%
\if@twoside\else\reversemarginpar\fi% a little more french ?
\endinput%