From 8626a9c3cb5dc8d02d779d5b5b1e3933d5626f43 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Sat, 2 May 2020 03:03:34 +0000 Subject: CTAN sync 202005020303 --- macros/xetex/latex/xepersian-hm/README.txt | 37 ++-- .../xetex/latex/xepersian-hm/kashida-example.pdf | Bin 81523 -> 0 bytes .../xetex/latex/xepersian-hm/kashida-example.tex | 87 -------- .../latex/xepersian-hm/kashida-glyph-example.pdf | Bin 0 -> 91744 bytes .../latex/xepersian-hm/kashida-glyph-example.tex | 110 ++++++++++ .../latex/xepersian-hm/kashida-hrule-example.pdf | Bin 0 -> 90703 bytes .../latex/xepersian-hm/kashida-hrule-example.tex | 109 ++++++++++ .../xetex/latex/xepersian-hm/xepersian-hm-doc.ltx | 160 +++++++++++++++ .../xetex/latex/xepersian-hm/xepersian-hm-doc.pdf | Bin 0 -> 46065 bytes macros/xetex/latex/xepersian-hm/xepersian-hm.dtx | 228 ++++++--------------- macros/xetex/latex/xepersian-hm/xepersian-hm.ins | 8 +- macros/xetex/latex/xepersian-hm/xepersian-hm.pdf | Bin 75419 -> 55345 bytes 12 files changed, 454 insertions(+), 285 deletions(-) delete mode 100644 macros/xetex/latex/xepersian-hm/kashida-example.pdf delete mode 100644 macros/xetex/latex/xepersian-hm/kashida-example.tex create mode 100644 macros/xetex/latex/xepersian-hm/kashida-glyph-example.pdf create mode 100644 macros/xetex/latex/xepersian-hm/kashida-glyph-example.tex create mode 100644 macros/xetex/latex/xepersian-hm/kashida-hrule-example.pdf create mode 100644 macros/xetex/latex/xepersian-hm/kashida-hrule-example.tex create mode 100644 macros/xetex/latex/xepersian-hm/xepersian-hm-doc.ltx create mode 100644 macros/xetex/latex/xepersian-hm/xepersian-hm-doc.pdf (limited to 'macros/xetex/latex/xepersian-hm') diff --git a/macros/xetex/latex/xepersian-hm/README.txt b/macros/xetex/latex/xepersian-hm/README.txt index 9911cde284..30f6d3240c 100644 --- a/macros/xetex/latex/xepersian-hm/README.txt +++ b/macros/xetex/latex/xepersian-hm/README.txt @@ -1,35 +1,22 @@ -%% -%% This is file `README.txt', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% xepersian-hm.dtx (with options: `README') -%% -%% Copyright (C) 2020 Hossein Movahhedian -%% -%% 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 -%% The XEPERSIAN-HM package ------------------------ -Kashida feature in `xepersian' has problems with some fonts such as `HM Series' -fonts available at `https://dma8hm1334.bitbucket.io' and `X Series 2' fonts -available at `http://wiki.irmug.com/index.php/X_Series_2'. The `xepersian-hm' -package fixes these problems. +Kashida feature in 'xepersian' has problems with some fonts such as 'HM Series' +available at 'https://dma8hm1334.bitbucket.io' and 'X Series 2' available at +'http://wiki.irmug.com/index.php/X_Series_2'. The 'xepersian-hm' package fixes +these problems. -The file `texmf-dist/doc/xelatex/xepersian-hm/kashida-example.tex' can be used as -a simple example of the usage of the package. +The files 'kashida-glyph-example.tex' and 'kashida-hrule-example.tex' in +the directory 'texmf-dist/doc/xelatex/xepersian-hm/' can be used as simple +examples of the usage of the package. Please use the Bitbucket issue tracker: -https://bitbucket.org/dma8hm1334/xepersian-hm/issues -to report a bug, request a feature or if you have a comment. +'https://bitbucket.org/dma8hm1334/xepersian-hm/issues' to report a bug, request +a feature or if you have a comment. -I will do my best to fix all the bugs you report, but, unfortunately, -time is a big hurdle to overcome; so, my apologies in advance for those -which I cannot make time to fix. +I will do my best to fix all the bugs you report, but, unfortunately, time is a +big hurdle to overcome; so, my apologies in advance for those which I cannot +make time to fix. %% %% %% End of file `README.txt'. diff --git a/macros/xetex/latex/xepersian-hm/kashida-example.pdf b/macros/xetex/latex/xepersian-hm/kashida-example.pdf deleted file mode 100644 index 2585a68426..0000000000 Binary files a/macros/xetex/latex/xepersian-hm/kashida-example.pdf and /dev/null differ diff --git a/macros/xetex/latex/xepersian-hm/kashida-example.tex b/macros/xetex/latex/xepersian-hm/kashida-example.tex deleted file mode 100644 index 6702fd3687..0000000000 --- a/macros/xetex/latex/xepersian-hm/kashida-example.tex +++ /dev/null @@ -1,87 +0,0 @@ -% \PassOptionsToPackage{Kashida=off,RTLdocument=on}{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=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} - -% \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{ - راهی جایی تابی چاپی چاههی تلاشهایی - شتابهایی تابی چاپی راهی تلاشهــایی - که کتابهایی که کلاههایی که کتابهایی }} - -\setlength\parindent{0pt} -\pagestyle{empty} - -\begin{document} - -\KashidaOff\lr{(Kashida Off, Regular)} - -\SampleText - -\newpage - -\KashidaOn\lr{(Kashida On, Regular)} - -\SampleText - -\newpage - -\KashidaOn\lr{(Kashida On, Italic)} - -{\HMXKayhanIt \SampleText} - -\newpage - -\KashidaOn\lr{(Kashida On, Oblique)} - -{\HMXKayhanOb \SampleText} - -\newpage - -\KashidaOn\lr{(Kashida On, Outline)} - -{\HMXKayhanOl \SampleText} - -\newpage - -\KashidaOn\lr{(Kashida On, Shadow)} - -{\HMXKayhanSd \SampleText} - -\end{document} diff --git a/macros/xetex/latex/xepersian-hm/kashida-glyph-example.pdf b/macros/xetex/latex/xepersian-hm/kashida-glyph-example.pdf new file mode 100644 index 0000000000..91047f8cec Binary files /dev/null and b/macros/xetex/latex/xepersian-hm/kashida-glyph-example.pdf differ diff --git a/macros/xetex/latex/xepersian-hm/kashida-glyph-example.tex b/macros/xetex/latex/xepersian-hm/kashida-glyph-example.tex new file mode 100644 index 0000000000..299b605aa7 --- /dev/null +++ b/macros/xetex/latex/xepersian-hm/kashida-glyph-example.tex @@ -0,0 +1,110 @@ +% \PassOptionsToPackage{Kashida=off,RTLdocument=on}{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=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} + +% \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=glyph} \vspace{40pt} + +{\Large +\begin{tabular}{ll} + \textsf{Font:} & \textsf{HM XKayhan} \\ + \textsf{Font Scale:} & \texttt{4.5} \\ + \textsf{linebreakpenalty:} & \texttt8 \\ + \textsf{kashidastretch:} & \texttt{0.14em plus 5.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} + +\end{document} diff --git a/macros/xetex/latex/xepersian-hm/kashida-hrule-example.pdf b/macros/xetex/latex/xepersian-hm/kashida-hrule-example.pdf new file mode 100644 index 0000000000..865d7a3551 Binary files /dev/null and b/macros/xetex/latex/xepersian-hm/kashida-hrule-example.pdf differ diff --git a/macros/xetex/latex/xepersian-hm/kashida-hrule-example.tex b/macros/xetex/latex/xepersian-hm/kashida-hrule-example.tex new file mode 100644 index 0000000000..64926c354a --- /dev/null +++ b/macros/xetex/latex/xepersian-hm/kashida-hrule-example.tex @@ -0,0 +1,109 @@ +% \PassOptionsToPackage{Kashida=off,RTLdocument=on}{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=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} + +% \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} + +\end{document} diff --git a/macros/xetex/latex/xepersian-hm/xepersian-hm-doc.ltx b/macros/xetex/latex/xepersian-hm/xepersian-hm-doc.ltx new file mode 100644 index 0000000000..1a2d88f8aa --- /dev/null +++ b/macros/xetex/latex/xepersian-hm/xepersian-hm-doc.ltx @@ -0,0 +1,160 @@ +%% +%% This is file `xepersian-hm-doc.tex' +%% +%% Copyright (c) Hossein Movahhedian 2020 +%% +%% 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 +%% +\documentclass{ltxdoc} +\usepackage{longtable} +\usepackage{hypdoc} + +\title{ + The \textsf{xepersian-hm} package\\Fixing kashida in xepersian\\User Documentation +} + +\author{ + Hossein Movahhedian\thanks + { + E-mail: + \href{mailto:dma8hm1334@gmail.com} + {\textsf{dma8hm1334@gmail.com}} + } +} + +\date{Released \quad 2020-05-01 \quad v0.5c} + +\begin{document} + +\maketitle + +Kashida feature in \textsf{xepersian} has problems with some fonts such as \mbox{\textsf{HM Series}} +available at +\href{https://dma8hm1334.bitbucket.io}{\texttt{https://dma8hm1334.bitbucket.io}} +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. + +Please use the Bitbucket issue tracker: +\href{https://bitbucket.org/dma8hm1334/xepersian-hm/issues}{\textsf{https://bitbucket.org/dma8hm1334/\linebreak[4]xepersian-hm/issues}} +to report a bug, request a feature or if you have a comment. + +I will do my best to fix all the bugs you report, but, unfortunately, +time is a big hurdle to overcome; so, my apologies in advance for those +which I cannot make time to fix. + +\section{Package loading and options} + +Please note that \textsf{xepersian-hm} loads \textsf{xepersian} automatically, +so you may only pass options to the package using the command +\verb|\PassOptionsToPackage| before \verb|\documentclass|. For example: + +\begin{verbatim} +\PassOptionsToPackage{Kashida=off,RTLdocument=on}{xepersian} +\documentclass{report} +\usepackage{xcolor} +\usepackage[Kashida,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: + \begin{itemize} + \item \texttt{glyph}: \\ + 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 \\ + xelatex kashida-example.tex \\ + xelatex kashida-example.tex \\ + 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. + + \item \texttt{hrule}: \\ + which uses a horizontal rule (\verb|\hrule|) to stretch the text. + + \end{itemize} + For example \texttt{Kashida=glyph} inserts a stretched \texttt{Kashida} glyph where ever 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 + horizontal list output are the negative of the followings: + + \begin{longtable}{ll} + \texttt{min}: & \texttt{0} \\ + \texttt{low}: & \texttt{8} \\ + \texttt{medium}: & \texttt{15} \\ + \texttt{high}: & \texttt{25} \\ + \texttt{max}: & \texttt{10000} + \end{longtable} + \item \texttt{kashidastretch}: \\ + which specifies the amount of extra stretching + for some combinations of characters. You may strictly specify the value of + this option. For example \texttt{'kashidastretch=0.14 em plus 0.5 em'} or you + may use the default values. The available default values are: + + \begin{longtable}{lll} + \texttt{kayhan} & \texttt{0.14 em plus 0.5 em} \\ + \texttt{khorramshahr} & \texttt{0.131 em plus 0.5 em} \\ + \texttt{kayhannavaar} & \texttt{0.129 em plus 0.5 em} \\ + \texttt{kayhanpook} & \texttt{0.133 em plus 0.5 em} \\ + \texttt{kayhansayeh} & \texttt{0.135 em plus 0.5 em} \\ + \texttt{khoramshahr} & \texttt{0.128 em plus 0.5 em} \\ + \texttt{khorramshahr} & \texttt{0.13 em plus 0.5 em} \\ + \texttt{niloofar} & \texttt{0.132 em plus 0.5 em} \\ + \texttt{paatch} & \texttt{0.127 em plus 0.5 em} \\ + \texttt{riyaz} & \texttt{0.125 em plus 0.5 em} \\ + \texttt{roya} & \texttt{0.142 em plus 0.5 em} \\ + \texttt{shafigh} & \texttt{0.143 em plus 0.5 em} \\ + \texttt{shafighKurd} & \texttt{0.126 em plus 0.5 em} \\ + \texttt{shafighUzbek} & \texttt{0.123 em plus 0.5 em} \\ + \texttt{shiraz} & \texttt{0.122 em plus 0.5 em} \\ + \texttt{sols} & \texttt{0.124 em plus 0.5 em} \\ + \texttt{tabriz} & \texttt{0.119 em plus 0.5 em} \\ + \texttt{titr} & \texttt{0.12 em plus 0.5 em} \\ + \texttt{titre} & \texttt{0.121 em plus 0.5 em} \\ + \texttt{traffic} & \texttt{0.124 em plus 0.5 em} \\ + \texttt{vahid} & \texttt{0.134 em plus 0.5 em} \\ + \texttt{vosta} & \texttt{0.136 em plus 0.5 em} \\ + \texttt{yaghut} & \texttt{0.138 em plus 0.5 em} \\ + \texttt{yagut} & \texttt{0.137 em plus 0.5 em} \\ + \texttt{yas} & \texttt{0.126 em plus 0.5 em} \\ + \texttt{yekan} & \texttt{0.141 em plus 0.5 em} \\ + \texttt{yermook} & \texttt{0.139 em plus 0.5 em} \\ + \texttt{zar} & \texttt{0.116 em plus 0.5 em} \\ + \texttt{ziba} & \texttt{0.119 em plus 0.5 em} \\ + \texttt{default} & \texttt{0.14 em plus 0.5 em} \\ + \texttt{noskip} & \texttt{0 em plus 0.5 em} + \end{longtable} + + For example: \mbox{\texttt{'kashidastretch=titr'}} is equivalent to\linebreak + \mbox{\texttt{'kashidastretch=0.12 em plus 0.5 em'}} +\end{itemize} + +\section{Commands} + +\begin{description} + \item \verb|\discouragebadlinebreaks[linebreakpenalty][kashidastretch]{|{\it text}\verb|}|: + + {\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: + + \texttt{\bslash discouragebadlinebreaks[9][0.12 em plus 0.5 em]\{\dots\}} +\end{description} +\end{document} +%% +%% +%% End of file `xepersian-hm-doc.ltx'. diff --git a/macros/xetex/latex/xepersian-hm/xepersian-hm-doc.pdf b/macros/xetex/latex/xepersian-hm/xepersian-hm-doc.pdf new file mode 100644 index 0000000000..cc80a88443 Binary files /dev/null and b/macros/xetex/latex/xepersian-hm/xepersian-hm-doc.pdf differ diff --git a/macros/xetex/latex/xepersian-hm/xepersian-hm.dtx b/macros/xetex/latex/xepersian-hm/xepersian-hm.dtx index 0d5d19f524..0cf960fe36 100644 --- a/macros/xetex/latex/xepersian-hm/xepersian-hm.dtx +++ b/macros/xetex/latex/xepersian-hm/xepersian-hm.dtx @@ -1,28 +1,37 @@ % \iffalse meta-comment +% +% This is file `xepersian-hm.dtx' +% +% Copyright (C) 2020 Hossein Movahhedian % +% 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 +% %<*internal> \iffalse % -%<*README> +%<*README-txt> The XEPERSIAN-HM package ------------------------ -Kashida feature in `xepersian' has problems with some fonts such as `HM Series' -fonts available at `https://dma8hm1334.bitbucket.io' and `X Series 2' fonts -available at `http://wiki.irmug.com/index.php/X_Series_2'. The `xepersian-hm' -package fixes these problems. +Kashida feature in 'xepersian' has problems with some fonts such as 'HM Series' +available at 'https://dma8hm1334.bitbucket.io' and 'X Series 2' available at +'http://wiki.irmug.com/index.php/X_Series_2'. The 'xepersian-hm' package fixes +these problems. -The file `texmf-dist/doc/xelatex/xepersian-hm/kashida-example.tex' can be used as -a simple example of the usage of the package. +The files 'kashida-glyph-example.tex' and 'kashida-hrule-example.tex' in +the directory 'texmf-dist/doc/xelatex/xepersian-hm/' can be used as simple +examples of the usage of the package. Please use the Bitbucket issue tracker: -https://bitbucket.org/dma8hm1334/xepersian-hm/issues -to report a bug, request a feature or if you have a comment. +'https://bitbucket.org/dma8hm1334/xepersian-hm/issues' to report a bug, request +a feature or if you have a comment. -I will do my best to fix all the bugs you report, but, unfortunately, -time is a big hurdle to overcome; so, my apologies in advance for those -which I cannot make time to fix. -% +I will do my best to fix all the bugs you report, but, unfortunately, time is a +big hurdle to overcome; so, my apologies in advance for those which I cannot +make time to fix. +% %<*internal> \fi % @@ -43,8 +52,10 @@ which I cannot make time to fix. % \end{macrocode} % \fi % +% \immediate\write18{xelatex xepersian-hm-doc.ltx} +% % \title{^^A -% The \textsf{xepersian-hm} package\\Fixing kashida in xepersian^^A +% The \textsf{xepersian-hm} package\\Fixing kashida in xepersian\\Source code documentation^^A % } % % \author{^^A @@ -56,140 +67,16 @@ which I cannot make time to fix. % }^^A % } % -% \date{Released 2020-04-26 \qquad v0.5b} +% \date{Released \quad 2020-05-01 \quad v0.5c} % % \maketitle % -% Kashida feature in \textsf{xepersian} has problems with some fonts such as \texttt{HM Series} -% fonts available at -% \href{https://dma8hm1334.bitbucket.io}{\texttt{https://dma8hm1334.bitbucket.io}} -% and \texttt{X Series 2} fonts 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 file \texttt{texmf-dist/doc/xelatex/xepersian-hm/kashida-example.tex} can be -% used as a simple example of the usage of the package. -% -% Please use the Bitbucket issue tracker: -% \href{https://bitbucket.org/dma8hm1334/xepersian-hm/issues}{\textsf{https://bitbucket.org/dma8hm1334/xepersian-hm/issues}} -% to report a bug, request a feature or if you have a comment. -% -% I will do my best to fix all the bugs you report, but, unfortunately, -% time is a big hurdle to overcome; so, my apologies in advance for those -% which I cannot make time to fix. -% -% \section{Package loading and options} -% -% Please note that \textsf{xepersian-hm} loads \textsf{xepersian} automatically, -% so you may only pass options to the package using the command -% \verb|\PassOptionsToPackage| before \verb|\documentclass|. For example: -% -% \begin{verbatim} -% \PassOptionsToPackage{Kashida=off,RTLdocument=on}{xepersian} -% \documentclass{report} -% \usepackage{xcolor} -% \usepackage[Kashida,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: -% \begin{itemize} -% \item \texttt{glyph}: \\ -% 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 \\ -% xelatex kashida-example.tex \\ -% xelatex kashida-example.tex \\ -% 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. -% -% \item \texttt{hrule}: \\ -% which uses a horizontal rule (\verb|\hrule|) to stretch the text. -% -% \end{itemize} -% For example \texttt{Kashida=glyph} inserts a stretched \texttt{Kashida} glyph where ever 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 -% horizontal list output are the negative of the followings: -% -% \begin{longtable}{ll} -% \texttt{min}: & \texttt{0} \\ -% \texttt{low}: & \texttt{8} \\ -% \texttt{medium}: & \texttt{15} \\ -% \texttt{high}: & \texttt{25} \\ -% \texttt{max}: & \texttt{10000} -% \end{longtable} -% \item \texttt{kashidastretch}: \\ -% which specifies the amount of extra stretching -% for some combinations of characters. You may strictly specify the value of -% this option. For example \texttt{'kashidastretch=0.14 em plus 0.5 em'} or you -% may use the default values. The available default values are: -% -% \begin{longtable}{lll} -% \texttt{kayhan} & \texttt{0.14 em plus 0.5 em} \\ -% \texttt{khorramshahr} & \texttt{0.131 em plus 0.5 em} \\ -% \texttt{kayhannavaar} & \texttt{0.129 em plus 0.5 em} \\ -% \texttt{kayhanpook} & \texttt{0.133 em plus 0.5 em} \\ -% \texttt{kayhansayeh} & \texttt{0.135 em plus 0.5 em} \\ -% \texttt{khoramshahr} & \texttt{0.128 em plus 0.5 em} \\ -% \texttt{khorramshahr} & \texttt{0.13 em plus 0.5 em} \\ -% \texttt{niloofar} & \texttt{0.132 em plus 0.5 em} \\ -% \texttt{paatch} & \texttt{0.127 em plus 0.5 em} \\ -% \texttt{riyaz} & \texttt{0.125 em plus 0.5 em} \\ -% \texttt{roya} & \texttt{0.142 em plus 0.5 em} \\ -% \texttt{shafigh} & \texttt{0.143 em plus 0.5 em} \\ -% \texttt{shafighKurd} & \texttt{0.126 em plus 0.5 em} \\ -% \texttt{shafighUzbek} & \texttt{0.123 em plus 0.5 em} \\ -% \texttt{shiraz} & \texttt{0.122 em plus 0.5 em} \\ -% \texttt{sols} & \texttt{0.124 em plus 0.5 em} \\ -% \texttt{tabriz} & \texttt{0.119 em plus 0.5 em} \\ -% \texttt{titr} & \texttt{0.12 em plus 0.5 em} \\ -% \texttt{titre} & \texttt{0.121 em plus 0.5 em} \\ -% \texttt{traffic} & \texttt{0.124 em plus 0.5 em} \\ -% \texttt{vahid} & \texttt{0.134 em plus 0.5 em} \\ -% \texttt{vosta} & \texttt{0.136 em plus 0.5 em} \\ -% \texttt{yaghut} & \texttt{0.138 em plus 0.5 em} \\ -% \texttt{yagut} & \texttt{0.137 em plus 0.5 em} \\ -% \texttt{yas} & \texttt{0.126 em plus 0.5 em} \\ -% \texttt{yekan} & \texttt{0.141 em plus 0.5 em} \\ -% \texttt{yermook} & \texttt{0.139 em plus 0.5 em} \\ -% \texttt{zar} & \texttt{0.116 em plus 0.5 em} \\ -% \texttt{ziba} & \texttt{0.119 em plus 0.5 em} \\ -% \texttt{default} & \texttt{0.14 em plus 0.5 em} \\ -% \texttt{noskip} & \texttt{0 em plus 0.5 em} -% \end{longtable} -% -% For example: \mbox{\texttt{'kashidastretch=titr'}} is equivalent to\linebreak -% \mbox{\texttt{'kashidastretch=0.12 em plus 0.5 em'}} -% \end{itemize} -% -% \section{Commands} -% -% \begin{description} -% \item \verb|\discouragebadlinebreaks[linebreakpenalty][kashidastretch]{|{\it text}\verb|}|: -% -% {\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: -% -% \texttt{\bslash discouragebadlinebreaks[9][0.12 em plus 0.5 em]\{\dots\}} -% \end{description} -% % \section{\texttt{xepersian-hm} Implementation} % % \subsection{File: \texttt{xepersian-hm.sty}} % % \begin{macrocode} -%<*xepersian-hm> +%<*xepersian-hm-sty> \NeedsTeXFormat{LaTeX2e} \RequirePackage{expl3}[2020-03-06] \@ifpackagelater{expl3}{2020-03-06} @@ -209,32 +96,44 @@ which I cannot make time to fix. \RequirePackage{zref-savepos}[2020-03-03] \RequirePackage{xepersian} \ExplSyntaxOn -\ProvidesExplPackage {xepersian-hm} {2020-04-26} {0.5b} { Fixes~issues~in~xepersian~package } +\ProvidesExplPackage {xepersian-hm} {2020-05-01} {0.5c} { Fixes~issues~in~xepersian~package } -\tl_new:N \l_xephm_main_font_full_tl -\tl_new:N \l_xephm_main_font_name_tl \int_const:Nn \c_xephm_ksh_int {"0640} % kashida -\int_new:N \l_xephm_kashida_slot_int +\int_const:Nn \c_xephm_lrm_int {"200E} % left-right-mark +\int_const:Nn \c_xephm_zwj_int {"200D} % zero-width joiner -\tl_new:N \l_xephm_skip_default_tl +\int_const:Nn \c_xephm_two_int {2} % 2 +\int_const:Nn \c_xephm_four_int {4} % 4 \tl_const:Nn \c_xephm_skip_a_tl { 0 em plus 0.5 em } - \tl_const:Nn \c_xephm_skip_b_tl { 0.14 em plus 5.5 em } -\bool_set_false:N \l_xephm_kashida_hm_fix_bool - -\tl_new:N \l_xephm_gap_filler_tl +\int_new:N \l_xephm_counter_int -\bool_set_false:N \l_xephm_linebreakpenalty_bool +\int_new:N \l_xephm_kashida_slot_int \int_new:N \l_xephm_line_break_penalty_int + \int_new:N \l_xephm_min_penalty_int \int_new:N \l_xephm_low_penalty_int \int_new:N \l_xephm_med_penalty_int \int_new:N \l_xephm_high_penalty_int \int_new:N \l_xephm_max_penalty_int +\tl_new:N \l_xephm_line_break_tl + +\tl_new:N \l_xephm_main_font_full_tl +\tl_new:N \l_xephm_main_font_name_tl + +\tl_new:N \l_xephm_skip_default_tl + +\tl_new:N \l_xephm_gap_filler_tl + +\dim_new:N \l_xephm_diff_pos_dim + +\bool_set_false:N \l_xephm_kashida_hm_fix_bool +\bool_set_false:N \l_xephm_linebreakpenalty_bool + \int_set:Nn \l_xephm_min_penalty_int { 0 } \int_set:Nn \l_xephm_low_penalty_int { 8 } \int_set:Nn \l_xephm_med_penalty_int { 15 } @@ -281,6 +180,11 @@ which I cannot make time to fix. Sorry,~ kashida~ character~ is~ not~ available~ in~ the~ main~ font~! } +\msg_new:nnx { xepersian-hm } { value-not-available-for-kashida-option } + { + Sorry,~ value~ `\l_xephm_gap_filler_tl'~ is~ not~ available~ for~ kashida~ option~ yet~! + } + \keys_define:nn { xepersian-hm } { Kashida .code:n = @@ -371,21 +275,14 @@ which I cannot make time to fix. \ExplSyntaxOff \endinput -% +% % \end{macrocode} % % \subsection{File: \texttt{kashida-xepersian-hm.def}} % \begin{macrocode} -%<*kashida-xepersian-hm> +%<*kashida-xepersian-hm-def> \ExplSyntaxOn -\ProvidesExplFile {kashida-xepersian-hm.def} {2020-04-26} {0.5b} { Fixes~implementation~of~Kashida~in~xepersian~package } - -\int_const:Nn \c_xephm_zwj_int {"200D} % zero-width joiner -\int_const:Nn \c_xephm_lrm_int {"200E} % left-right-mark -\int_const:Nn \c_xephm_two_int {2} % 2 -\int_const:Nn \c_xephm_four_int {4} % 4 - -\int_new:N \l_xephm_counter_int +\ProvidesExplFile {kashida-xepersian-hm.def} {2020-05-01} {0.5c} { Fixes~implementation~of~Kashida~in~xepersian~package } \newXeTeXintercharclass \c_xephm_d_charclass % dual-joiner class \newXeTeXintercharclass \c_xephm_l_charclass % lam @@ -393,8 +290,6 @@ which I cannot make time to fix. \newXeTeXintercharclass \c_xephm_a_charclass % alef \newXeTeXintercharclass \c_xephm_y_charclass % yeh -\dim_new:N \l_xephm_diff_pos_dim - %% Partly adapted from LaTeX2e source \cs_new:Nn \xephm_line_break: { \if_mode_vertical: @@ -427,8 +322,6 @@ which I cannot make time to fix. \xephm_put_line_breaks:n { #3 } } -\tl_new:N \l_xephm_line_break_tl - \cs_new_protected:Nn \xephm_put_line_breaks:n { \tl_set:Nn \l_xephm_line_break_tl { #1 } @@ -538,11 +431,6 @@ which I cannot make time to fix. \XeTeXcharclass "#1 \c_xephm_y_charclass } -\msg_new:nnx { xepersian-hm } { value-not-available-for-kashida-option } - { - Sorry,~ value~ `\l_xephm_gap_filler_tl'~ is~ not~ available~ for~ kashida~ option~ yet! - } - \str_case:VnTF \l_xephm_gap_filler_tl { \l_xephm_stretch_glyph_tl @@ -635,7 +523,7 @@ which I cannot make time to fix. \makeatother \endinput -% +% % \end{macrocode} % % \section*{Acknowledgements} diff --git a/macros/xetex/latex/xepersian-hm/xepersian-hm.ins b/macros/xetex/latex/xepersian-hm/xepersian-hm.ins index d610751e2d..cba9853ea9 100644 --- a/macros/xetex/latex/xepersian-hm/xepersian-hm.ins +++ b/macros/xetex/latex/xepersian-hm/xepersian-hm.ins @@ -30,9 +30,11 @@ this license is at: http://www.latex-project.org/lppl.txt \keepsilent -\generate{\file{xepersian-hm.sty} {\from{xepersian-hm.dtx} {xepersian-hm}}} -\generate{\file{README.txt} {\from{xepersian-hm.dtx} {README}}} -\generate{\file{kashida-xepersian-hm.def} {\from{xepersian-hm.dtx} {kashida-xepersian-hm}}} +\generate{\file{xepersian-hm.sty} {\from{xepersian-hm.dtx} {xepersian-hm-sty}}} +\nopreamble +\generate{\file{README.txt} {\from{xepersian-hm.dtx} {README-txt}}} +\usepreamble\defaultpreamble +\generate{\file{kashida-xepersian-hm.def} {\from{xepersian-hm.dtx} {kashida-xepersian-hm-def}}} \obeyspaces \Msg{******************************************************} diff --git a/macros/xetex/latex/xepersian-hm/xepersian-hm.pdf b/macros/xetex/latex/xepersian-hm/xepersian-hm.pdf index 43dd46a0a4..b460f20455 100644 Binary files a/macros/xetex/latex/xepersian-hm/xepersian-hm.pdf and b/macros/xetex/latex/xepersian-hm/xepersian-hm.pdf differ -- cgit v1.2.3