%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /data/old/usr/share/texlive/texmf-dist/tex/xelatex/xepersian/
Upload File :
Create Path :
Current File : //data/old/usr/share/texlive/texmf-dist/tex/xelatex/xepersian/xepersian-mathsdigitspec.sty

%%
%% This is file `xepersian-mathsdigitspec.sty',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% xepersian.dtx  (with options: `xepersian-mathsdigitspec.sty')
%% 
%%   ______________________________________
%%   Copyright © 2008–2013  Persian TeX Group
%% 
%%   License information appended.
%% 
%% 

\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{xepersian-mathsdigitspec}
  [2013/04/04 v1.0.3 Unicode Persian maths digits in XeLaTeX]
\@ifundefined{Umathcode}{\let\Umathcode\XeTeXmathcode}{}
\@ifundefined{Umathchardef}{\let\Umathchardef\XeTeXmathchardef}{}
\def\new@mathgroup{\alloc@8\mathgroup\chardef\@cclvi}
\let\newfam\new@mathgroup
\def\select@group#1#2#3#4{%
 \ifx\math@bgroup\bgroup\else\relax\expandafter\@firstofone\fi
 {%
 \ifmmode
  \ifnum\csname c@mv@\math@version\endcsname<\@cclvi
     \begingroup
       \escapechar\m@ne
       \getanddefine@fonts{\csname c@mv@\math@version\endcsname}#3%
       \globaldefs\@ne  \math@fonts
     \endgroup
     \init@restore@version
     \xdef#1{\noexpand\use@mathgroup\noexpand#2%
             {\number\csname c@mv@\math@version\endcsname}}%
     \global\advance\csname c@mv@\math@version\endcsname\@ne
   \else
     \let#1\relax
     \@latex@error{Too many math alphabets used in
                   version \math@version}%
        \@eha
   \fi
 \else \expandafter\non@alpherr\fi
 #1{#4}%
 }%
}
\def\document@select@group#1#2#3#4{%
 \ifx\math@bgroup\bgroup\else\relax\expandafter\@firstofone\fi
 {%
 \ifmmode
   \ifnum\csname c@mv@\math@version\endcsname<\@cclvi
     \begingroup
       \escapechar\m@ne
       \getanddefine@fonts{\csname c@mv@\math@version\endcsname}#3%
       \globaldefs\@ne  \math@fonts
     \endgroup
     \expandafter\extract@alph@from@version
         \csname mv@\math@version\expandafter\endcsname
         \expandafter{\number\csname
                       c@mv@\math@version\endcsname}%
          #1%
     \global\advance\csname c@mv@\math@version\endcsname\@ne
   \else
     \let#1\relax
     \@latex@error{Too many math alphabets used
                   in version \math@version}%
        \@eha
  \fi
 \else \expandafter\non@alpherr\fi
 #1{#4}%
 }%
}
\ExplSyntaxOn
\bool_set_false:N \g_fontspec_math_bool
\ExplSyntaxOff
\def\@preamblecmds{}
\newcommand\xepersian@not@onlypreamble[1]{{%
  \def\do##1{\ifx#1##1\else\noexpand\do\noexpand##1\fi}%
  \xdef\@preamblecmds{\@preamblecmds}}}
