as I said before, in Persian we have two footnotes, one for Persian and the
other for English, if the first footnote in a pageis English, then footnote
rule will appear on left hand side and if the first footnote in a pgeis
persian, the footnote appears on right .
handside.

this is the code taken from xepersian which does automatic footnoterule, it
produces a file-name.fot


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%
%
                                    %                               footnote
setup                                        %

%
%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\ifx \CatEscape\undefined
    \chardef\CatEscape=0
    \chardef\CatOpen=1
    \chardef\CatClose=2
    \chardef\CatIgnore=9
    \chardef\CatLetter=11
    \chardef\CatOther=12
    \chardef\CatActive=13        % is defined in Plain already

    \chardef\CatUsCode=\catcode`\_
\fi

\catcode`\_=\CatLetter            % top level macro file


\de...@fn{%
  \hbox to \columnwidth
  {\beginR \vbox{\kern -3\p@
   \hrule width .4\columnwidth \kern2....@}\hfil\endr}}
\de...@fn{%
   \hrule width .4\columnwidth\kern 2....@}


\d...@makefnmark{\hbox{$^{\hbox{\scriptsize\@thefnmark}...@th$}}


\def\leftfootnoterule{\global\def\footnoterule...@fn}}
\def\rightfootnoterule{\global\def\footnoterule...@fn}}
\leftfootnoterule

%%% \beginprog
\newread\old_foot_file
\newwrite\foot_file
\def\foot_file_name{\jobname.fot\relax}
\def\init_footnote{%
   \openin\old_foot_file\foot_file_name
   \ifeof\old_foot_file  \closein\old_foot_file
   \else  \closein\old_foot_file
      \read_foot_file
   \fi
   \immediate\openout\foot_file\foot_file_name
   \immediate\write\foot_file{\relax}%
   \global\let\init_footnote\relax
   }

\newcount\foot_name_no  % for generating footnote mark names





\newcount\autofootnote
\def\fnpp_next_footnote{%
    \init_footnote
    \global\advance\foot_name_...@ne
    \global\advanc...@footnote\@ne
    \edef\do_write{%
    \immediate\write\foot_file{%
        \string\advance\autofootno...@ne
        \string\expandafter\xdef
            \string\csname\space f...@\number\foot_name_no \endcsname{%
        \string\number\autofootnote
        }%
        }%
    }%
    \do_write
    \global\autofootnote 0\csname f...@\number\foot_name_no \endcsname \relax
    }

\def\read_foot_file{%
   \begingroup
      \catcod...@\catletter \catcode`\^^M\CatIgnore
      \input \foot_file_name
   \endgroup
   }

\let\fnpp_orig_outputpag...@outputpage
\d...@outputpage{%
    \ifx \init_footnote\relax
    \immediate\write\foot_file{\autofootnot...@}%
    \fi
    \fnpp_orig_outputpage
    }

\let\FnppOrigFootnote=\footnote        % save original bindings
\let\FnppOrigFootnotemark=\footnotemark

\def\footnote{%
    \...@ifnextchar[%            % ] (Emacs)
    \...@xfootnote
    {\fnpp_next_footnote \ifnum\autofootnote=1\rightfootnoterule\fi
\...@xfootnote[\the\c@footnote] %
}%
    }
\def\footnotemark{%
    \...@ifnextchar[%            % ] (Emacs)
    \...@xfootnotemark
    {\fnpp_next_footnote \ifnum\autofootnote=1\rightfootnoterule\fi
\...@xfootnotemark[\the\c@footnote]}%
    }




\def\footnotemarkLR{%
    \...@ifnextchar[%            % ] (Emacs)
    \...@xfootnotemark
    {\fnpp_next_footnote
\ifnum\autofootnote=1\leftfootnoterule\...@xfootnotemark[\the\c@footnote]}%
    }

\newif...@romanfootnum
\providerobustcmd{\Footnote}[1]{%
\bgroup
\footnotemarkLR%
\renewcommand{\thefootnote}{...@romanfootnum\rmfamily{\@arabi...@footnote
}\el...@arabic\c@footnote\fi}%
\...@rtlfalse\footnotetext{\rmfamily#1}%
\egroup
}
\...@romanfootnumfalse
\def\persianfootnu...@romanfootnumfalse}
\def\romanfootnu...@romanfootnumtrue}
\declareoption{romanfootnum...@romanfootnumtrue}
\ProcessOptions



\ifx \...@minipagerestore\relax
    \l...@minipagerestore\@empty
\fi

\...@addto@mac...@minipagerestore{%
    \let\footnote\FnppOrigFootnote
    }

\let\fnpp_orig_maketitle=\maketitle
\def\maketitle{%
    \begingroup
        \let\footnotemark\FnppOrigFootnotemark
    \fnpp_orig_maketitle
    \endgroup
    }

\catcode`\_=\CatUsCode


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%
%
                                    %                            End of
footnote setup                                    %

%
%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : https://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to