texlive[73697] Master/texmf-dist: xepersian (2feb25)
commits+karl at tug.org
commits+karl at tug.org
Sun Feb 2 21:55:11 CET 2025
Revision: 73697
https://tug.org/svn/texlive?view=revision&revision=73697
Author: karl
Date: 2025-02-02 21:55:11 +0100 (Sun, 02 Feb 2025)
Log Message:
-----------
xepersian (2feb25)
Modified Paths:
--------------
trunk/Master/texmf-dist/doc/xelatex/xepersian/README
trunk/Master/texmf-dist/doc/xelatex/xepersian/xepersian-doc.pdf
trunk/Master/texmf-dist/doc/xelatex/xepersian/xepersian.pdf
trunk/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-intro.ltx
trunk/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-title.ltx
trunk/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc.ltx
trunk/Master/texmf-dist/source/xelatex/xepersian/xepersian.dtx
trunk/Master/texmf-dist/source/xelatex/xepersian/xepersian.ins
trunk/Master/texmf-dist/tex/xelatex/xepersian/algorithm-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/algorithmic-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/amsart-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/amsbook-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/appendix-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/article-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/artikel1-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/artikel2-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/artikel3-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/backref-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/beamer-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/beamerbasetranslator-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/bidimoderncv-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/bidituftesidenote-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/boek-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/boek3-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/book-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/bookest-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/breqn-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/color-localize-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/enumerate-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/enumitem-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/extarticle-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/extbook-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/extrafootnotefeatures-xetex-bidi-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/extreport-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/fancyref-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/footnote-xetex-bidi-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/framed-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/glossaries-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/hyperref-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/imsproc-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/kashida-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/latex-localize-commands-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/latex-localize-environments-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/latex-localize-messages-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/latex-localize-misc-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/listings-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/localize-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/memoir-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/minitoc-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/natbib-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/packages-localize-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/rapport1-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/rapport3-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/refrep-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/report-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/scrartcl-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/scrbook-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/scrreprt-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/soul-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/tkz-linknodes-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/tocloft-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/url-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/varioref-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-localize-commands-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-localize-environments-xetex-xepersian.def
trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-magazine.cls
trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-multiplechoice.sty
trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-persiancal.sty
trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian.sty
Added Paths:
-----------
trunk/Master/texmf-dist/tex/xelatex/xepersian/unicode-persianmath.sty
Removed Paths:
-------------
trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-mathdigitspec.sty
Modified: trunk/Master/texmf-dist/doc/xelatex/xepersian/README
===================================================================
--- trunk/Master/texmf-dist/doc/xelatex/xepersian/README 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/doc/xelatex/xepersian/README 2025-02-02 20:55:11 UTC (rev 73697)
@@ -1,6 +1,6 @@
____________________
The XePersian package
-v26.2
+v25.2.2
The xepersian package provides a convenient interface for
typesetting Persian and English texts in LaTeX, using XeTeX
@@ -25,7 +25,7 @@
also appear in the Discussions space under the Announcements
category.
-Current version release date: 2025/01/16
+Current version release date: 2025/02/02
___________________________________________
Vafa Khalighi
Modified: trunk/Master/texmf-dist/doc/xelatex/xepersian/xepersian-doc.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/doc/xelatex/xepersian/xepersian.pdf
===================================================================
(Binary files differ)
Modified: trunk/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-intro.ltx
===================================================================
--- trunk/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-intro.ltx 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-intro.ltx 2025-02-02 20:55:11 UTC (rev 73697)
@@ -25,7 +25,7 @@
* Copyright (c) 2008--2025 Vafa Khalighi
* Copyright (c) 2018--2020 bidi-tex GitHub Organization
*
-* v26.2 (Release Persian Gate), 2025/01/16
+* v25.2.2 (Release Persian Gate), 2025/02/02
*
* License: LaTeX Project Public License, version
* 1.3c or higher (your choice)
Modified: trunk/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-title.ltx
===================================================================
--- trunk/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-title.ltx 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-title.ltx 2025-02-02 20:55:11 UTC (rev 73697)
@@ -3,7 +3,7 @@
\begin{document}
\title{\textcolor{xepersianblue}{\Huge The \textsf{\XePersian} \textit{Package}}\\
\LARGE Persian for \LaTeXe, using {\XeTeX} engine\\[5pt]
-\large User documentation for \textcolor{xepersianblue}{version 26.2}}
+\large User documentation for \textcolor{xepersianblue}{version 25.2.2}}
\author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the {\LaTeX} team for maintaining the package in the period 2018--2020.}}
\setcounter{page}{0}
\thispagestyle{empty}
@@ -13,7 +13,7 @@
\textcolor{xepersianblue}{\Huge The \textsf{\XePersian} \textit{Package}}
\Large
-User documentation for \textcolor{xepersianblue}{version 26.2}}
+User documentation for \textcolor{xepersianblue}{version 25.2.2}}
\vskip 0pt plus 3fill
\textit{\large to my Master, \textbf{Ferdowsi The Great}}
Modified: trunk/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc.ltx
===================================================================
--- trunk/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc.ltx 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc.ltx 2025-02-02 20:55:11 UTC (rev 73697)
@@ -1,7 +1,7 @@
\documentclass{ltxdoc}
\input{xepersian-doc-preamble.ltx}
\hypersetup{%
- pdftitle={User documentation for version 26.2 of the XePersian
+ pdftitle={User documentation for version 25.2.2 of the XePersian
package}%
}
\begin{document}
Modified: trunk/Master/texmf-dist/source/xelatex/xepersian/xepersian.dtx
===================================================================
--- trunk/Master/texmf-dist/source/xelatex/xepersian/xepersian.dtx 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/source/xelatex/xepersian/xepersian.dtx 2025-02-02 20:55:11 UTC (rev 73697)
@@ -5,7 +5,7 @@
%<*readme>
____________________
The XePersian package
-v26.2
+v25.2.2
The xepersian package provides a convenient interface for
typesetting Persian and English texts in LaTeX, using XeTeX
@@ -31,7 +31,7 @@
category.
-Current version release date: 2025/01/16
+Current version release date: 2025/02/02
___________________________________________
Vafa Khalighi
@@ -127,6 +127,12 @@
\usepostamble\mapping at postamble
\generate{\file{persian-tex-text.map}{\from{\jobname.dtx}{persian-tex-text.map}}}
\generate{\file{persian-tex-text-nonumbers.map}{\from{\jobname.dtx}{persian-tex-text-nonumbers.map}}}
+\def\MetaPrefix{--}
+\def\mapping at postamble{%
+ \MetaPrefix ^^J%
+ \MetaPrefix\space End of file `\outFileName'.%
+}
+\generate{\file{persian-tex-ligs.lua}{\from{\jobname.dtx}{persian-tex-ligs.lua}}}
\let\MetaPrefix\DoubleperCent
\usepostamble\org at postamble
\generate{\file{rapport1-xetex-xepersian.def}{\from{\jobname.dtx}{table,rapport1-xetex-xepersian.def}}}
@@ -142,7 +148,7 @@
\generate{\file{varioref-xetex-xepersian.def}{\from{\jobname.dtx}{table,varioref-xetex-xepersian.def}}}
\generate{\file{xepersian.sty}{\from{\jobname.dtx}{table,xepersian.sty}}}
\generate{\file{xepersian-magazine.cls}{\from{\jobname.dtx}{table,xepersian-magazine.cls}}}
-\generate{\file{xepersian-mathdigitspec.sty}{\from{\jobname.dtx}{table,xepersian-mathdigitspec.sty}}}
+\generate{\file{unicode-persianmath.sty}{\from{\jobname.dtx}{table,unicode-persianmath.sty}}}
\generate{\file{xepersian-multiplechoice.sty}{\from{\jobname.dtx}{table,xepersian-multiplechoice.sty}}}
\generate{\file{xepersian-persiancal.sty}{\from{\jobname.dtx}{table,xepersian-persiancal.sty}}}
%</batchfile>
@@ -167,7 +173,7 @@
\documentclass{ltxdoc}
\input{xepersian-doc-preamble.ltx}
\hypersetup{%
- pdftitle={Source documentation for version 26.2 of the XePersian
+ pdftitle={Source documentation for version 25.2.2 of the XePersian
package}%
}
\EnableCrossrefs
@@ -186,7 +192,7 @@
% \GetFileInfo{\jobname.dtx}
% \title{\textcolor{xepersianblue}{\Huge The \textsf{\XePersian} \textit{Package}}\\
%\LARGE Persian for \LaTeXe, using {\XeTeX} engine\\[5pt]
-%\large Source documentation for \textcolor{xepersianblue}{version 26.2}}
+%\large Source documentation for \textcolor{xepersianblue}{version 25.2.2}}
% \author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the {\LaTeX} team for maintaining the package in the period 2018--2020.}}
%\setcounter{page}{0}
%\thispagestyle{empty}
@@ -196,7 +202,7 @@
%\textcolor{xepersianblue}{\Huge The \textsf{\XePersian} \textit{Package}}
%
%\Large
-%Source documentation for \textcolor{xepersianblue}{version 26.2}}
+%Source documentation for \textcolor{xepersianblue}{version 25.2.2}}
%
%\vskip 0pt plus 3fill
%\textit{\large to my Master, \textbf{Ferdowsi The Great}}
@@ -244,7 +250,7 @@
%\iffalse
%<*table>
%\fi
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
@@ -3131,6 +3137,223 @@
% \end{macrocode}
% \iffalse
%</persian-tex-text-nonumbers.map>
+%<*persian-tex-ligs.lua>
+%\fi
+% \section{File \texttt{persian-tex-ligs.lua}}
+% \begin{macrocode}
+local otf = fonts.handlers.otf
+local registerotffeature = otf.features.register
+local addotffeature = otf.addfeature
+
+local persiantexlig = {
+ {
+ type = "substitution",
+ order = {"persiantexlig"},
+ prepend = true,
+ data = {
+ [0x0030] = 0x06F0,
+ [0x0031] = 0x06F1,
+ [0x0032] = 0x06F2,
+ [0x0033] = 0x06F3,
+ [0x0034] = 0x06F4,
+ [0x0035] = 0x06F5,
+ [0x0036] = 0x06F6,
+ [0x0037] = 0x06F7,
+ [0x0038] = 0x06F8,
+ [0x0039] = 0x06F9,
+ [0x002C] = 0x060C, -- comma > arabic comma
+ [0x003F] = 0x061F, -- question mark -> arabic qm
+ [0x003B] = 0x061B, -- semicolon -> arabic semicolon
+ [0x0027] = 0x2019, -- ' -> right single quote
+ [0x0022] = 0x201D, -- " -> right double quote
+ [0x0060] = 0x2018 -- ` -> left single quote
+ }
+ },
+ {
+ type = "ligature",
+ order = {"persiantexlig"},
+ prepend = true,
+ data = {
+ -- ligatures from Knuth's original CMR fonts
+ [0x2013] = {0x002D, 0x002D}, -- -- -> en dash
+ [0x2014] = {0x002D, 0x002D, 0x002D}, -- --- -> em dash
+ [0x201D] = {0x0027, 0x0027}, -- '' -> right double quote
+ [0x201C] = {0x0060, 0x0060}, -- `` -> left double quote
+ [0x00A1] = {0x0021, 0x0060}, -- !` -> inverted exclam
+ [0x00BF] = {0x003F, 0x0060}, -- ?` -> inverted question
+ -- additions supported in T1 encoding
+ [0x201E] = {0x002C, 0x002C}, -- ,, -> DOUBLE LOW-9 QUOTATION MARK
+ [0x00AB] = {0x003C, 0x003C}, -- << -> LEFT POINTING GUILLEMET
+ [0x00BB] = {0x003E, 0x003E} -- >> -> RIGHT POINTING GUILLEMET
+ }
+ }
+}
+
+local persiantexlignonum = {
+ {
+ type = "substitution",
+ order = {"persiantexlignonum"},
+ prepend = true,
+ data = {
+ [0x002C] = 0x060C, -- comma > arabic comma
+ [0x003F] = 0x061F, -- question mark -> arabic qm
+ [0x003B] = 0x061B, -- semicolon -> arabic semicolon
+ [0x0027] = 0x2019, -- ' -> right single quote
+ [0x0022] = 0x201D, -- " -> right double quote
+ [0x0060] = 0x2018 -- ` -> left single quote
+ }
+ },
+ {
+ type = "ligature",
+ order = {"persiantexlignonum"},
+ prepend = true,
+ data = {
+ -- ligatures from Knuth's original CMR fonts
+ [0x2013] = {0x002D, 0x002D}, -- -- -> en dash
+ [0x2014] = {0x002D, 0x002D, 0x002D}, -- --- -> em dash
+ [0x201D] = {0x0027, 0x0027}, -- '' -> right double quote
+ [0x201C] = {0x0060, 0x0060}, -- `` -> left double quote
+ [0x00A1] = {0x0021, 0x0060}, -- !` -> inverted exclam
+ [0x00BF] = {0x003F, 0x0060}, -- ?` -> inverted question
+ -- additions supported in T1 encoding
+ [0x201E] = {0x002C, 0x002C}, -- ,, -> DOUBLE LOW-9 QUOTATION MARK
+ [0x00AB] = {0x003C, 0x003C}, -- << -> LEFT POINTING GUILLEMET
+ [0x00BB] = {0x003E, 0x003E} -- >> -> RIGHT POINTING GUILLEMET
+ }
+ }
+}
+
+addotffeature("persiantexlignonum", persiantexlignonum)
+addotffeature("persiantexlig", persiantexlig)
+
+registerotffeature {name = "persiantexlig", description = "Persian TeX ligatures"}
+registerotffeature {name = "persiantexlignonum", description = "Persian TeX ligatures without numbers"}
+
+-- We implement persiantexlig and persiantexlignonum for HarfBuzz too
+local direct = node.direct
+local otfregister = fonts.constructors.features.otf.register
+
+local getdisc = direct.getdisc
+local getnext = direct.getnext
+local is_char = direct.is_char
+local setchar = direct.setchar
+
+local persiandigits = {
+ [0x0030] = 0x06F0,
+ [0x0031] = 0x06F1,
+ [0x0032] = 0x06F2,
+ [0x0033] = 0x06F3,
+ [0x0034] = 0x06F4,
+ [0x0035] = 0x06F5,
+ [0x0036] = 0x06F6,
+ [0x0037] = 0x06F7,
+ [0x0038] = 0x06F8,
+ [0x0039] = 0x06F9
+}
+
+local persianpuncts = {
+ [0x002C] = 0x060C, -- comma > arabic comma
+ [0x003F] = 0x061F, -- question mark -> arabic qm
+ [0x003B] = 0x061B, -- semicolon -> arabic semicolon
+ [0x0027] = 0x2019, -- ' -> right single quote
+ [0x0022] = 0x201D, -- " -> right double quote
+ [0x0060] = 0x2018 -- ` -> left single quote
+}
+
+local persiantexlig = {
+ [0x002D] = {[0x002D] = {char = 0x2013}}, -- -- -> en dash
+ [0x2013] = {[0x002D] = {char = 0x2014}}, -- --- -> em dash
+ [0x0027] = {[0x0027] = {char = 0x201D}}, -- '' -> right double quote
+ [0x0060] = {[0x0060] = {char = 0x201C}}, -- `` -> left double quote
+ [0x0021] = {[0x0060] = {char = 0x00A1}}, -- !` -> inverted exclam
+ [0x003F] = {[0x0060] = {char = 0x00BF}}, -- ?` -> inverted question
+ -- additions supported in T1 encoding
+ [0x002C] = {[0x002C] = {char = 0x201E}}, -- ,, -> DOUBLE LOW-9 QUOTATION MARK
+ [0x003C] = {[0x003C] = {char = 0x00AB}}, -- << -> LEFT POINTING GUILLEMET
+ [0x003E] = {[0x003E] = {char = 0x00BB}} -- >> -> RIGHT POINTING GUILLEMET
+}
+
+local function persiantexligprocessor(head, font)
+ local n = head
+ while n do
+ local c, id = is_char(n, font)
+ local persiannum = persiandigits[c]
+ local persianpunct = persianpuncts[c]
+ if persiannum then
+ setchar(n, persiannum)
+ elseif persianpunct then
+ setchar(n, persianpunct)
+ elseif id == disc_t then
+ local pre, post, replace = getdisc(n)
+ persiantexligprocessor(pre, font)
+ persiantexligprocessor(post, font)
+ persiantexligprocessor(replace, font)
+ end
+ n = getnext(n)
+ end
+end
+
+otfregister {
+ name = 'persiantexlig',
+ description = 'Persian TeX ligatures',
+ default = false,
+ manipulators = {
+ plug = function(tfmdata, _, value)
+ local characters = tfmdata.characters
+ for codepoint, ligatures in next, persiantexlig do
+ local char = characters[codepoint]
+ if char then
+ char.ligatures = ligatures
+ end
+ end
+ end,
+ },
+ processors = {
+ position=1,
+ plug = persiantexligprocessor,
+ },
+}
+
+local function persiantexlignonumprocessor(head, font)
+ local n = head
+ while n do
+ local c, id = is_char(n, font)
+ local persianpunct = persianpuncts[c]
+ if persianpunct then
+ setchar(n, persianpunct)
+ elseif id == disc_t then
+ local pre, post, replace = getdisc(n)
+ persiantexlignonumprocessor(pre, font)
+ persiantexlignonumprocessor(post, font)
+ persiantexlignonumprocessor(replace, font)
+ end
+ n = getnext(n)
+ end
+end
+
+otfregister {
+ name = 'persiantexlignonum',
+ description = 'Persian TeX ligatures without numbers',
+ default = false,
+ manipulators = {
+ plug = function(tfmdata, _, value)
+ local characters = tfmdata.characters
+ for codepoint, ligatures in next, persiantexlig do
+ local char = characters[codepoint]
+ if char then
+ char.ligatures = ligatures
+ end
+ end
+ end,
+ },
+ processors = {
+ position=1,
+ plug = persiantexlignonumprocessor,
+ },
+}
+% \end{macrocode}
+% \iffalse
+%</persian-tex-ligs.lua>
%<*rapport1-xetex-xepersian.def>
%\fi
% \section{File \texttt{rapport1-xetex-xepersian.def}}
@@ -3516,8 +3739,8 @@
% \section{File \texttt{xepersian.sty}}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\def\xepersian at version{26.2}
-\def\xepersiandate{2025/01/16}
+\def\xepersian at version{25.2.2}
+\def\xepersiandate{2025/02/02}
\def\xepersian at releasename{Persian Gate}
\def\xepersian at persian@@releasename{دربند پارس}
\newcommand*{\xepersianreleasename}{\if at RTL\xepersian at persian@@releasename\else\xepersian at releasename\fi}
@@ -3718,7 +3941,7 @@
\fi
\RequirePackage{fontspec}
\RequirePackage{xepersian-persiancal}
-\RequirePackage{xepersian-mathdigitspec}
+\RequirePackage{unicode-persianmath}
\RequirePackage[%
documentdirection=righttoleft,%
tabledirection=righttoleft,%
@@ -3728,24 +3951,6 @@
]{bidi}
\newcommand*{\xepersianversion}
{\ensuremath\xepersian at version}
-\newcommand*{\IfxepersianPackageVersionLater}[1]{%
- \ifdim\xepersian at version pt > #1 pt %
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi}
-\newcommand*{\IfxepersianPackageVersionBefore}[1]{%
- \ifdim\xepersian at version pt < #1 pt %
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi}
-\newcommand*{\IfxepersianPackageVersion}[1]{%
- \ifdim\xepersian at version pt = #1 pt %
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi}
\def\prq{«}
\def\plq{»}
\def\xepersian at cmds@temp#1{%
@@ -4539,7 +4744,7 @@
\newcommand*{\@xepersian at pdfcustomproperties}{%
This is the xepersian package, Version \xepersian at version\space (Release \xepersian at releasename),
- Released January 16, 2025.
+ Released February 2, 2025.
}
\newcommand\twocolumnstableofcontents{%
@@ -5881,13 +6086,13 @@
% \end{macrocode}
% \iffalse
%</xepersian-magazine.cls>
-%<*xepersian-mathdigitspec.sty>
+%<*unicode-persianmath.sty>
%\fi
-% \section{File \texttt{xepersian-mathdigitspec.sty}}
+% \section{File \texttt{unicode-persianmath.sty}}
% \begin{macrocode}
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{xepersian-mathdigitspec}
- [2025/01/08 v1.2.2 Unicode Persian math digits in XeLaTeX]
+\ProvidesPackage{unicode-persianmath}
+ [2025/02/02 v1.2.3 Unicode Persian math]
\def\new at mathgroup{\alloc at 8\mathgroup\chardef\@cclvi}
\let\newfam\new at mathgroup
\def\select at group#1#2#3#4{%
@@ -5962,7 +6167,7 @@
\tl_remove_once:Nn \@preamblecmds {\do#1}
}
\ExplSyntaxOff
-\newcommand\xepersian at PackageInfo[1]{\PackageInfo{xepersian-mathdigitspec}{#1}}
+\newcommand\xepersian at PackageInfo[1]{\PackageInfo{unicode-persianmath}{#1}}
\newcommand\SetMathCode[4]{%
\Umathcode#1="\mathchar at type#2 \csname sym#3\endcsname #4\relax}
\newcommand\SetMathCharDef[4]{%
@@ -5976,50 +6181,40 @@
%\int_const:Nn \c_one_int { 1 }
\NewDocumentCommand \new at mathbf { m } {
\orig_mathbf:n {
- \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } {
- \mathcode ##1 = \numexpr "100 * \symnew at mathbf@font at digits + ##1 \relax
- }
+ \SetPersianMathDigitsCode{\mathord}{persianoperatorsbf}
#1
}
}
\NewDocumentCommand \new at mathit { m } {
\orig_mathit:n {
- \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } {
- \mathcode ##1 = \numexpr "100 * \symnew at mathit@font at digits + ##1 \relax
- }
+ \SetPersianMathDigitsCode{\mathord}{persianoperatorsit}
#1
}
}
\NewDocumentCommand \new at mathrm { m } {
\orig_mathrm:n {
- \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } {
- \mathcode ##1 = \numexpr "100 * \symnew at mathrm@font at digits + ##1 \relax
- }
+ \SetPersianMathDigitsCode{\mathord}{persianoperators}
#1
}
}
\NewDocumentCommand \new at mathsf{ m } {
\orig_mathsf:n {
- \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } {
- \mathcode ##1 = \numexpr "100 * \symnew at mathsf@font at digits + ##1 \relax
- }
+ \SetPersianMathDigitsCode{\mathord}{persianoperatorssf}
#1
}
}
\NewDocumentCommand \new at mathtt{ m } {
\orig_mathtt:n {
- \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } {
- \mathcode ##1 = \numexpr "100 * \symnew at mathtt@font at digits + ##1 \relax
- }
+ \SetPersianMathDigitsCode{\mathord}{persianoperatorstt}
#1
}
}
-\cs_new:Npn \__xepersian_mathdigitspec_error:nxx { \msg_error:nnxx {xepersian-mathdigitspec} }
+\cs_new:Npn \__xepersian_mathdigitspec_error:nxx { \msg_error:nnxx {unicode-persianmath} }
\cs_new:Nn \__xepersian_mathdigitspec_msg_new:nnnn
{ \msg_new:nnxx {#1} {#2} { \tl_trim_spaces:n {#3} } { \tl_trim_spaces:n {#4} } }
\char_set_catcode_space:n {32}
-\__xepersian_mathdigitspec_msg_new:nnnn {xepersian-mathdigitspec} {char-not-exist}
+\__xepersian_mathdigitspec_msg_new:nnnn {unicode-persianmath} {char-not-exist}
{
The font "#1" does not contain U+#2.
}
@@ -6071,6 +6266,20 @@
06F9 , 066A , 066B
} { #1 }
}
+
+\NewDocumentCommand \SetPersianMathDigitsCode { m m }
+ {
+ \SetMathCode{`0}{#1}{#2}{`۰}
+ \SetMathCode{`1}{#1}{#2}{`۱}
+ \SetMathCode{`2}{#1}{#2}{`۲}
+ \SetMathCode{`3}{#1}{#2}{`۳}
+ \SetMathCode{`4}{#1}{#2}{`۴}
+ \SetMathCode{`5}{#1}{#2}{`۵}
+ \SetMathCode{`6}{#1}{#2}{`۶}
+ \SetMathCode{`7}{#1}{#2}{`۷}
+ \SetMathCode{`8}{#1}{#2}{`۸}
+ \SetMathCode{`9}{#1}{#2}{`۹}
+ }
\DeclareDocumentCommand \setmathdigitfont { O{} m O{} }
{
@@ -6079,30 +6288,21 @@
\cs_new:Nn \__xepersian_main_setmathdigitfont:nn
{
\let\glb at currsize\relax
- \fontspec_set_family:Nnn \g__xepersian_mathdigitsfamily_tl {Ligatures=PersianTeX,#1} {#2}
+ \fontspec_set_family:Nnn \g__xepersian_mathdigitsfamily_tl {#1} {#2}
\__xepersian_setmathdigitfont_hook:nn {#1} {#2}
\xepersian at PackageInfo{Defining the default Persian math digits font as '#2'}
- \DeclareSymbolFont{OPERATORS} {\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl} {m}{n}
- \DeclareSymbolFont{new at mathbf@font at digits}{\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl}{bx}{n}
- \DeclareSymbolFont{new at mathit@font at digits}{\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl}{m}{it}
- \DeclareSymbolFont{new at mathrm@font at digits}{\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl}{m}{n}
+ \DeclareSymbolFont{persianoperators} {\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl} {m}{n}
+ \DeclareSymbolFont{persianoperatorsbf}{\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl}{bx}{n}
+ \DeclareSymbolFont{persianoperatorsit}{\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl}{m}{it}
\__xepersian_mathdigitspec_char_not_exist_error:n { #2 }
\def\persianmathdigits{%
- \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}
- \SetMathCode{`\%}{\mathbin}{OPERATORS}{`٪}
- \SetMathCharDef{\persiandecimalseparator}{\mathord}{OPERATORS}{"066B}
- \tl_set_eq:NN \mathbf \new at mathbf
- \tl_set_eq:NN \mathit \new at mathit
- \tl_set_eq:NN \mathrm \new at mathrm}
+ \SetPersianMathDigitsCode{\mathalpha}{persianoperators}
+ \SetMathCode{`\%}{\mathord}{persianoperators}{`٪}
+ \SetMathCharDef{\persiandecimalseparator}{\mathord}{persianoperators}{`٫}
+ \tl_set_eq:NN \mathbf \new at mathbf
+ \tl_set_eq:NN \mathit \new at mathit
+ \tl_set_eq:NN \mathrm \new at mathrm
+ }
}
\cs_set_eq:NN \__xepersian_setmathdigitfont_hook:nn \use_none:nn
@@ -6113,9 +6313,9 @@
}
\cs_new:Nn \__xepersian_main_setmathsfdigitfont:nn
{
- \fontspec_set_family:Nnn \g__xepersian_mathsfdigitfamily_tl {Ligatures=PersianTeX,#1} {#2}
+ \fontspec_set_family:Nnn \g__xepersian_mathsfdigitfamily_tl {#1} {#2}
\__xepersian_setmathsfdigitfont_hook:nn {#1} {#2}
- \DeclareSymbolFont{new at mathsf@font at digits}{\g_fontspec_encoding_tl}{\g__xepersian_mathsfdigitfamily_tl}{m}{n}
+ \DeclareSymbolFont{persianoperatorssf}{\g_fontspec_encoding_tl}{\g__xepersian_mathsfdigitfamily_tl}{m}{n}
\__xepersian_mathdigitspec_char_not_exist_error:n { #2 }
\def\persianmathsfdigits{\tl_set_eq:NN \mathsf \new at mathsf}
}
@@ -6128,9 +6328,9 @@
}
\cs_new:Nn \__xepersian_main_setmathttdigitfont:nn
{
- \fontspec_set_family:Nnn \g__xepersian_mathttdigitfamily_tl {Ligatures=PersianTeX,#1} {#2}
+ \fontspec_set_family:Nnn \g__xepersian_mathttdigitfamily_tl {#1} {#2}
\__xepersian_setmathttdigitfont_hook:nn {#1} {#2}
- \DeclareSymbolFont{new at mathtt@font at digits}{\g_fontspec_encoding_tl}{\g__xepersian_mathttdigitfamily_tl}{m}{n}
+ \DeclareSymbolFont{persianoperatorstt}{\g_fontspec_encoding_tl}{\g__xepersian_mathttdigitfamily_tl}{m}{n}
\__xepersian_mathdigitspec_char_not_exist_error:n { #2 }
\def\persianmathttdigits{\tl_set_eq:NN \mathtt \new at mathtt}
}
@@ -6223,7 +6423,7 @@
\int_step_inline:nnnn { `0 } { \c_one_int } { `9 } {
\SetMathCode{##1}{\mathalpha}{operators}{##1}
}
- \SetMathCode{`\%}{\mathbin}{operators}{`\%}
+ \SetMathCode{`\%}{\mathord}{operators}{`\%}
\tl_set_eq:NN \MathDecimalSeparator \DefaultMathDecimalSeparator
\tl_set_eq:NN \mathbf \orig_mathbf:n
\tl_set_eq:NN \mathit \orig_mathit:n
@@ -6233,10 +6433,8 @@
}
\NewDocumentCommand \SwitchToPersianMathDigits { } {
- \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } {
- \SetMathCode{##1}{\mathalpha}{OPERATORS}{##1}
- }
- \SetMathCode{`\%}{\mathbin}{OPERATORS}{`٪}
+ \SetPersianMathDigitsCode{\mathalpha}{persianoperators}
+ \SetMathCode{`\%}{\mathord}{persianoperators}{`٪}
\tl_set_eq:NN \MathDecimalSeparator \orig_MathDecimalSeparator
\tl_set_eq:NN \mathbf \new at mathbf
\tl_set_eq:NN \mathit \new at mathit
@@ -6247,7 +6445,7 @@
\ExplSyntaxOff
% \end{macrocode}
% \iffalse
-%</xepersian-mathdigitspec.sty>
+%</unicode-persianmath.sty>
%<*xepersian-multiplechoice.sty>
%\fi
% \section{File \texttt{xepersian-multiplechoice.sty}}
Modified: trunk/Master/texmf-dist/source/xelatex/xepersian/xepersian.ins
===================================================================
--- trunk/Master/texmf-dist/source/xelatex/xepersian/xepersian.ins 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/source/xelatex/xepersian/xepersian.ins 2025-02-02 20:55:11 UTC (rev 73697)
@@ -95,6 +95,12 @@
\usepostamble\mapping at postamble
\generate{\file{persian-tex-text.map}{\from{\jobname.dtx}{persian-tex-text.map}}}
\generate{\file{persian-tex-text-nonumbers.map}{\from{\jobname.dtx}{persian-tex-text-nonumbers.map}}}
+\def\MetaPrefix{--}
+\def\mapping at postamble{%
+ \MetaPrefix ^^J%
+ \MetaPrefix\space End of file `\outFileName'.%
+}
+\generate{\file{persian-tex-ligs.lua}{\from{\jobname.dtx}{persian-tex-ligs.lua}}}
\let\MetaPrefix\DoubleperCent
\usepostamble\org at postamble
\generate{\file{rapport1-xetex-xepersian.def}{\from{\jobname.dtx}{table,rapport1-xetex-xepersian.def}}}
@@ -110,7 +116,7 @@
\generate{\file{varioref-xetex-xepersian.def}{\from{\jobname.dtx}{table,varioref-xetex-xepersian.def}}}
\generate{\file{xepersian.sty}{\from{\jobname.dtx}{table,xepersian.sty}}}
\generate{\file{xepersian-magazine.cls}{\from{\jobname.dtx}{table,xepersian-magazine.cls}}}
-\generate{\file{xepersian-mathdigitspec.sty}{\from{\jobname.dtx}{table,xepersian-mathdigitspec.sty}}}
+\generate{\file{unicode-persianmath.sty}{\from{\jobname.dtx}{table,unicode-persianmath.sty}}}
\generate{\file{xepersian-multiplechoice.sty}{\from{\jobname.dtx}{table,xepersian-multiplechoice.sty}}}
\generate{\file{xepersian-persiancal.sty}{\from{\jobname.dtx}{table,xepersian-persiancal.sty}}}
\endbatchfile
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/algorithm-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/algorithm-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/algorithm-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/algorithmic-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/algorithmic-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/algorithmic-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/amsart-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/amsart-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/amsart-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/amsbook-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/amsbook-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/amsbook-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/appendix-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/appendix-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/appendix-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/article-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/article-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/article-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/artikel1-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/artikel1-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/artikel1-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/artikel2-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/artikel2-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/artikel2-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/artikel3-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/artikel3-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/artikel3-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/backref-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/backref-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/backref-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/beamer-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/beamer-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/beamer-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/beamerbasetranslator-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/beamerbasetranslator-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/beamerbasetranslator-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/bidimoderncv-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/bidimoderncv-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/bidimoderncv-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/bidituftesidenote-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/bidituftesidenote-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/bidituftesidenote-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/boek-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/boek-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/boek-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/boek3-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/boek3-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/boek3-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/book-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/book-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/book-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/bookest-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/bookest-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/bookest-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/breqn-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/breqn-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/breqn-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/color-localize-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/color-localize-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/color-localize-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/enumerate-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/enumerate-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/enumerate-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/enumitem-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/enumitem-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/enumitem-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/extarticle-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/extarticle-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/extarticle-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/extbook-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/extbook-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/extbook-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/extrafootnotefeatures-xetex-bidi-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/extrafootnotefeatures-xetex-bidi-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/extrafootnotefeatures-xetex-bidi-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/extreport-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/extreport-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/extreport-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/fancyref-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/fancyref-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/fancyref-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/footnote-xetex-bidi-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/footnote-xetex-bidi-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/footnote-xetex-bidi-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/framed-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/framed-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/framed-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/glossaries-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/glossaries-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/glossaries-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/hyperref-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/hyperref-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/hyperref-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/imsproc-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/imsproc-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/imsproc-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/kashida-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/kashida-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/kashida-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/latex-localize-commands-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/latex-localize-commands-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/latex-localize-commands-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/latex-localize-environments-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/latex-localize-environments-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/latex-localize-environments-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/latex-localize-messages-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/latex-localize-messages-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/latex-localize-messages-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/latex-localize-misc-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/latex-localize-misc-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/latex-localize-misc-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/listings-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/listings-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/listings-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/localize-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/localize-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/localize-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/memoir-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/memoir-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/memoir-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/minitoc-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/minitoc-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/minitoc-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/natbib-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/natbib-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/natbib-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/packages-localize-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/packages-localize-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/packages-localize-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/rapport1-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/rapport1-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/rapport1-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/rapport3-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/rapport3-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/rapport3-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/refrep-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/refrep-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/refrep-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/report-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/report-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/report-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/scrartcl-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/scrartcl-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/scrartcl-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/scrbook-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/scrbook-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/scrbook-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/scrreprt-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/scrreprt-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/scrreprt-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/soul-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/soul-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/soul-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/tkz-linknodes-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/tkz-linknodes-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/tkz-linknodes-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/tocloft-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/tocloft-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/tocloft-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Added: trunk/Master/texmf-dist/tex/xelatex/xepersian/unicode-persianmath.sty
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/unicode-persianmath.sty (rev 0)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/unicode-persianmath.sty 2025-02-02 20:55:11 UTC (rev 73697)
@@ -0,0 +1,390 @@
+%%
+%% This is file `unicode-persianmath.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% xepersian.dtx (with options: `table,unicode-persianmath.sty')
+%%
+%% __________________________________________________
+%% Vafa Khalighi
+%%
+%% Copyright (c) 2008--2025 Vafa Khalighi
+%% Copyright (c) 2018--2020 bidi-tex GitHub Organization
+%%
+%% 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 “author-maintained” (as per LPPL maintenance status)
+%% by Vafa Khalighi.
+%%
+%%
+%% \CheckSum{10792}
+%% \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
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{unicode-persianmath}
+ [2025/02/02 v1.2.3 Unicode Persian math]
+\def\new at mathgroup{\alloc at 8\mathgroup\chardef\@cclvi}
+\let\newfam\new at mathgroup
+\def\select at group#1#2#3#4{%
+ \ifx\math at bgroup\bgroup\else\relax\expandafter\@firstofone\fi
+ {%
+ \ifmmode
+ \ifnum\csname c at mv@\math at version\endcsname<\@cclvi
+ \begingroup
+ \escapechar\m at ne
+ \getanddefine at fonts{\csname c at mv@\math at version\endcsname}#3%
+ \globaldefs\@ne \math at fonts
+ \endgroup
+ \init at restore@version
+ \xdef#1{\noexpand\use at mathgroup\noexpand#2%
+ {\number\csname c at mv@\math at version\endcsname}}%
+ \global\advance\csname c at mv@\math at version\endcsname\@ne
+ \else
+ \let#1\relax
+ \@latex at error{Too many math alphabets used in
+ version \math at version}%
+ \@eha
+ \fi
+ \else \expandafter\non at alpherr\fi
+ #1{#4}%
+ }%
+}
+\def\document at select@group#1#2#3#4{%
+ \ifx\math at bgroup\bgroup\else\relax\expandafter\@firstofone\fi
+ {%
+ \ifmmode
+ \ifnum\csname c at mv@\math at version\endcsname<\@cclvi
+ \begingroup
+ \escapechar\m at ne
+ \getanddefine at fonts{\csname c at mv@\math at version\endcsname}#3%
+ \globaldefs\@ne \math at fonts
+ \endgroup
+ \expandafter\extract at alph@from at version
+ \csname mv@\math at version\expandafter\endcsname
+ \expandafter{\number\csname
+ c at mv@\math at version\endcsname}%
+ #1%
+ \global\advance\csname c at mv@\math at version\endcsname\@ne
+ \else
+ \let#1\relax
+ \@latex at error{Too many math alphabets used
+ in version \math at version}%
+ \@eha
+ \fi
+ \else \expandafter\non at alpherr\fi
+ #1{#4}%
+ }%
+}
+\ExplSyntaxOn
+\bool_set_false:N \g__fontspec_math_bool
+\tl_map_inline:nn
+ {
+ \new at mathgroup\cdp at list\cdp at elt\DeclareMathSizes
+ \@DeclareMathSizes\newmathalphabet\newmathalphabet@@\newmathalphabet@@@
+ \DeclareMathVersion\define at mathalphabet\define at mathgroup\addtoversion
+ \version at list\version at elt\alpha at list\alpha at elt
+ \restore at mathversion\init at restore@version\dorestore at version\process at table
+ \new at mathversion\DeclareSymbolFont\group at list\group at elt
+ \new at symbolfont\SetSymbolFont\SetSymbolFont@\get at cdp
+ \DeclareMathAlphabet\new at mathalphabet\SetMathAlphabet\SetMathAlphabet@
+ \DeclareMathAccent\set at mathaccent\DeclareMathSymbol\set at mathchar
+ \set at mathsymbol\DeclareMathDelimiter\@xxDeclareMathDelimiter
+ \@DeclareMathDelimiter\@xDeclareMathDelimiter\set at mathdelimiter
+ \set@@mathdelimiter\DeclareMathRadical\mathchar at type
+ \DeclareSymbolFontAlphabet\DeclareSymbolFontAlphabet@
+ }
+ {
+ \tl_remove_once:Nn \@preamblecmds {\do#1}
+ }
+\ExplSyntaxOff
+\newcommand\xepersian at PackageInfo[1]{\PackageInfo{unicode-persianmath}{#1}}
+\newcommand\SetMathCode[4]{%
+ \Umathcode#1="\mathchar at type#2 \csname sym#3\endcsname #4\relax}
+\newcommand\SetMathCharDef[4]{%
+ \Umathchardef#1="\mathchar at 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 at mathbf { m } {
+ \orig_mathbf:n {
+ \SetPersianMathDigitsCode{\mathord}{persianoperatorsbf}
+ #1
+ }
+}
+\NewDocumentCommand \new at mathit { m } {
+ \orig_mathit:n {
+ \SetPersianMathDigitsCode{\mathord}{persianoperatorsit}
+ #1
+ }
+}
+\NewDocumentCommand \new at mathrm { m } {
+ \orig_mathrm:n {
+ \SetPersianMathDigitsCode{\mathord}{persianoperators}
+ #1
+ }
+}
+\NewDocumentCommand \new at mathsf{ m } {
+ \orig_mathsf:n {
+ \SetPersianMathDigitsCode{\mathord}{persianoperatorssf}
+ #1
+ }
+}
+\NewDocumentCommand \new at mathtt{ m } {
+ \orig_mathtt:n {
+ \SetPersianMathDigitsCode{\mathord}{persianoperatorstt}
+ #1
+ }
+}
+
+\cs_new:Npn \__xepersian_mathdigitspec_error:nxx { \msg_error:nnxx {unicode-persianmath} }
+\cs_new:Nn \__xepersian_mathdigitspec_msg_new:nnnn
+ { \msg_new:nnxx {#1} {#2} { \tl_trim_spaces:n {#3} } { \tl_trim_spaces:n {#4} } }
+\char_set_catcode_space:n {32}
+\__xepersian_mathdigitspec_msg_new:nnnn {unicode-persianmath} {char-not-exist}
+ {
+ The font "#1" does not contain U+#2.
+ }
+ {
+ Select another font and rerun xelatex.
+ }
+\char_set_catcode_ignore:n {32}
+
+\prg_new_conditional:Nnn \__xepersian_mathdigitspec_primitive_font_char_if_exist:n {p,TF,T,F}
+ {
+ \tex_iffontchar:D \l_fontspec_font "#1 \scan_stop:
+ \prg_return_true:
+ \else:
+ \prg_return_false:
+ \fi:
+ }
+
+\clist_new:N \l_xepersian_mathdigitspec_char_clist
+
+\cs_new:Nn \__xepersian_mathdigitspec_char_set_not_exist_error:nn
+ {
+ \clist_set:Nn \l_xepersian_mathdigitspec_char_clist { #1 }
+ \clist_map_inline:Nn \l_xepersian_mathdigitspec_char_clist {
+ \__xepersian_mathdigitspec_primitive_font_char_if_exist:nF { ##1 }{ \__xepersian_mathdigitspec_error:nxx {char-not-exist} { #2 } { ##1 } }
+ }
+ }
+
+\cs_new:Nn \__xepersian_mathdigitspec_char_prepend_not_exist_error:nn
+ {
+ \clist_put_left:Nn \l_xepersian_mathdigitspec_char_clist { #1 }
+ \clist_map_inline:Nn \l_xepersian_mathdigitspec_char_clist {
+ \__xepersian_mathdigitspec_primitive_font_char_if_exist:nF { ##1 }{ \__xepersian_mathdigitspec_error:nxx {char-not-exist} { #2 } { ##1 } }
+ }
+ }
+
+\cs_new:Nn \__xepersian_mathdigitspec_char_append_not_exist_error:nn
+ {
+ \clist_put_right:Nn \l_xepersian_mathdigitspec_char_clist { #1 }
+ \clist_map_inline:Nn \l_xepersian_mathdigitspec_char_clist {
+ \__xepersian_mathdigitspec_primitive_font_char_if_exist:nF { ##1 }{ \__xepersian_mathdigitspec_error:nxx {char-not-exist} { #2 } { ##1 } }
+ }
+ }
+
+\cs_new:Nn \__xepersian_mathdigitspec_char_not_exist_error:n
+ {
+ \__xepersian_mathdigitspec_char_set_not_exist_error:nn {
+ 06F0 , 06F1 , 06F2 , 06F3 , 06F4 , 06F5 , 06F6 , 06F7 , 06F8 ,
+ 06F9 , 066A , 066B
+ } { #1 }
+ }
+
+\NewDocumentCommand \SetPersianMathDigitsCode { m m }
+ {
+ \SetMathCode{`0}{#1}{#2}{`۰}
+ \SetMathCode{`1}{#1}{#2}{`۱}
+ \SetMathCode{`2}{#1}{#2}{`۲}
+ \SetMathCode{`3}{#1}{#2}{`۳}
+ \SetMathCode{`4}{#1}{#2}{`۴}
+ \SetMathCode{`5}{#1}{#2}{`۵}
+ \SetMathCode{`6}{#1}{#2}{`۶}
+ \SetMathCode{`7}{#1}{#2}{`۷}
+ \SetMathCode{`8}{#1}{#2}{`۸}
+ \SetMathCode{`9}{#1}{#2}{`۹}
+ }
+
+\DeclareDocumentCommand \setmathdigitfont { O{} m O{} }
+ {
+ \__xepersian_main_setmathdigitfont:nn {#1,#3} {#2}
+ }
+\cs_new:Nn \__xepersian_main_setmathdigitfont:nn
+ {
+ \let\glb at currsize\relax
+ \fontspec_set_family:Nnn \g__xepersian_mathdigitsfamily_tl {#1} {#2}
+ \__xepersian_setmathdigitfont_hook:nn {#1} {#2}
+ \xepersian at PackageInfo{Defining the default Persian math digits font as '#2'}
+ \DeclareSymbolFont{persianoperators} {\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl} {m}{n}
+ \DeclareSymbolFont{persianoperatorsbf}{\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl}{bx}{n}
+ \DeclareSymbolFont{persianoperatorsit}{\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl}{m}{it}
+ \__xepersian_mathdigitspec_char_not_exist_error:n { #2 }
+ \def\persianmathdigits{%
+ \SetPersianMathDigitsCode{\mathalpha}{persianoperators}
+ \SetMathCode{`\%}{\mathord}{persianoperators}{`٪}
+ \SetMathCharDef{\persiandecimalseparator}{\mathord}{persianoperators}{`٫}
+ \tl_set_eq:NN \mathbf \new at mathbf
+ \tl_set_eq:NN \mathit \new at mathit
+ \tl_set_eq:NN \mathrm \new at mathrm
+ }
+ }
+
+\cs_set_eq:NN \__xepersian_setmathdigitfont_hook:nn \use_none:nn
+
+\DeclareDocumentCommand \setmathsfdigitfont { O{} m O{} }
+ {
+ \__xepersian_main_setmathsfdigitfont:nn {#1,#3} {#2}
+ }
+\cs_new:Nn \__xepersian_main_setmathsfdigitfont:nn
+ {
+ \fontspec_set_family:Nnn \g__xepersian_mathsfdigitfamily_tl {#1} {#2}
+ \__xepersian_setmathsfdigitfont_hook:nn {#1} {#2}
+ \DeclareSymbolFont{persianoperatorssf}{\g_fontspec_encoding_tl}{\g__xepersian_mathsfdigitfamily_tl}{m}{n}
+ \__xepersian_mathdigitspec_char_not_exist_error:n { #2 }
+ \def\persianmathsfdigits{\tl_set_eq:NN \mathsf \new at mathsf}
+ }
+
+\cs_set_eq:NN \__xepersian_setmathsfdigitfont_hook:nn \use_none:nn
+
+\DeclareDocumentCommand \setmathttdigitfont { O{} m O{} }
+ {
+ \__xepersian_main_setmathttdigitfont:nn {#1,#3} {#2}
+ }
+\cs_new:Nn \__xepersian_main_setmathttdigitfont:nn
+ {
+ \fontspec_set_family:Nnn \g__xepersian_mathttdigitfamily_tl {#1} {#2}
+ \__xepersian_setmathttdigitfont_hook:nn {#1} {#2}
+ \DeclareSymbolFont{persianoperatorstt}{\g_fontspec_encoding_tl}{\g__xepersian_mathttdigitfamily_tl}{m}{n}
+ \__xepersian_mathdigitspec_char_not_exist_error:n { #2 }
+ \def\persianmathttdigits{\tl_set_eq:NN \mathtt \new at mathtt}
+ }
+
+\cs_set_eq:NN \__xepersian_setmathttdigitfont_hook:nn \use_none:nn
+
+\ExplSyntaxOff
+\mathchardef\decimalseparator at point="013A
+\bgroup
+ \uccode`\~`\.%
+ \uppercase{%
+\egroup
+ \def~}{\begingroup\obeyspaces\futurelet\@let at decimalsep@token\decimalseparator at pointcheck}
+\def\decimalseparator at pointcheck{\decimalseparator at check\MathDecimalSeparator\decimalseparator at point}
+\def\decimalseparator at check#1#2{%
+ \ifx\@let at decimalsep@token1\endgroup#1\else
+ \ifx\@let at decimalsep@token2\endgroup#1\else
+ \ifx\@let at decimalsep@token3\endgroup#1\else
+ \ifx\@let at decimalsep@token4\endgroup#1\else
+ \ifx\@let at decimalsep@token5\endgroup#1\else
+ \ifx\@let at decimalsep@token6\endgroup#1\else
+ \ifx\@let at decimalsep@token7\endgroup#1\else
+ \ifx\@let at decimalsep@token8\endgroup#1\else
+ \ifx\@let at decimalsep@token9\endgroup#1\else
+ \ifx\@let at decimalsep@token0\endgroup#1\else
+ \ifx\@let at decimalsep@token\dot\endgroup#1\else
+ \ifx\@let at decimalsep@token\overline\endgroup#1\else
+ \endgroup#2%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi}
+\AtBeginDocument{\mathcode`.="8000\relax}
+\def\MathDecimalSeparator{\ifx\persiandecimalseparator\undefined .\else \persiandecimalseparator\fi}
+\def\DefaultMathDecimalSeparator{.}
+\def\DefaultInlineMathDigits{\def\SetInlineMathDigits{}}
+\def\DefaultDisplayMathDigits{\def\SetDisplayMathDigits{}}
+\def\DefaultMathDigits{%
+ \DefaultInlineMathDigits%
+ \DefaultDisplayMathDigits%
+}
+\def\PersianInlineMathDigits{\def\SetInlineMathDigits{%
+\ifx\persianmathdigits\undefined\else\persianmathdigits\fi%
+\ifx\persianmathsfdigits\undefined\else\persianmathsfdigits\fi%
+\ifx\persianmathttdigits\undefined\else\persianmathttdigits\fi}}
+\def\PersianDisplayMathDigits{\def\SetDisplayMathDigits{%
+\ifx\persianmathdigits\undefined\else\persianmathdigits\fi%
+\ifx\persianmathsfdigits\undefined\else\persianmathsfdigits\fi%
+\ifx\persianmathttdigits\undefined\else\persianmathttdigits\fi}}
+\def\PersianMathDigits{%
+ \PersianInlineMathDigits%
+ \PersianDisplayMathDigits%
+}
+\def\AutoInlineMathDigits{\def\SetInlineMathDigits{%
+\ifx\persianmathdigits\undefined\else\if at nonlatin\persianmathdigits\fi\fi%
+\ifx\persianmathsfdigits\undefined\else\if at nonlatin\persianmathsfdigits\fi\fi%
+\ifx\persianmathttdigits\undefined\else\if at nonlatin\persianmathttdigits\fi\fi}}
+\def\AutoDisplayMathDigits{\def\SetDisplayMathDigits{%
+\ifx\persianmathdigits\undefined\else\if at nonlatin\persianmathdigits\fi\fi%
+\ifx\persianmathsfdigits\undefined\else\if at nonlatin\persianmathsfdigits\fi\fi%
+\ifx\persianmathttdigits\undefined\else\if at nonlatin\persianmathttdigits\fi\fi}}
+\def\AutoMathDigits{%
+ \AutoInlineMathDigits%
+ \AutoDisplayMathDigits%
+}
+\AutoMathDigits
+\everymath\expandafter{\the\everymath\SetInlineMathDigits%
+ \let\SetDisplayMathDigits\relax%
+}
+\everydisplay\expandafter{%
+ \the\everydisplay\SetDisplayMathDigits%
+ \let\SetInlineMathDigits\relax%
+}
+
+\ExplSyntaxOn
+\cs_new_eq:NN \orig_MathDecimalSeparator \MathDecimalSeparator
+
+\NewDocumentCommand \SwitchToDefaultMathDigits { } {
+ \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } {
+ \SetMathCode{##1}{\mathalpha}{operators}{##1}
+ }
+ \SetMathCode{`\%}{\mathord}{operators}{`\%}
+ \tl_set_eq:NN \MathDecimalSeparator \DefaultMathDecimalSeparator
+ \tl_set_eq:NN \mathbf \orig_mathbf:n
+ \tl_set_eq:NN \mathit \orig_mathit:n
+ \tl_set_eq:NN \mathrm \orig_mathrm:n
+ \tl_set_eq:NN \mathsf \orig_mathsf:n
+ \tl_set_eq:NN \mathtt \orig_mathtt:n
+}
+
+\NewDocumentCommand \SwitchToPersianMathDigits { } {
+ \SetPersianMathDigitsCode{\mathalpha}{persianoperators}
+ \SetMathCode{`\%}{\mathord}{persianoperators}{`٪}
+ \tl_set_eq:NN \MathDecimalSeparator \orig_MathDecimalSeparator
+ \tl_set_eq:NN \mathbf \new at mathbf
+ \tl_set_eq:NN \mathit \new at mathit
+ \tl_set_eq:NN \mathrm \new at mathrm
+ \tl_set_eq:NN \mathsf \new at mathsf
+ \tl_set_eq:NN \mathtt \new at mathtt
+}
+\ExplSyntaxOff
+\endinput
+%%
+%% End of file `unicode-persianmath.sty'.
Property changes on: trunk/Master/texmf-dist/tex/xelatex/xepersian/unicode-persianmath.sty
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/url-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/url-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/url-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/varioref-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/varioref-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/varioref-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-localize-commands-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-localize-commands-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-localize-commands-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-localize-environments-xetex-xepersian.def
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-localize-environments-xetex-xepersian.def 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-localize-environments-xetex-xepersian.def 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-magazine.cls
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-magazine.cls 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-magazine.cls 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Deleted: trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-mathdigitspec.sty
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-mathdigitspec.sty 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-mathdigitspec.sty 2025-02-02 20:55:11 UTC (rev 73697)
@@ -1,397 +0,0 @@
-%%
-%% This is file `xepersian-mathdigitspec.sty',
-%% generated with the docstrip utility.
-%%
-%% The original source files were:
-%%
-%% xepersian.dtx (with options: `table,xepersian-mathdigitspec.sty')
-%%
-%% __________________________________________________
-%% Vafa Khalighi
-%%
-%% Copyright (c) 2008--2025 Vafa Khalighi
-%% Copyright (c) 2018--2020 bidi-tex GitHub Organization
-%%
-%% 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 “author-maintained” (as per LPPL maintenance status)
-%% by Vafa Khalighi.
-%%
-%%
-%% \CheckSum{10853}
-%% \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
-%% Digits \0\1\2\3\4\5\6\7\8\9
-%% Exclamation \! Double quote \" Hash (number) \#
-%% Dollar \$ Percent \% Ampersand \&
-%% Acute accent \' Left paren \( Right paren \)
-%% Asterisk \* Plus \+ Comma \,
-%% Minus \- Point \. Solidus \/
-%% Colon \: Semicolon \; Less than \<
-%% Equals \= Greater than \> Question mark \?
-%% Commercial at \@ Left bracket \[ Backslash \\
-%% Right bracket \] Circumflex \^ Underscore \_
-%% Grave accent \` Left brace \{ Vertical bar \|
-%% Right brace \} Tilde \~}
-%%
-\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{xepersian-mathdigitspec}
- [2025/01/08 v1.2.2 Unicode Persian math digits in XeLaTeX]
-\def\new at mathgroup{\alloc at 8\mathgroup\chardef\@cclvi}
-\let\newfam\new at mathgroup
-\def\select at group#1#2#3#4{%
- \ifx\math at bgroup\bgroup\else\relax\expandafter\@firstofone\fi
- {%
- \ifmmode
- \ifnum\csname c at mv@\math at version\endcsname<\@cclvi
- \begingroup
- \escapechar\m at ne
- \getanddefine at fonts{\csname c at mv@\math at version\endcsname}#3%
- \globaldefs\@ne \math at fonts
- \endgroup
- \init at restore@version
- \xdef#1{\noexpand\use at mathgroup\noexpand#2%
- {\number\csname c at mv@\math at version\endcsname}}%
- \global\advance\csname c at mv@\math at version\endcsname\@ne
- \else
- \let#1\relax
- \@latex at error{Too many math alphabets used in
- version \math at version}%
- \@eha
- \fi
- \else \expandafter\non at alpherr\fi
- #1{#4}%
- }%
-}
-\def\document at select@group#1#2#3#4{%
- \ifx\math at bgroup\bgroup\else\relax\expandafter\@firstofone\fi
- {%
- \ifmmode
- \ifnum\csname c at mv@\math at version\endcsname<\@cclvi
- \begingroup
- \escapechar\m at ne
- \getanddefine at fonts{\csname c at mv@\math at version\endcsname}#3%
- \globaldefs\@ne \math at fonts
- \endgroup
- \expandafter\extract at alph@from at version
- \csname mv@\math at version\expandafter\endcsname
- \expandafter{\number\csname
- c at mv@\math at version\endcsname}%
- #1%
- \global\advance\csname c at mv@\math at version\endcsname\@ne
- \else
- \let#1\relax
- \@latex at error{Too many math alphabets used
- in version \math at version}%
- \@eha
- \fi
- \else \expandafter\non at alpherr\fi
- #1{#4}%
- }%
-}
-\ExplSyntaxOn
-\bool_set_false:N \g__fontspec_math_bool
-\tl_map_inline:nn
- {
- \new at mathgroup\cdp at list\cdp at elt\DeclareMathSizes
- \@DeclareMathSizes\newmathalphabet\newmathalphabet@@\newmathalphabet@@@
- \DeclareMathVersion\define at mathalphabet\define at mathgroup\addtoversion
- \version at list\version at elt\alpha at list\alpha at elt
- \restore at mathversion\init at restore@version\dorestore at version\process at table
- \new at mathversion\DeclareSymbolFont\group at list\group at elt
- \new at symbolfont\SetSymbolFont\SetSymbolFont@\get at cdp
- \DeclareMathAlphabet\new at mathalphabet\SetMathAlphabet\SetMathAlphabet@
- \DeclareMathAccent\set at mathaccent\DeclareMathSymbol\set at mathchar
- \set at mathsymbol\DeclareMathDelimiter\@xxDeclareMathDelimiter
- \@DeclareMathDelimiter\@xDeclareMathDelimiter\set at mathdelimiter
- \set@@mathdelimiter\DeclareMathRadical\mathchar at type
- \DeclareSymbolFontAlphabet\DeclareSymbolFontAlphabet@
- }
- {
- \tl_remove_once:Nn \@preamblecmds {\do#1}
- }
-\ExplSyntaxOff
-\newcommand\xepersian at PackageInfo[1]{\PackageInfo{xepersian-mathdigitspec}{#1}}
-\newcommand\SetMathCode[4]{%
- \Umathcode#1="\mathchar at type#2 \csname sym#3\endcsname #4\relax}
-\newcommand\SetMathCharDef[4]{%
- \Umathchardef#1="\mathchar at 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 at mathbf { m } {
- \orig_mathbf:n {
- \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } {
- \mathcode ##1 = \numexpr "100 * \symnew at mathbf@font at digits + ##1 \relax
- }
- #1
- }
-}
-\NewDocumentCommand \new at mathit { m } {
- \orig_mathit:n {
- \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } {
- \mathcode ##1 = \numexpr "100 * \symnew at mathit@font at digits + ##1 \relax
- }
- #1
- }
-}
-\NewDocumentCommand \new at mathrm { m } {
- \orig_mathrm:n {
- \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } {
- \mathcode ##1 = \numexpr "100 * \symnew at mathrm@font at digits + ##1 \relax
- }
- #1
- }
-}
-\NewDocumentCommand \new at mathsf{ m } {
- \orig_mathsf:n {
- \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } {
- \mathcode ##1 = \numexpr "100 * \symnew at mathsf@font at digits + ##1 \relax
- }
- #1
- }
-}
-\NewDocumentCommand \new at mathtt{ m } {
- \orig_mathtt:n {
- \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } {
- \mathcode ##1 = \numexpr "100 * \symnew at mathtt@font at digits + ##1 \relax
- }
- #1
- }
-}
-
-\cs_new:Npn \__xepersian_mathdigitspec_error:nxx { \msg_error:nnxx {xepersian-mathdigitspec} }
-\cs_new:Nn \__xepersian_mathdigitspec_msg_new:nnnn
- { \msg_new:nnxx {#1} {#2} { \tl_trim_spaces:n {#3} } { \tl_trim_spaces:n {#4} } }
-\char_set_catcode_space:n {32}
-\__xepersian_mathdigitspec_msg_new:nnnn {xepersian-mathdigitspec} {char-not-exist}
- {
- The font "#1" does not contain U+#2.
- }
- {
- Select another font and rerun xelatex.
- }
-\char_set_catcode_ignore:n {32}
-
-\prg_new_conditional:Nnn \__xepersian_mathdigitspec_primitive_font_char_if_exist:n {p,TF,T,F}
- {
- \tex_iffontchar:D \l_fontspec_font "#1 \scan_stop:
- \prg_return_true:
- \else:
- \prg_return_false:
- \fi:
- }
-
-\clist_new:N \l_xepersian_mathdigitspec_char_clist
-
-\cs_new:Nn \__xepersian_mathdigitspec_char_set_not_exist_error:nn
- {
- \clist_set:Nn \l_xepersian_mathdigitspec_char_clist { #1 }
- \clist_map_inline:Nn \l_xepersian_mathdigitspec_char_clist {
- \__xepersian_mathdigitspec_primitive_font_char_if_exist:nF { ##1 }{ \__xepersian_mathdigitspec_error:nxx {char-not-exist} { #2 } { ##1 } }
- }
- }
-
-\cs_new:Nn \__xepersian_mathdigitspec_char_prepend_not_exist_error:nn
- {
- \clist_put_left:Nn \l_xepersian_mathdigitspec_char_clist { #1 }
- \clist_map_inline:Nn \l_xepersian_mathdigitspec_char_clist {
- \__xepersian_mathdigitspec_primitive_font_char_if_exist:nF { ##1 }{ \__xepersian_mathdigitspec_error:nxx {char-not-exist} { #2 } { ##1 } }
- }
- }
-
-\cs_new:Nn \__xepersian_mathdigitspec_char_append_not_exist_error:nn
- {
- \clist_put_right:Nn \l_xepersian_mathdigitspec_char_clist { #1 }
- \clist_map_inline:Nn \l_xepersian_mathdigitspec_char_clist {
- \__xepersian_mathdigitspec_primitive_font_char_if_exist:nF { ##1 }{ \__xepersian_mathdigitspec_error:nxx {char-not-exist} { #2 } { ##1 } }
- }
- }
-
-\cs_new:Nn \__xepersian_mathdigitspec_char_not_exist_error:n
- {
- \__xepersian_mathdigitspec_char_set_not_exist_error:nn {
- 06F0 , 06F1 , 06F2 , 06F3 , 06F4 , 06F5 , 06F6 , 06F7 , 06F8 ,
- 06F9 , 066A , 066B
- } { #1 }
- }
-
-\DeclareDocumentCommand \setmathdigitfont { O{} m O{} }
- {
- \__xepersian_main_setmathdigitfont:nn {#1,#3} {#2}
- }
-\cs_new:Nn \__xepersian_main_setmathdigitfont:nn
- {
- \let\glb at currsize\relax
- \fontspec_set_family:Nnn \g__xepersian_mathdigitsfamily_tl {Ligatures=PersianTeX,#1} {#2}
- \__xepersian_setmathdigitfont_hook:nn {#1} {#2}
- \xepersian at PackageInfo{Defining the default Persian math digits font as '#2'}
- \DeclareSymbolFont{OPERATORS} {\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl} {m}{n}
- \DeclareSymbolFont{new at mathbf@font at digits}{\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl}{bx}{n}
- \DeclareSymbolFont{new at mathit@font at digits}{\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl}{m}{it}
- \DeclareSymbolFont{new at mathrm@font at digits}{\g_fontspec_encoding_tl}{\g__xepersian_mathdigitsfamily_tl}{m}{n}
- \__xepersian_mathdigitspec_char_not_exist_error:n { #2 }
- \def\persianmathdigits{%
- \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}
- \SetMathCode{`\%}{\mathbin}{OPERATORS}{`٪}
- \SetMathCharDef{\persiandecimalseparator}{\mathord}{OPERATORS}{"066B}
- \tl_set_eq:NN \mathbf \new at mathbf
- \tl_set_eq:NN \mathit \new at mathit
- \tl_set_eq:NN \mathrm \new at mathrm}
- }
-
-\cs_set_eq:NN \__xepersian_setmathdigitfont_hook:nn \use_none:nn
-
-\DeclareDocumentCommand \setmathsfdigitfont { O{} m O{} }
- {
- \__xepersian_main_setmathsfdigitfont:nn {#1,#3} {#2}
- }
-\cs_new:Nn \__xepersian_main_setmathsfdigitfont:nn
- {
- \fontspec_set_family:Nnn \g__xepersian_mathsfdigitfamily_tl {Ligatures=PersianTeX,#1} {#2}
- \__xepersian_setmathsfdigitfont_hook:nn {#1} {#2}
- \DeclareSymbolFont{new at mathsf@font at digits}{\g_fontspec_encoding_tl}{\g__xepersian_mathsfdigitfamily_tl}{m}{n}
- \__xepersian_mathdigitspec_char_not_exist_error:n { #2 }
- \def\persianmathsfdigits{\tl_set_eq:NN \mathsf \new at mathsf}
- }
-
-\cs_set_eq:NN \__xepersian_setmathsfdigitfont_hook:nn \use_none:nn
-
-\DeclareDocumentCommand \setmathttdigitfont { O{} m O{} }
- {
- \__xepersian_main_setmathttdigitfont:nn {#1,#3} {#2}
- }
-\cs_new:Nn \__xepersian_main_setmathttdigitfont:nn
- {
- \fontspec_set_family:Nnn \g__xepersian_mathttdigitfamily_tl {Ligatures=PersianTeX,#1} {#2}
- \__xepersian_setmathttdigitfont_hook:nn {#1} {#2}
- \DeclareSymbolFont{new at mathtt@font at digits}{\g_fontspec_encoding_tl}{\g__xepersian_mathttdigitfamily_tl}{m}{n}
- \__xepersian_mathdigitspec_char_not_exist_error:n { #2 }
- \def\persianmathttdigits{\tl_set_eq:NN \mathtt \new at mathtt}
- }
-
-\cs_set_eq:NN \__xepersian_setmathttdigitfont_hook:nn \use_none:nn
-
-\ExplSyntaxOff
-\mathchardef\decimalseparator at point="013A
-\bgroup
- \uccode`\~`\.%
- \uppercase{%
-\egroup
- \def~}{\begingroup\obeyspaces\futurelet\@let at decimalsep@token\decimalseparator at pointcheck}
-\def\decimalseparator at pointcheck{\decimalseparator at check\MathDecimalSeparator\decimalseparator at point}
-\def\decimalseparator at check#1#2{%
- \ifx\@let at decimalsep@token1\endgroup#1\else
- \ifx\@let at decimalsep@token2\endgroup#1\else
- \ifx\@let at decimalsep@token3\endgroup#1\else
- \ifx\@let at decimalsep@token4\endgroup#1\else
- \ifx\@let at decimalsep@token5\endgroup#1\else
- \ifx\@let at decimalsep@token6\endgroup#1\else
- \ifx\@let at decimalsep@token7\endgroup#1\else
- \ifx\@let at decimalsep@token8\endgroup#1\else
- \ifx\@let at decimalsep@token9\endgroup#1\else
- \ifx\@let at decimalsep@token0\endgroup#1\else
- \ifx\@let at decimalsep@token\dot\endgroup#1\else
- \ifx\@let at decimalsep@token\overline\endgroup#1\else
- \endgroup#2%
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi
- \fi}
-\AtBeginDocument{\mathcode`.="8000\relax}
-\def\MathDecimalSeparator{\ifx\persiandecimalseparator\undefined .\else \persiandecimalseparator\fi}
-\def\DefaultMathDecimalSeparator{.}
-\def\DefaultInlineMathDigits{\def\SetInlineMathDigits{}}
-\def\DefaultDisplayMathDigits{\def\SetDisplayMathDigits{}}
-\def\DefaultMathDigits{%
- \DefaultInlineMathDigits%
- \DefaultDisplayMathDigits%
-}
-\def\PersianInlineMathDigits{\def\SetInlineMathDigits{%
-\ifx\persianmathdigits\undefined\else\persianmathdigits\fi%
-\ifx\persianmathsfdigits\undefined\else\persianmathsfdigits\fi%
-\ifx\persianmathttdigits\undefined\else\persianmathttdigits\fi}}
-\def\PersianDisplayMathDigits{\def\SetDisplayMathDigits{%
-\ifx\persianmathdigits\undefined\else\persianmathdigits\fi%
-\ifx\persianmathsfdigits\undefined\else\persianmathsfdigits\fi%
-\ifx\persianmathttdigits\undefined\else\persianmathttdigits\fi}}
-\def\PersianMathDigits{%
- \PersianInlineMathDigits%
- \PersianDisplayMathDigits%
-}
-\def\AutoInlineMathDigits{\def\SetInlineMathDigits{%
-\ifx\persianmathdigits\undefined\else\if at nonlatin\persianmathdigits\fi\fi%
-\ifx\persianmathsfdigits\undefined\else\if at nonlatin\persianmathsfdigits\fi\fi%
-\ifx\persianmathttdigits\undefined\else\if at nonlatin\persianmathttdigits\fi\fi}}
-\def\AutoDisplayMathDigits{\def\SetDisplayMathDigits{%
-\ifx\persianmathdigits\undefined\else\if at nonlatin\persianmathdigits\fi\fi%
-\ifx\persianmathsfdigits\undefined\else\if at nonlatin\persianmathsfdigits\fi\fi%
-\ifx\persianmathttdigits\undefined\else\if at nonlatin\persianmathttdigits\fi\fi}}
-\def\AutoMathDigits{%
- \AutoInlineMathDigits%
- \AutoDisplayMathDigits%
-}
-\AutoMathDigits
-\everymath\expandafter{\the\everymath\SetInlineMathDigits%
- \let\SetDisplayMathDigits\relax%
-}
-\everydisplay\expandafter{%
- \the\everydisplay\SetDisplayMathDigits%
- \let\SetInlineMathDigits\relax%
-}
-
-\ExplSyntaxOn
-\cs_new_eq:NN \orig_MathDecimalSeparator \MathDecimalSeparator
-
-\NewDocumentCommand \SwitchToDefaultMathDigits { } {
- \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } {
- \SetMathCode{##1}{\mathalpha}{operators}{##1}
- }
- \SetMathCode{`\%}{\mathbin}{operators}{`\%}
- \tl_set_eq:NN \MathDecimalSeparator \DefaultMathDecimalSeparator
- \tl_set_eq:NN \mathbf \orig_mathbf:n
- \tl_set_eq:NN \mathit \orig_mathit:n
- \tl_set_eq:NN \mathrm \orig_mathrm:n
- \tl_set_eq:NN \mathsf \orig_mathsf:n
- \tl_set_eq:NN \mathtt \orig_mathtt:n
-}
-
-\NewDocumentCommand \SwitchToPersianMathDigits { } {
- \int_step_inline:nnnn { `0 } { \c_one_int } { `9 } {
- \SetMathCode{##1}{\mathalpha}{OPERATORS}{##1}
- }
- \SetMathCode{`\%}{\mathbin}{OPERATORS}{`٪}
- \tl_set_eq:NN \MathDecimalSeparator \orig_MathDecimalSeparator
- \tl_set_eq:NN \mathbf \new at mathbf
- \tl_set_eq:NN \mathit \new at mathit
- \tl_set_eq:NN \mathrm \new at mathrm
- \tl_set_eq:NN \mathsf \new at mathsf
- \tl_set_eq:NN \mathtt \new at mathtt
-}
-\ExplSyntaxOff
-\endinput
-%%
-%% End of file `xepersian-mathdigitspec.sty'.
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-multiplechoice.sty
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-multiplechoice.sty 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-multiplechoice.sty 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-persiancal.sty
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-persiancal.sty 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian-persiancal.sty 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
Modified: trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian.sty
===================================================================
--- trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian.sty 2025-02-02 18:10:50 UTC (rev 73696)
+++ trunk/Master/texmf-dist/tex/xelatex/xepersian/xepersian.sty 2025-02-02 20:55:11 UTC (rev 73697)
@@ -20,7 +20,7 @@
%% by Vafa Khalighi.
%%
%%
-%% \CheckSum{10853}
+%% \CheckSum{10792}
%% \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
@@ -38,8 +38,8 @@
%% Right brace \} Tilde \~}
%%
\NeedsTeXFormat{LaTeX2e}
-\def\xepersian at version{26.2}
-\def\xepersiandate{2025/01/16}
+\def\xepersian at version{25.2.2}
+\def\xepersiandate{2025/02/02}
\def\xepersian at releasename{Persian Gate}
\def\xepersian at persian@@releasename{دربند پارس}
\newcommand*{\xepersianreleasename}{\if at RTL\xepersian at persian@@releasename\else\xepersian at releasename\fi}
@@ -240,7 +240,7 @@
\fi
\RequirePackage{fontspec}
\RequirePackage{xepersian-persiancal}
-\RequirePackage{xepersian-mathdigitspec}
+\RequirePackage{unicode-persianmath}
\RequirePackage[%
documentdirection=righttoleft,%
tabledirection=righttoleft,%
@@ -250,24 +250,6 @@
]{bidi}
\newcommand*{\xepersianversion}
{\ensuremath\xepersian at version}
-\newcommand*{\IfxepersianPackageVersionLater}[1]{%
- \ifdim\xepersian at version pt > #1 pt %
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi}
-\newcommand*{\IfxepersianPackageVersionBefore}[1]{%
- \ifdim\xepersian at version pt < #1 pt %
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi}
-\newcommand*{\IfxepersianPackageVersion}[1]{%
- \ifdim\xepersian at version pt = #1 pt %
- \expandafter\@firstoftwo
- \else
- \expandafter\@secondoftwo
- \fi}
\def\prq{«}
\def\plq{»}
\def\xepersian at cmds@temp#1{%
@@ -1054,7 +1036,7 @@
\newcommand*{\@xepersian at pdfcustomproperties}{%
This is the xepersian package, Version \xepersian at version\space (Release \xepersian at releasename),
- Released January 16, 2025.
+ Released February 2, 2025.
}
\newcommand\twocolumnstableofcontents{%
More information about the tex-live-commits
mailing list.