summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/xelatex/xepersian/xepersian.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2018-01-01 22:07:01 +0000
committerKarl Berry <karl@freefriends.org>2018-01-01 22:07:01 +0000
commit3992bdafaa741b02f032e705d0aab10224c5c052 (patch)
tree33cbc41b91c8edc6709b7952eac3122f6717ca0d /Master/texmf-dist/tex/xelatex/xepersian/xepersian.sty
parent624d6f5858161c524748b4b9377811feef1bb79e (diff)
xepersian (1jan18)
git-svn-id: svn://tug.org/texlive/trunk@46188 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/xelatex/xepersian/xepersian.sty')
-rw-r--r--Master/texmf-dist/tex/xelatex/xepersian/xepersian.sty69
1 files changed, 64 insertions, 5 deletions
diff --git a/Master/texmf-dist/tex/xelatex/xepersian/xepersian.sty b/Master/texmf-dist/tex/xelatex/xepersian/xepersian.sty
index c964a16a928..50b90fe18eb 100644
--- a/Master/texmf-dist/tex/xelatex/xepersian/xepersian.sty
+++ b/Master/texmf-dist/tex/xelatex/xepersian/xepersian.sty
@@ -7,7 +7,7 @@
%% xepersian.dtx (with options: `table,xepersian.sty')
%%
%% __________________________________________________
-%% Copyright (c) 2008--2017 Vafa Khalighi <persian-tex@tug.org>
+%% Copyright (c) 2008--2018 Vafa Khalighi <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
@@ -17,7 +17,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10317}
+%% \CheckSum{10449}
%% \CharacterTable
%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
@@ -35,8 +35,8 @@
%% Right brace \} Tilde \~}
%%
\NeedsTeXFormat{LaTeX2e}
-\def\xepersianversion{v20.0}
-\def\xepersiandate{2017/12/28}
+\def\xepersianversion{v20.2}
+\def\xepersiandate{2018/01/02}
\ProvidesPackage{xepersian}[\xepersiandate\space \xepersianversion\space
Persian typesetting in XeLaTeX]
\RequirePackage{fontspec}
@@ -51,7 +51,7 @@ Persian typesetting in XeLaTeX]
* typesetting, using fonts provided in the^^J%
* distribution.^^J%
* ^^J%
-* Copyright (c) 2008--2017 Vafa Khalighi^^J%
+* Copyright (c) 2008--2018 Vafa Khalighi^^J%
* ^^J%
* \xepersianversion, \xepersiandate^^J%
* ^^J%
@@ -139,6 +139,48 @@ Persian typesetting in XeLaTeX]
\ignorespaces
}
+\DeclareDocumentCommand \settextdigitfont { O{} m O{} }
+ {
+ \__xepersian_main_settextdigitfont:nnn {#1} {#2} {#3}
+ }
+\cs_set:Nn \__xepersian_main_settextdigitfont:nnn
+ {
+ \fontspec_set_family:Nnn \g__xepersian_textdigitfont_family {Mapping=parsidigits,#1,#3} {#2}
+ \use:x
+ {
+ \exp_not:n { \DeclareRobustCommand \xepersian@textdigitfont }
+ {
+ \exp_not:N \fontfamily { \g__xepersian_textdigitfont_family }
+ \exp_not:N \fontencoding { \l__fontspec_nfss_enc_tl }
+ \exp_not:N \selectfont
+ }
+ }
+ \XeTeXinterchartoks \e@alloc@intercharclass@top \bidi@digits@charclass = {\xepersian@@start@switch@textdigitfont}
+ \XeTeXinterchartoks \bidi@digits@charclass \e@alloc@intercharclass@top = {\xepersian@@stop@switch@textdigitfont}
+ \XeTeXinterchartoks \z@ \bidi@digits@charclass = {\xepersian@@start@switch@textdigitfont}
+ \XeTeXinterchartoks \bidi@digits@charclass \z@ = {\xepersian@@stop@switch@textdigitfont}
+ \XeTeXinterchartoks \bidi@digits@charclass \bidi@sepmark@charclass = {\DigitsDotDashInterCharToks\xepersian@@stop@switch@textdigitfont}
+ \XeTeXinterchartoks \bidi@sepmark@charclass \bidi@digits@charclass = {\DigitsDotDashInterCharToks\xepersian@@start@switch@textdigitfont}
+ \if@bidi@csundef{xepersian@D}{}{%
+ \XeTeXinterchartoks \xepersian@D \bidi@digits@charclass = {\xepersian@@start@switch@textdigitfont}
+ \XeTeXinterchartoks \bidi@digits@charclass \xepersian@D = {\xepersian@@stop@switch@textdigitfont}
+ \XeTeXinterchartoks \xepersian@L \bidi@digits@charclass = {\xepersian@@start@switch@textdigitfont}
+ \XeTeXinterchartoks \bidi@digits@charclass \xepersian@L = {\xepersian@@stop@switch@textdigitfont}
+ \XeTeXinterchartoks \xepersian@A \bidi@digits@charclass = {\xepersian@@start@switch@textdigitfont}
+ \XeTeXinterchartoks \bidi@digits@charclass \xepersian@A = {\xepersian@@stop@switch@textdigitfont}
+ \XeTeXinterchartoks \xepersian@R \bidi@digits@charclass = {\xepersian@@start@switch@textdigitfont}
+ \XeTeXinterchartoks \bidi@digits@charclass \xepersian@R = {\xepersian@@stop@switch@textdigitfont}
+ }
+ \newcommand*{\xepersian@@start@switch@textdigitfont}{\ifx\f@family\ttdefault\else\if@nonlatin\if@@textdigitfont@on\bgroup\xepersian@textdigitfont\else\fi\fi\fi}
+ \newcommand*{\xepersian@@stop@switch@textdigitfont}{\ifx\f@family\ttdefault\else\if@nonlatin\if@@textdigitfont@on\egroup\else\fi\fi\fi}
+ }
+
+\DeclareDocumentCommand \setdigitfont { O{} m O{} }
+ {
+ \__xepersian_main_settextdigitfont:nnn {#1} {#2} {#3}
+ \__xepersian_main_setmathdigitfont:nnn {#1} {#2} {#3}
+ }
+
\DeclareDocumentCommand \setlatintextfont { O{} m O{} }
{
\__xepersian_main_setlatintextfont:nnn {#1} {#2} {#3}
@@ -463,6 +505,13 @@ Persian typesetting in XeLaTeX]
\advance\xepersian@strutilg\xepersian@ilg
}
+\newif\if@@textdigitfont@on
+
+\newcommand{\TextDigitFontOn}{\@@textdigitfont@ontrue}
+\newcommand{\TextDigitFontOff}{\@@textdigitfont@onfalse}
+
+\TextDigitFontOn
+
\newcommand*\xepersian@setlength[4]{%
\ifdim #2<\ifdim #2=\z@ \z@ \else \p@\fi
\ifdim #3<\ifdim #3=\z@ \z@ \else \p@\fi
@@ -1287,6 +1336,16 @@ number is 999,999,999.}%
\let\bidi@lastcolumn@status@write\relax
\fi}
+\define@choicekey{xepersian.sty}{debugtextdigitfont}[\xepersian@tempa\xepersian@tempb]{on,off}[on]{%
+ \ifcase\xepersian@tempb\relax
+ \bidi@AtEndPreamble{%
+ \bidi@patchcmd{\xepersian@@start@switch@textdigitfont}%
+ {\xepersian@textdigitfont}{\addfontfeature{Color=C71585}}{}{}%
+ }
+ \or
+ \relax
+ \fi}
+
\ExecuteOptionsX{%
documentdirection=righttoleft,
tabledirection=righttoleft,