]> matita.cs.unibo.it Git - helm.git/blob - helm/papers/matita/kluedit.sty
ocaml 3.09 transition
[helm.git] / helm / papers / matita / kluedit.sty
1 %
2 %
3 \ifcat a\noexpand @\let\next\relax\else \def\next{%
4 \documentclass{kluwer}\usepackage{doc}\MakePercentIgnore}\fi\next
5 \NeedsTeXFormat{LaTeX2e}
6 \def\filedate{1998/03/13}
7 \def\filename{kluedit.sty}
8 % \changes{1997/07/13}{changed chaptermark for monographs:
9 % use @chapapp and c@chapter instead of CHAPTER thechapter,
10 % check for mainmatter}{}
11 % \changes{1997/07/25}{raised thepage in edited style titlepage 6pt}{}
12 % \changes{1997/08/07}{Inserted kaplogo}{}
13 % \changes{1998/02/04}{Inserted "parskip 0pt"}{}
14 % \changes{1998/02/06}{Inserted final--double hyphen demerits}{}
15 % \changes{1998/02/09}{Full rewrite of firstpage-lastpage code}{}
16 % \changes{1998/02/19}{Removed silly ifx \csname bug in setlastpage}{}
17 % \changes{1998/02/24}{Fix in "journalcode": removed extra page}{}
18 %\DoNotIndex{\@M,\def,\c@secnumdepth,\baselineskip,\@pnumwidth,\else,\fi}
19 %\DoNotIndex{\newcommand,\z@,\relax,\renewcommand,\ifnum,\csname,\endcsname}
20 %\DoNotIndex{\baselineskip,\vskip,\hskip,\relax,\secdef,\refstepcounter}
21 %\DoNotIndex{\normalsize,\numberline,\protect,\endinput,\hfill}
22 %\DoNotIndex{\@compare,\ifx,\global,\gdef,\def,\let,\hbox,\par,\typeout}
23 %\CodelineIndex
24 %\newcommand{\Bs}{$\backslash$}
25 %\parindent=0pt
26 %\parskip=3pt
27 %\hfuzz=11pt
28 %\MakeShortVerb{\|}
29 %\setlength{\marginparwidth}{0in}
30 %\addtolength{\textwidth}{4pc}
31 %\begin{document}
32 %\begin{opening}
33 %\title{\filename}
34 %\date{\filedate}
35 %\author{Kluwer Academic Publishers\surname{}}
36 %\institute{~}
37 %\runningtitle{\filename\ -- \filedate}
38 %\runningauthor{Kluwer Academic Publishers}
39 %\editor{Test}
40 %\journalcode{test}
41 %\begin{abstract}
42 % This internal stylefile defines most of the special kluwer
43 % commands. amongst these: the |article|
44 % environment, the different pagestyles, all of the editor and
45 % auxiliary document info commands, and the commands to read in
46 % |kapjrnls.kap|.  
47 %\end{abstract} 
48 %\end{opening}      
49 %\tableofcontents
50 %\newpage\section{Implementation}
51 %    \begin{macrocode}
52 \ProvidesPackage{kluedit}[\filedate ]
53 \newif\if@copyrighthead  \@copyrightheadfalse
54 \newif\if@kapidenthead   \@kapidentheadfalse
55 \newif\if@noid           \@noidfalse
56 \DeclareOption{copyrighthead}{\@copyrightheadtrue}
57 \DeclareOption{kapidenthead}{\@kapidentheadtrue}
58 \DeclareOption{noid}{\@noidtrue}
59 \ExecuteOptions{}
60 \ProcessOptions
61 %    \end{macrocode}
62
63 % \subsection{Database info}
64 % There are some serious changes made to |kapjrnls.kap|, the
65 % corresponding macros are done here.
66 %
67 % |\journaldata| is the command used in |kapjrnls.kap|. The format for
68 % this file is as follows: 
69 %\begin{verbatim}
70 %\journaldata{acma}
71 %\gdef\@journal{Applied Composite Materials}%
72 %\def\@stylefile{mathkap}%
73 %\dataend
74 %\end{verbatim}
75 % Optionally, some other journal-specific commands can be done
76 % here. In the current file, these are |\country| and |\CLsize|, but
77 % more will probably follow.
78 %
79 % Define record wrapper. This is a primitive, because \LaTeX\ doesn't
80 % allow this sort of thing.
81 %    \begin{macrocode}
82 \long\def\journaldata#1#2\dataend{%
83   \edef\@tempa{@#1}\ifx \@tempa\@currjournal #2\fi}
84 %    \end{macrocode}
85 % Read file. |\journalcode| triggers reading,
86 % so don't specify |\journalcode| without having the file... 
87 % (|\@currjournal| is a temporary to keep track of the journal.)
88 %
89 % If after reading |\@journal| == `journal not defined': Error\\
90 % If after reading |\@stylefile| != current class : Error
91 %
92 % |\@journal|, |\@testjournal| and |\@defaultjournal| are initialized in
93 % |kapjrnls.kap|. The \\    
94 % |\ver@kluwer.cls| command is defined by \LaTeX;
95 % deduced from |\ProvidesClass|. 
96 %    \begin{macrocode}
97 \def\CLsize{\footnotesize}
98 \def\@journal{}  
99 \def\@currjournal{}
100 \def\journalcode#1{%
101   \edef\@currjournal{@#1}%
102   \makeatletter\input kapjrnls.kap \makeatother
103   \ifx\@journal\@defaultjournal 
104     \PackageError{kluopen}{Journalcode not defined}{Please correct 
105     your typo or contact KAP to update your kapjrnls.kap.}\fi 
106   \ifx\@journal\@testjournal  \else
107   \expandafter\ifx \csname ver@\@stylefile.cls\endcsname\relax 
108     \PackageWarning{kluopen}{Incorrect or superfluous journalcode
109     command}\fi \fi
110   }                           
111 %    \end{macrocode}
112 % This is a hook for klups.sty (oldstyle numerals)
113 %    \begin{macrocode}                           
114 \def\i@oldseries{}
115 %    \end{macrocode}
116
117
118 % \subsection{copyright commands}
119 % This allows changing the copyrightowner and allows for a special
120 % type of copyright. 
121 %
122 % User interface is |\copyrightowner<*>{private}|, where the star form
123 % will result in: ``The private right to ..'' together with `(c)
124 % Kluwer Academic...' , and the non-star form
125 % will result in: `(c) private'.
126 %
127 % This is implemented as a footnotetext to the title, which is why we
128 % need the |\if|-switch. |\AtBeginDocument| is needed to prevent relocation 
129 % errors in the stylefile. (|kluopen| has to define |\@speccrightcheck| 
130 % as well)
131 %    \begin{macrocode}
132 \newif\if@speccright \@speccrightfalse              
133 \AtBeginDocument{\gdef\@speccrightcheck{%
134    \if@speccright 
135    \footnotetext[4]{\@spectextone{} \@speccright{} \@spectexttwo}%
136    \fi }}
137 \def\@spectextone{The}
138 \newcommand\spectextone[1]{\gdef\@spectextone{#1}}
139 \def\@spectexttwo{right to retain a non-exclusive, royalty free
140                  licence in and to any copyright is acknowledged.}
141 \newcommand\spectexttwo[1]{\gdef\@spectexttwo{#1}}
142 \newcommand\copyrightowner{\@ifstar{\crightA}{\crightB}}
143 \newcommand\crightA[1]{\gdef\@speccright{#1}\global\@speccrighttrue}
144 \newcommand\crightB[1]{\gdef\@copyrightowner{#1}\global\@speccrightfalse}
145 \def\@speccright{}
146 \def\@copyrightowner{Kluwer Academic Publishers}
147 %    \end{macrocode}
148 % \subsection{Country, volume and year commands}
149 %    \begin{macrocode}
150 \newcommand\country[1]{\gdef\@country{#1}}
151 \def\@country{the Netherlands}
152 \newcommand\volume[1]{\gdef\@volume{#1}}
153 \def\@volume{00}
154 \newcommand\pubyear[1]{\gdef\@pubyear{#1}}
155 \def\@pubyear{\number\year}
156 %    \end{macrocode}
157 % \subsection{paging commands}
158 % These macro's have to be a bit smarter than you would expect. This
159 % has to work correctly while displaying the information line, not
160 % only for the first, but for possibly many of those in one
161 % document. Therefore, it will not do to just toggle the page counter.  
162 %
163 % All of this will only work correctly in one of these conditions: 
164 %
165 %\begin{itemize}
166 %\item Just one opening and no article environment.
167 %\item The complete opening environment inside the article.
168 %\item Lastpage is also given.
169 %\end{itemize}
170 %(|\thearticle| is defined below.) 
171 %
172 %    \begin{macrocode}
173 \newif\iflastpagegiven   \lastpagegivenfalse
174 %    \end{macrocode}
175 % This turned out to be rather easy after all... 
176 %
177 % Every article will first run |\setlastpage| (on opening), and will write 
178 % out a label of the form |{\thearticle lastpage}| (on closing). This will 
179 % be the value of |\@lastpage| if no |\lastpage| is given, otherwise it will
180 % (of course) be defined by |\lastpage|. 
181 %    \begin{macrocode} 
182 \newcommand\firstpage[1]{%
183   \gdef\@firstpage{#1}%
184   \ifnum\@firstpage>\c@page  
185     \setcounter{page}{#1}%
186     \PackageWarning{kluopen}{Increasing pagenumber to \@firstpage}%
187   \else \ifnum\@firstpage<\c@page 
188     \PackageWarning{kluopen}{Firstpage lower than pagenumber}\fi\fi
189     \xdef\@firstpage{\the\c@page}%                                 
190     }
191 \def\@firstpage{1}
192 \def\pagenumbering#1{%
193     \global\c@page \@ne
194     \gdef\thepage{\csname @#1\endcsname \c@page}%
195     \gdef\thefirstpage{% 
196             \csname @#1\endcsname \@firstpage}%
197     \gdef\thelastpage{%
198             \csname @#1\endcsname \@lastpage}%
199     }  
200 \pagenumbering{arabic}
201 \newcommand\lastpage[1]{\xdef\@lastpage{#1}%
202   \global\lastpagegiventrue}
203 \def\@lastpage{0}               
204 \def\setlastpage{\iflastpagegiven\else
205     \edef\@tempa{@lastpage@\the\c@article}%
206     \expandafter 
207     \ifx \csname \@tempa \endcsname \relax
208         \gdef\@lastpage{0}%
209     \else
210         \xdef\@lastpage{\@nameuse{@lastpage@\the\c@article}}%
211     \fi
212     \fi }
213 \def\writelastpage{%                                    
214     \iflastpagegiven \else
215     \immediate\write\@auxout%
216     {\string\global\string\@namedef{@lastpage@\the\c@article}{\the\c@page}}%
217     \fi                                                       
218     }
219 \def\thepagerange{%                                    
220   \ifnum\@lastpage =0 {\ \bf PLEASE RUN AGAIN} \else
221   \ifnum\@lastpage = \@firstpage \ \thefirstpage\else
222   \ \thefirstpage--\thelastpage \fi\fi}
223 %    \end{macrocode}
224 %
225 %    \begin{macrocode}
226 \def\@prin{Printed in}         
227 \@ifundefined{textcopyright}{\def\textcopyright{\copyright}}{}
228 \def\copyrightline{\textcopyright~\i@oldseries\@pubyear\
229   {\it\@copyrightowner.~~\@prin\ \@country.}\hfill\hbox{}}
230 %    \end{macrocode}
231 %\subsection{The copyright information} 
232 % This is a three-part operation. 
233 % |\@kapidenthead| (|foot|) contains the editor inforamtion and a
234 % possible barcode, while |\@copyrighthead| (|foot|) contains both the
235 % journal title and the copyright line. |\idline| contains the file
236 % information status.                    
237 %
238 %Here is the copyright information first. |\thejournal| will typeset
239 %the first line, |\thecopyright| the second.   Some checks are made to
240 %prevent typesetting half of a line.
241 %    \begin{macrocode}
242 \def\volsep{: }
243 \def\thejournal{\ifx\@journal\empty\else\leavevmode \i@oldseries
244      {\it\@journal\/}~~{\bf\i@oldseries\@volume\volsep}\thepagerange,
245      \@pubyear.\hfill\hbox{}\\ \fi}          
246 \def\no{no}                               
247 \def\crline#1{\gdef\@crline{#1}}
248 \def\thecopyright{\ifx\@crline\no \else \copyrightline \par \fi }
249 %    \end{macrocode}
250 % Now switch for either up or down.  In both cases, the lines will
251 % move away from the main text, with the corresponding baseline set at
252 % the footer or header.
253 %    \begin{macrocode}
254 \newtoks\logotoks 
255 \catcode`\%=12                  
256 \catcode`\#=12                  
257 \logotoks={\special{"
258 4 4 translate
259 989 1138 1 [60 0 0 -60 210 930]
260 currentfile 
261 /ASCII85Decode filter            
262 << /K -1 /Columns 989 >>
263 /CCITTFaxDecode filter
264 image
265 Q>'H49/K0rjdMhW-(A!cb;A.`/DC9EH"NLrmTGB3G`p9Q"2Q+cbR4Nj7'd7dn1Os5
266 \string$DPm^#D5dp.Sq0)HOI.%W!@rm_0-3j?%po`_0-3j?%VDq_0-W'Fr+S1(LXi_Ye(:I
267 ]*kjT\string$a@6KL"blG_X2L_CTtEVL"blG_X2L_CTtEVY/9RL]*l%#ln6muG.V%6g?j&"
268 CUMm`Fr+r%g?j'q?%q#"G.V%_f3rj7?*;dp[G("lm<6*IY1IHshmM2*G.V%_f7)=e
269 [G("lm<6*Iqd\string$AVIb/AMCUMmbg?j'qp:FV5rN=b\string$f7)=e^MCT"[GSCL[G(*'m<@rA
270 m<6,8\string\:3%Yf7)>#f7)>#f7)>#f7)>#f7)>#f7)>#f7)>#f7)>#rN?+r?2Iq)p:L(d
271 GOO8ShmM@LhnNsAIb0&IY5S7k]D(dJn)(P1^OFd`rVKmtp:L(fg@*q6CVP>sqd'*n
272 n)(lq^OH.Yp[*1nhnOWlIf90<n(R6f^OH.Yp[@"SCVP>sqtKR:^OH.Yp[@"SCVP>s
273 qtKQ8s8U1@C);u92\string$r0TIf90<e+`=g^OH.YpZ,==\string\+]gYg\string\ZD'qgWPOrP,i8rnlK-
274 IrF`IDsdM<\string\+]gY<rV"2qgWPOol'6r^UNq9hcBa6g\string\ZJ=mIbDbrP,i8qR?1thqRGR
275 g\string\ZJ=X+,'TrP#E4^UNq5\string\+]gYgZYS:s0qsA>CC\string\p\string\,F'GI<PY"lYir`pAJk\string$g]\string$*4
276 ^:SmLos`Okqg[AbD?"OWhlXZ\string\p"T/KrP"TTpAJk\string$g]\string$*4^:Sj&s0pTuf&'cJ>CC\string\n
277 D=uZ_hb.nbI4`5\string$oX=e/f5K6t?,'TlG5Z:Ng\string\&&-Dq<fO^KZ,0qHJI(l#\string$H=V75&p
278 f&'cIQJ_E4>CYDlD=uZV\string\(>QLhd*s^hlchCoX=e/dbFH(f5ILprP"TT?+uW^XhMDq
279 /\string\\iG[ea3VG5>El[ea3VG5>El[ea3VG5>El[efC`[ea3V/\string\\iF/\string\[P.XhMDq/\string\[P.
280 95gZ9f5ILpdbF#'oX=U#J(s4)oX=U#I4`1!hb.mjhb.ma\string\'j\string$qD=k:5>CA*;QJW!c
281 oX=U#I4`1FI4`1!hb.ma\string\'j\string$qD=EkK95gZ9_HVF?^(T2bD=eV\string$$#T=CqHJ=n\string\'j\string$i
282 /\string\[P.95fJ!hb.m@[eNL6V74;LDl'q[>C7R%qHJ=i[eNL6V74;LDl'q[\string$ZC^,qHJ=Y
283 >C7a+_@(:8[eN.*n:KEQQJVs"^(T2Z"h2?QHm#lm6#H*aDh8@8Jm3UF[eLuRp`R\string$?
284 6#H*WD=C2:KGNGN/\string\XRt27@;0aCL\string$khf"Uu#*%Ks"Le+7OAWdIj>'(dl*n`EL,P%*
285 &6jO::U(jdL-R<W?Jcof\string$<nG'j>\string$a;@XEKW5W@E:h]\string\'fZTZ&2IlgdAO<XZ3Ig*T=
286 hna6h\string\+!b`J";.F81K*N-5drJr9P82JLC&riK=?dcL_O,/H-%Tm_N_SP<`=[r2g%Q
287 1&S&'fJid;r.0IP.XrTBC_ZpLs8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!
288 s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!
289 s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!s8W-!r-X"n
290 rVQ?XhnG_tIf90<n)(m/rVQ?XhnG_tIf90<n)(m/rUg'cp[@!8hnOX=o_n[]n)\string$pu
291 ^OH.RrVQ?XhbW.EIenNlqs""Pn#,X3^7W/hqL8D?l215DVsiNWT>,jOIenNlo_n[O
292 qs""Pe+_>cn#,WPn)\string$pu^7W-3^O8=p5CGbE5CGbE5CGbE5CGcgrUg'\string\rUg'\string\qL89h
293 5CG_f^7S3Y:Z"sGn#+Y/e*6boo_nFYI6W-DT22BRVpjo-l1Fh#5CG_f:T*ZZe*6N\string$
294 I6O9!Vpjo&qL(Q":T)\string\+o_Nu"T21.:I6O9!K_g*\string\T21.:I6O9!K_g*\string\'C#/a:T)'X
295 5+`/RpeRg)I6O80o_;48peQS>HmcdY-e%\string$<'B)+gl0qK%pa<q+-c%t[i1C>FT*b&n
296 L=7gF:P*s-i1C/I-c%t[j:;B)"QU(.PuEc.AeiBCZN4SP=c/;D"]f?=L:]C?)O[;?
297 Ai"3B!'gY\string~>    
298 }}  
299 \catcode`\%=14
300 \catcode`\#=6
301 \def\kaplogo{\advance\textwidth -2pc
302     \leavevmode\lower 8pt
303     \hbox to 24pt{\the\logotoks\hss}}
304 \if@copyrighthead
305   \gdef\@copyrighthead{{\parindent 0pt\vbox to\headheight {%
306           \hsize\textwidth \vss \kaplogo
307           \parbox{\textwidth}{\CLsize\thejournal\thecopyright}}}}
308   \gdef\@copyrightfoot{}
309 \else
310   \gdef\@copyrightfoot{{\parindent 0pt\rlap{\vbox to 0pt{%
311           \hsize\textwidth \vss \kaplogo
312     \parbox{\textwidth}{\CLsize\thejournal\thecopyright}\vss}}}}
313   \gdef\@copyrighthead{}
314 \fi
315 %    \end{macrocode}
316 % Next part. Since this is defined through editor, definition is a bit
317 % easier. However, |\editor| is mandatory to get barcodes typeset,
318 % which may be a bit unexpected.
319 %    \begin{macrocode}     
320 \def\@kapidenthead{}
321 \def\@kapidentfoot{}          
322 \if@kapidenthead
323   \def\editor#1{\gdef\@kapidentfoot{}%
324     \if@noid \gdef\@kapidenthead{}\else
325     \gdef\@kapidenthead{\footnotesize \tt #1 (\klujnlname:\kluclassname)\ v.%
326         \kluclassversion\hfill}\fi}
327 \else
328    \def\editor#1{\gdef\@kapidenthead{}%
329      \if@noid \gdef\@kapidentfoot{}\else 
330      \gdef\@kapidentfoot{\vbox to 0pt{%
331        \rlap{\vbox to \id@boxheight{\hbox{}\vfill
332              \hbox to \textwidth{\footnotesize\tt\hbox{}\hfill #1
333              (\klujnlname:\kluclassname)\ v.\kluclassversion}%
334                \vskip 10pt}}\vss}}\fi}
335 \fi
336 %    \end{macrocode}
337 %
338 %    \begin{macrocode}                             
339 \newcounter{outputpage}
340 \def\idline{\if@noid\else
341     \stepcounter{outputpage}%
342     \rlap{\smash{\vtop to \id@boxheight{%
343      \vfil\hbox to\textwidth{%
344      \hfil\footnotesize\tt 
345      \jobname.tex; \TODAY;~\timenow;~p.\theoutputpage}}}}%
346    \fi}
347 %    \end{macrocode}
348 %\subsection{Headings and page layout}
349
350 % Change with older versions: |\idline| has been taken separately to
351 % allow easier changes. This is defined above, and does not contain
352 % any space, either vertical or horizontal (text extends below to the 
353 % right, but it can be ignored here).
354 %
355 %|\DeclareTextAccent| is not very clean, but 
356 % without it |\'|, |\`| and |\=| fail if used in the output routine 
357 %(i.e. running headlines). Accents always require the use of |\protect|,
358 % otherwise they will never be expanded in |\uppercase| versions. 
359 %    \begin{macrocode} 
360 \DeclareTextAccent{\@acci}{OT1}{19}
361 \DeclareTextAccent{\@accii}{OT1}{18}
362 \DeclareTextAccent{\@acciii}{OT1}{22}
363 \DeclareTextAccent{\@acci}{T1}{1}
364 \DeclareTextAccent{\@accii}{T1}{0}
365 \DeclareTextAccent{\@acciii}{T1}{9}
366 \gdef\markboth#1#2{{\let\protect=\noexpand
367     \xdef\myleftmark{\Uppercase{#1}}%
368     \xdef\myrightmark{\Uppercase{#2}}}}
369 \let\imarkboth\markboth
370 \def\myleftmark{}
371 \def\myrightmark{}
372 \def\@markfont{\rm\scriptsize}
373 \def\@pgnumfont{\rm\normalsize}
374 \def\ps@headings{%
375   \def\@oddfoot{\idline\hfil }%
376   \let\@evenfoot\@oddfoot
377   \def\@evenhead{\hbox{}\@pgnumfont\rlap{\thepage}\hfil
378     \@markfont\myleftmark\hfil}%
379   \def\@oddhead{\hbox{}\hfil\@markfont\myrightmark\hfil
380     \@pgnumfont\llap{\thepage}}%
381   \let\@mkboth\@gobbletwo
382   \def\chaptermark##1{}%
383   \def\sectionmark##1{}%
384   \def\subsectionmark##1{}}
385 \def\ps@myheadings{%
386   \def\@oddfoot{\idline\hfil }%
387   \let\@evenfoot\@oddfoot
388   \def\@evenhead{\hbox{}\@pgnumfont\rlap{\thepage}\hfill
389     \@markfont\myleftmark}%
390   \def\@oddhead{\hbox{}\@markfont\myrightmark\hfill
391     \@pgnumfont\llap{\thepage}}%
392   \let\@mkboth\@gobbletwo
393   \def\chaptermark##1{}%
394   \def\sectionmark##1{}%
395   \def\subsectionmark##1{}}
396 \def\ps@empty{%
397   \def\@oddfoot{\idline\hfil }%
398   \let\@evenfoot\@oddfoot
399   \def\@evenhead{}%
400   \def\@oddhead{}%
401   \let\@mkboth\@gobbletwo
402   \def\chaptermark##1{}%
403   \def\sectionmark##1{}%
404   \def\subsectionmark##1{}}
405 \let\ps@title\ps@empty
406 \let\ps@part\ps@empty
407 \let\ps@chapter\ps@empty
408 %    \end{macrocode}
409
410 %
411 % In a monography chapters place the marks as follows:\\
412 % |2    C H A P T E R   O N E     .     T I T L E  O F  C H    3|
413 %
414 %    \begin{macrocode}
415 \def\ps@monoheadings{%
416     \let\@mkboth\@gobbletwo
417     \def\@oddfoot{\idline\hfil}%
418     \let\@evenfoot\@oddfoot      
419     \def\@evenhead{\hbox{}\rm\normalsize\hbox to 0pt{\thepage\hss}\hfil
420          \footnotesize\myleftmark\hfil}%
421     \def\@oddhead{\hbox{}\rm\footnotesize\hfil
422         \myrightmark\hfil
423         \rm\normalsize\hbox to 0pt{\hss\thepage}}%
424     \def\chaptermark##1{%
425         \if@mainmatter
426         \markboth{\@chapapp\ \NUMTOWORD{\c@chapter}}{\@runningtitle}%
427         \else
428         \markboth{\@chapapp\ \thechapter}{\@runningtitle}%
429         \fi }
430     \let\sectionmark\@gobble
431   }
432   \def\ps@monotitle{\let\@mkboth\@gobbletwo
433     \def\@oddhead{\hbox{}\rm\footnotesize\hfil
434          \myleftmark\hfil}%
435     \def\@oddfoot{\idline \@barcode\@kapidentfoot
436         \parbox{\textwidth}{\hfil\thepage\hfil\\ \@copyrightfoot}}
437     \let\@evenhead\@oddhead
438     \let\@evenfoot\@oddfoot
439     \let\chaptermark\@gobbletwo
440     \let\sectionmark\@gobble
441     \let\subsectionmark\@gobble
442   }
443   \def\ps@monochapter{\let\@mkboth\@gobbletwo
444     \def\@oddhead{\hbox{}\hfil\rm\footnotesize
445         \myleftmark\hfil}%
446     \def\@oddfoot{\idline\hfil\rm\normalsize\thepage\hfil}%
447     \let\@evenhead\@oddhead
448     \let\@evenfoot\@oddfoot
449     \let\chaptermark\@gobbletwo
450     \let\sectionmark\@gobble
451     \let\subsectionmark\@gobble
452   }
453 %    \end{macrocode}
454
455 %
456 % If editedvolume and if nothing specified
457 %                                         
458 %
459 % Here we have:\\
460 % |2  A U T H O R S       .   T I T L E   O F  E N T R Y   3|
461 %
462 %    \begin{macrocode}
463   \def\ps@editheadings{\let\@mkboth\@gobbletwo
464     \def\@oddfoot{\idline\hfil}%
465     \def\@evenfoot{\idline\hfil}%                           
466     \def\@evenhead{\hbox{}\rm\normalsize\rlap{\thepage}\hfil
467          \footnotesize\myleftmark\hfil}%
468     \def\@oddhead{\hbox{}\rm\footnotesize\hfil\myrightmark\hfil
469         \rm\normalsize\hbox to 0pt{\hss\thepage}}%
470     \def\chaptermark##1{%
471         \markboth{\@runningauthor}{\@runningtitle}}%
472     \let\sectionmark\@gobble
473   } 
474   \def\ps@edittitle{\let\@mkboth\@gobbletwo
475     \def\@oddhead{\hbox{}\rm\footnotesize\hfil
476          \myleftmark\hfil}%
477     \def\@oddfoot{\idline \@barcode\@kapidentfoot
478         \parbox{\textwidth}{\hfil\raise 6pt\hbox{\thepage}\hfil\\ \@copyrightfoot}}
479     \let\@evenhead\@oddhead
480     \let\@evenfoot\@oddfoot}
481 %    \end{macrocode}
482 % |\ps@opening| does not bother with |\chaptermark| etc, since it will
483 % be used only as |\thispagestyle|.
484 %    \begin{macrocode}
485 \def\theinheadpage{\thepage}
486 \def\ps@opening{%
487   \def\@oddhead{\@copyrighthead \@kapidenthead\hss
488             \if@copyrighthead \llap{\theinheadpage}\fi }%       
489   \let\@evenhead\@oddhead
490   \def\@oddfoot{\@copyrightfoot \@barcode\idline\@kapidentfoot\hss}
491   \let\@evenfoot\@oddfoot}
492 %    \end{macrocode}
493 %\subsection{The article environment} 
494 % stepping the counter takes care of |\label| and |\ref|, but maybe there are 
495 % no environments at all in the file. In that case, we do not want 
496 % |\thearticle| to disrupt things. 
497 %
498 % The AtEndDocument is an extra check.
499 %    \begin{macrocode}
500 \newcounter{article}
501 \renewcommand{\thearticle}{}
502 \let\ilabel=\label
503 \let\iref=\ref
504 \let\ipageref=\pageref
505 \let\art@intdefinecounter\@definecounter
506 \newif\ifinarticle % \inarticlefalse
507 \newenvironment{article}{% 
508   \def\@definecounter##1{\art@intdefinecounter{##1}%
509     \@addtoreset{##1}{article}}%       
510   \renewcommand{\thearticle}{\roman{article}}%
511   \refstepcounter{article}%
512   \message{Article \number\c@article}%
513   \gdef\@firstpage{\the\c@page}%                                 
514   \ifx\sectioncmd\section             
515     \@addtoreset{section}{article}%
516   \else
517     \@addtoreset{chapter}{article}%
518   \fi                              
519   \@addtoreset{endnote}{article}%
520   \@addtoreset{table}{article}%
521   \@addtoreset{figure}{article}%
522   \@addtoreset{algorithm}{article}%
523   \def\label##1{\ilabel{\thearticle ##1}}%
524   \def\ref##1{\iref{\thearticle ##1}}%
525   \def\pageref##1{\ipageref{\thearticle ##1}}%
526   \setlastpage 
527   \global\inarticletrue
528   }{\make@ao
529     \writelastpage
530     \clearpage
531     \if@openright
532       \ifodd \c@page \else ~\thispagestyle{empty}\newpage \fi
533     \fi
534     \gdef\@dedication{}\gdef\@translation{}%
535     \gdef\@title{}\gdef\@subtitle{}%
536     \gdef\@arttype{}\gdef\@keywords{}\gdef\@classification{}%
537     \gdef\@nomenclature{}\gdef\@abbreviations{}\gdef\@abstract{}%
538     \gdef\@kapidenthead{}\gdef\@kapidentfoot{}%
539     \gdef\@barcode{}\gdef\@firstpage{\thepage}%
540     \gdef\@crline{}%
541     \global\lastpagegivenfalse
542     \global\inarticlefalse
543     }
544 \AtBeginDocument{\setlastpage}
545 \AtEndDocument{\ifnum \c@article=0 
546     \writelastpage
547     \clearpage\fi}
548 \font\barcodefont=cmr10
549 \def\barcode#1{\global\font\barcodefont=barcodes
550   \gdef\@barcode{\rlap{\vbox to 0pt{%
551       \vbox to \id@boxheight{\hbox{}\vfill
552            {\barcodefont \hbox{#1}}}\vss}}}}
553 \def\@barcode{}
554 \def\PIPSID#1{}
555 \parskip 0pt
556 \hyphenpenalty 200
557 \doublehyphendemerits 640000  % corresponds to badness 800
558 \finalhyphendemerits  1000000  % corresponds to badness 1000
559 \endinput              
560 %    \end{macrocode}
561 %\PrintIndex
562 %\end{document}
563 % end of kluedit.sty
564
565