\xepersian@not@onlypreamble\@preamblecmds
\def\xepersian@notprerr{ can be used only in preamble (\on@line)}
\AtBeginDocument{%
  \def\do#1{\noexpand\do\noexpand#1}%
  \edef\@preamblecmds{%
    \def\noexpand\do##1{%
      \def##1{\noexpand\xepersian@NotprerrMessage##1}\noexpand\@eha}}%
    \@preamblecmds}
\def\xepersian@NotprerrMessage#1{%
  \PackageError{xepersian}%
  {\noexpand\string#1 \noexpand\xepersian@notprerr}{}%
}
\def\nocite#1{%
  \@bsphack{\setbox0=\hbox{\cite{#1}}}\@esphack}
\newcommand\xepersian@PackageInfo[1]{\PackageInfo{xepersian-mathsdigitspec}{#1}}
\newcommand\SetMathCode[4]{%
  \Umathcode#1="\mathchar@type#2 \csname sym#3\endcsname #4\relax}
\newcommand\SetMathCharDef[4]{%
  \Umathchardef#1="\mathchar@type#2 \csname sym#3\endcsname #4\relax}
\ExplSyntaxOn
\cs_new_eq:NN \orig_mathbf:n \mathbf
\cs_new_eq:NN \orig_mathit:n \mathit
\cs_new_eq:NN \orig_mathrm:n \mathrm
\cs_new_eq:NN \orig_mathsf:n \mathsf
\cs_new_eq:NN \orig_mathtt:n \mathtt
\NewDocumentCommand \new@mathbf { m } {
 \orig_mathbf:n {
   \int_step_inline:nnnn { `0 } { \c_one } { `9 } {
     \mathcode ##1 = \numexpr "100 * \symnew@mathbf@font@digits + ##1 \relax
   }
   #1
 }
}
\NewDocumentCommand \new@mathit { m } {
 \orig_mathit:n {
   \int_step_inline:nnnn { `0 } { \c_one } { `9 } {
     \mathcode ##1 = \numexpr "100 * \symnew@mathit@font@digits + ##1 \relax
   }
   #1
 }
}
\NewDocumentCommand \new@mathrm { m } {
 \orig_mathrm:n {
   \int_step_inline:nnnn { `0 } { \c_one } { `9 } {
     \mathcode ##1 = \numexpr "100 * \symnew@mathrm@font@digits + ##1 \relax
   }
   #1
 }
}
\NewDocumentCommand \new@mathsf{ m } {
 \orig_mathsf:n {
   \int_step_inline:nnnn { `0 } { \c_one } { `9 } {
     \mathcode ##1 = \numexpr "100 * \symnew@mathsf@font@digits + ##1 \relax
   }
   #1
 }
}
\NewDocumentCommand \new@mathtt{ m } {
 \orig_mathtt:n {
   \int_step_inline:nnnn { `0 } { \c_one } { `9 } {
     \mathcode ##1 = \numexpr "100 * \symnew@mathtt@font@digits + ##1 \relax
   }
   #1
 }
}
\newcommand\setdigitfont[2][]{%
  \let\glb@currsize\relax
  \fontspec_set_family:Nnn \xepersian@digits@family {Mapping=parsidigits,#1}{#2}
  \xepersian@PackageInfo{Defining the default Persian maths digits font as '#2'}
  \DeclareSymbolFont{OPERATORS}   {EU1}{\xepersian@digits@family} {m}{n}
  \DeclareSymbolFont{new@mathbf@font@digits}{EU1}{\xepersian@digits@family}{bx}{n}
  \DeclareSymbolFont{new@mathit@font@digits}{EU1}{\xepersian@digits@family}{m}{it}
  \DeclareSymbolFont{new@mathrm@font@digits}{EU1}{\xepersian@digits@family}{m}{n}
  \def\persianmathsdigits{%
  \SetMathCode{`0}{\mathalpha}{OPERATORS}{`0}
  \SetMathCode{`1}{\mathalpha}{OPERATORS}{`1}
  \SetMathCode{`2}{\mathalpha}{OPERATORS}{`2}
  \SetMathCode{`3}{\mathalpha}{OPERATORS}{`3}
  \SetMathCode{`4}{\mathalpha}{OPERATORS}{`4}
  \SetMathCode{`5}{\mathalpha}{OPERATORS}{`5}
  \SetMathCode{`6}{\mathalpha}{OPERATORS}{`6}
  \SetMathCode{`7}{\mathalpha}{OPERATORS}{`7}
  \SetMathCode{`8}{\mathalpha}{OPERATORS}{`8}
  \SetMathCode{`9}{\mathalpha}{OPERATORS}{`9}
  \SetMathCharDef{\%}{\mathbin}{OPERATORS}{`٪}
  \SetMathCharDef{\decimalseparator}{\mathpunct}{OPERATORS}{"066B}
  \cs_set_eq:NN \mathbf \new@mathbf
  \cs_set_eq:NN \mathit \new@mathit
  \cs_set_eq:NN \mathrm \new@mathrm}
}
\DeclareDocumentCommand \setmathsfdigitfont { O{} m } {
  \fontspec_set_family:Nnn \g_fontspec_mathsf_tl {Mapping=parsidigits,#1}{#2}
  \DeclareSymbolFont{new@mathsf@font@digits}{EU1}{\g_fontspec_mathsf_tl}{m}{n}
  \def\persianmathsfdigits{\cs_set_eq:NN \mathsf \new@mathsf}
}
\DeclareDocumentCommand \setmathttdigitfont { O{} m } {
  \fontspec_set_family:Nnn \g_fontspec_mathtt_tl {Mapping=parsidigits,#1}{#2}
  \DeclareSymbolFont{new@mathtt@font@digits}{EU1}{\g_fontspec_mathtt_tl}{m}{n}
  \def\persianmathttdigits{\cs_set_eq:NN \mathtt \new@mathtt}
}
\ExplSyntaxOff
\ifx\newcommand\undefined\else
  \newcommand{\ZifferAn}{}
\fi
\mathchardef\ziffer@DotOri="013A
{\ZifferAn
 \catcode`\.=\active\gdef.{\begingroup\obeyspaces\futurelet\n\ziffer@dcheck}}
\def\ziffer@dcheck{\ziffer@check\ZifferLeer\ziffer@DotOri}
\def\ziffer@check#1#2{%
  \ifx\n1\endgroup#1\else
    \ifx\n2\endgroup#1\else
      \ifx\n3\endgroup#1\else
        \ifx\n4\endgroup#1\else
          \ifx\n5\endgroup#1\else
            \ifx\n6\endgroup#1\else
              \ifx\n7\endgroup#1\else
                \ifx\n8\endgroup#1\else
                  \ifx\n9\endgroup#1\else
                    \ifx\n0\endgroup#1\else
                      \endgroup#2%
                    \fi
                  \fi
                \fi
              \fi
            \fi
          \fi
        \fi
      \fi
    \fi
  \fi}
\mathcode`.="8000\relax
\def\ZifferLeer{\ifx\decimalseparator\undefied .\else \decimalseparator\fi}
\def\DefaultMathsDigits{\def\SetMathsDigits{}}
\def\PersianMathsDigits{\def\SetMathsDigits{%
\ifx\persianmathsdigits\undefied\else\persianmathsdigits\fi%
\ifx\persianmathsfdigits\undefied\else\persianmathsfdigits\fi%
\ifx\persianmathttdigits\undefied\else\persianmathttdigits\fi}}
\def\AutoMathsDigits{\def\SetMathsDigits{%
\ifx\persianmathsdigits\undefied\else\if@Latin\else\persianmathsdigits\fi\fi%
\ifx\persianmathsfdigits\undefied\else\if@Latin\else\persianmathsfdigits\fi\fi%
\ifx\persianmathttdigits\undefied\else\if@Latin\else\persianmathttdigits\fi\fi}}
\AutoMathsDigits
\everymath\expandafter{\the\everymath\SetMathsDigits}
\g@addto@macro\document{\everydisplay\expandafter{\the\everydisplay\SetMathsDigits}}
%% 
%% Copyright © 2008–2013  Persian TeX Group <persian-tex@tug.org>
%% 
%% It may be distributed and/or modified under the LaTeX Project Public License,
%% version 1.3c or higher (your choice). The latest version of
%% this license is at: http://www.latex-project.org/lppl.txt
%% 
%% This work is “maintained” (as per LPPL maintenance status)
%% by Persian TeX Group.
%% 
%% 
%% 
%%
%% End of file `xepersian-mathsdigitspec.sty'.

Zerion Mini Shell 1.0