summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-06-01 03:02:00 +0000
committerNorbert Preining <norbert@preining.info>2020-06-01 03:02:00 +0000
commit6a81e69e8cf1f56e4715ede8d84cdce284117970 (patch)
treef908a8b43a6ed7da4db2b1904a4b8b7efce09f48 /macros
parentdc6f1342c9b1e7c060d0409dfe0e64ff691003b6 (diff)
CTAN sync 202006010301
Diffstat (limited to 'macros')
-rw-r--r--macros/latex/contrib/denisbdoc/README.md4
-rw-r--r--macros/latex/contrib/denisbdoc/denisbdoc.dtx64
-rw-r--r--macros/latex/contrib/toptesi/README.txt10
-rw-r--r--macros/latex/contrib/toptesi/toptesi-example-magistrale.pdfbin400093 -> 404630 bytes
-rw-r--r--macros/latex/contrib/toptesi/toptesi-example-magistrale.tex17
-rw-r--r--macros/latex/contrib/toptesi/toptesi-it.pdfbin1814675 -> 1820489 bytes
-rw-r--r--macros/latex/contrib/toptesi/toptesi-it.tex20
-rw-r--r--macros/latex/contrib/toptesi/toptesi.dtx41
-rw-r--r--macros/latex/contrib/toptesi/toptesi.pdfbin969446 -> 972199 bytes
-rw-r--r--macros/xetex/latex/xepersian-hm/INSTALL.txt5
-rw-r--r--macros/xetex/latex/xepersian-hm/kashida-glyph-example.pdfbin91743 -> 149558 bytes
-rw-r--r--macros/xetex/latex/xepersian-hm/kashida-glyph-example.tex21
-rw-r--r--macros/xetex/latex/xepersian-hm/kashida-hrule-example.pdfbin90701 -> 0 bytes
-rw-r--r--macros/xetex/latex/xepersian-hm/kashida-leaders-glyph-example.pdfbin0 -> 144562 bytes
-rw-r--r--macros/xetex/latex/xepersian-hm/kashida-leaders-glyph-example.tex (renamed from macros/xetex/latex/xepersian-hm/kashida-hrule-example.tex)23
-rw-r--r--macros/xetex/latex/xepersian-hm/kashida-leaders-hrule-example.pdfbin0 -> 147870 bytes
-rw-r--r--macros/xetex/latex/xepersian-hm/kashida-leaders-hrule-example.tex130
-rw-r--r--macros/xetex/latex/xepersian-hm/kashida-xep-XB-example.pdfbin78693 -> 100363 bytes
-rw-r--r--macros/xetex/latex/xepersian-hm/kashida-xep-XB-example.tex21
-rw-r--r--macros/xetex/latex/xepersian-hm/xepersian-hm-doc.ltx66
-rw-r--r--macros/xetex/latex/xepersian-hm/xepersian-hm-doc.pdfbin264837 -> 267314 bytes
-rw-r--r--macros/xetex/latex/xepersian-hm/xepersian-hm.dtx206
-rw-r--r--macros/xetex/latex/xepersian-hm/xepersian-hm.pdfbin58016 -> 59000 bytes
23 files changed, 460 insertions, 168 deletions
diff --git a/macros/latex/contrib/denisbdoc/README.md b/macros/latex/contrib/denisbdoc/README.md
index 40d091b202..7eb3cbb01a 100644
--- a/macros/latex/contrib/denisbdoc/README.md
+++ b/macros/latex/contrib/denisbdoc/README.md
@@ -1,8 +1,8 @@
-denisbdoc - A personal package for documenting classes and packages, v. 0.8
+denisbdoc - A personal package for documenting classes and packages, v. 0.9
===========================================================================
**The sole purpose of this (quick 'n dirty) `denisbdoc` package is for
-documenting the classes written by its author (Denis Bitouz'e).**
+documenting the classes written by its author (Denis Bitouzé).**
The class is supplied in `.dtx` format. If you want to unpack the `.dtx`
yourself, running:
diff --git a/macros/latex/contrib/denisbdoc/denisbdoc.dtx b/macros/latex/contrib/denisbdoc/denisbdoc.dtx
index 0607fdcc22..a1f0bf4b18 100644
--- a/macros/latex/contrib/denisbdoc/denisbdoc.dtx
+++ b/macros/latex/contrib/denisbdoc/denisbdoc.dtx
@@ -3,11 +3,11 @@
\iffalse
%</internal>
%<*readme>
-denisbdoc - A personal package for documenting classes and packages, v. 0.8
+denisbdoc - A personal package for documenting classes and packages, v. 0.9
===========================================================================
**The sole purpose of this (quick 'n dirty) `denisbdoc` package is for
-documenting the classes written by its author (Denis Bitouz'e).**
+documenting the classes written by its author (Denis Bitouzé).**
The class is supplied in `.dtx` format. If you want to unpack the `.dtx`
yourself, running:
@@ -31,9 +31,9 @@ This package is currently not documented.
\preamble
-----------------------------------------------------------------------------
denisbdoc --- A personal dirty package for documenting personal classes,
- version 0.8
+ version 0.9
-Maintained by Denis Bitouz'e
+Maintained by Denis Bitouzé
E-mail: denis.bitouze@univ-littoral.fr
Released under the LaTeX Project Public License v1.3c or later
See http://www.latex-project.org/lppl.txt
@@ -42,7 +42,7 @@ See http://www.latex-project.org/lppl.txt
\endpreamble
\postamble
Copyright (C) 2015-2020 by
- Denis Bitouz'e <denis.bitouze@univ-littoral.fr>
+ Denis Bitouzé <denis.bitouze@univ-littoral.fr>
It may be distributed and/or modified under the conditions of
the LaTeX Project Public License (LPPL), either version 1.3c of
@@ -51,7 +51,7 @@ version of this license is in the file:
http://www.latex-project.org/lppl.txt
This work is "maintained" (as per LPPL maintenance status) by
- Denis Bitouz'e.
+ Denis Bitouzé.
This work consists of the file denisbdoc.dtx
denisbdoc.sty and
@@ -106,7 +106,7 @@ This work consists of the file denisbdoc.dtx
% }^^A
%}
%\author{^^A
-% Denis Bitouz'e\thanks
+% Denis Bitouzé\thanks
% {^^A
% E-mail: \href{mailto:denis.bitouze@univ-littoral.fr}
% {\texttt{denis.bitouze@univ-littoral.fr}}^^A
@@ -124,6 +124,7 @@ This work consists of the file denisbdoc.dtx
%\changes{v0.6}{2016/12/08}{Sixth CTAN version}
%\changes{v0.7}{2017/01/01}{Seventh CTAN version}
%\changes{v0.8}{2020/03/27}{Eighth CTAN version}
+%\changes{v0.9}{2020/05/31}{Nineth CTAN version}
%
%\begin{abstract}
% ...
@@ -194,7 +195,7 @@ This work consists of the file denisbdoc.dtx
%
% The usual preliminaries.
% \begin{macrocode}
-\ProvidesExplPackage {denisbdoc} {2020/03/27} {0.8}
+\ProvidesExplPackage {denisbdoc} {2020/05/31} {0.9}
{A personal package for documenting packages}
% \end{macrocode}
%
@@ -339,14 +340,19 @@ This work consists of the file denisbdoc.dtx
% \begin{macrocode}
\let\_@@_printbibliography_ORI\printbibliography%
\renewcommand{\printbibliography}[1][]{%
- \pagestyle{biblio}%
- \_@@_printbibliography_ORI[heading=bibintoc,#1]%
- \pagestyle{ordinary}%
+ \@ifpackageloaded{setspace}{%
+ \singlespacing%
+ }{%
+ }
+ \chapter*{\bibname}%
+ \_@@_printbibliography_ORI[heading=none,#1]%
}%
}%
}%
}{%
- \RequirePackage[backend=biber,style=authortitle,autopunct=false,useprefix=true,backref,dashed=false]{biblatex}%
+ \RequirePackage[%backend=biber%
+ ,style=authortitle,dashed=false
+ ,autopunct=false,useprefix=true,backref]{biblatex}%
}%
% \end{macrocode}
%
@@ -359,8 +365,8 @@ This work consists of the file denisbdoc.dtx
% \begin{macrocode}
\RequirePackage{morewrites}%
\RequirePackage{babel}%
-% \RequirePackage[useregional]{datetime2}%
-\RequirePackage[nodayofweek]{datetime}%
+\RequirePackage[useregional]{datetime2}%
+% \RequirePackage[nodayofweek]{datetime}%
% \RequirePackage{floatrow}%
\RequirePackage{subcaption}%
%
@@ -901,7 +907,7 @@ This work consists of the file denisbdoc.dtx
user1,user2,user3,user4,user5,user6,hyper,style,xindy,toc,title,%
useri,userii,useriii,useriv,userv,uservi%
},%
- % Mots-clés de niveau 3 : arguments optionnels valeurs de clés dans clé=valeur
+ % Mots-clés de niveau 3 : arguments optionnels clés dans clé=valeur
morekeywords=[3]{%
listgroup,listhypergroup,%
% textrm,textit,textsf,textsl,texttt,textup,textbf,textsc,textmd,emph,%
@@ -1023,7 +1029,7 @@ This work consists of the file denisbdoc.dtx
morekeywords=[2]{%
% title,
},%
- % Mots-clés de niveau 3 : arguments optionnels valeurs de clés dans clé=valeur
+ % Mots-clés de niveau 3 : arguments optionnels clés dans clé=valeur
morekeywords=[3]{%
skipbib%
},%
@@ -1050,7 +1056,7 @@ This work consists of the file denisbdoc.dtx
morekeywords=[2]{%
colophon,
},%
- % Mots-clés de niveau 3 : arguments optionnels valeurs de clés dans clé=valeur
+ % Mots-clés de niveau 3 : arguments optionnels clés dans clé=valeur
morekeywords=[3]{%
titlestyle,titlesize,aftertitle,pagestyle,titlealign,%
parstyle,parsize,parlead,nofirstindent,nofullpage,noclrdblpg,%
@@ -1075,7 +1081,7 @@ This work consists of the file denisbdoc.dtx
morekeywords=[2]{%
colback,beamer,skins,listing,only,options,and,text%
},%
- % Mots-clés de niveau 3 : arguments optionnels valeurs de clés dans clé=valeur
+ % Mots-clés de niveau 3 : arguments optionnels clés dans clé=valeur
morekeywords=[3]{%
lightgray,red!50!white%
},%
@@ -1124,7 +1130,7 @@ This work consists of the file denisbdoc.dtx
morekeywords=[2]{%
lightgray,red,blue,brown,purple,magenta,green,black,cyan,yellow,%
},%
- % Mots-clés de niveau 3 : arguments optionnels valeurs de clés dans clé=valeur
+ % Mots-clés de niveau 3 : arguments optionnels clés dans clé=valeur
morekeywords=[3]{%
%
},%
@@ -1146,7 +1152,7 @@ This work consists of the file denisbdoc.dtx
breaklinks,colorlinks,bookmarks,pdfborderstyle,pdfborder,all,pdfencoding,final,%
hidelinks,linktoc,%
},%
- % Mots-clés de niveau 3 : arguments optionnels valeurs de clés dans clé=valeur
+ % Mots-clés de niveau 3 : arguments optionnels clés dans clé=valeur
morekeywords=[3]{%
unicode%
},%
@@ -1163,7 +1169,7 @@ This work consists of the file denisbdoc.dtx
laboratory,dedication,frontepigraph,keywords,subject,expression,tableofcontents,submissiondate,%
maketitle,makedisclaimer,makekeywords,makelaboratory,makeabstract,makededications,%
makefrontepigraphs,makebackcover,ordernumber,chapter*,disclaimer,newglssymbol,yadsetup,%
- comue,newcorporation%
+ comue,newcorporation,NoCaseChange%
% acknowledgements,frenchabstract,foreword,preface,caution,
},%
% Environments' names
@@ -1216,7 +1222,7 @@ This work consists of the file denisbdoc.dtx
moretexcs={% Control sequences' names
editorinchief,editor,president,classdesigner,classmaintainer,fontdesigner,%
graphicdesigner,issuesetup,journalsetup,interviewee,academicsignature,%
- subtitle,editorial,gzttableofcontents,minitoc,presidentmessage,%
+ subtitle,editorial,gzttableofcontents,gztlocaltableofcontents,minitoc,presidentmessage,%
acknowledgements,printminibios,aboutfrontcover,rubric,mathematics,%
dossier,community,interview,teaching,parity,tellme,information,%
rearviewmirror,tribute,books,email,question,smf,cad,Cad,gzt,%
@@ -1442,25 +1448,31 @@ This work consists of the file denisbdoc.dtx
alsolanguage=[yad]TeX,%
alsolanguage=[colophon]TeX,%
moretexcs={printbibliography,autocite},%
- }
+ morekeywords=[2]{%
+ colback,refsegment%
+ },%
+ morekeywords=[2]{%
+ red,white%
+ },%
+ }%
}
\bool_if:nT {\g_@@_gzt_bool} {%
\lstdefinestyle{dbtex}{%
style=pre-dbtex,%
alsolanguage=[gzt]TeX,%
- }
+ }%
}
\bool_if:nT {\g_@@_nwejm_bool} {%
\lstdefinestyle{dbtex}{%
style=pre-dbtex,%
alsolanguage=[nwejm]TeX,%
- }
+ }%
}
\bool_if:nT {\g_@@_studentreport_bool} {%
\lstdefinestyle{dbtex}{%
style=pre-dbtex,%
alsolanguage=[studentreport]TeX,%
- }
+ }%
}
\lstset{style=dbtex}
\sys_if_engine_pdftex:TF
diff --git a/macros/latex/contrib/toptesi/README.txt b/macros/latex/contrib/toptesi/README.txt
index 05c2a00f18..bed8748eac 100644
--- a/macros/latex/contrib/toptesi/README.txt
+++ b/macros/latex/contrib/toptesi/README.txt
@@ -87,14 +87,14 @@ be modified unless their names are changed.
-------------------------------------------------------------------
-The TOPtesi bundle contains everything is needed for typesetting
+The TOPtesi bundle contains everything is needed to typeset
a bachelor, master or PhD thesis in Italian intermixed with
English and viceversa (or in any other language supported by
LaTeX: the bundle supports multi-language use).
The infix strings may be selected and/or specified at will by
means of a configuration file, so as to customise the information
-of the front page to the requirements of a specific university
+of the title page to the requirements of a specific university
and a specific language.
Thanks to its language management, the bundle is suited for
@@ -118,7 +118,7 @@ and folios. It it also upgraded to allow compliance with level 2 of the
ISO PDF/A regulations on long term archivability. Because the filecontents
*package* functionalities have been embedded into the LaTeX *kernel*
environment, in a way backwards compatible with the previous definition
-of that environment, the now obslete package filecontents functionalities may
+of that environment, the now obsolete filecontents package functionalities may
still be obtained, but with a different syntax; therefore a new TOPtesi
specific metadata environment has been defined so as to bypass such syntax
changes.
@@ -133,7 +133,7 @@ Version 6.x derives from the previous version by using several features
of the LaTeX3 language.
Version 5.92 of TOPtesi was intended to be compliant also with XeLaTeX
-and LuaLaTeX; the documentation explains also how to obtain PDF/A-1b
+and LuaLaTeX; its documentation explained also how to obtain PDF/A-1b
archivable files from pdfLaTeX, XeLaTeX, and LuaLaTeX. This particular
functionality was up to date with respect to package pdfx dated
2016/05/03 v.1.5.8.
@@ -164,7 +164,7 @@ and decompress it.
Then run pdflatex on toptesi.dtx in order to get the class, style and
configuration files (and the pdf documentation in English) and move
the .tex, .cls, .sty, and .cfg files (including the example .tex files)
-to .../texmf/tex/latex/toptesi/. Move the two pdf files
+to .../texmf/tex/latex/toptesi/. Move both pdf files
toptesi.pdf and toptesi-it.pdf to .../texmf/doc/latex/toptesi/.
If the mentioned folders do not exist, create them.
diff --git a/macros/latex/contrib/toptesi/toptesi-example-magistrale.pdf b/macros/latex/contrib/toptesi/toptesi-example-magistrale.pdf
index 428365af66..0044dca930 100644
--- a/macros/latex/contrib/toptesi/toptesi-example-magistrale.pdf
+++ b/macros/latex/contrib/toptesi/toptesi-example-magistrale.pdf
Binary files differ
diff --git a/macros/latex/contrib/toptesi/toptesi-example-magistrale.tex b/macros/latex/contrib/toptesi/toptesi-example-magistrale.tex
index 5bc7ca2564..383fa08358 100644
--- a/macros/latex/contrib/toptesi/toptesi-example-magistrale.tex
+++ b/macros/latex/contrib/toptesi/toptesi-example-magistrale.tex
@@ -363,9 +363,24 @@ possa essere ruinato dal grande gelo e non indichi la pressione giusta, come
invece deve sempre fare uno strumento di misura, quale \`e quello che \`e
descritto cost\`i.\cite{duane1964}
+\chapter*{Conlusioni}
+E con questo si conclude la tesi d'esempio per una tesi magistrale con un capitolo non numerato che si trova ancora nella main matter.
+
+Dovrebbe essere evidente che il comando \texttt{\string\chapter*} non dovrebbe mai essere usato nella main matter, tranne eventualmente un capitoletto conclusivo e riassuntivo \emph{non strutturato}. Infatti se esso contenesse al suo interno paragrafi, sottoparagrafi e affini, questi verrebbero numerati erroneamente con il numero del capitolo precedente.
+
+\appendix
+
\chapter{Il listato del pacchetto \texttt{topcoman.sty}}
\listing{topcoman.sty}
+\chapter{Seconda appendice}
+Questa è la seconda appendice numerata con una lettera perché questo comando \texttt{\string\chapter} viene dopo il comando \texttt{\string\appendix}.
+
+Le appendici vanno numerate se sono più di una e devono quindi stare nella main matter, perché nella back matter nulla viene numerato.
+
+La bibliografia che segue non è numerata perché l'ambiente \texttt{thebibliography} compone il suo titolo con il comando \texttt{\string\chapter*} e ne manda il titolo nell'indice generale con i suoi propri comandi interni. La definizione di questo ambiente è specifica di questo macro-pacchetto \texttt{TOPtesi}.
+
+Sarebbe meglio inserire la bibliografia dopo un comando \texttt{\string\backmatter} esplicito. La back matter è destina espressamente a una sola appendice non numerata (ci pensa da sola a non numerare le sue sezioni); alla bibliografia, a uno o più indici analitici, a glossari o nomenclature, liste di acronimi, e simili. Nulla è obbligatorio in una back matter, ma una tesi senza bibliografia non sarebbe appropriata, tanto meno una tesi magistrale priva di una bibliografia.
\begin{thebibliography}{9}
\bibitem{gal} G.~Galilei, {\em Nuovi studii sugli astri medicei}, Manuzio,
@@ -375,7 +390,7 @@ descritto cost\`i.\cite{duane1964}
\bibitem{tor2} E.~Torricelli e A.~Vasari, in ``Delle misure'', {\em Atti Nuovo
Cimento}, vol.~III, n.~2 (feb. 1607), p.~27--31.
\bibitem{duane1964} Duane J.T., \emph{Learning Curve Approach To Reliability
- Monitoring}, IEEE Transactions on Aerospace, Vol. 2, pp. 563-566, 1964
+ Monitoring}, IEEE Transactions on Aerospace, Vol. 2, pp. 563-566, 1994
\end{thebibliography}
diff --git a/macros/latex/contrib/toptesi/toptesi-it.pdf b/macros/latex/contrib/toptesi/toptesi-it.pdf
index 50bcb44e37..936f916ea4 100644
--- a/macros/latex/contrib/toptesi/toptesi-it.pdf
+++ b/macros/latex/contrib/toptesi/toptesi-it.pdf
Binary files differ
diff --git a/macros/latex/contrib/toptesi/toptesi-it.tex b/macros/latex/contrib/toptesi/toptesi-it.tex
index 8798f34e19..8106e2c958 100644
--- a/macros/latex/contrib/toptesi/toptesi-it.tex
+++ b/macros/latex/contrib/toptesi/toptesi-it.tex
@@ -26,7 +26,7 @@
% numerazioneromana,%
% libro%
]{toptesi}\errorcontextlines=100
-\ProvidesFile{toptesi-it.tex}[2020-05-12 v.0.9.47 TOPtesi Italian Documentation]
+\ProvidesFile{toptesi-it.tex}[2020-05-19 v.0.9.48 TOPtesi Italian Documentation]
%%% Il pacchetto imakeidx va caricato prima di pdfx,
%%% altrimenti non funziona bene
\usepackage{imakeidx}% Vedi documentazione
@@ -529,7 +529,9 @@ In particolare, anche se \TOPtesi è costruita sopra la classe \class{report}, d
\begin{description}[noitemsep]
\item[\cs{frontmatter}] è l'impostazione di default; non è necessario specificare questo comando; la differenza rispetto alla definizione della classe \class{book} consiste nel fatto che per impostazione predefinita \emph{non} usa la numerazione romana per le pagine; questo tipo di numerazione si può ottenere solo con l'opzione della classe \chiave{numerazioneromana} che, se impostata, modifica l'aspetto dei numeri usando il maiuscoletto per quelli romani, invece delle cifre arabe. I comandi di sezionamento non asteriscati non sono numerati ma sono elencati nell'indice; tuttavia al primo comando \cs{chapter} che il compilatore incontra, passa automaticamente alla \cs{mainmatter}. Per questo i capitoli corrispondenti ai ringraziamenti e al sommario sono ottenuti mediante comandi specifici proprio per non commutare alla \cs{mainmatter}.
%
-\item[\cs{mainmatter}] Numera i capitoli e li indica nell'indice generale; se la numerazione della parte iniziale era romana, la cambia in numerazione con cifre arabe ricominciando da~1, mentre se la numerazione della parte iniziale era in cifre arabe la prosegue senza cambiare aspetto. Come detto, non è necessario, anche se non è proibito, esplicitare questo comando, perché la commutazione dalla parte iniziale a quella principale della tesi avviene automaticamente quando il programma di compilazione incontra il primo comando \cs{chapter}. Questo implica che un'eventuale prefazione o presentazione del lavoro sia formata da un capitolo numerato; questa è l'impostazione predefinita di \TOPtesi; se si vuole fare diversamente bisogna ricorrere al comando \cs{chapter*} ma se si vuole che sia indicato nell'indice, bisogna usare il comando \cs{addcontentsline} con i suoi vari argomenti; invece, con l'attuale versione di \TOPtesi, per avere le intestazioni nelle testatine, basta specificare uno stile di pagina che disponga di testatine prima di invocare quel comando asteriscato
+\item[\cs{mainmatter}] Numera i capitoli e li indica nell'indice generale; se la numerazione della parte iniziale era romana, la cambia in numerazione con cifre arabe ricominciando da~1, mentre se la numerazione della parte iniziale era in cifre arabe la prosegue senza cambiare aspetto. Come detto, non è necessario, anche se non è proibito, esplicitare questo comando, perché la commutazione dalla parte iniziale a quella principale della tesi avviene automaticamente quando il programma di compilazione incontra il primo comando \cs{chapter}. Questo implica che un'eventuale prefazione o presentazione del lavoro sia formata da un capitolo numerato; questa è l'impostazione predefinita di \TOPtesi; se si vuole fare diversamente bisogna ricorrere al comando \cs{chapter*} ma se si vuole che sia indicato nell'indice, bisogna usare il comando \cs{addcontentsline} con i suoi vari argomenti; invece, con l'attuale versione di \TOPtesi, per avere le intestazioni nelle testatine, basta specificare uno stile di pagina che disponga di testatine prima di invocare quel comando asteriscato.
+
+Nella parte principale non ha senso inserire un capitolo non numerato, tranne, forse alla fine per comporre un breve capitoletto conclusivo o una postfazione. Se lo si facesse e il capitolo fosse strutturato in paragrafi, sottoparagrafi, eccetera, questi verrebbero numerati con il numero del capitolo precedente; l che sarebbe assurdo. Quindi un eventuale capitoletto conclusivo o una postfazione deve essere semplice e non strutturato; può essere inserito prima di eventuali appendici numerate; con le versioni 6.4.04 e seguenti di \TOPtesi le appendici che seguono il predetto capitoletto non numerato prima di incontrare il comando \cs{backmatter} (che non numererebbe le appendici, quindi adatto a riceverne una sola) verrebbero numerate esplicitamente con le solite lettere maiuscole.
%
\item[\cs{backmatter}] Inizia la composizione della parte finale della tesi. Generalmente questa parte finale contiene la bibliografia, ma può contenere anche liste di acronimi, nomenclature, indice analitico,~\dots, tutte parti non obbligatorie, ma talvolta necessarie a seconda del tipo di tesi e del suo contenuto. I comandi \cs{chapter}, quando si compone fronte"/retro, possono iniziare anche sulle pagine pari e non sono numerati. Perciò se la tesi contiene una sola appendice, questa non ha bisogno di numerazione e può costituire il primo capitolo della parte finale; se invece le appendici sono più di una, vanno inserite verso la fine della parte principale, dopo aver esplicitato l'istruzione \cs{appendix}, che cambia la numerazione dei capitoli da numerica a letterale e cambia il nome “Capitolo” nel nome “Appendice” (espressi nella lingua principale della tesi).
%
@@ -781,7 +783,7 @@ Inizialmente il diagramma di flusso del funzionamento di \TOPtesi era quello lin
Il tutto era molto semplice, e per ciò stesso era anche molto rigido e non consentiva personalizzazioni di nessun genere.
-A partire dalla versione 5.85 di \TOPtesi l'utente poteva caricare alcuni pacchetti a sua scelta; la loro presenza veniva controllata dal modulo \pack{topcoman} che a seconda di quali fossero caricati si comportava in modo diverso per evitare possibili conflitti. Allo stesso tempo l'utente poteva impostare determinate variabili booleane, che a seconda del loro stato di `vero' o `falso', gli permettevano di comporre il frontespizio con i comandi del pacchetto \pack{topfront} oppure del pacchetto esterno \pack{frontespizio} modificandone così l'aspetto rispetto a quello che \TOPtesi aveva sempre composto. Il diagramma di flusso mostrato nella figura~\ref{fig:toptesi+frontspizio} è leggermente più complesso, ma tutto sommato ancora molto semplice. In sostanza il frontespizio viene composto o con i comandi originali di \TOPtesi oppure con quelli del pacchetto \pack{frontespizio} ma i due modi sono mutuamente esclusivi e non si possono mescolare le due modalità.
+A partire dalla versione 5.85 di \TOPtesi l'utente poteva caricare alcuni pacchetti a sua scelta; la loro presenza veniva controllata dal modulo \pack{topcoman} che a seconda di quali fossero caricati si comportava in modo diverso per evitare possibili conflitti. Allo stesso tempo l'utente poteva impostare determinate variabili booleane, che a seconda del loro stato di `vero' o `falso', gli permettevano di comporre il frontespizio con i comandi del pacchetto \pack{topfront} oppure del pacchetto esterno \pack{frontespizio} modificandone così l'aspetto rispetto a quello che \TOPtesi aveva sempre composto. Il diagramma di flusso mostrato nella figura~\ref{fig:toptesi+frontespizio} è leggermente più complesso, ma tutto sommato ancora molto semplice. In sostanza il frontespizio viene composto o con i comandi originali di \TOPtesi oppure con quelli del pacchetto \pack{frontespizio} ma i due modi sono mutuamente esclusivi e non si possono mescolare le due modalità.
\begin{figure}\centering\unitlength=0.009\textwidth
\begin{picture}(115,45)(0,-3)
@@ -805,7 +807,7 @@ A partire dalla versione 5.85 di \TOPtesi l'utente poteva caricare alcuni pacche
\fileicon(95,10){.pdf}
\end{picture}
\caption{Diagramma di flusso di \TOPtesi versione 5.85}
-\label{fig:toptesi+frontspizio}
+\label{fig:toptesi+frontespizio}
\end{figure}
Nel 2016 sono emerse altre necessità. La SCUola di DOttorato (ScuDo) del Politecnico di Torino ha richiesto ai suoi dottorandi di comporre la loro dissertazione con uno stile particolare, specificatamente con un frontespizio molto diverso da quello ottenibile con il modulo \pack{topfront} o il pacchetto \pack{frontespizio}. Inoltre la ScuDo ha richiesto una cosa che viene fatta solo per questo tipo di tesi ed è assente da tutti gli altri moduli: un colophon\index{colophon} nell'ultima pagina, nel quale si spiega che la tesi è stata composta con questa classe.
@@ -1603,7 +1605,7 @@ Per la tesina da presentare all'esame di stato per il conseguimento del diploma
\begin{figure}[p]\centering
\fbox{\includegraphics[height=\dimexpr\textheight-2\fboxrule-2\fboxsep-2.5\baselineskip]{Frontespizio-sss}}
-\caption{Esempio di frontspizio per una tesina}
+\caption{Esempio di frontespizio per una tesina}
\label{fig:frontepizio-tesina}
\end{figure}
@@ -1957,7 +1959,7 @@ aprendo un terminale o un prompt dei comandi, scrivendoci
dentro \verb|texdoc pdfpages| e poi premendo il tasto \tasto{invio}.
\begin{figure}[t]\frame{\includegraphics[width=\textwidth]{FrontespizioLandscape}}
-\caption[Frontespizio con l'orientamento landscape ottenuto con l'ambiente titlepage]{Frontespizio con l'orientamento \opt{landscape} ottenuto con l'ambiente \env{titlepage}}\label{fig:frontespizio-landscape}
+\caption[Frontespizio con in landscape ottenuto con l'ambiente titlepage]{Frontespizio con l'orientazione \opt{landscape} ottenuto con l'ambiente \env{titlepage}}\label{fig:frontespizio-landscape}
\end{figure}
Volendo, si potrebbe mettere tutto il codice precedente in un file personale, per esempio \file*{IlMioFrontespizio.tex}, e immetterlo nel corpo della tesi semplicemente usando il comando \cs{input}. Il corpo della tesi risulta alleggerito e la sua gestione e manutenzione ne risulta semplificata.
@@ -2146,7 +2148,7 @@ Analogamente si deve procedere per capitoli non numerati nella front matter:
\chapter*{Prologo}}
\addcontentsline{toc}{chapter}{Prologo}
\end{verbatim}
-dove \cs{frontmattertrue} mantiene lo stile di composizione della front matter, anche se\cs{chapter} di suo farebbe passare dalla parte inziale a quella principale.
+dove \cs{frontmattertrue} mantiene lo stile di composizione della front matter, anche se\cs{chapter} di suo farebbe passare dalla parte iniziale a quella principale.
Queste osservazioni non dipendono tanto dalla nuova definizione del comando \cs{chapter}, perché anche nelle precedenti versioni era così, ma non era sottolineato abbastanza.
@@ -2392,7 +2394,7 @@ del sito \url{https://www.guitex.org}.
Per i ringraziamenti si è già sottolineata la loro utilità solo in certe circostanze e la loro inutilità quando quelle circostanze non sussistono; per il “sommario” la questione è diversa. Infatti in italiano la parola “sommario” può voler dire diverse cose; può indicare una breve descrizione del contenuto di un documento e in questo caso la lingua inglese è più precisa perché indica questa descrizione col nome di \emph{abstract}. “Sommario” può indicare un riassunto o una sinossi piuttosto approfonditi e in questo caso l'inglese usa il nome di \emph{summary}. Inoltre “sommario” può essere usato in italiano come sinonimo di “indice generale”, mentre l'inglese usa solamente la locuzione nominale \emph{table of contents}. Con \TOPtesi l'abstract si crea con l'ambiente \amb{abstract} con un'avvertenza: se lo si scrive in italiano bisogna cambiargli il nome da “Sommario” in qualcosa d'altro che personalmente non saprei come scegliere; se lo si volesse chiamare “Breve descrizione”, per esempio, bisognerebbe aggiungere nel preambolo l'istruzione
\begin{sintassi}
-\cs{addto}\Marg{\cs{captionsintalian}}\Marg{\cs{renewcommand}\cs{abstractname}\Marg{Breve descrizione}}
+\cs{addto}\Marg{\cs{captionsitalian}}\Marg{\cs{renewcommand}\cs{abstractname}\Marg{Breve descrizione}}
\end{sintassi}
mentre componendo in inglese (e probabilmente anche in altre lingue) non è necessario aggiungere nessuna istruzione.
@@ -4260,7 +4262,7 @@ Consiglierei l'uso di \XeLaTeX o \LuaLaTeX solo per quelle tesi, specialmente d
So per certo che le tesi di filologia classica possono essere composte molto bene con \pdfLaTeX\ e \textsf{TOPtesi}; se bisogna usare una buona dose di lingua greca classica è conveniente caricare il pacchetto \pack{teubner}\footnote{A tutt'oggi (\the\year) il pacchetto \pack{teubner} funziona correttamente solo con \pdfLaTeX.}; gli intenditori sanno perfettamente che i font greci della casa editrice Teubner di Lipsia sono fra i più gradevoli che esistano; il pacchetto \texttt{teubner} fa uso di un'ottima imitazione di quei font e mette a disposizione una miriade di comandi per comporre quei segni “strani” che i filologi usano per scrivere le loro opere.
-Per le edizioni critiche esistono i pacchetti \texttt{eledmac} e \pack{reledmac}; io non li ho mai usati, ma sembra che siano di grande aiuto per gli umanisti.
+Per le edizioni critiche esistono i pacchetti \pack{eledmac} e \pack{reledmac}; io non li ho mai usati, ma sembra che siano di grande aiuto per gli umanisti.
Per gli scienziati e i tecnologi esistono troppi pacchetti specializzati e sarebbe impossi"bile, e forse inutile, elencarli tutti o anche elencare solo i più importanti.
diff --git a/macros/latex/contrib/toptesi/toptesi.dtx b/macros/latex/contrib/toptesi/toptesi.dtx
index 843f5659b1..16091dc618 100644
--- a/macros/latex/contrib/toptesi/toptesi.dtx
+++ b/macros/latex/contrib/toptesi/toptesi.dtx
@@ -10,7 +10,7 @@
\preamble
______________________________________________________
The TOPtesi bundle
- Copyright (C) 2015-2019 Claudio Beccari
+ Copyright (C) 2015-2020 Claudio Beccari
All rights reserved
License information appended
@@ -18,7 +18,7 @@
\endpreamble
\postamble
-Copyright 2005-2019 Claudio Beccari
+Copyright 2005-2020 Claudio Beccari
Distributable under the LaTeX Project Public License,
version 1.3c or higher (your choice). The latest version of
@@ -102,7 +102,7 @@ School of Turin.
\endgroup
%</internal>
%
-% Copyright 1989--2019 Claudio Beccari
+% Copyright 1989--2020 Claudio Beccari
%
% This file is part of the TOPtesi bundle
% -------------------------------------------
@@ -142,7 +142,7 @@ School of Turin.
%<topmag>\ProvidesPackage{toptesi-magistrale}[%
%<topdoc>\ProvidesPackage{toptesi-dottorale}[%
%<*driver,class,topsty,topcmn,topfrn,topscu,topmon,topsss,topmag,topdoc>
-2020-05-12 v.6.4.02
+2020-05-29 v.6.4.04
%<class>Class for typesetting university theses]
%<topsty>Extension for toptesi.cls]
%<topcmn>Additional commands for the TOPtesi bundle]
@@ -258,7 +258,7 @@ School of Turin.
%</driver>
% \fi
%
-% \CheckSum{7981}
+% \CheckSum{8000}
%
% \begin{abstract}
% This file describes the TOPtesi bundle; it consists of a set of files
@@ -3494,9 +3494,30 @@ School of Turin.
% Acknowledgements chapters, as defined above, are regularly
% typeset in the front matter style, opening on any page
% (even or odd) and possibly with folios numbered with small
-% caps roman numerals. The |\chapter*| dos not switch from
-% front to main matter; while the starred one does.
+% caps roman numerals. The |\chapter*| does not switch from
+% front to main matter; while the unstarred one does.
+% Moreover |\chapter*|, besides avoiding numbering the specific chapter,
+% inhibits its entry in the |toc| file.
+% In previous versions of this bundle the |\chapter*| command would
+% set the |secnumdepth| counter to $-3$ in a global manner. This did
+% not produce any effects while in front or back matters, except
+% avoiding the chapter entry in the |toc| file, but it inhibited
+% chapter numbering in all following chapters while in main matter.
+% This had no consequences if a final main matter unnumbered
+% chapter, such as a |Conclusions| one, or a postface had to be
+% typeset; but if numbered appendices had to conclude the main matter,
+% these could not be numbered\footnote{Thanks to Damiano Del Sarto who
+% spotted this bug.}. To avoid this “feature”, the user had to mask
+% the |\chapter*| command and its argument(s) within a group, like this:
+%\begin{flushleft}\obeylines
+%\Marg{\cs{chapter}*\oarg{header entry}\marg{chapter title}}
+%\end{flushleft}
+% With the new definition there is non need to employ such (actually
+% simple) trick, because the |secnumdepth| counter value is saved, and
+% this previous value is restored after the |\chapter| command is fully
+% completed.
% \begin{macrocode}
+\newcount\TOPsecnumdepth
\RenewDocumentCommand{\chapter}
{s O{#4} O{#2} m O{plain}}{%
\if@openright\cleardoublepage
@@ -3504,6 +3525,7 @@ School of Turin.
\thispagestyle{#5}%
\global\@topnum\z@
\@afterindentfalse
+ \TOPsecnumdepth=\c@secnumdepth
\IfBooleanTF{#1}{%
\c@secnumdepth=-3\relax
\let\iftoc\iffalse
@@ -3540,6 +3562,7 @@ School of Turin.
\@makechapterhead{#4}%
\@afterheading
\fi
+ \c@secnumdepth=\TOPsecnumdepth
}
% \end{macrocode}
% It would be possible to redefine in a similar manner also
@@ -9095,7 +9118,9 @@ This class is available in every up-to-date and complete
% \begin{macrocode}
\ifBlank{\@SSSLogo}%
{\vspace{\stretch{1}}}%
- {\includegraphics[height=30mm]{\@SSSLogo}}\par\vspace{\stretch{1}}
+ {\vspace{\stretch{1}}\setbox0\hbox{\includegraphics[height=30mm]{\@SSSLogo}}
+ \ifdim\wd0>\linewidth \resizebox{\linewidth}{!}{\box0}\else\box0\fi
+ \par\vspace{\stretch{1}}}
% \end{macrocode}
%
% The examining committee chairperson name and the Ministry
diff --git a/macros/latex/contrib/toptesi/toptesi.pdf b/macros/latex/contrib/toptesi/toptesi.pdf
index b2f705688b..5dc9e347c0 100644
--- a/macros/latex/contrib/toptesi/toptesi.pdf
+++ b/macros/latex/contrib/toptesi/toptesi.pdf
Binary files differ
diff --git a/macros/xetex/latex/xepersian-hm/INSTALL.txt b/macros/xetex/latex/xepersian-hm/INSTALL.txt
index 3176048e77..340d9819aa 100644
--- a/macros/xetex/latex/xepersian-hm/INSTALL.txt
+++ b/macros/xetex/latex/xepersian-hm/INSTALL.txt
@@ -29,10 +29,11 @@ Don't forget to run 'texconfig rehash' afterwards.
The example files
kashida-glyph-example.tex
- kashida-hrule-example.tex
+ kashida-leaders-glyph-example.tex
+ kashida-leaders-hrule-example.tex
kashida-xep-XB-example.tex
illustrate some features of the package and are an addendum to the
main documentation xepersian-hm.pdf.
-Thats it.
+That's it.
diff --git a/macros/xetex/latex/xepersian-hm/kashida-glyph-example.pdf b/macros/xetex/latex/xepersian-hm/kashida-glyph-example.pdf
index 9e65b1261e..8ea503d221 100644
--- a/macros/xetex/latex/xepersian-hm/kashida-glyph-example.pdf
+++ b/macros/xetex/latex/xepersian-hm/kashida-glyph-example.pdf
Binary files differ
diff --git a/macros/xetex/latex/xepersian-hm/kashida-glyph-example.tex b/macros/xetex/latex/xepersian-hm/kashida-glyph-example.tex
index 4bcbcfc66c..1cf5a029c5 100644
--- a/macros/xetex/latex/xepersian-hm/kashida-glyph-example.tex
+++ b/macros/xetex/latex/xepersian-hm/kashida-glyph-example.tex
@@ -29,6 +29,9 @@
\defpersianfont\HMXKayhanOb[Scale=4.5]{HM XKayhanOb Oblique}
\defpersianfont\HMXKayhanOl[Scale=4.5]{HM XKayhan Outline}
\defpersianfont\HMXKayhanSd[Scale=4.5]{HM XKayhan Shadow}
+\defpersianfont\HMXKayhanPo[Scale=4.5]{HM XKayhan Pook}
+\defpersianfont\HMXKayhanSa[Scale=4.5]{HM XKayhan Sayeh}
+\defpersianfont\HMXKayhanNa[Scale=4.5]{HM XKayhan Navaar}
% \def\SampleText{\discouragebadlinebreaks[8][0.14 em plus 5.5 em]{
% راهی جایی تابی چاپی چاههی تلاشهایی
@@ -107,4 +110,22 @@
{\HMXKayhanSd \SampleText}
+\newpage
+
+\KashidaOn{\hfill\lr{(Kashida On, Pook)}\hfill}
+
+{\HMXKayhanPo \SampleText}
+
+\newpage
+
+\KashidaOn{\hfill\lr{(Kashida On, Sayeh)}\hfill}
+
+{\HMXKayhanSa \SampleText}
+
+\newpage
+
+\KashidaOn{\hfill\lr{(Kashida On, Navaar)}\hfill}
+
+{\HMXKayhanNa \SampleText}
+
\end{document}
diff --git a/macros/xetex/latex/xepersian-hm/kashida-hrule-example.pdf b/macros/xetex/latex/xepersian-hm/kashida-hrule-example.pdf
deleted file mode 100644
index 5578b52549..0000000000
--- a/macros/xetex/latex/xepersian-hm/kashida-hrule-example.pdf
+++ /dev/null
Binary files differ
diff --git a/macros/xetex/latex/xepersian-hm/kashida-leaders-glyph-example.pdf b/macros/xetex/latex/xepersian-hm/kashida-leaders-glyph-example.pdf
new file mode 100644
index 0000000000..6f4530ae89
--- /dev/null
+++ b/macros/xetex/latex/xepersian-hm/kashida-leaders-glyph-example.pdf
Binary files differ
diff --git a/macros/xetex/latex/xepersian-hm/kashida-hrule-example.tex b/macros/xetex/latex/xepersian-hm/kashida-leaders-glyph-example.tex
index 48894d1413..bad9ac6a55 100644
--- a/macros/xetex/latex/xepersian-hm/kashida-hrule-example.tex
+++ b/macros/xetex/latex/xepersian-hm/kashida-leaders-glyph-example.tex
@@ -5,7 +5,7 @@
% \textheight=620pt
% \usepackage[Kashida]{xepersian} % Fails
% \usepackage{xepersian-hm} % Succeeds
-\usepackage[Kashida=hrule,kashidastretch=0.14 em plus 0.5 em]{xepersian-hm} % Succeeds
+\usepackage[Kashida=leaders+glyph,kashidastretch=0.14 em plus 0.5 em]{xepersian-hm} % Succeeds
% \usepackage[Kashida=hrule,kashidastretch=0.14 em plus 5.5 em]{xepersian-hm} % Succeeds
% \usepackage[Kashida=glyph,linebreakpenalty=8,kashidastretch=0.14 em plus 5.5 em]{xepersian-hm} % Succeeds
% \usepackage[Kashida=glyph,kashidastretch=kayhan]{xepersian-hm} % Succeeds
@@ -29,6 +29,9 @@
\defpersianfont\HMXKayhanOb[Scale=4.5]{HM XKayhanOb Oblique}
\defpersianfont\HMXKayhanOl[Scale=4.5]{HM XKayhan Outline}
\defpersianfont\HMXKayhanSd[Scale=4.5]{HM XKayhan Shadow}
+\defpersianfont\HMXKayhanPo[Scale=4.5]{HM XKayhan Pook}
+\defpersianfont\HMXKayhanSa[Scale=4.5]{HM XKayhan Sayeh}
+\defpersianfont\HMXKayhanNa[Scale=4.5]{HM XKayhan Navaar}
% \def\SampleText{\discouragebadlinebreaks[8][0.14 em plus 5.5 em]{
% راهی جایی تابی چاپی چاههی تلاشهایی
@@ -106,4 +109,22 @@
{\HMXKayhanSd \SampleText}
+\newpage
+
+\KashidaOn{\hfill\lr{(Kashida On, Pook)}\hfill}
+
+{\HMXKayhanPo \SampleText}
+
+\newpage
+
+\KashidaOn{\hfill\lr{(Kashida On, Sayeh)}\hfill}
+
+{\HMXKayhanSa \SampleText}
+
+\newpage
+
+\KashidaOn{\hfill\lr{(Kashida On, Navaar)}\hfill}
+
+{\HMXKayhanNa \SampleText}
+
\end{document}
diff --git a/macros/xetex/latex/xepersian-hm/kashida-leaders-hrule-example.pdf b/macros/xetex/latex/xepersian-hm/kashida-leaders-hrule-example.pdf
new file mode 100644
index 0000000000..51f7f1b024
--- /dev/null
+++ b/macros/xetex/latex/xepersian-hm/kashida-leaders-hrule-example.pdf
Binary files differ
diff --git a/macros/xetex/latex/xepersian-hm/kashida-leaders-hrule-example.tex b/macros/xetex/latex/xepersian-hm/kashida-leaders-hrule-example.tex
new file mode 100644
index 0000000000..0045ebe69e
--- /dev/null
+++ b/macros/xetex/latex/xepersian-hm/kashida-leaders-hrule-example.tex
@@ -0,0 +1,130 @@
+% \PassOptionsToPackage{debugfootnotedirection=off,localise=off}{xepersian} % Load xepersian with a few options
+\documentclass{report}
+% \textwidth=345.0pt
+% \textheight=550.0pt
+% \textheight=620pt
+% \usepackage[Kashida]{xepersian} % Fails
+% \usepackage{xepersian-hm} % Succeeds
+\usepackage[Kashida=leaders+hrule,kashidastretch=0.14 em plus 0.5 em]{xepersian-hm} % Succeeds
+% \usepackage[Kashida=hrule,kashidastretch=0.14 em plus 5.5 em]{xepersian-hm} % Succeeds
+% \usepackage[Kashida=glyph,linebreakpenalty=8,kashidastretch=0.14 em plus 5.5 em]{xepersian-hm} % Succeeds
+% \usepackage[Kashida=glyph,kashidastretch=kayhan]{xepersian-hm} % Succeeds
+% \usepackage[Kashida,kashidastretch=0.14 em plus 0.5 em]{xepersian-hm} % Succeeds
+% \usepackage[Kashida,kashidastretch=noskip]{xepersian-hm} % Succeeds
+% \usepackage[Kashida,kashidastretch=default]{xepersian-hm} % Succeeds
+% \usepackage[Kashida,kashidastretch=kayhan]{xepersian-hm} % Succeeds
+% \usepackage[Kashida,kashidastretch=khorramshahr]{xepersian-hm} % Succeeds
+
+% \settextfont[Scale=4.5,Colour=darkgray]{XB Kayhan}
+\settextfont[Scale=4.5]{HM XKayhan}
+% \settextfont[Scale=4.5,Colour=darkgray]{HM XNiloofar}
+% \settextfont[Scale=4.5,Colour=darkgray]{HM XYas}
+% \settextfont[Scale=4.5,Colour=darkgray]{HM XZar}
+% \settextfont[Scale=1,Colour=darkgray]{HM XKayhan}
+
+% \setlatintextfont[Scale=2.5,Colour=0000FF]{XB Kayhan}
+\setlatintextfont[Scale=1.5,Colour=0000FF]{HM XKayhan}
+
+\defpersianfont\HMXKayhanIt[Scale=4.5]{HM XKayhan Italic}
+\defpersianfont\HMXKayhanOb[Scale=4.5]{HM XKayhanOb Oblique}
+\defpersianfont\HMXKayhanOl[Scale=4.5]{HM XKayhan Outline}
+\defpersianfont\HMXKayhanSd[Scale=4.5]{HM XKayhan Shadow}
+\defpersianfont\HMXKayhanPo[Scale=4.5]{HM XKayhan Pook}
+\defpersianfont\HMXKayhanSa[Scale=4.5]{HM XKayhan Sayeh}
+\defpersianfont\HMXKayhanNa[Scale=4.5]{HM XKayhan Navaar}
+
+% \def\SampleText{\discouragebadlinebreaks[8][0.14 em plus 5.5 em]{
+% راهی جایی تابی چاپی چاههی تلاشهایی
+% شتابهایی تابی چاپی راهی تلاشهــایی
+% که کتابهایی که کلاههایی که کتابهایی }}
+
+% \def\SampleText{\discouragebadlinebreaks[10][0.12 em plus 5.5 em]{
+% راهی جایی تابی چاپی چاههی تلاشهایی
+% شتابهایی تابی چاپی راهی تلاشهــایی
+% که کتابهایی که کلاههایی که کتابهایی }}
+
+% \def\SampleText{\discouragebadlinebreaks{
+% راهی جایی تابی چاپی چاههی تلاشهایی
+% شتابهایی تابی چاپی راهی تلاشهــایی
+% که کتابهایی که کلاههایی که کتابهایی }}
+
+\def\SampleText{
+ راهی جایی تابی چاپی چاههی تلاشهایی
+ شتابهایی تابی چاپی راهی تلاشهــایی
+ که کتابهایی که کلاههایی که کتابهایی }
+
+\setlength\parindent{0pt}
+\pagestyle{empty}
+
+\begin{document}
+
+\begin{latin}
+\begin{center}
+\Huge\textsf{xepersian-hm}\vspace{20pt}\\ Example of Use\vspace{20pt}\\ \texttt{Kashida=hrule} \vspace{40pt}
+
+{\Large
+\begin{tabular}{ll}
+ \textsf{Font:} & \textsf{HM XKayhan} \\
+ \textsf{Font Scale:} & \texttt{4.5} \\
+ \textsf{kashidastretch:} & \texttt{0.14em plus 0.5em}
+\end{tabular}
+}
+\end{center}
+
+\end{latin}
+
+\newpage
+
+\KashidaOff{\hfill\lr{(Kashida Off, Regular)}\hfill}
+
+\SampleText
+
+\newpage
+
+\KashidaOn{\hfill\lr{(Kashida On, Regular)}\hfill}
+
+\SampleText
+
+\newpage
+
+\KashidaOn{\hfill\lr{(Kashida On, Italic)}\hfill}
+
+{\HMXKayhanIt \SampleText}
+
+\newpage
+
+\KashidaOn{\hfill\lr{(Kashida On, Oblique)}\hfill}
+
+{\HMXKayhanOb \SampleText}
+
+\newpage
+
+\KashidaOn{\hfill\lr{(Kashida On, Outline)}\hfill}
+
+{\HMXKayhanOl \SampleText}
+
+\newpage
+
+\KashidaOn{\hfill\lr{(Kashida On, Shadow)}\hfill}
+
+{\HMXKayhanSd \SampleText}
+
+\newpage
+
+\KashidaOn{\hfill\lr{(Kashida On, Pook)}\hfill}
+
+{\HMXKayhanPo \SampleText}
+
+\newpage
+
+\KashidaOn{\hfill\lr{(Kashida On, Sayeh)}\hfill}
+
+{\HMXKayhanSa \SampleText}
+
+\newpage
+
+\KashidaOn{\hfill\lr{(Kashida On, Navaar)}\hfill}
+
+{\HMXKayhanNa \SampleText}
+
+\end{document}
diff --git a/macros/xetex/latex/xepersian-hm/kashida-xep-XB-example.pdf b/macros/xetex/latex/xepersian-hm/kashida-xep-XB-example.pdf
index 5e022cdf55..098cef1e4f 100644
--- a/macros/xetex/latex/xepersian-hm/kashida-xep-XB-example.pdf
+++ b/macros/xetex/latex/xepersian-hm/kashida-xep-XB-example.pdf
Binary files differ
diff --git a/macros/xetex/latex/xepersian-hm/kashida-xep-XB-example.tex b/macros/xetex/latex/xepersian-hm/kashida-xep-XB-example.tex
index f623cb26e6..6e5b13ef8b 100644
--- a/macros/xetex/latex/xepersian-hm/kashida-xep-XB-example.tex
+++ b/macros/xetex/latex/xepersian-hm/kashida-xep-XB-example.tex
@@ -7,6 +7,9 @@
\defpersianfont\XBKayhanOb[Scale=4.5]{XB Zar Oblique}
\defpersianfont\XBKayhanOl[Scale=4.5]{XB Kayhan Pook}
\defpersianfont\XBKayhanSd[Scale=4.5]{XB Kayhan Sayeh}
+\defpersianfont\XBKayhanPo[Scale=4.5]{XB Kayhan Pook}
+\defpersianfont\XBKayhanSa[Scale=4.5]{XB Kayhan Sayeh}
+\defpersianfont\XBKayhanNa[Scale=4.5]{XB Kayhan Navaar}
\def\SampleText{
راهی جایی تابی چاپی چاههی تلاشهایی
@@ -68,4 +71,22 @@
{\XBKayhanSd \SampleText}
+\newpage
+
+\KashidaOn{\hfill\lr{(Kashida On, Pook)}\hfill}
+
+{\XBKayhanPo \SampleText}
+
+\newpage
+
+\KashidaOn{\hfill\lr{(Kashida On, Sayeh)}\hfill}
+
+{\XBKayhanSa \SampleText}
+
+\newpage
+
+\KashidaOn{\hfill\lr{(Kashida On, Navaar)}\hfill}
+
+{\XBKayhanNa \SampleText}
+
\end{document}
diff --git a/macros/xetex/latex/xepersian-hm/xepersian-hm-doc.ltx b/macros/xetex/latex/xepersian-hm/xepersian-hm-doc.ltx
index e114505229..535b6dedd4 100644
--- a/macros/xetex/latex/xepersian-hm/xepersian-hm-doc.ltx
+++ b/macros/xetex/latex/xepersian-hm/xepersian-hm-doc.ltx
@@ -27,7 +27,7 @@
}
}
-\date{Released \quad 2020-05-20 \quad v0.5f}
+\date{Released \quad 2020-05-31 \quad v1.0a}
\let\tmpthepage\thepage
\renewcommand{\thepage}{\lr{\Large\textbf\tmpthepage}}
@@ -43,9 +43,14 @@ and \mbox{\textsf{X Series 2}} available at
\href{http://wiki.irmug.com/index.php/X_Series_2}{\texttt{http://wiki.irmug.com/index.php/X\_Series\_2}}.
The \textsf{xepersian-hm} package fixes these problems.
-The files \texttt{kashida-glyph-example.tex} and \texttt{kashida-hrule-example.tex}
-in the directory \texttt{texmf-dist/doc/xelatex/xepersian-hm/} can be used as simple
-examples of the usage of the package.
+The following files in the directory \texttt{texmf-dist/doc/xelatex/xepersian-hm/} can be used as simple
+examples of the usage of the package:
+\newcounter{beanx}
+ \begin{list}{\arabic{beanx}.}{\usecounter{beanx}\setlength{\rightmargin}{\leftmargin}}
+ \item \texttt{kashida-glyph-example.tex}
+ \item \texttt{kashida-leaders-glyph-example.tex}
+ \item \texttt{kashida-leaders-hrule-example.tex}
+\end{list}
Please use the Bitbucket issue tracker:
\href{https://bitbucket.org/dma8hm1334/xepersian-hm/issues}{\textsf{https://bitbucket.org/dma8hm1334/\linebreak[4]xepersian-hm/issues}}
@@ -59,7 +64,7 @@ which I cannot make time to fix.
Kashida is one of the most important features that must be included in any
Persian typesetter. In xepersian this feature is implemented but with some
-problems. These problems along withe fixes in xepersian-hm are briefly:
+problems. These problems along with the fixes in \textsf{xepersian-hm} are briefly:
\newcounter{bean}
\begin{list}{P-\Roman{bean}}{\usecounter{bean}\setlength{\rightmargin}{\leftmargin}}
@@ -117,7 +122,7 @@ a variety of options available to these packages, please see the
\begin{figure}
\centerline{\fbox{\includegraphics[scale=1]{doc-samples-xep.pdf}}}
- \caption{Package: \textsf{xeprsian}, Font: \textsf{XB Kayhan}, \textsf{Scale=4.5}, \textsf{Kashida=0n}}
+ \caption{Package: \textsf{xeprsian}, Font: \textsf{XB Kayhan}, \textsf{Scale=4.5}, \textsf{Kashida=On}}
\label{fig:xepersian-XB}
\end{figure}
@@ -143,16 +148,16 @@ so you may only pass options to the package using the command
\PassOptionsToPackage{debugfootnotedirection=off,localise=off}{xepersian}
\documentclass{report}
\usepackage{xcolor}
-\usepackage[Kashida,kashidastretch=0.14 em plus 0.5 em]{xepersian-hm}
+\usepackage[Kashida=leaders+glyph,kashidastretch=0.14 em plus 0.5 em]{xepersian-hm}
\end{verbatim}
The options available in \textsf{xepersian-hm} are:
\begin{itemize}
\item \texttt{Kashida}: \\
- which implements kashida feature with two possible values:
+ which implements kashida feature with three possible values:
\begin{itemize}
\item \texttt{glyph}: \\
- which uses the \texttt{Kashida} character to stretch the text.
+ which uses the \texttt{kashida} character to stretch the text.
With this option you should run \texttt{xelatex} thrice. For example: \\
\texttt{rm -f kashida-example.aux \\
@@ -161,19 +166,38 @@ The options available in \textsf{xepersian-hm} are:
xelatex kashida-example.tex}
Please note that this feature is still experimental and is not regarded as stable.
- If you are going to use this option be ready for unpredictable results. Also, note
- that the value of \texttt{Kashida} is mandatory.
+ If you are going to use this option be ready for unpredictable results.
+
+ Also note that with this option, for each gap which is to be filled with kashida,
+ some commands, current position on the page, and references are saved in the
+ \texttt{\bslash jobname.aux} file and if the text is long, the file size may get
+ too large.
+
+ \item \texttt{leaders+glyph}: \\
+ which uses kashida glyph leaders to stretch the text.
+ Please note that the option `Kashida=leaders+glyph' is currently only
+ supported by \mbox{\textsf{HM Series}} fonts available at
+ \href{https://dma8hm1334.bitbucket.io}{\texttt{https://dma8hm1334.bitbucket.io}}.
+ If you know of any other font that supports this option, please
+ let me know to add it to the list of corresponding fonts.
+
+ Contrary to the option \texttt{Kashida=glyph}, in this case nothing is saved
+ in \texttt{.aux} files.
- \item \texttt{hrule}: \\
- which uses a horizontal rule (\verb|\hrule|) to stretch the text.
+ \item \texttt{leaders+hrule}: \\
+ which uses horizontal rule (\verb|\hrule|) leaders to stretch the text.
\end{itemize}
- For example \texttt{Kashida=glyph} inserts a stretched \texttt{Kashida} glyph where ever it is needed.
+ Also, please note that the value of \texttt{Kashida} is mandatory.
+ For example \texttt{Kashida=glyph} inserts a stretched \texttt{kashida} glyph
+ and \linebreak[4] \texttt{Kashida=leaders+glyph} inserts \texttt{kashida} leaders wherever
+ it is needed.
\item \texttt{linebreakpenalty}: \\
which specifies the amount of penalty for preventing bad line-breaking.
- You may strictly specify the value of this option. For example \texttt{'linebreakpenalty=8'} or you
- may use the default values. The available default values of penalties which are put into the
+ You may strictly specify the value of this option. For example you may either set % \linebreak[4]
+ \texttt{'linebreakpenalty=8'} or
+ use the default values. The available default values of penalties which are put into the
horizontal list output are the negative of the followings:
\begin{longtable}{ll}
@@ -254,10 +278,12 @@ The options available in \textsf{xepersian-hm} are:
{\it text} may not contain paragraph breaks.
This command puts a penalty after each Persian word.
- The optional arguments \texttt{linebreakpenalty} and \texttt{kashidastretch} locally specify the value of the penalty and the amount
- of extra stretching for some combinations of characters respectively as discussed previously. For example:
+ The optional arguments \texttt{linebreakpenalty} and \texttt{kashidastretch} locally
+ specify the value of the penalty and the amount of extra stretching for some
+ combinations of characters respectively as discussed previously. For example
+ you may set this option as follows:
- \texttt{\bslash discouragebadlinebreaks[9][0.12 em plus 0.5 em]\{\dots\}}
+ \texttt{\bslash discouragebadlinebreaks[9][0.12 em plus 0.5 em]\{$\dots\,$\}}
\end{description}
\section{Important notes}
@@ -266,7 +292,7 @@ The options available in \textsf{xepersian-hm} are:
\item Kashida and ligatures:
The method used to implement kashida feature breaks a ligature if it is applied to the letters which are joined to form
- the ligature. This is fixed in \textsf{xepersian-hm}, but it is still immature.
+ the ligature. This is fixed in \textsf{xepersian-hm}, but it is not well developed yet.
\end{description}
\end{latin}
diff --git a/macros/xetex/latex/xepersian-hm/xepersian-hm-doc.pdf b/macros/xetex/latex/xepersian-hm/xepersian-hm-doc.pdf
index 161c34f012..9df6063331 100644
--- a/macros/xetex/latex/xepersian-hm/xepersian-hm-doc.pdf
+++ b/macros/xetex/latex/xepersian-hm/xepersian-hm-doc.pdf
Binary files differ
diff --git a/macros/xetex/latex/xepersian-hm/xepersian-hm.dtx b/macros/xetex/latex/xepersian-hm/xepersian-hm.dtx
index 582a05d638..0daba1b3e0 100644
--- a/macros/xetex/latex/xepersian-hm/xepersian-hm.dtx
+++ b/macros/xetex/latex/xepersian-hm/xepersian-hm.dtx
@@ -67,7 +67,7 @@ make time to fix.
% }^^A
% }
%
-% \date{Released \quad 2020-05-20 \quad v0.5f}
+% \date{Released \quad 2020-05-31 \quad v1.0a}
%
% \maketitle
%
@@ -96,7 +96,9 @@ make time to fix.
\RequirePackage{zref-savepos}[2020-03-03]
\RequirePackage{xepersian}
\ExplSyntaxOn
-\ProvidesExplPackage {xepersian-hm} {2020-05-20} {0.5f} { Fixes~issues~in~xepersian~package }
+\ProvidesExplPackage {xepersian-hm} {2020-05-31} {1.0a} { Fixes~issues~in~xepersian~package }
+
+\box_new:N \l_xephm_ksh_box
\int_const:Nn \c_xephm_ksh_int {"0640} % kashida
\int_const:Nn \c_xephm_lrm_int {"200E} % left-right-mark
@@ -125,6 +127,9 @@ make time to fix.
\tl_new:N \l_xephm_main_font_full_tl
\tl_new:N \l_xephm_main_font_name_tl
+\tl_new:N \l_xephm_font_full_tl
+\tl_new:N \l_xephm_font_name_tl
+
\tl_new:N \l_xephm_skip_default_tl
\tl_new:N \l_xephm_active_ligs_tl
@@ -144,7 +149,8 @@ make time to fix.
\int_set:Nn \l_xephm_max_penalty_int { 10000 }
\tl_set:Nn \l_xephm_stretch_glyph_tl { glyph }
-\tl_set:Nn \l_xephm_stretch_hrule_tl { hrule }
+\tl_set:Nn \l_xephm_stretch_leaders_glyph_tl { leaders+glyph }
+\tl_set:Nn \l_xephm_stretch_leaders_hrule_tl { leaders+hrule }
\tl_set:Nn \l_xephm_fnt_kayhan_tl { kayhan }
\tl_set:Nn \l_xephm_fnt_kayhannavaar_tl { kayhannavaar }
@@ -211,7 +217,7 @@ make time to fix.
\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~!
+ Sorry,~ kashida~ character~ is~ not~ available~ in~ the~ main~ font~#1!
}
\msg_new:nnn { xepersian-hm } { error-value-not-available-for-kashida-option }
@@ -230,6 +236,16 @@ make time to fix.
and~ is~ not~ regarded~ as~ stable.
}
+\msg_new:nnn { xepersian-hm } { hm-series-font-not-found }
+ {
+ Either~ the~ font~`#1'~ is~ not~ installed~ on~ your~ system~ or~ does~ not~
+ belong~ to~ HM~Series~fonts.~
+ Please~ note~ that~ the~ option~ `Kashida=leaders+glyph'~ is~ currently~ only~
+ supported~ by~ HM~Series~fonts.~
+ If~ you~ know~ of~ any~ other~ font~ that~ supports~ this~ option,~ please~
+ let~ me~ know~ to~ add~ it~ to~ the~ list~ of~ corresponding~ fonts.~
+ }
+
\keys_define:nn { xepersian-hm }
{
Kashida .code:n =
@@ -239,7 +255,8 @@ make time to fix.
{
\l_xephm_stretch_glyph_tl
{
- \tl_set:Nn \l_xephm_gap_filler_tl { \l_xephm_stretch_glyph_tl }
+ \msg_warning:nnn { xepersian-hm } { warning-experimental-feature } { Kashida=glyph }
+ \tl_set:Nx \l_xephm_gap_filler_tl { \l_xephm_stretch_glyph_tl }
\AtBeginDocument
{
\tl_set:Nx \l_xephm_main_font_full_tl { \tex_fontname:D \tex_the:D \tex_font:D }
@@ -248,13 +265,17 @@ make time to fix.
\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 } { error-kashida-character-is-not-available-in-the-main-font }
+ \msg_error:nnx { xepersian-hm } { error-kashida-character-is-not-available-in-the-main-font } { \l_xephm_main_font_name_tl }
}
}
}
- \l_xephm_stretch_hrule_tl
+ \l_xephm_stretch_leaders_glyph_tl
+ {
+ \tl_set:Nx \l_xephm_gap_filler_tl { \l_xephm_stretch_leaders_glyph_tl }
+ }
+ \l_xephm_stretch_leaders_hrule_tl
{
- \tl_set:Nn \l_xephm_gap_filler_tl { \l_xephm_stretch_hrule_tl }
+ \tl_set:Nx \l_xephm_gap_filler_tl { \l_xephm_stretch_leaders_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 } { error-specify-value-for-kashida-option } }
@@ -351,7 +372,7 @@ make time to fix.
% \begin{macrocode}
%<*kashida-xepersian-hm-def>
\ExplSyntaxOn
-\ProvidesExplFile {kashida-xepersian-hm.def} {2020-05-20} {0.5f} { Fixes~implementation~of~Kashida~in~xepersian~package }
+\ProvidesExplFile {kashida-xepersian-hm.def} {2020-05-31} {1.0a} { Fixes~implementation~of~Kashida~in~xepersian~package }
\newXeTeXintercharclass \c_xephm_d_charclass % dual-joiner class
\newXeTeXintercharclass \c_xephm_l_charclass % lam
@@ -473,24 +494,45 @@ make time to fix.
}
}
-%% Partly adapted from the code provided by Jonathan Kew in:
-%% https://tug.org/pipermail/xetex/2009-February/012307.html.
-%% Somebody notified me that the code in 'kashida-xepersian.def' from xepersian
-%% package is an exact copy of Jonathan Kew's code. Being unaware of this, in
-%% the earlier versions of this package I made a mistake and acknowledged
-%% Vafa Khalighi instead of Jonathan Kew. A sincere thank you to Jonathan Kew
-%% for his excellent code.
-\cs_new:Npn \xephm_kashida_hrule #1
- {
- \bool_if:NT \l_xephm_kashida_hm_fix_bool
+\cs_new:Npn \xephm_kashida_leaders #1
+{
+ \bool_if:NT \l_xephm_kashida_hm_fix_bool
{
- \c_xephm_lrm_int\c_xephm_zwj_int\tex_penalty:D 10000
- \tex_leaders:D \tex_hrule:D height \XeTeXglyphbounds \c_xephm_two_int
- \int_use:N \XeTeXcharglyph \c_xephm_ksh_int depth \XeTeXglyphbounds \c_xephm_four_int
- \int_use:N \XeTeXcharglyph \c_xephm_ksh_int \skip_horizontal:n { #1 }
- \c_xephm_zwj_int
+ \tl_if_eq:NNTF \l_xephm_gap_filler_tl \l_xephm_stretch_leaders_glyph_tl
+ {
+ \tl_set:Nx \l_xephm_font_full_tl { \tex_fontname:D \tex_the:D \tex_font:D }
+ \tl_set:Nx \l_xephm_font_name_tl { \l_xephm_font_full_tl }
+ \tl_set:Nx \l_xephm_font_init_tl { \l_xephm_font_name_tl }
+ \regex_replace_once:nnN { ^"\[?(HM)[\_\ ](X|F).* } { \1\2 } \l_xephm_font_init_tl\relax
+ \tl_set:Nn \l_tmpa_tl { HMF }
+ \tl_set:Nn \l_tmpb_tl { HMX }
+ \bool_if:nTF { \str_if_eq_p:NN { \l_xephm_font_init_tl } { \l_tmpa_tl } || \str_if_eq_p:NN { \l_xephm_font_init_tl } { \l_tmpb_tl } }
+ {
+ \hbox_set:Nn \l_xephm_ksh_box { \XeTeXglyph\XeTeXglyphindex"kashida" }
+ \c_xephm_zwj_int \tex_penalty:D 10000
+ \tex_leaders:D \copy\l_xephm_ksh_box \skip_horizontal:n { #1 }
+ \c_xephm_zwj_int
+ }
+ {
+ \msg_error:nnx { xepersian-hm } { hm-series-font-not-found } { \l_xephm_font_name_tl }
+ }
+ }
+ {
+ %% Partly adapted from the code provided by Jonathan Kew in:
+ %% https://tug.org/pipermail/xetex/2009-February/012307.html.
+ %% Somebody notified me that the code in 'kashida-xepersian.def' from xepersian
+ %% package is an exact copy of Jonathan Kew's code. Being unaware of this, in
+ %% the earlier versions of this package I made a mistake and acknowledged
+ %% Vafa Khalighi instead of Jonathan Kew. A sincere thank you to Jonathan Kew
+ %% for his excellent code.
+ \c_xephm_lrm_int\c_xephm_zwj_int\tex_penalty:D 10000
+ \tex_leaders:D \tex_hrule:D height \XeTeXglyphbounds \c_xephm_two_int
+ \int_use:N \XeTeXcharglyph \c_xephm_ksh_int depth \XeTeXglyphbounds \c_xephm_four_int
+ \int_use:N \XeTeXcharglyph \c_xephm_ksh_int \skip_horizontal:n { #1 }
+ \c_xephm_zwj_int
+ }
}
- }
+}
\XeTeXinterchartokenstate = 1
@@ -524,81 +566,57 @@ make time to fix.
\XeTeXcharclass "#1 \c_xephm_y_charclass
}
-\str_case:VnTF \l_xephm_gap_filler_tl
- {
- \l_xephm_stretch_glyph_tl
- {
- \XeTeXinterchartoks \c_xephm_y_charclass \c_xephm_y_charclass =
- {
- \bool_if:NTF \l_xephm_kashida_hm_fix_bool
- { \c_xephm_zwj_int \xephm_kashida_glyph \l_xephm_skip_default_tl \c_xephm_zwj_int }
- { \c_xephm_zwj_int \xephm_kashida_glyph \c_xephm_skip_a_tl \c_xephm_zwj_int }
- }
- \XeTeXinterchartoks \c_xephm_d_charclass \c_xephm_y_charclass =
- {
- \bool_if:NTF \l_xephm_kashida_hm_fix_bool
- { \c_xephm_zwj_int \xephm_kashida_glyph \l_xephm_skip_default_tl \c_xephm_zwj_int }
- { \c_xephm_zwj_int \xephm_kashida_glyph \c_xephm_skip_a_tl \c_xephm_zwj_int }
- }
- \XeTeXinterchartoks \c_xephm_y_charclass \c_xephm_d_charclass =
- { \c_xephm_zwj_int \xephm_kashida_glyph \c_xephm_skip_a_tl \c_xephm_zwj_int }
- \XeTeXinterchartoks \c_xephm_d_charclass \c_xephm_d_charclass =
- { \c_xephm_zwj_int \xephm_kashida_glyph \c_xephm_skip_a_tl \c_xephm_zwj_int }
- \XeTeXinterchartoks \c_xephm_l_charclass \c_xephm_d_charclass =
- { \c_xephm_zwj_int \xephm_kashida_glyph \c_xephm_skip_a_tl \c_xephm_zwj_int }
- \XeTeXinterchartoks \c_xephm_d_charclass \c_xephm_l_charclass =
- { \c_xephm_zwj_int \xephm_kashida_glyph \c_xephm_skip_a_tl \c_xephm_zwj_int }
- \XeTeXinterchartoks \c_xephm_l_charclass \c_xephm_l_charclass =
- { \c_xephm_zwj_int \xephm_kashida_glyph \c_xephm_skip_a_tl \c_xephm_zwj_int }
- \XeTeXinterchartoks \c_xephm_d_charclass \c_xephm_r_charclass =
- { \c_xephm_zwj_int \xephm_kashida_glyph \c_xephm_skip_a_tl \c_xephm_zwj_int }
- \XeTeXinterchartoks \c_xephm_d_charclass \c_xephm_a_charclass =
- { \c_xephm_zwj_int \xephm_kashida_glyph \c_xephm_skip_a_tl \c_xephm_zwj_int }
- \XeTeXinterchartoks \c_xephm_l_charclass \c_xephm_r_charclass =
- { \c_xephm_zwj_int \xephm_kashida_glyph \c_xephm_skip_a_tl \c_xephm_zwj_int }
- \XeTeXinterchartoks \c_xephm_l_charclass \c_xephm_a_charclass =
- { }
- }
- \l_xephm_stretch_hrule_tl
- {
- \XeTeXinterchartoks \c_xephm_y_charclass \c_xephm_y_charclass =
- {
- \bool_if:NTF \l_xephm_kashida_hm_fix_bool
- { \xephm_kashida_hrule \l_xephm_skip_default_tl }
- { \xephm_kashida_hrule \c_xephm_skip_a_tl }
- }
- \XeTeXinterchartoks \c_xephm_d_charclass \c_xephm_y_charclass =
- {
- \bool_if:NTF \l_xephm_kashida_hm_fix_bool
- { \xephm_kashida_hrule \l_xephm_skip_default_tl }
- { \xephm_kashida_hrule \c_xephm_skip_a_tl }
- }
- \XeTeXinterchartoks \c_xephm_y_charclass \c_xephm_d_charclass =
- { \xephm_kashida_hrule \c_xephm_skip_a_tl }
- \XeTeXinterchartoks \c_xephm_d_charclass \c_xephm_d_charclass =
- { \xephm_kashida_hrule \c_xephm_skip_a_tl }
- \XeTeXinterchartoks \c_xephm_l_charclass \c_xephm_d_charclass =
- { \xephm_kashida_hrule \c_xephm_skip_a_tl }
- \XeTeXinterchartoks \c_xephm_d_charclass \c_xephm_l_charclass =
- { \xephm_kashida_hrule \c_xephm_skip_a_tl }
- \XeTeXinterchartoks \c_xephm_l_charclass \c_xephm_l_charclass =
- { \xephm_kashida_hrule \c_xephm_skip_a_tl }
- \XeTeXinterchartoks \c_xephm_d_charclass \c_xephm_r_charclass =
- { \xephm_kashida_hrule \c_xephm_skip_a_tl }
- \XeTeXinterchartoks \c_xephm_d_charclass \c_xephm_a_charclass =
- { \xephm_kashida_hrule \c_xephm_skip_a_tl }
- \XeTeXinterchartoks \c_xephm_l_charclass \c_xephm_r_charclass =
- { \xephm_kashida_hrule \c_xephm_skip_a_tl }
- \XeTeXinterchartoks \c_xephm_l_charclass \c_xephm_a_charclass =
- { }
- }
+\tl_if_eq:NNTF \l_xephm_gap_filler_tl \l_xephm_stretch_glyph_tl {
+ \XeTeXinterchartoks \c_xephm_y_charclass \c_xephm_y_charclass = {
+ \bool_if:NTF \l_xephm_kashida_hm_fix_bool
+ { \c_xephm_zwj_int \xephm_kashida_glyph \l_xephm_skip_default_tl \c_xephm_zwj_int }
+ { \c_xephm_zwj_int \xephm_kashida_glyph \c_xephm_skip_a_tl \c_xephm_zwj_int }
+ }
+ \XeTeXinterchartoks \c_xephm_d_charclass \c_xephm_y_charclass = {
+ \bool_if:NTF \l_xephm_kashida_hm_fix_bool
+ { \c_xephm_zwj_int \xephm_kashida_glyph \l_xephm_skip_default_tl \c_xephm_zwj_int }
+ { \c_xephm_zwj_int \xephm_kashida_glyph \c_xephm_skip_a_tl \c_xephm_zwj_int }
+ }
+ \XeTeXinterchartoks \c_xephm_y_charclass \c_xephm_d_charclass = { \c_xephm_zwj_int \xephm_kashida_glyph \c_xephm_skip_a_tl \c_xephm_zwj_int }
+ \XeTeXinterchartoks \c_xephm_d_charclass \c_xephm_d_charclass = { \c_xephm_zwj_int \xephm_kashida_glyph \c_xephm_skip_a_tl \c_xephm_zwj_int }
+ \XeTeXinterchartoks \c_xephm_l_charclass \c_xephm_d_charclass = { \c_xephm_zwj_int \xephm_kashida_glyph \c_xephm_skip_a_tl \c_xephm_zwj_int }
+ \XeTeXinterchartoks \c_xephm_d_charclass \c_xephm_l_charclass = { \c_xephm_zwj_int \xephm_kashida_glyph \c_xephm_skip_a_tl \c_xephm_zwj_int }
+ \XeTeXinterchartoks \c_xephm_l_charclass \c_xephm_l_charclass = { \c_xephm_zwj_int \xephm_kashida_glyph \c_xephm_skip_a_tl \c_xephm_zwj_int }
+ \XeTeXinterchartoks \c_xephm_d_charclass \c_xephm_r_charclass = { \c_xephm_zwj_int \xephm_kashida_glyph \c_xephm_skip_a_tl \c_xephm_zwj_int }
+ \XeTeXinterchartoks \c_xephm_d_charclass \c_xephm_a_charclass = { \c_xephm_zwj_int \xephm_kashida_glyph \c_xephm_skip_a_tl \c_xephm_zwj_int }
+ \XeTeXinterchartoks \c_xephm_l_charclass \c_xephm_r_charclass = { \c_xephm_zwj_int \xephm_kashida_glyph \c_xephm_skip_a_tl \c_xephm_zwj_int }
+ \XeTeXinterchartoks \c_xephm_l_charclass \c_xephm_a_charclass = { }
+}
+{
+ \bool_if:nTF {
+ \tl_if_eq_p:NN \l_xephm_gap_filler_tl \l_xephm_stretch_leaders_glyph_tl ||
+ \tl_if_eq_p:NN \l_xephm_gap_filler_tl \l_xephm_stretch_leaders_hrule_tl
}
{
- \msg_warning:nnn { xepersian-hm } { warning-experimental-feature } { Kashida=glyph }
+ \XeTeXinterchartoks \c_xephm_y_charclass \c_xephm_y_charclass = {
+ \bool_if:NTF \l_xephm_kashida_hm_fix_bool
+ { \xephm_kashida_leaders \l_xephm_skip_default_tl }
+ { \xephm_kashida_leaders \c_xephm_skip_a_tl }
+ }
+ \XeTeXinterchartoks \c_xephm_d_charclass \c_xephm_y_charclass = {
+ \bool_if:NTF \l_xephm_kashida_hm_fix_bool
+ { \xephm_kashida_leaders \l_xephm_skip_default_tl }
+ { \xephm_kashida_leaders \c_xephm_skip_a_tl }
+ }
+ \XeTeXinterchartoks \c_xephm_y_charclass \c_xephm_d_charclass = { \xephm_kashida_leaders \c_xephm_skip_a_tl }
+ \XeTeXinterchartoks \c_xephm_d_charclass \c_xephm_d_charclass = { \xephm_kashida_leaders \c_xephm_skip_a_tl }
+ \XeTeXinterchartoks \c_xephm_l_charclass \c_xephm_d_charclass = { \xephm_kashida_leaders \c_xephm_skip_a_tl }
+ \XeTeXinterchartoks \c_xephm_d_charclass \c_xephm_l_charclass = { \xephm_kashida_leaders \c_xephm_skip_a_tl }
+ \XeTeXinterchartoks \c_xephm_l_charclass \c_xephm_l_charclass = { \xephm_kashida_leaders \c_xephm_skip_a_tl }
+ \XeTeXinterchartoks \c_xephm_d_charclass \c_xephm_r_charclass = { \xephm_kashida_leaders \c_xephm_skip_a_tl }
+ \XeTeXinterchartoks \c_xephm_d_charclass \c_xephm_a_charclass = { \xephm_kashida_leaders \c_xephm_skip_a_tl }
+ \XeTeXinterchartoks \c_xephm_l_charclass \c_xephm_r_charclass = { \xephm_kashida_leaders \c_xephm_skip_a_tl }
+ \XeTeXinterchartoks \c_xephm_l_charclass \c_xephm_a_charclass = { }
}
{
\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/macros/xetex/latex/xepersian-hm/xepersian-hm.pdf b/macros/xetex/latex/xepersian-hm/xepersian-hm.pdf
index c244dee46f..610320c3e8 100644
--- a/macros/xetex/latex/xepersian-hm/xepersian-hm.pdf
+++ b/macros/xetex/latex/xepersian-hm/xepersian-hm.pdf
Binary files differ