%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % asect.sty % called by arabart.sty % 25.11.95 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (c) Klaus Lagally % Institut fuer Informatik % Universitaet Stuttgart %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \a@ident {asect.sty} {3.04 section macros for Arabic} {25.11.95} %\UsePackage {abidir} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % sections %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \iffalse % LaTeX 2.09 routines \def\@xsect#1{\@tempskipa #1\relax \ifdim \@tempskipa>\z@ \par \nobreak \vskip \@tempskipa \@afterheading \else \global\@nobreakfalse \global\@noskipsectrue \everypar{\if@noskipsec \global\@noskipsecfalse \clubpenalty\@M \hskip -\parindent \begingroup \@svsechd \endgroup \unskip \hskip -#1\relax % relax added 14 Jan 91 \else \clubpenalty \@clubpenalty \everypar{}\fi} \fi\ignorespaces} \def\@sect#1#2#3#4#5#6[#7]#8{\ifnum #2>\c@secnumdepth \let\@svsec\@empty\else \refstepcounter{#1}\edef\@svsec{\csname the#1\endcsname\hskip 1em}\fi \@tempskipa #5\relax \ifdim \@tempskipa>\z@ \begingroup #6\relax \@hangfrom{\hskip #3\relax\@svsec}{\interlinepenalty \@M #8\par}% \endgroup \csname #1mark\endcsname{#7}\addcontentsline {toc}{#1}{\ifnum #2>\c@secnumdepth \else \protect\numberline{\csname the#1\endcsname}\fi #7}\else \def\@svsechd{#6\hskip #3\relax %% \relax added 2 May 90 \@svsec #8\csname #1mark\endcsname {#7}\addcontentsline {toc}{#1}{\ifnum #2>\c@secnumdepth \else \protect\numberline{\csname the#1\endcsname}\fi #7}}\fi \@xsect{#5}} \def\@ssect#1#2#3#4#5{\@tempskipa #3\relax \ifdim \@tempskipa>\z@ \begingroup #4\@hangfrom{\hskip #1}{\interlinepenalty \@M #5\par}\endgroup \else \def\@svsechd{#4\hskip #1\relax #5}\fi \@xsect{#3}} \def\@startsection#1#2#3#4#5#6{\if@noskipsec \leavevmode \fi \par \@tempskipa #4\relax \@afterindenttrue \ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse\fi \if@nobreak \everypar{}\else \addpenalty{\@secpenalty}\addvspace{\@tempskipa}\fi \@ifstar {\@ssect{#3}{#4}{#5}{#6}}{\@dblarg{\@sect{#1}{#2}{#3}{#4}{#5}{#6}}}} \def\@afterheading{\global\@nobreaktrue \everypar{\if@nobreak \global\@nobreakfalse \clubpenalty \@M \if@afterindent \else {\setbox\z@\lastbox}\fi \else \clubpenalty \@clubpenalty \everypar{}\fi}} \fi % end of LaTeX 2.09 routines %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Arabic versions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def \a@startsection #1#2#3#4#5#6{% Arabic mode %\tracingmacros 1 \if@noskipsec \leavea@vmode \fi \a@@par \@tempskipa #4\relax \@afterindenttrue \ifdim \@tempskipa <\z@ \@tempskipa -\@tempskipa \@afterindentfalse \fi \if@nobreak \a@@everypar {}% \else \addpenalty \@secpenalty \addvspace \@tempskipa \fi \@ifstar {\a@ssect {#3}{#4}{#5}{#6}}% {\@dblarg {\a@sect {#1}{#2}{#3}{#4}{#5}{#6}}}} \def \a@ssect #1#2#3#4#5{% Arabic mode \@tempskipa #3\relax \ifdim \@tempskipa > \z@ \begingroup \let \end \a@@par #4\relax \set@arabfont % style \a@hangfrom {\hskip #1\relax }% indentation \test@token #5 \end \endgroup \else \def \@svsechd {\putwordb@x {#4\expandafter \<#5>\hskip #1\relax }}% \fi \a@xsect{#3}} \def\a@sect #1#2#3#4#5#6[#7]#8{% Arabic mode \ifnum #2 > \c@secnumdepth \let \@svsec \@empty \else \refstepcounter{#1}% \edef \@svsec {\hskip 1em \noexpand \<\csname the#1\endcsname >}% \fi \@tempskipa #5\relax \ifdim \@tempskipa > \z@ \begingroup \let \end \a@@par #6\relax \set@arabfont % style \a@hangfrom {\hskip #3\relax \@svsec }% section number \test@token #8 \end \endgroup \csname #1mark\endcsname {\<#7>}% \addcontentsline {toc}{#1}% {\ifnum #2 > \c@secnumdepth \else \protect\numberline {\csname the#1\endcsname }\fi \protect\RL {#7}}% \else \def \@svsechd % saved head, executed by \everypar {\putwordb@x {#6\expandafter \<#8>\@svsec \hskip #3\relax }% \csname #1mark\endcsname {\<#7>}% \addcontentsline {toc}{#1}% {\ifnum #2>\c@secnumdepth \else \protect\numberline{\csname the#1\endcsname}\fi \protect\RL {#7}}}% \@svsechd \fi \a@xsect {#5}} \def\a@xsect #1{% Arabic mode \@tempskipa #1\relax \ifdim \@tempskipa>\z@ \a@@par \nobreak \vskip \@tempskipa \a@afterheading \else \global\@nobreakfalse \global\@noskipsectrue \a@@everypar {\if@noskipsec \global\@noskipsecfalse \clubpenalty \@M \putwordb@x {\hskip -\a@parindent }\@svsechd \putwordb@x {\hskip -#1\relax }% \else \clubpenalty \@clubpenalty \a@@everypar {}% \fi} \fi \a@spacefalse \tracingmacros 0 \test@token } \def \a@afterheading {% Arabic mode \global\@nobreaktrue \a@@everypar {% when entering Arabic horizontal mode \if@nobreak \global\@nobreakfalse \clubpenalty \@M \if@afterindent \else \putwordb@x {\hskip -\a@parindent }% \fi \else \clubpenalty \@clubpenalty \a@@everypar{}% \fi}} \def \a@hangfrom #1{% hanging indentation for rest of paragraph (group) \setbox0 \hbox {#1}\@tempdima \wd0 \advance \leftskip \@tempdima \advance \a@limit -\@tempdima \putlineb@x {\rlap {\unhbox0 }}\a@spacefalse } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % for table of contents %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \iffalse % LaTeX 2.09 routines \def\contentsline#1{\csname l@#1\endcsname} % \@dottedtocline{LEVEL}{INDENT}{NUMWIDTH}{TITLE}{PAGE} : % Macro to produce a table of contents line with the following % parameters: % LEVEL : If LEVEL > \c@tocdepth, then no line produced. % INDENT : Total indentation from the left margin. % NUMWIDTH : Width of box for number if the TITLE has a % \numberline command. % As of 25 Jan 88, this is also the amount of extra indentation % added to second and later lines of a multiple line entry. % TITLE : Contents of entry. % PAGE : Page number. % % Uses the following parameters, which must be set by the document style. % They should be defined with \def's. % \@pnumwidth : Width of box in which page number is set. % \@tocrmarg : Right margin indentation for all but last line of % multiple-line entries. % \@dotsep : Separation between dots, in mu units. Should be \def'd to % a number like 2 or 1.7 % %% RmS 91/09/29: added \reset@font for page number \def\@dottedtocline#1#2#3#4#5{\ifnum #1>\c@tocdepth \else \vskip \z@ plus.2\p@ {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip \parindent #2\relax\@afterindenttrue \interlinepenalty\@M \leavevmode \@tempdima #3\relax \advance\leftskip \@tempdima \hbox{}\hskip -\leftskip #4\nobreak\leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern \@dotsep mu$}\hfill \nobreak \hbox to\@pnumwidth{\hfil\reset@font\rm #5}\par}\fi} %%% Note: \nobreak's added 7 Jan 86 to prevent bad line break that %%% left the page number dangling by itself at left edge of a new line. %%% %%% Changed 25 Jan 88 to use \leftskip instead of \hangindent so %%% leaders of multiple-line contents entries would line up properly. % \numberline{NUMBER} : For use in a \contentsline command. % It puts NUMBER flushleft in a box of width \@tempdima % (Before 25 Jan 88 change, it also added \@tempdima to the hanging % indentation.) \def\numberline#1{\hbox to\@tempdima{#1\hfil}} \fi % end of LaTeX 2.09 routines %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Arabic versions of toc auxiliary routines %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \def \a@c@starttoc #1{\endarabtext \the\arabtext@hook \@starttoc {#1}\arabtext } \def \a@t@ble #1#2{% \tableofcontents etc. \a@c@section *{#1}\@mkboth {#1}{#1}\starttoc {#2}} \def \a@c@@mkboth #1#2{\@mkboth {\<#1>}{\<#2>}\test@token } \def \a@@lsection #1#2#3{% common part for \part and \section \begin{arabtext} \tocp@rs {\z@ }{\@tempdima }#3 #1 {\hfill \thep@geno {#2}} \end{arabtext}} \def \a@dottedtocline #1#2#3#4#5{% for Arabic mode \ifnum #1>\c@tocdepth \else \vskip \z@ plus.2\p@ \begin{arabtext} \tocp@rs {#2}{#3}#4 {\le@ders \thep@geno {#5}} \end{arabtext} \fi } \def \a@c@tocp@rs #1#2{% change toc parameters \advance \leftskip #1\relax \advance \a@limit -#1\relax \advance \leftskip #2\relax \advance \a@limit -#2\relax \advance \rightskip \@tocrmarg \advance \a@limit -\@tocrmarg \@tempdima #2\relax % for \numberline, width of number \parfillskip \z@ \test@token } \def \a@c@le@ders {% for toc \setbox \wordb@x \hbox to \z@ {\leaders \hbox {$\m@th \mkern \@dotsep mu\hbox {.}\mkern \@dotsep mu$}\hfill }% \put@word \test@token } \def \a@c@thep@geno #1{% pagenumber of width \@pnumwidth \dimen@ \@pnumwidth \advance \dimen@ -\rightskip \a@c@spreadbox {\dimen@ }{\hss #1 \hspace {-\rightskip }}} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \iffalse \def \a@numberline #1#2{% for arabic mode #2\hbox to\@tempdima {\hfil \<#1>}} \def \a@numberline #1\a@RL #2{% for arabic mode \RL {\spreadbox \@tempdima {#1 \hfill }#2}} \fi \def \a@c@numberline #1{% external Arabic command \a@c@hspace {-\@tempdima }\spreadbox \@tempdima {#1 \hfill }} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \at@arabtext {% modify LaTeX for Arabic mode \let \numberline \a@numberline \let \@dottedtocline \a@dottedtocline \if@twocolumn \def\@pnumwidth{1.0em} \def\@tocrmarg {1em} \fi } %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \iffalse % LaTeX 2.09 routines \def\@starttoc#1{\begingroup \makeatletter \@input{\jobname.#1}\if@filesw \expandafter\newwrite\csname tf@#1\endcsname \immediate\openout \csname tf@#1\endcsname \jobname.#1\relax \fi \global\@nobreakfalse \endgroup} \fi % end of LaTeX 2.09 routines %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \endinput %%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%