From 9a8aeb5318a022f7c208c40d8dd870ab9d097f5d Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sun, 20 Feb 2022 21:23:04 +0000 Subject: xepersian (20feb22) git-svn-id: svn://tug.org/texlive/trunk@62109 c570f23f-e606-0410-a88d-b1316a301751 --- .../xelatex/xepersian/xepersian-doc-intro.ltx | 2 +- .../xelatex/xepersian/xepersian-doc-title.ltx | 4 +- .../source/xelatex/xepersian/xepersian-doc.ltx | 2 +- .../source/xelatex/xepersian/xepersian.dtx | 216 ++------------------- 4 files changed, 18 insertions(+), 206 deletions(-) (limited to 'Master/texmf-dist/source/xelatex') diff --git a/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-intro.ltx b/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-intro.ltx index 66085aecce5..f08ba92b949 100644 --- a/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-intro.ltx +++ b/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-intro.ltx @@ -25,7 +25,7 @@ If you use \textsf{\XePersian} package to write any input \TeX\ document, and th * Copyright (c) 2008--2022 Vafa Khalighi * Copyright (c) 2018--2020 bidi-tex GitHub Organization * -* v23.6, 2022/02/20 +* v23.7, 2022/02/20 * * License: LaTeX Project Public License, version * 1.3c or higher (your choice) diff --git a/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-title.ltx b/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-title.ltx index 878e0abcb1d..d80debfca70 100644 --- a/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-title.ltx +++ b/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc-title.ltx @@ -3,7 +3,7 @@ \begin{document} \title{\textcolor{blue!65!black}{\Huge The \textsf{\XePersian} \textit{Package}}\\ \LARGE Persian for \LaTeXe, using {\XeTeX} engine\\[5pt] -\large User documentation for \textcolor{blue!65!black}{version 23.6}} +\large User documentation for \textcolor{blue!65!black}{version 23.7}} \author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the {\LaTeX} team to maintain the package in the period 2018--2020.}\\ \url{tex-persian@vafa.ac}} \setcounter{page}{0} @@ -14,7 +14,7 @@ \textcolor{blue!65!black}{\Huge The \textsf{\XePersian} \textit{Package}} \Large -User documentation for \textcolor{blue!65!black}{version 23.6}} +User documentation for \textcolor{blue!65!black}{version 23.7}} \vskip 0pt plus 3fill \textit{\large to my Master, \textbf{Ferdowsi The Great}} diff --git a/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc.ltx b/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc.ltx index 367860baf5c..c9f01b5179f 100644 --- a/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc.ltx +++ b/Master/texmf-dist/source/xelatex/xepersian/xepersian-doc.ltx @@ -1,7 +1,7 @@ \documentclass{ltxdoc} \input{xepersian-doc-preamble.ltx} \hypersetup{% - pdftitle={User documentation for version 23.6 of the XePersian + pdftitle={User documentation for version 23.7 of the XePersian package}% } \begin{document} diff --git a/Master/texmf-dist/source/xelatex/xepersian/xepersian.dtx b/Master/texmf-dist/source/xelatex/xepersian/xepersian.dtx index 33dccc8412f..28e5a2eff74 100644 --- a/Master/texmf-dist/source/xelatex/xepersian/xepersian.dtx +++ b/Master/texmf-dist/source/xelatex/xepersian/xepersian.dtx @@ -5,7 +5,7 @@ %<*readme> ____________________ The XePersian package -v23.6 +v23.7 The xepersian package provides a convenient interface for typesetting Persian and English texts in LaTeX, using XeTeX @@ -168,7 +168,7 @@ by Vafa Khalighi. \documentclass{ltxdoc} \input{xepersian-doc-preamble.ltx} \hypersetup{% - pdftitle={Source documentation for version 23.6 of the XePersian + pdftitle={Source documentation for version 23.7 of the XePersian package}% } \EnableCrossrefs @@ -187,7 +187,7 @@ by Vafa Khalighi. % \GetFileInfo{\jobname.dtx} % \title{\textcolor{blue!65!black}{\Huge The \textsf{\XePersian} \textit{Package}}\\ %\LARGE Persian for \LaTeXe, using {\XeTeX} engine\\[5pt] -%\large Source documentation for \textcolor{blue!65!black}{version 23.6}} +%\large Source documentation for \textcolor{blue!65!black}{version 23.7}} % \author{Vafa Khalighi\thanks{Thanks to the bidi-tex GitHub organization consisted of David Carlisle and other members of the {\LaTeX} team to maintain the package in the period 2018--2020.}\\ % \url{tex-persian@vafa.ac}} %\setcounter{page}{0} @@ -198,7 +198,7 @@ by Vafa Khalighi. %\textcolor{blue!65!black}{\Huge The \textsf{\XePersian} \textit{Package}} % %\Large -%Source documentation for \textcolor{blue!65!black}{version 23.6}} +%Source documentation for \textcolor{blue!65!black}{version 23.7}} % %\vskip 0pt plus 3fill %\textit{\large to my Master, \textbf{Ferdowsi The Great}} @@ -246,7 +246,7 @@ by Vafa Khalighi. %\iffalse %<*table> %\fi -%% \CheckSum{11214} +%% \CheckSum{10978} %% \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 @@ -3477,7 +3477,7 @@ U+003E U+003E <> U+00BB ; >> -> RIGHT POINTING GUILLEMET % \section{File \texttt{xepersian.sty}} % \begin{macrocode} \NeedsTeXFormat{LaTeX2e} -\def\xepersian@version{23.6} +\def\xepersian@version{23.7} \def\xepersiandate{2022/02/20} \ProvidesPackage{xepersian}[\xepersiandate\space v\xepersian@version\space Persian typesetting in XeLaTeX] @@ -3566,194 +3566,6 @@ Persian typesetting in XeLaTeX] \newfontlanguage{Persian}{FAR} \ExplSyntaxOn -\cs_new:Nn \xepersian_set_family:Nnn { \__xepersian_set_family:NnnN #1 {#2} {#3} \tl_set_eq:NN } -\cs_generate_variant:Nn \xepersian_set_family:Nnn {c} - -\cs_new_protected:Nn \__xepersian_select_font_family:nn - { - \group_begin: - \__fontspec_font_suppress_not_found_error: - \__fontspec_init: - - \__fontspec_sanitise_fontname:Nn \l_fontspec_fontname_tl {#2} - \__fontspec_sanitise_fontname:Nn \l__fontspec_fontname_up_tl {#2} - \__fontspec_sanitise_fontname:Nn \l__fontspec_basename_tl {#2} - - \__fontspec_if_detect_external:nT {#2} - { \keys_set:nn {fontspec-preparse-external} {Path} } - - \keys_set_known:nn {fontspec-preparse-cfg} {#1} - - \__fontspec_init_ttc:n {#2} - \__fontspec_load_external_fontoptions:N \l_fontspec_fontname_tl - - \__fontspec_extract_all_features:n {#1} - \tl_set:Nx \l__fontspec_fontid_tl { \tl_to_str:N \l_fontspec_fontname_tl-:-\tl_to_str:N \l__fontspec_all_features_clist } - - - \__fontspec_preparse_features: - \__fontspec_load_font: - \__fontspec_set_scriptlang: - \__xepersian_get_features:n {} - \bool_set_false:N \l__fontspec_firsttime_bool - - \__fontspec_save_family_needed:nTF {#2} - { - \__xepersian_save_family:nn {#1} {#2} - } - { - } - \group_end: - - \tl_set_eq:NN \l_fontspec_family_tl \g__fontspec_nfss_family_tl - } - -\cs_new:Nn \__xepersian_set_family:NnnN - { - \tl_set:Nn \l__fontspec_fontface_cs_tl {\l_fontspec_font} % reset - \tl_set:Nn \l__fontspec_family_label_tl {#1} - \__xepersian_select_font_family:nn {#2} {#3} - \__fontspec_tl_new_if_free:N #1 - #4 #1 \l_fontspec_family_tl - \tl_set:Nn \l__fontspec_fontface_cs_tl {\l_fontspec_font} % reset - } - -\cs_new:Nn \__xepersian_setup_nfss:Nnnn - { - - \__xepersian_get_features:n { #2 , #3 , #4 } - - \tl_if_empty:NF \l__fontspec_scale_tl - { - \tl_set:Nx \l__fontspec_scale_tl { s*[\l__fontspec_scale_tl] } - } - - \tl_build_put_right:Nx #1 - { - <\l__fontspec_size_tl> \l__fontspec_scale_tl - \__fontspec_construct_font_call:nn { \l_fontspec_fontname_tl } - { \l__fontspec_pre_feat_sclist \g__fontspec_rawfeatures_sclist } - } - } - -\cs_new:Nn \__xepersian_setup_single_size:nn - { - \tl_clear:N \l__fontspec_size_tl - \tl_set_eq:NN \l__fontspec_sizedfont_tl \l__fontspec_saved_fontname_tl % in case not spec'ed - - \keys_set_known:nxN {fontspec-sizing} { \exp_after:wN \use:n #2 } - \l__fontspec_sizing_leftover_clist - \tl_if_empty:NT \l__fontspec_size_tl { \__fontspec_error:n {no-size-info} } - - % "normal" - \__fontspec_load_fontname:Nn \l_fontspec_fontname_tl {\l__fontspec_sizedfont_tl} - \__xepersian_setup_nfss:Nnnn \l__fontspec_nfss_tl {#1} {\l__fontspec_sizing_leftover_clist} {} - - % small caps - \clist_set_eq:NN \l__fontspec_fontfeat_curr_clist \l__fontspec_fontfeat_sc_clist - - \bool_if:NF \l__fontspec_nosc_bool - { - \tl_if_empty:NTF \l__fontspec_fontname_sc_tl - { - \__fontspec_make_smallcaps:TF - { - \clist_put_left:Nn \l__fontspec_fontfeat_curr_clist {Letters=SmallCaps} - } - { - \bool_set_true:N \l__fontspec_nosc_bool - } - } - { \__fontspec_load_fontname:Nn \l_fontspec_fontname_tl {\l__fontspec_fontname_sc_tl} }% local for each size - } - - \bool_if:NF \l__fontspec_nosc_bool - { - \__fontspec_setup_nfss:Nnnn \l__fontspec_nfss_sc_tl - {#1} {\l__fontspec_sizing_leftover_clist} {\l__fontspec_fontfeat_curr_clist} - } - } - -\cs_new:Nn \__xepersian_declare_shape:nnnn - { - \tl_build_begin:N \l__fontspec_nfss_tl - \tl_build_begin:N \l__fontspec_nfss_sc_tl - \tl_set_eq:NN \l__fontspec_saved_fontname_tl \l_fontspec_fontname_tl - - \exp_args:Nx \clist_map_inline:nn {#4} { \__xepersian_setup_single_size:nn {#3} {##1} } - - \tl_build_end:N \l__fontspec_nfss_tl - \tl_build_end:N \l__fontspec_nfss_sc_tl - - \__fontspec_declare_shapes_normal:nn {#1} {#2} - \__fontspec_declare_shapes_smcaps:nn {#1} {#2} - \__fontspec_declare_shape_slanted:nn {#1} {#2} - \__fontspec_declare_shapes_bx:nn {#1} {#2} - \__fontspec_declare_shape_loginfo:nn {#1} {#2} - } -\cs_generate_variant:Nn \__xepersian_declare_shape:nnnn {nnxx} - -\cs_new:Nn \__xepersian_make_font_shapes:Nnnnn - { - \group_begin: - \__fontspec_keys_set_known:nxN {fontspec-preparse-external} { #4 } \l__fontspec_leftover_clist - \__fontspec_load_fontname:Nn \l_fontspec_fontname_tl {#1} - \__xepersian_declare_shape:nnxx {#2} {#3} { \l__fontspec_fontopts_clist, \l__fontspec_leftover_clist } {#5} - \group_end: - } - -\cs_new:Nn \__xepersian_set_faces_aux:nnnnn - { - \fontspec_complete_fontname:Nn \l__fontspec_curr_fontname_tl {#3} - \__xepersian_make_font_shapes:Nnnnn \l__fontspec_curr_fontname_tl {#1} {#2} {#4} {#5} - } - -\cs_new:Nn \__xepersian_set_faces: - { - \__fontspec_add_nfssfont:nnnn \mddefault \shapedefault \l_fontspec_fontname_tl \l__fontspec_fontfeat_up_clist - \__fontspec_add_nfssfont:nnnn \bfdefault \shapedefault \l__fontspec_fontname_bf_tl \l__fontspec_fontfeat_bf_clist - \__fontspec_add_nfssfont:nnnn \mddefault \itdefault \l__fontspec_fontname_it_tl \l__fontspec_fontfeat_it_clist - \__fontspec_add_nfssfont:nnnn \mddefault \sldefault \l__fontspec_fontname_sl_tl \l__fontspec_fontfeat_sl_clist - \__fontspec_add_nfssfont:nnnn \mddefault \swdefault \l__fontspec_fontname_sw_tl \l__fontspec_fontfeat_sw_clist - \__fontspec_add_nfssfont:nnnn \bfdefault \itdefault \l__fontspec_fontname_bfit_tl \l__fontspec_fontfeat_bfit_clist - \__fontspec_add_nfssfont:nnnn \bfdefault \sldefault \l__fontspec_fontname_bfsl_tl \l__fontspec_fontfeat_bfsl_clist - \__fontspec_add_nfssfont:nnnn \bfdefault \swdefault \l__fontspec_fontname_bfsw_tl \l__fontspec_fontfeat_bfsw_clist - \prop_map_inline:Nn \l__fontspec_nfssfont_prop { \__xepersian_set_faces_aux:nnnnn ##2 } - } - -\cs_new:Nn \__xepersian_save_family:nn - { - \__fontspec_save_fontinfo:n {#2} - \__fontspec_find_autofonts: - \DeclareFontFamily{\g__fontspec_nfss_enc_tl}{\g__fontspec_nfss_family_tl}{} - \__xepersian_set_faces: - \__fontspec_info:nxx {defining-font} {#1} {#2} - } - -\cs_new:Nn \__xepersian_get_features:n - { - \__fontspec_init_fontface: - \__fontspec_keys_set_known:nxN {fontspec-renderer} {\l__fontspec_fontfeat_clist,#1} - \l__fontspec_keys_leftover_clist - \__fontspec_keys_set_known:nxN {fontspec} {\l__fontspec_keys_leftover_clist} \l__fontspec_keys_leftover_clist - \bool_if:NTF \l__fontspec_ot_bool - { - \keys_set:nV {fontspec-opentype} \l__fontspec_keys_leftover_clist - } - { - \bool_if:nT { \l__fontspec_atsui_bool || \l__fontspec_graphite_bool } - { \keys_set:nV {fontspec-aat} \l__fontspec_keys_leftover_clist } - } - \__fontspec_update_featstr:n { script = arab } - - \tl_if_empty:NF \l__fontspec_mapping_tl - { \__fontspec_update_featstr:n { mapping = \l__fontspec_mapping_tl } } - - \str_if_eq:eeF { \l__fontspec_hexcol_tl \l__fontspec_opacity_tl } - { \c__fontspec_hexcol_tl \c__fontspec_opacity_tl } - { \__fontspec_update_featstr:n { color = \l__fontspec_hexcol_tl\l__fontspec_opacity_tl } } - } - \keys_define:nn {fontspec-opentype} { Ligatures / PersianTeX .code:n = { \tl_set:Nn \l__fontspec_mapping_tl {persian-tex-text} }, @@ -3791,7 +3603,7 @@ Persian typesetting in XeLaTeX] } \cs_new:Nn \__xepersian_main_settextfont:nn { - \xepersian_set_family:Nnn \l__xepersian_persianfont_family_tl {Ligatures=PersianTeX,#1} {#2} + \fontspec_set_family:Nnn \l__xepersian_persianfont_family_tl {RawFeature={script=arab},Ligatures=PersianTeX,#1} {#2} \tl_set_eq:NN \rmdefault \l__xepersian_persianfont_family_tl \use:x { \exp_not:n { \DeclareRobustCommand \persianfont } { @@ -3895,7 +3707,7 @@ Persian typesetting in XeLaTeX] } \cs_new:Nn \__xepersian_main_defpersianfont:NnnN { - \xepersian_set_family:cnn { l__xepersian_ \cs_to_str:N #1 _family_tl } {Ligatures=PersianTeX,#2} {#3} + \fontspec_set_family:cnn { l__xepersian_ \cs_to_str:N #1 _family_tl } {RawFeature={script=arab},Ligatures=PersianTeX,#2} {#3} \use:x { \exp_not:N #4 \exp_not:N #1 {} @@ -3969,7 +3781,7 @@ Persian typesetting in XeLaTeX] } \cs_new:Nn \__xepersian_main_setpersiansansfont:nn { - \xepersian_set_family:Nnn \l__xepersian_persiansffamily_family_tl {Ligatures=PersianTeX,#1} {#2} + \fontspec_set_family:Nnn \l__xepersian_persiansffamily_family_tl {RawFeature={script=arab},Ligatures=PersianTeX,#1} {#2} \tl_set_eq:NN \persiansfdefault \l__xepersian_persiansffamily_family_tl \use:x { \exp_not:n { \DeclareRobustCommand \persiansffamily } { @@ -3993,7 +3805,7 @@ Persian typesetting in XeLaTeX] } \cs_new:Nn \__xepersian_main_setpersianmonofont:nn { - \xepersian_set_family:Nnn \l__xepersian_persianttfamily_family_tl {Ligatures=PersianTeX,#1} {#2} + \fontspec_set_family:Nnn \l__xepersian_persianttfamily_family_tl {RawFeature={script=arab},Ligatures=PersianTeX,#1} {#2} \tl_set_eq:NN \persianttdefault \l__xepersian_persianttfamily_family_tl \use:x { \exp_not:n { \DeclareRobustCommand \persianttfamily } { @@ -4017,7 +3829,7 @@ Persian typesetting in XeLaTeX] } \cs_new:Nn \__xepersian_main_setnavarfont:nn { - \xepersian_set_family:Nnn \l__xepersian_navarfamily_family_tl {Ligatures=PersianTeX,#1} {#2} + \fontspec_set_family:Nnn \l__xepersian_navarfamily_family_tl {RawFeature={script=arab},Ligatures=PersianTeX,#1} {#2} \tl_set_eq:NN \navardefault \l__xepersian_navarfamily_family_tl \use:x { \exp_not:n { \DeclareRobustCommand \navarfamily } { @@ -4041,7 +3853,7 @@ Persian typesetting in XeLaTeX] } \cs_new:Nn \__xepersian_main_setpookfont:nn { - \xepersian_set_family:Nnn \l__xepersian_pookfamily_family_tl {Ligatures=PersianTeX,#1} {#2} + \fontspec_set_family:Nnn \l__xepersian_pookfamily_family_tl {RawFeature={script=arab},Ligatures=PersianTeX,#1} {#2} \tl_set_eq:NN \pookdefault \l__xepersian_pookfamily_family_tl \use:x { \exp_not:n { \DeclareRobustCommand \pookfamily } { @@ -4065,7 +3877,7 @@ Persian typesetting in XeLaTeX] } \cs_new:Nn \__xepersian_main_setsayehfont:nn { - \xepersian_set_family:Nnn \l__xepersian_sayehfamily_family_tl {Ligatures=PersianTeX,#1} {#2} + \fontspec_set_family:Nnn \l__xepersian_sayehfamily_family_tl {RawFeature={script=arab},Ligatures=PersianTeX,#1} {#2} \tl_set_eq:NN \sayehdefault \l__xepersian_sayehfamily_family_tl \use:x { \exp_not:n { \DeclareRobustCommand \sayehfamily } { @@ -4089,7 +3901,7 @@ Persian typesetting in XeLaTeX] } \cs_new:Nn \__xepersian_main_setiranicfont:nn { - \xepersian_set_family:Nnn \l__xepersian_iranicfamily_family_tl {Ligatures=PersianTeX,#1} {#2} + \fontspec_set_family:Nnn \l__xepersian_iranicfamily_family_tl {RawFeature={script=arab},Ligatures=PersianTeX,#1} {#2} \tl_set_eq:NN \iranicdefault \l__xepersian_iranicfamily_family_tl \use:x { \exp_not:n { \DeclareRobustCommand \iranicfamily } { -- cgit v1.2.3