From 74d47ed1be74c4203534546e2ce572c76d4b6acd Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 20 May 2020 21:40:09 +0000 Subject: xepersian-hm (20may20) git-svn-id: svn://tug.org/texlive/trunk@55222 c570f23f-e606-0410-a88d-b1316a301751 --- .../xelatex/xepersian-hm/kashida-xepersian-hm.def | 26 ++++++++++++---------- .../tex/xelatex/xepersian-hm/xepersian-hm.sty | 18 ++++++++++----- 2 files changed, 26 insertions(+), 18 deletions(-) (limited to 'Master/texmf-dist/tex/xelatex/xepersian-hm') diff --git a/Master/texmf-dist/tex/xelatex/xepersian-hm/kashida-xepersian-hm.def b/Master/texmf-dist/tex/xelatex/xepersian-hm/kashida-xepersian-hm.def index da06b603b86..d3e96f981f7 100644 --- a/Master/texmf-dist/tex/xelatex/xepersian-hm/kashida-xepersian-hm.def +++ b/Master/texmf-dist/tex/xelatex/xepersian-hm/kashida-xepersian-hm.def @@ -13,7 +13,7 @@ %% this license is at: http://www.latex-project.org/lppl.txt %% \ExplSyntaxOn -\ProvidesExplFile {kashida-xepersian-hm.def} {2020-05-12} {0.5e} { Fixes~implementation~of~Kashida~in~xepersian~package } +\ProvidesExplFile {kashida-xepersian-hm.def} {2020-05-20} {0.5f} { Fixes~implementation~of~Kashida~in~xepersian~package } \newXeTeXintercharclass \c_xephm_d_charclass % dual-joiner class \newXeTeXintercharclass \c_xephm_l_charclass % lam @@ -98,17 +98,15 @@ \mode_leave_vertical: \tex_global:D \tex_advance:D \l_xephm_counter_int \c_one_int - \tl_set:Nx \l_xephm_pos_tl { pos_\tex_romannumeral:D \l_xephm_counter_int } - \tl_set:Nx \l_xephm_zref_tl { zref_\tex_romannumeral:D \l_xephm_counter_int } + \tl_set:Nx \l_xephm_pos_tl { p\tex_romannumeral:D \l_xephm_counter_int } + \tl_set:Nx \l_xephm_zref_tl { z\tex_romannumeral:D \l_xephm_counter_int } \zsaveposx{x_i_\l_xephm_zref_tl} \tl_set:Nx \l_tmpa_tl { \iow_now:cx { @auxout } { - \ExplSyntaxOn - \tl_gset:Nn \exp_after:wN \token_to_str:N \cs:w get_x_i\l_xephm_pos_tl \cs_end: { \zposx{ x_i_\l_xephm_zref_tl } } - \ExplSyntaxOff + \token_to_str:N \gdef \exp_after:wN \token_to_str:N \cs:w xi\l_xephm_pos_tl \cs_end: { \zposx{ x_i_\l_xephm_zref_tl } } } } \l_tmpa_tl @@ -118,19 +116,17 @@ { \iow_now:cx { @auxout } { - \ExplSyntaxOn - \tl_gset:Nn \exp_after:wN \token_to_str:N \cs:w get_x_f\l_xephm_pos_tl \cs_end: { \zposx{ x_f_\l_xephm_zref_tl } } - \ExplSyntaxOff + \token_to_str:N \gdef \exp_after:wN \token_to_str:N \cs:w xf\l_xephm_pos_tl \cs_end: { \zposx{ x_f_\l_xephm_zref_tl } } } } \l_tmpa_tl \exp_after:wN \if_meaning:w - \cs:w get_x_i\l_xephm_pos_tl \cs_end: \tex_relax:D + \cs:w xi\l_xephm_pos_tl \cs_end: \tex_relax:D \else: \dim_set:Nn \l_xephm_diff_pos_dim { - \dim_eval:n { \cs:w get_x_i\l_xephm_pos_tl \cs_end: sp - \cs:w get_x_f\l_xephm_pos_tl \cs_end: sp } + \dim_eval:n { \cs:w xi\l_xephm_pos_tl \cs_end: sp - \cs:w xf\l_xephm_pos_tl \cs_end: sp } } \dim_compare:nTF { \l_xephm_diff_pos_dim == 0sp } { } @@ -258,7 +254,13 @@ \XeTeXinterchartoks \c_xephm_l_charclass \c_xephm_a_charclass = { } } - } { } { \msg_error:nnx { xepersian-hm } { value-not-available-for-kashida-option } { \l_xephm_gap_filler_tl } } + } + { + \msg_warning:nnn { xepersian-hm } { warning-experimental-feature } { Kashida=glyph } + } + { + \msg_error:nnx { xepersian-hm } { error-value-not-available-for-kashida-option } { \l_xephm_gap_filler_tl } + } \NewDocumentCommand \KashidaHMFixOn {} { \bool_set_true:N \l_xephm_kashida_hm_fix_bool } \NewDocumentCommand \KashidaHMFixOff {} { \bool_set_false:N \l_xephm_kashida_hm_fix_bool } diff --git a/Master/texmf-dist/tex/xelatex/xepersian-hm/xepersian-hm.sty b/Master/texmf-dist/tex/xelatex/xepersian-hm/xepersian-hm.sty index 846617033e8..ba57d9bfd3f 100644 --- a/Master/texmf-dist/tex/xelatex/xepersian-hm/xepersian-hm.sty +++ b/Master/texmf-dist/tex/xelatex/xepersian-hm/xepersian-hm.sty @@ -31,7 +31,7 @@ \RequirePackage{zref-savepos}[2020-03-03] \RequirePackage{xepersian} \ExplSyntaxOn -\ProvidesExplPackage {xepersian-hm} {2020-05-12} {0.5e} { Fixes~issues~in~xepersian~package } +\ProvidesExplPackage {xepersian-hm} {2020-05-20} {0.5f} { Fixes~issues~in~xepersian~package } \int_const:Nn \c_xephm_ksh_int {"0640} % kashida \int_const:Nn \c_xephm_lrm_int {"200E} % left-right-mark @@ -144,21 +144,27 @@ \l_xephm_lig_rlig_tl , { \l_xephm_lig_rlig_clist } , } -\msg_new:nnn { xepersian-hm } { kashida-character-is-not-available-in-the-main-font } +\msg_new:nnn { xepersian-hm } { error-kashida-character-is-not-available-in-the-main-font } { Sorry,~ kashida~ character~ is~ not~ available~ in~ the~ main~ font~! } -\msg_new:nnn { xepersian-hm } { value-not-available-for-kashida-option } +\msg_new:nnn { xepersian-hm } { error-value-not-available-for-kashida-option } { Sorry,~ value~ `#1'~ is~ not~ available~ for~ `Kashida'~ option~ yet~! } -\msg_new:nnn { xepersian-hm } { specify-value-for-kashida-option } +\msg_new:nnn { xepersian-hm } { error-specify-value-for-kashida-option } { Sorry,~ you~ must~ specify~ a~ value~ for~ `Kashida'~ option~ yet~! } +\msg_new:nnn { xepersian-hm } { warning-experimental-feature } + { + Please~ note~ that~ the~ feature~ `#1'~ is~ still~ experimental~ + and~ is~ not~ regarded~ as~ stable. + } + \keys_define:nn { xepersian-hm } { Kashida .code:n = @@ -177,7 +183,7 @@ \int_set:Nn \l_xephm_kashida_slot_int { \xetex_charglyph:D \c_xephm_ksh_int } \int_compare:nT { \l_xephm_kashida_slot_int = \c_zero_int } { - \msg_error:nn { xepersian-hm } { kashida-character-is-not-available-in-the-main-font } + \msg_error:nn { xepersian-hm } { error-kashida-character-is-not-available-in-the-main-font } } } } @@ -186,7 +192,7 @@ \tl_set:Nn \l_xephm_gap_filler_tl { \l_xephm_stretch_hrule_tl } } } { } { \tl_set:Nx \l_xephm_gap_filler_tl { #1 } } - \tl_if_empty:NT \l_xephm_gap_filler_tl { \msg_error:nn { xepersian-hm } { specify-value-for-kashida-option } } + \tl_if_empty:NT \l_xephm_gap_filler_tl { \msg_error:nn { xepersian-hm } { error-specify-value-for-kashida-option } } \bool_set_true:N \l_xephm_kashida_hm_fix_bool } , -- cgit v1.2.3