summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/fonts/dad
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2014-09-09 21:52:43 +0000
committerKarl Berry <karl@freefriends.org>2014-09-09 21:52:43 +0000
commitb0d042d087f0538ee198d23c7e0e492d380f0889 (patch)
tree781609cde65e702a83340b7de4815662d75746b1 /Master/texmf-dist/doc/fonts/dad
parentda237d93d205989f6e955beb7ac7ec52c092aecd (diff)
dad (9sep14)
git-svn-id: svn://tug.org/texlive/trunk@35139 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/fonts/dad')
-rw-r--r--Master/texmf-dist/doc/fonts/dad/README132
-rwxr-xr-xMaster/texmf-dist/doc/fonts/dad/dad-to-utf8.pl98
-rw-r--r--Master/texmf-dist/doc/fonts/dad/dad-user-guide.bib207
-rw-r--r--Master/texmf-dist/doc/fonts/dad/dad-user-guide.pdfbin0 -> 221404 bytes
-rw-r--r--Master/texmf-dist/doc/fonts/dad/dad-user-guide.tex408
-rw-r--r--Master/texmf-dist/doc/fonts/dad/dad.adjust492
-rw-r--r--Master/texmf-dist/doc/fonts/dad/dadbold.adjust492
-rw-r--r--Master/texmf-dist/doc/fonts/dad/dadmono.adjust325
-rw-r--r--Master/texmf-dist/doc/fonts/dad/make-dad-font.pl1157
-rwxr-xr-xMaster/texmf-dist/doc/fonts/dad/utf8-to-dad.pl72
10 files changed, 3383 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/fonts/dad/README b/Master/texmf-dist/doc/fonts/dad/README
new file mode 100644
index 00000000000..592210cab65
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/dad/README
@@ -0,0 +1,132 @@
+README for ض (dad) package, 2014/09/08, v1.0
+
+TABLE OF CONTENTS
+=================
+
+1 Introduction
+2 Download
+3 Installation
+4 Additional Packages
+5 Package Compatibility
+6 Authors/Maintainer
+7 Bug Reports
+8 Known Problems
+
+
+1 INTRODUCTION
+==============
+
+This LaTeX package allows simple typesetting in Arabic script, intended for mixed Latin-Arabic script usage, in situations where heavy-duty solutions are discouraged.
+The ض system operates with both Unicode and transliterated input, allowing the user to choose the most appropriate approach for every situation.
+
+A paper describing the package has been submitted to TUGboat.
+
+This material is subject to the LaTeX Project Public License
+(LPPL). See http://www.latex-project.org/lppl.txt for the
+details of that license.
+
+2 DOWNLOAD
+==========
+
+ض should become available on CTAN soon:
+ CTAN:/language/arabic/dad/
+
+The distribution contains the following files:
+
+2.1 FONT FILES AND RELATED FILES
+================================
+dadbold.ofm
+dad.ofm
+dadmono.ofm
+dadmono.ovf
+dadbold.ovf
+dad.ovf
+Dad-mono.pfb
+Dad-bold.pfb
+Dad.pfb
+Dad.afm
+Dad-mono.afm
+Dad-bold.afm
+dadrealbold.tfm
+dadreal.tfm
+dadrealmono.tfm
+dad.map
+dad.sty
+OT1dad.fd
+T1dad.fd
+
+2.2 DOCUMENTATION
+=================
+dad-user-guide.pdf
+dad-user-guide.tex
+dad-user-guide.bib
+
+2.4 PERL SCRIPTS FOR UTF-8 <-> TRANSLITERATION CONVERSION
+=========================================================
+dad-to-utf8.pl
+utf8-to-dad.pl
+
+2.3 FILES USED FOR GENERATING THE FONT METRIC FILES
+===================================================
+make-dad-font.pl
+dadbold.adjust
+dad.adjust
+dadmono.adjust
+
+3 INSTALLATION
+==============
+
+Place the files in directories where TeX can find them.
+
+4 ADDITIONAL PACKAGES
+=====================
+
+ض itself does not load other packages.
+
+5 PACKAGE COMPATIBILITY
+=======================
+
+To typeset with this package you need lualatex.
+To generate the OVF and OFM files from OVP you need wovp2ovf version
+higher or equal than 1.13 (build 34787).
+
+6 AUTHOR/MAINTAINER
+=====================
+
+* Author and maintainer of the package:
+ Yannis Haralambous
+
+7 BUG REPORTS
+==============
+
+A bug report should contain:
+* Comprehensive problem description. This includes error or
+ warning messages.
+* \errorcontextlines=\maxdimen can be added in the
+ TeX code to get more information in TeX error messages.
+* Minimal test file that shows the problem, but does not
+ contain any unnecessary packages and code.
+* Used drivers/programs.
+* Version information about used packages and programs.
+* If you are using LaTeX, then add "\listfiles". Then
+ a list of version information is printed at the end
+ of the LaTeX run.
+* Please no other files than the minimal test file.
+ The other files .log, .dvi, .ps, .pdf are seldom
+ necessary, so send them only on request.
+* Please .zip or .tar.gz your file(s) before sending them!
+
+Bug address
+-----------
+Bug reports can be sent to the maintainer:
+ Yannis Haralambous
+ <yannis [dot] haralambous [at] telecom-bretagne [dot] eu>
+
+
+8 KNOWN PROBLEMS
+=================
+
+LuaTeX has a bug which will result in bad typesetting and crashes.
+The bug has been reported in July 2014 under the following number:
+http://tracker.luatex.org/view.php?id=912&history=1#history
+We are still waiting for the LuaTeX team to do something about it...
diff --git a/Master/texmf-dist/doc/fonts/dad/dad-to-utf8.pl b/Master/texmf-dist/doc/fonts/dad/dad-to-utf8.pl
new file mode 100755
index 00000000000..a19feb720e0
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/dad/dad-to-utf8.pl
@@ -0,0 +1,98 @@
+#!/opt/local/bin/perl
+use utf8;
+binmode stdin,":utf8";
+binmode stdout,":utf8";
+
+sub encode {
+my $s=shift;
+my @RES=();
+while ($s =~ m/(.)/g) {
+$c=$1;
+#if ($c =~ m/[A-Za-z]/) {
+push @RES, ord($c);
+#} else {
+#push @RES, $c;
+#}
+}
+return join("•",@RES);
+}
+
+sub decode {
+my $s=shift;
+my @S=split(/•/,$s);
+my $res="";
+foreach $c (@S) {
+#if ($c =~ m/^[0-9]+$/) {
+$res.=chr($c);
+#} else { $res.=$c; }
+}
+return $res;
+}
+
+while (<>) {
+s/\\([A-Za-z]+)/"\\".&encode($1)."§"/ge;
+s/\|/ء/g;
+s/'A/آ/g;
+s/'a/أ/g;
+s/'u/ؤ/g;
+s/'i/إ/g;
+s/'I/ئ/g;
+s/'b/ٮ/g;
+s/'n/ں/g;
+s/'f/ڡ/g;
+s/'q/ٯ/g;
+s/s-h/سه/g;
+s/t-h/ته/g;
+s/z-h/زه/g;
+s/d-h/ده/g;
+s/A/ا/g;
+s/b/ب/g;
+s/t\*/ة/g;
+s/th/ث/g;
+s/t/ت/g;
+s/j/ج/g;
+s/H/ح/g;
+s/x/خ/g;
+s/dh/ذ/g;
+s/d/د/g;
+s/r/ر/g;
+s/zh/ژ/g;
+s/z/ز/g;
+s/sh/ش/g;
+s/s/س/g;
+s/S/ص/g;
+s/D/ض/g;
+s/T/ط/g;
+s/Z/ظ/g;
+s/`/ع/g;
+s/R/غ/g;
+s/f/ف/g;
+s/q/ق/g;
+s/k/ك/g;
+s/[Ll]/ل/g;
+s/m/م/g;
+s/n/ن/g;
+s/h/ه/g;
+s/U/و/g;
+s/I/ى/g;
+s/Y/ي/g;
+s/p/پ/g;
+s/C/چ/g;
+s/v/ڤ/g;
+s/g/گ/g;
+s/e/ۀ/g;
+s/--/ـ/g;
+s/-/‍/g;
+s/aN/ً/g;
+s/uN/ٌ/g;
+s/iN/ٍ/g;
+s/a\*\*/ٓ/g;
+s/a\*/ٰ/g;
+s/a/َ/g;
+s/u/ُ/g;
+s/i/ِ/g;
+s/\+/ّ/g;
+s/o/ْ/g;
+s/\\([0-9•]+)§/"\\".&decode($1)/ge;
+print;
+} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/fonts/dad/dad-user-guide.bib b/Master/texmf-dist/doc/fonts/dad/dad-user-guide.bib
new file mode 100644
index 00000000000..1c05c8a7783
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/dad/dad-user-guide.bib
@@ -0,0 +1,207 @@
+%% This BibTeX bibliography file was created using BibDesk.
+%% http://bibdesk.sourceforge.net/
+
+
+%% Created for Yannis Haralambous at 2014-07-30 18:07:22 +0200
+
+
+%% Saved with string encoding Occidental (ASCII)
+
+
+
+@inproceedings{yharabic2,
+ Author = {Haralambous, Yannis},
+ Booktitle = {Proceedings of {Euro\TeX} '92},
+ Date-Added = {2014-07-30 16:05:56 +0000},
+ Date-Modified = {2014-07-30 16:06:56 +0000},
+ Pages = {293--305},
+ Publisher = {Czechoslovak \TeX\ Users Group},
+ Title = {Towards the revival of traditional {A}rabic typography through {\TeX}},
+ Year = {1992}}
+
+@inproceedings{lagally,
+ Author = {Lagally, Klaus},
+ Booktitle = {Proceedings of {Euro\TeX} '92},
+ Date-Added = {2014-07-30 16:00:23 +0000},
+ Date-Modified = {2014-07-30 16:05:40 +0000},
+ Pages = {153--172},
+ Publisher = {Czechoslovak \TeX\ Users Group},
+ Title = {Arab{\TeX} --- Typesetting {A}rabic with vowels and ligatures},
+ Year = {1992}}
+
+@book{lakh2,
+ Address = {Rabat, Morocco},
+ Author = {Lakhdar-Ghazal, Ahmed},
+ Date-Added = {2014-07-30 15:55:34 +0000},
+ Date-Modified = {2014-07-30 15:56:19 +0000},
+ Publisher = {Institut d'\'etudes et de recherches pour l'arabisation},
+ Title = {Pour apprendre et ma\^itriser la langue arabe},
+ Year = {1991}}
+
+@book{lakh1,
+ Address = {Rabat, Morocco},
+ Author = {Richert, Nicole},
+ Date-Added = {2014-07-30 15:53:53 +0000},
+ Date-Modified = {2014-07-30 15:55:32 +0000},
+ Publisher = {Institut d'\'etudes et de recherches pour l'arabisation},
+ Title = {Arabisation et technologie},
+ Year = {1987}}
+
+@article{deksmartlig,
+ Author = {Knuth, Donald E.},
+ Date-Added = {2014-07-30 15:49:36 +0000},
+ Date-Modified = {2014-07-30 15:50:22 +0000},
+ Journal = {TUGboat},
+ Pages = {325--328},
+ Title = {The new versions of {\TeX} and {\MF}},
+ Volume = {10},
+ Year = {1989}}
+
+@article{yharabic,
+ Author = {Haralambous, Yannis},
+ Date-Added = {2014-07-30 15:46:40 +0000},
+ Date-Modified = {2014-07-30 15:47:48 +0000},
+ Journal = {TUGboat},
+ Pages = {520--522},
+ Title = {Arabic, {P}ersian and {O}ttoman {\TeX} for {Mac} and {PC}},
+ Volume = {11},
+ Year = {1990}}
+
+@article{dekvf,
+ Author = {Knuth, Donald E.},
+ Date-Added = {2014-07-30 15:44:04 +0000},
+ Date-Modified = {2014-07-30 15:45:53 +0000},
+ Journal = {TUGboat},
+ Pages = {13--23},
+ Title = {Virtual fonts: more fun for grand wizards},
+ Volume = {11},
+ Year = {1990}}
+
+@article{luatex,
+ Author = {Hoekwater, Taco},
+ Date-Added = {2014-07-30 15:39:58 +0000},
+ Date-Modified = {2014-07-30 15:41:35 +0000},
+ Journal = {TUGboat},
+ Pages = {312--313},
+ Title = {{Lua\TeX}},
+ Volume = {28},
+ Year = {2007}}
+
+@article{pdftex,
+ Author = {H{\`a}n, Th{\'e} Th{\`a}nh},
+ Date-Added = {2014-07-30 15:35:36 +0000},
+ Date-Modified = {2014-07-30 15:36:41 +0000},
+ Journal = {Cahiers GUTenberg},
+ Pages = {197--210},
+ Title = {The {pdf\TeX} Program},
+ Volume = {28--29},
+ Year = {1998}}
+
+@inproceedings{omega3,
+ Author = {Haralambous, Yannis and Plaice, John},
+ Booktitle = {{Electronic Publishing, Artistic Imaging, and Digital Typography}},
+ Date-Added = {2014-07-30 15:32:38 +0000},
+ Date-Modified = {2014-07-30 15:33:54 +0000},
+ Publisher = {Springer},
+ Series = {LNCS},
+ Title = {The Design and Use of a Multiple-Alphabet Font with {$\Omega$}},
+ Volume = {1375},
+ Year = {1998}}
+
+@inproceedings{omega2,
+ Author = {Haralambous, Yannis and Plaice, John},
+ Booktitle = {{Proceedings of the International Symposium on Multilingual Information Processing '97}},
+ Date-Added = {2014-07-30 15:30:59 +0000},
+ Date-Modified = {2014-07-30 15:33:43 +0000},
+ Pages = {137--154},
+ Publisher = {ETL, Tsukuba, Japan},
+ Title = {Multilingual Typesetting with ${\Omega}$, a Case Study : {Arabic}},
+ Year = {1997}}
+
+@article{omega,
+ Author = {Haralambous, Yannis and Plaice, John},
+ Date-Added = {2014-07-30 15:28:46 +0000},
+ Date-Modified = {2014-07-30 15:30:25 +0000},
+ Journal = {TUGboat},
+ Pages = {344--352},
+ Title = {First Applications of {$\Omega$} : {Adobe Poetica, Arabic, Greek, Khmer}},
+ Volume = {15},
+ Year = {1994}}
+
+@book{livre,
+ Author = {Haralambous, Yannis},
+ Date-Added = {2014-07-30 15:23:12 +0000},
+ Date-Modified = {2014-07-30 15:23:50 +0000},
+ Publisher = {O'Reilly},
+ Title = {Fonts \& {E}ncodings},
+ Year = {2007}}
+
+@article{xetex,
+ Author = {Kew, Jonathan},
+ Date-Added = {2014-07-30 15:20:37 +0000},
+ Date-Modified = {2014-07-30 15:21:45 +0000},
+ Journal = {TUGboat},
+ Pages = {115--124},
+ Title = {{\XeTeX}, the Multilingual Lion: {\TeX} meets {U}nicode and smart font technologies},
+ Volume = {26},
+ Year = {2005}}
+
+@unpublished{writelatex,
+ Author = {Hammersley, John and Lees-Miller, John and others},
+ Date-Added = {2014-07-30 15:16:36 +0000},
+ Date-Modified = {2014-07-30 15:19:03 +0000},
+ Note = {\url{http://www.writelatex.com}},
+ Title = {The {write\LaTeX} online collaborative {\LaTeX} editor}}
+
+@unpublished{ieee,
+ Author = {Shell, Michael},
+ Date-Added = {2014-07-30 15:14:54 +0000},
+ Date-Modified = {2014-07-30 15:16:15 +0000},
+ Note = {\url{http://www.ieee.org/documents/LaTeX_letter5March2007.pdf}},
+ Title = {{IEEEtran \LaTeX} class},
+ Year = {2007}}
+
+@unpublished{citala,
+ Author = {Haralambous, Yannis and Lenca, Philippe and Lazrek, Azzeddine},
+ Date-Added = {2014-07-30 15:13:16 +0000},
+ Date-Modified = {2014-07-30 15:14:38 +0000},
+ Note = {submitted to \emph{CITALA 2014}},
+ Title = {Arabic text classification using association rules, dependency relations and hyperonymization}}
+
+@book{learn,
+author={Mace, John},
+title={Arabic verbs and essential grammar},
+publisher={Teach yourself books},
+year={1999}}
+
+@book{learn2,
+author={Smart, John R.},
+title={Arabic},
+publisher={Teach yourself books},
+year={1986}}
+
+@book{syed,
+author={Syed, Barakat Ahmad},
+title={Introduction to {Q}uranic script},
+publisher={Curzon Press},
+year={1984}}
+
+@unpublished{tugboat,
+author={Haralambous, Yannis},
+title={{\arab{D} (\emph{\d{d}\=ad})}, a Simple Arabic Typesetting System for Mixed Latin/Arabic Alphabet Documents},
+year={2014},
+note={Submitted to \emph{TUGboat}}
+}
+
+@unpublished{agl,
+author={{Adobe Systems}},
+title={Adobe Glyph List},
+year={2002},
+note={\url{http://partners.adobe.com/public/developer/en/opentype/glyphlist.txt}}}
+
+@unpublished{oum,
+author={\mbox{\arab{sAHrAlbsmt*}}},
+title={{\arab{Am klcUm klmAt ARAnY kUkb Alshrq AlsYd-h Am klcUm mUsU`h kAmlh}}},
+year={2008},
+note={\url{http://alsabbah.yoo7.com/t417-topic}}
+} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/fonts/dad/dad-user-guide.pdf b/Master/texmf-dist/doc/fonts/dad/dad-user-guide.pdf
new file mode 100644
index 00000000000..6f747f92a70
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/dad/dad-user-guide.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/fonts/dad/dad-user-guide.tex b/Master/texmf-dist/doc/fonts/dad/dad-user-guide.tex
new file mode 100644
index 00000000000..2d336180c64
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/dad/dad-user-guide.tex
@@ -0,0 +1,408 @@
+% needs lualatex to be processed
+\documentclass[11pt]{article}
+\pdfmapfile{/hom/yannis/projets/smf/0/smfpdftex.map}
+\usepackage{graphicx,color,framed}
+\usepackage{ifpdf}
+%\usepackage[utf8]{inputenc}
+\ifpdf
+\usepackage[breaklinks,hidelinks]{hyperref}
+\usepackage{tikz}
+\usetikzlibrary{arrows}
+\else
+\usepackage{url}
+\fi
+\usepackage[colorinlistoftodos]{todonotes}
+\usepackage{dad}
+\def\hamza{'}%\textsuperscript{\ejective}}
+\def\ayn{`}%\textsuperscript{\reveject}}
+
+%%% Start of metadata %%%
+
+\title{User's Guide of \arab{D} (\emph{\d{d}\=ad}),\\ a Simple Arabic Typesetting System\\ for Mixed Latin/Arabic Alphabet Documents\\[12pt]Version 1.0/2014-09-06}
+
+% repeat info for each author.
+\author{Yannis Haralambous\thanks{Institut Mines T\'el\'ecom, T\'el\'ecom Bretagne,
+UMR~CNRS~6285 Lab-STICC,
+Technop\^ole Brest Iroise
+CS 83818, 29238~Brest~Cedex~3, France, \url{yannis.haralambous@telecom-bretagne.eu}}}
+%\netaddress{yannis.haralambous (at) telecom-bretagne dot eu}
+%\personalURL{http://example.org/~user/}
+\date{}
+%%% End of metadata %%%
+
+\begin{document}
+
+\maketitle
+
+\noindent\mbox{\arab{D}} is a package for typesetting Arabic in the simplest possible way. It is particularly well suited for mixed Arabic/Latin documents. ``Simplest possible'' means:
+\begin{itemize}
+\item it is compatible with all \LaTeX\ style files, since the code is minimal and all the complexity is in the font;
+\item input can be done in Unicode or in transliteration, the latter being often the best choice when mixing left-to-right and right-to-left scripts;
+\item the only \TeX nical requirement is Lua\TeX, not because of the Lua language (which is not used, for the moment), but because of features that have survived from lua\TeX's $\Omega$ origins: bidirectionality and use of large fonts (OVF, OFM).
+\end{itemize}
+Choose lua\TeX\ as your \TeX\ engine, load the package into your document, and \arab{AhlAaN wshlAaN!}, just start writing in Arabic using command \verb=\arab=.
+
+More information about \arab{D} (history, evolution, rationale of technical choices, \TeX nicalities) can be found in \cite{tugboat}.
+
+\begin{framed}
+\noindent ATTENTION! \textbf{\arab{xTr!}} Because of bugs in lua\TeX, in some cases appear mysterious blank spaces on the left of the text, word parts are duplicated, and sometimes \TeX\ breaks with an error message \texttt{This can't happen (sub\_disc\_widths).} These errors have been submitted to the lua\TeX\ team (\url{http://tracker.luatex.org/view.php?id=912&history=1#history}), which will provide the necessary corrections \arab{'in shA| ALLh}.
+\end{framed}
+
+\section{The name}
+
+Thanks to the Internet, search engines, social media, and the like, people are becoming more and more aware of other languages and writing systems. Why not give this package an Arabic name, be it a single letter?
+
+The author has chosen letter \arab{D}, called \emph{\d{d}\=ad}, because Arabic is traditionally called the ``language of the \emph{\d{d}\=ad},'' since this sound was considered as being unique to Arabic.
+
+The reader is probably wondering how to pronounce this letter, technically called a ``pharyngealized voiced alveolar plosive'' (dixit Wikipedia). Here is how \cite[p.~10]{learn2} describes its pronunciation:
+
+\begin{quotation}
+Pronounce the regular sound `d' and you will find that the tip of your tongue will touch in the region of the upper front teeth/gum. Now pronounce the sound again and at the same time depress the \emph{middle} of the tongue. This has the effect of creating a larger space between the tongue and the roof of the mouth and gives the sound produced a distinctive `hollow' characteristic, which also effects the surrounding vowels. It is difficult to find a parallel in English, but the difference between `Sam' and `psalm' (standard English pronunciation) gives a clue. Tense the tongue muscles in pronouncing `psalm' and you are nearly there. Now pronounce the a-vowel of `psalm' before and after `\d{d}', saying `a\d{d}a', keeping the tongue tense, and that's as near as we can get to describing it in print.
+\end{quotation}
+
+\section{How to use \arab{D}}
+
+The package provides three PostScript Type~1 fonts (plain, bold and typewriter), ``real'' fonts (regular TFM) and large virtual fonts (OVF and OFM files). There are also rudimentary FD and STY files, a MAP file, Perl scripts for conversion to (and from) UTF-8, the Perl script which builds the font and finally adjustment files, in case the user wants to change kerning and diacritic placement.
+
+Once the package is installed, to use it just call
+\begin{verbatim}
+\usepackage{dad}
+\end{verbatim}
+
+Notice however that it requires Lua\TeX\ (for change of direction and OVF/OFM compliance).
+
+To typeset in Arabic, one uses the command \verb=\arab= (which is ``long'': paragraph changes are allowed in its argument).
+
+Arabic text can be input in transliteration, as described in Table~\ref{trans} or in Unicode UTF-8 (\S\,\ref{unicode}).
+
+{\tolerance5000 For example, to obtain \arab{AlkitAb} one would write in transliteration \verb=\arab{=\texttt{AlkitAb}\verb=}= or in Unicode \verb=\arab{=\arabtt{AlkitAb}\verb=}=. By writing \verb=\arabtt{=\texttt{AlkitAb}\verb=}= one obtains the typewriter version \arabtt{AlkitAb} (which is less appealing, but fits quite nicely with the Computer Modern Typewriter font).
+
+}
+
+\begin{table*}[t]
+\centering{\renewcommand{\arraystretch}{2}
+
+\caption{Transliteration of \arab{D} system\label{trans}}
+\begin{tabular}{|c|c||c|c||c|c||c|c||c|c||c|c|}
+\hline
+\arab{|}&\texttt{|}&\arab{'A}&\texttt{'A}&\arab{'a}&\texttt{'a}&\arab{'u}&\texttt{'u}&\arab{'i}&\texttt{'i}&\arab{'I}&\texttt{'I}\\
+\arab{A}&\texttt{A}&\arab{b}&\texttt{b}&\arab{t*}&\texttt{t*}&\arab{t}&\texttt{t}&\arab{th}&\texttt{th}&\arab{j}&\texttt{j}\\
+\arab{H}&\texttt{H}&\arab{x}&\texttt{x}&\arab{d}&\texttt{d}&\arab{dh}&\texttt{dh}&\arab{r}&\texttt{r}&\arab{z}&\texttt{z}\\
+\arab{s}&\texttt{s}&\arab{sh}&\texttt{sh}&\arab{S}&\texttt{S}&\arab{D}&\texttt{D}&\arab{T}&\texttt{T}&\arab{Z}&\texttt{Z}\\
+\arab{`}&\texttt{`}&\arab{R}&\texttt{R}&\arab{f}&\texttt{f}&\arab{q}&\texttt{q}&\arab{k}&\texttt{k}&\arab{l}&\texttt{l}\\
+\arab{m}&\texttt{m}&\arab{n}&\texttt{n}&\arab{h}&\texttt{h}&\arab{U}&\texttt{U}&\arab{I}&\texttt{I}&\arab{Y}&\texttt{Y}\\\hline
+\arab{A*}&\texttt{A*}&\arab{^^^^00fbo}&\texttt{o}&\arab{^^^^00fba}&\texttt{a}&\arab{^^^^00fbi}&\texttt{i}&\arab{^^^^00fbu}&\texttt{u}&\arab{^^^^00fbaN}&\texttt{aN}\\
+\arab{^^^^00fbiN}&\texttt{iN}&\arab{^^^^00fbuN}&\texttt{uN}&\arab{^^^^00fb+}&\texttt{+}&\arab{^^^^00fb+a}&\texttt{+a}&\arab{^^^^00fb+i}&\texttt{+i}&\arab{^^^^00fb+u}&\texttt{+u}\\
+\arab{^^^^00fb+aN}&\texttt{+aN}&\arab{^^^^00fb+iN}&\texttt{+iN}&\arab{^^^^00fb+uN}&\texttt{+uN}&\arab{^^^^00fba*}&\texttt{a*}&\arab{^^^^00fb+a*}&\texttt{+a*}&\arab{LLh}&\texttt{LLh}\\\hline
+\arab{p}&\texttt{p}&\arab{g}&\texttt{g}&\arab{C}&\texttt{C}&\arab{J}&\texttt{J}&\arab{e}&\texttt{e}&\arab{v}&\texttt{v}\\\hline
+\arab{'b}&\texttt{'b}&\arab{'n}&\texttt{'n}&\arab{'f}&\texttt{'f}&\arab{'q}&\texttt{'q}&\arab{^^^^00fba**}&\texttt{a**}&\arab{^^^^00fb+a**}&\texttt{+a**}\\\hline
+\end{tabular}
+
+}
+\end{table*}
+
+\clubpenalty10000
+
+\subsection{Rationale of the transliteration}
+
+Here are the rules of the proposed transliteration:
+\begin{enumerate}
+\item emphatic consonants (\arabttexample{H}, \arabttexample{T}, \arabttexample{S}, \arabttexample{S}, \arabttexample{D}) as well as long vowels (\arabttexample{A}, \arabttexample{U}, \arabttexample{Y}) and \emph{\hamza$\!$alif maq\d s\=ura} (\arabttexample{I}) are \emph{uppercased};
+
+\item some consonants are modified by adding a character \texttt{h} (\arabttexample{dh}, \arabttexample{th}, \arabttexample{sh}, \arabttexample{kh}, \arabttexample{zh});
+
+\item the stand-alone \emph{hamza} is obtained by a vertical bar \texttt{|} and letter ayn by a grave accent (which, in legacy \TeX\ produces an inverted curly apostrophe, which is sometimes used to transliterate this letter);
+
+\item to avoid confusion between pairs of letters and letters obtained by digraphs, one has to use a dash to separate characters: compare \arabttexample{s-h} and \arabttexample{sh}, or \arabttexample{t-h} and \arabttexample{th};
+
+\item more generally, the dash plays the r\^ole of \emph{zero-width joiner}\footnote{Except for the case of letter \arabttexample{dh} which is biform and hence is not connected with the following letter. By writing \arabttexample{d-h} one obtains letters \emph{d\=al} and \emph{h\=a\hamza}, but the \emph{h\=a\hamza} is not in medial form, as it would be in any other case when preceded by a dash.}: when writing \arabttexample{-b}, the letter \emph{b\=a\hamza} will be in final form; \arabttexample{b-} and \arabttexample{-b-} will produce initial and middle letters, provided of course the letter is quadriform (as is letter \emph{b\=a\hamza} in this example). This is very useful when describing grammar rules, to signify that a letter (or letter group) is an affix;
+
+\item the dash can also be used to reestablish contextual forms when combined with \TeX\ commands, for example, to colorize letters. There is only one special case: when we want to colorize a letter of an isolated ligature \arab{lA}, instead of a dash, we use digit \texttt{4}. For the final ligature \arab{-lA} it will be a digit \texttt{5}. Example: to colorize the \emph{l\=am}s of \arab{t-\textcolor{red}{-l5-}-A5\textcolor{red}{l4-}-A4}, write
+\begin{verbatim}
+\arab{t-\textcolor{red}{-l5-}-A5%
+\textcolor{red}{l4-}-A4}
+\end{verbatim}
+
+%\def\kesh{\leavevmode\leaders\hrule height\fontdimen8\hfill\kern0pt}
+
+\item finally, there is yet another use of the dash: when doubled, it produces a keshideh
+%tatweel
+%(also known as ``keshideh'')
+stroke: compare \arabttexample{lYl} and \arabttexample{l--Y--l}. There is also a \verb=\kesh= command for extensible keshideh (it is equivalent to a \verb=\hrulefill= using the default rule thickness font dimension \verb=\fontdimen8=): \verb=l--\kesh--Y--\kesh--l.= will produce:
+
+\noindent\arab{l--\kesh--Y--\kesh--l.}
+
+\item some digraphs start with an apostrophe: it is the case of \emph{hamza}-carriers \arabttexample{'a}, \arabttexample{'i}, \arabttexample{'u}, \arabttexample{'I}, \arabttexample{'A} but also of undotted letters \emph{b\=a\hamza} \arabttexample{'b}, \emph{n\=un} \arabttexample{'n}, \emph{f\=a\hamza} \arabttexample{'f} and \emph{q\=af} \arabttexample{'q};
+
+\item other digraphs end with one or more asterisks: the most frequent one is the \emph{t\=a\hamza\ marbu\d{t}a} \arabttexample{t*} (which can be used also in initial and medial, and then becomes a regular \emph{t\=a\hamza}). The asterisk is also used for the \emph{wa\d{s}la} (which is only placed on the \emph{\hamza$\!$alif}) \arabttexample{A*} as well as for the vertical \emph{fat\d{h}a} (as in \arabttexample{ha*dhA}) and the \emph{madda}. The latter is normally used only on the \emph{\hamza$\!$alif} (\arabttexample{'A}) but can be found also in the notorious \emph{muqa\d t\d ta\ayn\=at} in the Koran, as in \arab{`a**sa**qa**} (\emph{Koran} 42:2) or \arab{ka**ha*Ya*`a**Sa**} (\emph{Koran} 19:1)---sometimes it is even combined with a \emph{\v{s}adda} (as in \arab{Ala**m+a**Sa**}, \emph{Koran} 7:1 and \cite[p.~111]{syed} for the \emph{\v{s}adda});
+
+\item there is a special transcription for the ligature \arabttexample{LLh} used for the \arab{اسم الجلالة} ``noun of majesty,'' which is the name of God \arab{ALLh}: in this case---and in this case only---an uppercase \texttt{L} is used. The reason is that we wish to avoid ambiguity with other uses of the trigram \emph{l\=am}-\emph{l\=am}-\emph{h\=a\hamza}, for example \arab{YuDolilohu} (\emph{Koran} 6:39) where we encounter letters \arab{llh} but not with the meaning ``God.'' Contrarily to other systems, the \arab{LLh} ligature is available also in final form (for \arab{faLiLhi} which occurs six times in the Koran, for example \emph{Koran} 6:149), and it is possible to add diacritics to its first glyph (as in \arab{UaLiLhi}, \emph{Koran} 2:115 or \arab{L+iLhi}, \emph{Koran} 2:165).
+\end{enumerate}
+
+\begin{figure*}[p]
+\arab{\begin{center}
+\textbf{rbA`YAt AlxYAm}
+
+\medskip
+
+\begin{minipage}{10cm}
+sm`t SUtA hAtfA fY AlsH--\kesh--r n--\kesh--AdI mn AlRYb rfAt Albsh--\kesh--r\\
+hbUA Aml'aUA k'as AlmnI qb--\kesh--l 'an tml'a k--\kesh--'as Al`m--\kesh--r kf Alq--\kesh--dr\\
+lA tshRl AlbAl bmADY Alzm--\kesh--An UlA b--\kesh--'At Al`Y--\kesh--sh qb--\kesh--l Al'aUAn\\
+U'aR--\kesh--nm mn AlHAD--\kesh--r ldhAt--\kesh--h flYs f--\kesh--Y Tb--\kesh--` AllYAl--\kesh--Y Al'am--\kesh--An\\
+Rd bZhr AlRYb UAlYUm l--\kesh--Y Ukm YxYb AlZ--\kesh--n f--\kesh--Y Almqb--\kesh--l\\
+Uls--\kesh--t bAlRAf--\kesh--l Ht--\kesh--I 'arI jm--\kesh--Al dnY--\kesh--AY U lA Ajtl--\kesh--I\\
+Alqlb qd 'aDnAh `shq Aljm--\kesh--Al UAlS--\kesh--dr q--\kesh--d D--\kesh--Aq bm--\kesh--A lA Yq--\kesh--Al\\
+YA rb hl YrDYk hdhA AlZlm--\kesh--A UAlm--\kesh--A| Yns--\kesh--Ab 'am--\kesh--Am--\kesh--Y zlAl\\
+'aUlI bhdhA Alqlb 'an Yxfq--\kesh--A U fY RrAm AlH--\kesh--b 'an YHtrq--\kesh--A\\
+mA 'aDY` AlYUm AldhY m--\kesh--r b--\kesh--Y mn RYr 'an 'ahUI U 'an 'a`shq--\kesh--A\\
+'afq xfYf AlZl hdhA AlsH--\kesh--r n--\kesh--AdI d` Aln--\kesh--Um Un--\kesh--AR AlUt--\kesh--r\\
+fm--\kesh--A 'aT--\kesh--Al Aln--\kesh--Um `m--\kesh--rA UlA qSr mn Al'a`mAr TUl Als-h--\kesh--r\\
+fk--\kesh--m tUl--\kesh--I AllY--\kesh--l b`--\kesh--d Alnh--\kesh--Ar UT--\kesh--Al bAl'anj--\kesh--m h--\kesh--dhA Alm--\kesh--dAr\\
+f'amsh AlhUYnt* 'an hdhA Alc--\kesh--rI m--\kesh--n 'a`Y--\kesh--n sAH--\kesh--rt* AlAH--\kesh--UrAr\\
+lA tUHsh Alnfs bxUf AlZn--\kesh--Un U'aRnm mn AlHADr 'amn AlYqY--\kesh--n\\
+fqd tsAUI fY AlcrI rAH--\kesh--l RdA UmAD mn AlUf AlsnY--\kesh--n\\
+ATf'I lZI Alqlb bshhd AlrD--\kesh--Ab f'inm--\kesh--A Al'aY--\kesh--Am mc--\kesh--l AlsH--\kesh--Ab\\
+U`Yshn--\kesh--A TY--\kesh--f xY--\kesh--Al fn--\kesh--l HZ--\kesh--k mn--\kesh--h qb--\kesh--l f--\kesh--Ut Alshb--\kesh--Ab\\
+lbst cUb Al`Ysh lm Astsh--\kesh--r UH--\kesh--rt fY--\kesh--h bY--\kesh--n sht--\kesh--I Alfk--\kesh--r\\
+UsUf 'anDU AlcUb `nY Ul--\kesh--m 'adrk lm--\kesh--AdhA j'I--\kesh--t 'aY--\kesh--n AlmR--\kesh--r\\
+YA mn YHAr Alfhm fY qdrt--\kesh--k UtTl--\kesh--b Alnf--\kesh--s Hm--\kesh--I TA`t--\kesh--k\\
+Askrn--\kesh--Y Al'ic--\kesh--m U lknn--\kesh--Y SH--\kesh--Ut bAl'am--\kesh--Al f--\kesh--Y rHmt--\kesh--k\\
+'in lm 'akn 'axlSt fY TA`t--\kesh--k f'inn--\kesh--Y 'aTm--\kesh--` f--\kesh--Y rHmt--\kesh--k\\
+U'inm--\kesh--A Yshf--\kesh--` l--\kesh--Y b'ann--\kesh--Y q--\kesh--d `sh--\kesh--t lA 'ash--\kesh--rk fY UHdt--\kesh--k\\
+nxfY `n AlnAs snI Tl`t--\kesh--k f'inn--\kesh--Y 'aTm--\kesh--` f--\kesh--Y rHmt--\kesh--k\\
+f'an--\kesh--t mj--\kesh--lAh U'an--\kesh--t Al--\kesh--dhY t--\kesh--rI bdY--\kesh--` AlSn--\kesh--` f--\kesh--Y 'AYt--\kesh--k\\
+An tfDl AlqTrt* mn bHrh--\kesh--A ff--\kesh--Y m--\kesh--dAh--\kesh--A mnt-h--\kesh--I 'amrh--\kesh--A\\
+tqArb--\kesh--t Y--\kesh--A rb m--\kesh--A bYnn--\kesh--A msAf--\kesh--t* Alb`--\kesh--d `l--\kesh--I qdrh--\kesh--A\\
+YA `Alm Al'asrAr `lm AlYq--\kesh--Y--\kesh--n Y--\kesh--A kAsh--\kesh--f AlD--\kesh--r `--\kesh--n AlbA'IsY--\kesh--n\\
+Y--\kesh--A qAb--\kesh--l Al'a`--\kesh--dhAr `dn--\kesh--A 'il--\kesh--I Zl--\kesh--k f'aqb--\kesh--l tUb--\kesh--t* AltA'IbY--\kesh--n
+\end{minipage}
+\end{center}}
+\caption{The lyrics of the song \arab{rbA`YAt AlxYAm} (Oum Kalthoum, 1950) \cite{oum}\label{oum}}
+\end{figure*}
+
+\begin{figure*}[p]
+
+\kern-2cm
+
+\scriptsize
+\begin{verbatim}
+\documentclass{article}
+\usepackage{dad}
+\begin{document}
+\arab{
+\begin{center}
+\textbf{rbA`YAt AlxYAm}
+
+\medskip
+
+\begin{minipage}{10cm}
+sm`t SUtA hAtfA fY AlsH--\kesh--r n--\kesh--AdI mn AlRYb rfAt Albsh--\kesh--r\\
+hbUA Aml'aUA k'as AlmnI qb--\kesh--l 'an tml'a k--\kesh--'as Al`m--\kesh--r kf
+Alq--\kesh--dr\\
+lA tshRl AlbAl bmADY Alzm--\kesh--An UlA b--\kesh--'At Al`Y--\kesh--sh qb--\kesh--l
+Al'aUAn\\
+U'aR--\kesh--nm mn AlHAD--\kesh--r ldhAt--\kesh--h flYs f--\kesh--Y Tb--\kesh--`
+AllYAl--\kesh--Y Al'am--\kesh--An\\
+Rd bZhr AlRYb UAlYUm l--\kesh--Y Ukm YxYb AlZ--\kesh--n f--\kesh--Y Almqb--\kesh--l\\
+Uls--\kesh--t bAlRAf--\kesh--l Ht--\kesh--I 'arI jm--\kesh--Al dnY--\kesh--AY U
+lA Ajtl--\kesh--I\\
+Alqlb qd 'aDnAh `shq Aljm--\kesh--Al UAlS--\kesh--dr q--\kesh--d D--\kesh--Aq bm--\kesh--A
+lA Yq--\kesh--Al\\
+YA rb hl YrDYk hdhA AlZlm--\kesh--A UAlm--\kesh--A| Yns--\kesh--Ab 'am--\kesh--Am--\kesh--Y
+zlAl\\
+'aUlI bhdhA Alqlb 'an Yxfq--\kesh--A U fY RrAm AlH--\kesh--b 'an YHtrq--\kesh--A\\
+mA 'aDY` AlYUm AldhY m--\kesh--r b--\kesh--Y mn RYr 'an 'ahUI U 'an 'a`shq--\kesh--A\\
+'afq xfYf AlZl hdhA AlsH--\kesh--r n--\kesh--AdI d` Aln--\kesh--Um Un--\kesh--AR
+AlUt--\kesh--r\\
+fm--\kesh--A 'aT--\kesh--Al Aln--\kesh--Um `m--\kesh--rA UlA qSr mn Al'a`mAr TUl
+Als-h--\kesh--r\\
+fk--\kesh--m tUl--\kesh--I AllY--\kesh--l b`--\kesh--d Alnh--\kesh--Ar UT--\kesh--Al
+bAl'anj--\kesh--m h--\kesh--dhA Alm--\kesh--dAr\\
+f'amsh AlhUYnt* 'an hdhA Alc--\kesh--rI m--\kesh--n 'a`Y--\kesh--n sAH--\kesh--rt*
+AlAH--\kesh--UrAr\\
+lA tUHsh Alnfs bxUf AlZn--\kesh--Un U'aRnm mn AlHADr 'amn AlYqY--\kesh--n\\
+fqd tsAUI fY AlcrI rAH--\kesh--l RdA UmAD mn AlUf AlsnY--\kesh--n\\
+ATf'I lZI Alqlb bshhd AlrD--\kesh--Ab f'inm--\kesh--A Al'aY--\kesh--Am mc--\kesh--l
+AlsH--\kesh--Ab\\
+U`Yshn--\kesh--A TY--\kesh--f xY--\kesh--Al fn--\kesh--l HZ--\kesh--k mn--\kesh--h
+qb--\kesh--l f--\kesh--Ut Alshb--\kesh--Ab\\
+lbst cUb Al`Ysh lm Astsh--\kesh--r UH--\kesh--rt fY--\kesh--h bY--\kesh--n sht--\kesh--I
+Alfk--\kesh--r\\
+UsUf 'anDU AlcUb `nY Ul--\kesh--m 'adrk lm--\kesh--AdhA j'I--\kesh--t 'aY--\kesh--n
+AlmR--\kesh--r\\
+YA mn YHAr Alfhm fY qdrt--\kesh--k UtTl--\kesh--b Alnf--\kesh--s Hm--\kesh--I TA`t--\kesh--k\\
+Askrn--\kesh--Y Al'ic--\kesh--m U lknn--\kesh--Y SH--\kesh--Ut bAl'am--\kesh--Al
+f--\kesh--Y rHmt--\kesh--k\\
+'in lm 'akn 'axlSt fY TA`t--\kesh--k f'inn--\kesh--Y 'aTm--\kesh--` f--\kesh--Y
+rHmt--\kesh--k\\
+U'inm--\kesh--A Yshf--\kesh--` l--\kesh--Y b'ann--\kesh--Y q--\kesh--d `sh--\kesh--t
+lA 'ash--\kesh--rk fY UHdt--\kesh--k\\
+nxfY `n AlnAs snI Tl`t--\kesh--k f'inn--\kesh--Y 'aTm--\kesh--` f--\kesh--Y rHmt--\kesh--k\\
+f'an--\kesh--t mj--\kesh--lAh U'an--\kesh--t Al--\kesh--dhY t--\kesh--rI bdY--\kesh--`
+AlSn--\kesh--` f--\kesh--Y 'AYt--\kesh--k\\
+An tfDl AlqTrt* mn bHrh--\kesh--A ff--\kesh--Y m--\kesh--dAh--\kesh--A mnt-h--\kesh--I
+'amrh--\kesh--A\\
+tqArb--\kesh--t Y--\kesh--A rb m--\kesh--A bYnn--\kesh--A msAf--\kesh--t* Alb`--\kesh--d
+`l--\kesh--I qdrh--\kesh--A\\
+YA `Alm Al'asrAr `lm AlYq--\kesh--Y--\kesh--n Y--\kesh--A kAsh--\kesh--f AlD--\kesh--r
+`--\kesh--n AlbA'IsY--\kesh--n\\
+Y--\kesh--A qAb--\kesh--l Al'a`--\kesh--dhAr `dn--\kesh--A 'il--\kesh--I Zl--\kesh--k
+f'aqb--\kesh--l tUb--\kesh--t* AltA'IbY--\kesh--n
+\end{minipage}
+\end{center}
+}
+\end{document}
+\end{verbatim}
+\caption{\TeX\ code of Fig.~\ref{oum}, transliterated input}
+\end{figure*}
+
+\begin{figure*}[p]
+
+\kern-2cm
+
+\scriptsize
+\begin{verbatim}
+\documentclass{article}
+\usepackage{dad}
+\begin{document}
+\arab{
+\begin{center}
+\end{verbatim}
+
+\kern-1.2\baselineskip
+
+\verb=\textbf{=\arabtt{rbA`YAt AlxYAm}\verb=}=
+
+\kern-1.2\baselineskip
+
+\begin{verbatim}
+
+\medskip
+
+\begin{minipage}{10cm}
+\end{verbatim}
+\def\CRCRCR{\textbackslash\textbackslash\\}
+\arabtt{sm`t SUtA hAtfA fY AlsH--\textbackslash tT --r n--\textbackslash tT --AdI mn AlRYb rfAt Albsh--\textbackslash tT --r\CRCRCR
+hbUA Aml'aUA k'as AlmnI qb--\textbackslash tT --l 'an tml'a k--\textbackslash tT --'as Al`m--\textbackslash tT --r kf
+Alq--\textbackslash tT --dr\CRCRCR
+lA tshRl AlbAl bmADY Alzm--\textbackslash tT --An UlA b--\textbackslash tT --'At Al`Y--\textbackslash tT --sh qb--\textbackslash tT --l
+Al'aUAn\CRCRCR
+U'aR--\textbackslash tT --nm mn AlHAD--\textbackslash tT --r ldhAt--\textbackslash tT --h flYs f--\textbackslash tT --Y Tb--\textbackslash tT --`
+AllYAl--\textbackslash tT --Y Al'am--\textbackslash tT --An\CRCRCR
+Rd bZhr AlRYb UAlYUm l--\textbackslash tT --Y Ukm YxYb AlZ--\textbackslash tT --n f--\textbackslash tT --Y Almqb--\textbackslash tT --l\CRCRCR
+Uls--\textbackslash tT --t bAlRAf--\textbackslash tT --l Ht--\textbackslash tT --I 'arI jm--\textbackslash tT --Al dnY--\textbackslash tT --AY U
+lA Ajtl--\textbackslash tT --I\CRCRCR
+Alqlb qd 'aDnAh `shq Aljm--\textbackslash tT --Al UAlS--\textbackslash tT --dr q--\textbackslash tT --d D--\textbackslash tT --Aq bm--\textbackslash tT --A
+lA Yq--\textbackslash tT --Al\CRCRCR
+YA rb hl YrDYk hdhA AlZlm--\textbackslash tT --A UAlm--\textbackslash tT --A| Yns--\textbackslash tT --Ab 'am--\textbackslash tT --Am--\textbackslash tT --Y
+zlAl\CRCRCR
+'aUlI bhdhA Alqlb 'an Yxfq--\textbackslash tT --A U fY RrAm AlH--\textbackslash tT --b 'an YHtrq--\textbackslash tT --A\CRCRCR
+mA 'aDY` AlYUm AldhY m--\textbackslash tT --r b--\textbackslash tT --Y mn RYr 'an 'ahUI U 'an 'a`shq--\textbackslash tT --A\CRCRCR
+'afq xfYf AlZl hdhA AlsH--\textbackslash tT --r n--\textbackslash tT --AdI d` Aln--\textbackslash tT --Um Un--\textbackslash tT --AR\\
+AlUt--\textbackslash tT --r\CRCRCR
+fm--\textbackslash tT --A 'aT--\textbackslash tT --Al Aln--\textbackslash tT --Um `m--\textbackslash tT --rA UlA qSr mn Al'a`mAr TUl
+Als-h--\textbackslash tT --r\CRCRCR
+fk--\textbackslash tT --m tUl--\textbackslash tT --I AllY--\textbackslash tT --l b`--\textbackslash tT --d Alnh--\textbackslash tT --Ar UT--\textbackslash tT --Al
+bAl'anj--\textbackslash tT --m h--\textbackslash tT --dhA Alm--\textbackslash tT --dAr\CRCRCR
+f'amsh AlhUYnt* 'an hdhA Alc--\textbackslash tT --rI m--\textbackslash tT --n 'a`Y--\textbackslash tT --n sAH--\textbackslash tT --rt*
+AlAH--\textbackslash tT --UrAr\CRCRCR
+lA tUHsh Alnfs bxUf AlZn--\textbackslash tT --Un U'aRnm mn AlHADr 'amn AlYqY--\textbackslash tT --n\CRCRCR
+fqd tsAUI fY AlcrI rAH--\textbackslash tT --l RdA UmAD mn AlUf AlsnY--\textbackslash tT --n\CRCRCR
+ATf'I lZI Alqlb bshhd AlrD--\textbackslash tT --Ab f'inm--\textbackslash tT --A Al'aY--\textbackslash tT --Am mc--\textbackslash tT --l
+AlsH--\textbackslash tT --Ab\CRCRCR
+U`Yshn--\textbackslash tT --A TY--\textbackslash tT --f xY--\textbackslash tT --Al fn--\textbackslash tT --l HZ--\textbackslash tT --k mn--\textbackslash tT --h
+qb--\textbackslash tT --l f--\textbackslash tT --Ut Alshb--\textbackslash tT --Ab\CRCRCR
+lbst cUb Al`Ysh lm Astsh--\textbackslash tT --r UH--\textbackslash tT --rt fY--\textbackslash tT --h bY--\textbackslash tT --n sht--\textbackslash tT --I
+Alfk--\textbackslash tT --r\CRCRCR
+UsUf 'anDU AlcUb `nY Ul--\textbackslash tT --m 'adrk lm--\textbackslash tT --AdhA j'I--\textbackslash tT --t 'aY--\textbackslash tT --n
+AlmR--\textbackslash tT --r\CRCRCR
+YA mn YHAr Alfhm fY qdrt--\textbackslash tT --k UtTl--\textbackslash tT --b Alnf--\textbackslash tT --s Hm--\textbackslash tT --I TA`t--\textbackslash tT --k\CRCRCR
+Askrn--\textbackslash tT --Y Al'ic--\textbackslash tT --m U lknn--\textbackslash tT --Y SH--\textbackslash tT --Ut bAl'am--\textbackslash tT --Al
+f--\textbackslash tT --Y rHmt--\textbackslash tT --k\CRCRCR
+'in lm 'akn 'axlSt fY TA`t--\textbackslash tT --k f'inn--\textbackslash tT --Y 'aTm--\textbackslash tT --` f--\textbackslash tT --Y
+rHmt--\textbackslash tT --k\CRCRCR
+U'inm--\textbackslash tT --A Yshf--\textbackslash tT --` l--\textbackslash tT --Y b'ann--\textbackslash tT --Y q--\textbackslash tT --d `sh--\textbackslash tT --t
+lA 'ash--\textbackslash tT --rk fY UHdt--\textbackslash tT --k\CRCRCR
+nxfY `n AlnAs snI Tl`t--\textbackslash tT --k f'inn--\textbackslash tT --Y 'aTm--\textbackslash tT --` f--\textbackslash tT --Y rHmt--\textbackslash tT --k\CRCRCR
+f'an--\textbackslash tT --t mj--\textbackslash tT --lAh U'an--\textbackslash tT --t Al--\textbackslash tT --dhY t--\textbackslash tT --rI bdY--\textbackslash tT --`
+AlSn--\textbackslash tT --` f--\textbackslash tT --Y 'AYt--\textbackslash tT --k\CRCRCR
+An tfDl AlqTrt* mn bHrh--\textbackslash tT --A ff--\textbackslash tT --Y m--\textbackslash tT --dAh--\textbackslash tT --A mnt-h--\textbackslash tT --I
+'amrh--\textbackslash tT --A\CRCRCR
+tqArb--\textbackslash tT --t Y--\textbackslash tT --A rb m--\textbackslash tT --A bYnn--\textbackslash tT --A msAf--\textbackslash tT --t* Alb`--\textbackslash tT --d
+`l--\textbackslash tT --I qdrh--\textbackslash tT --A\CRCRCR
+YA `Alm Al'asrAr `lm AlYq--\textbackslash tT --Y--\textbackslash tT --n Y--\textbackslash tT --A kAsh--\textbackslash tT --f AlD--\textbackslash tT --r
+`--\textbackslash tT --n AlbA'IsY--\textbackslash tT --n\CRCRCR
+Y--\textbackslash tT --A qAb--\textbackslash tT --l Al'a`--\textbackslash tT --dhAr `dn--\textbackslash tT --A 'il--\textbackslash tT --I Zl--\textbackslash tT --k
+f'aqb--\textbackslash tT --l tUb--\textbackslash tT --t*\\
+AltA'IbY--\textbackslash tT --n\hfill}
+\begin{verbatim}
+\end{minipage}
+\end{center}
+}
+\end{document}
+\end{verbatim}
+\caption{\TeX\ code of Fig.~\ref{oum}, Unicode input}
+\end{figure*}
+
+\subsection{Unicode input}\label{unicode}
+
+Input can be transliterated or provided directly in Unicode Arabic: \texttt{\textbackslash arab\{YAnis\}} or \texttt{\textbackslash arab\{\arabtt{YAn--is}\}} or even \texttt{\textbackslash arab\{\arabtt{YA}\,nis\}} or \texttt{\textbackslash arab\{YA\,\arabtt{n--is}\}} will produce the same result: \arab{YAnis}.
+
+All cells of Table~\ref{trans} can be obtained by the corresponding Unicode characters (mostly via a single character, except for \emph{\v{s}adda} + vowel combinations which require two characters). There is a special case, though: the \arab{LLh} ligature (see next section).
+
+For the convenience of the user who wants to write keshideh (so that Arabic input is not disrupted) we have defined a command (in Arabic characters) \arabtt{tT}\textbackslash{} (\arab{tT} are the first two letters of \arab{tTUYl} = \emph{ta\d{t}wyl}, the Arabic name of keshideh) which is exactly equivalent to \verb=\kesh= and has to be placed between Unicode \textsc{U+0640 arabic tatwell} characters.
+
+\subsubsection{The \arab{LLh} ligature and Unicode}\label{allah}
+
+The \arab{LLh} ligature is traditionally used for writing the name of God: \arab{ALLh}. It can be found in religious texts, but also in expressions (for example, \arab{'in shA| ALLh} which means ``hopefully'' appears even in French language as \emph{inchallah} and in Portuguese as \emph{oxal\'a}) and in the very common surname \arab{`bd ALLh} Abdallah.
+
+The problem with this ligature is that it contains a rather rare diacritic (a \emph{\v{s}adda} combined with a vertical \emph{fat\d{h}a}---the latter us available on Apple Arabic keyboard layout but not on the Microsoft one) and, as a convenience, most standard fonts will replace the character string \emph{l\=am}-\emph{l\=am}-\emph{h\=a\hamza} (which would normally look like \arab{llh}) by the complete ligature \arab{LLh} (in other words: the font not only changes the glyphs but, at the same time, also adds the diacritics). This behavior is barely legitimate: a ligature (as in `fi' or `\arab{lA}') is normally limited to a change of glyphs, and should not add new characters (in this case, characters \textsc{U+0651 arabic shadda} and \textsc{U+0671 arabic letter superscript alef}) since this means that what is rendered does not correspond anymore to the underlying Unicode character string.
+
+Nevertheless, for the user's convenience, we have adopted that behavior also in \arab{D}, but only in the case of Unicode input. Therefore when the user types Unicode \emph{l\=am}-\emph{l\=am}-\emph{h\=a\hamza} (the first \emph{l\=am} must not be preceded by a quadriform letter), the system will produce the \arab{LLh} ligature.
+
+This method will not work if a diacritic is inserted between the two \emph{l\=am}s, or if the first \emph{l\=am} follows a quadriform letter and hence will be medial. For that case, we have defined a macro \arabtt{llh}\verb=/= (the macro name is in Arabic script so that right-to-left direction is not disrupted) which takes an argument: the vowel between the two \emph{l\=am}s. Hence, to obtain \arab{faLiLhi} the user can choose between one of the following two:
+\begin{quote}
+\arabtt{^^^^00fbi}\texttt{\{}\arabtt{^^^^00fbi}\texttt{\}}\arabtt{llh}\texttt{/}\arabtt{f--a}\\[6pt]
+\texttt{faLiLhi}
+\end{quote}
+(The dotted circle, used to show the combining nature of short vowels and other diacritics, can be obtained by the macros \verb=\arabdottedcircle= or \arabtt{dA'Irt*}\verb=/= with the macro name in Arabic script.)
+
+\begin{figure*}
+{\centering
+
+\begin{tikzpicture}[->,>=stealth',x=2cm,y=2cm,auto,node distance=3cm,
+ thick,main node/.style={circle,inner sep=1pt,draw,align=center,font=\small}]
+
+\node[main node] (8) at (-1,1) {$\emptyset$};
+\node[main node] (1) at (0,1) {$l_0$\\\arab{l}};
+\node[main node] (2) at (1.5,1) {$ll_0$\\\arab{ll}};
+\node[main node] (3) at (3,1) {$ll_5A_3$\\\arab{llA}};
+\node[main node] (4) at (3,0) {$ll_1k_3$\\\arab{llk}};
+\node[main node] (5) at (2,0) {$LLh_0$\\\arab{LLh}};
+\node[main node] (6) at (1,0) {$l_1k_3$\\\arab{lk}};
+\node[main node] (7) at (0,0) {$l_4A_4$\\\arab{lA}};
+
+\path[every node/.style={font=\small}]
+(8) edge node {$l_0$ \arab{l}} (1)
+(1) edge node {$l_0$ \arab{l}} (2)
+(2) edge node {$A_0$ \arab{A}} (3)
+(2) edge node {$k_0$ \arab{k}} (4)
+(2) edge node {$h_0$ \arab{h}} (5)
+(1) edge node {$k_0$ \arab{k}} (6)
+(1) edge node {$A_0$ \arab{A}} (7)
+;
+\end{tikzpicture}
+
+}
+\caption{Finite state automaton starting with an isolated \emph{l\=am} (\emph{\hamza$\!$alif} \arab{A} stands for the set of letter $\mathcal{A}={}\{$ \arab{A}, \arab{'a}, \arab{'i}, \arab{'A}, \arab{A*} $\}$; \arab{k} stands for any Arabic letter besides \arab{h} and set $\mathcal{A}$.\label{fsa}}
+\end{figure*}
+
+\section{\TeX nicalities}\label{technica}
+
+More information about \arab{D} (history, evolution, rationale of technical choices, \TeX nicalities) can be found in \cite{tugboat}.
+
+\bibliographystyle{plain} % we recommend the plain bibliography style
+\bibliography{dad-user-guide} % xampl.bib comes with BibTeX
+
+\end{document} \ No newline at end of file
diff --git a/Master/texmf-dist/doc/fonts/dad/dad.adjust b/Master/texmf-dist/doc/fonts/dad/dad.adjust
new file mode 100644
index 00000000000..c22301215f0
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/dad/dad.adjust
@@ -0,0 +1,492 @@
+KRN alif0 he0 -100
+KRN alif0 khe0 -100
+KRN alif0 dzim0 -100
+KRN alif0 tche0 -100
+KRN alifuphamza0 he0 -100
+KRN alifuphamza0 khe0 -100
+KRN alifuphamza0 dzim0 -100
+KRN alifuphamza0 tche0 -100
+KRN aliflohamza0 he0 -100
+KRN aliflohamza0 khe0 -100
+KRN aliflohamza0 dzim0 -100
+KRN aliflohamza0 tche0 -100
+KRN alifwasla0 he0 -100
+KRN alifwasla0 khe0 -100
+KRN alifwasla0 dzim0 -100
+KRN alifwasla0 tche0 -100
+KRN alifmadda0 he0 -100
+KRN alifmadda0 khe0 -100
+KRN alifmadda0 dzim0 -100
+KRN alifmadda0 tche0 -100
+KRN alif3 he0 -100
+KRN alif3 khe0 -100
+KRN alif3 dzim0 -100
+KRN alif3 tche0 -100
+KRN alifuphamza3 he0 -100
+KRN alifuphamza3 khe0 -100
+KRN alifuphamza3 dzim0 -100
+KRN alifuphamza3 tche0 -100
+KRN aliflohamza3 he0 -100
+KRN aliflohamza3 khe0 -100
+KRN aliflohamza3 dzim0 -100
+KRN aliflohamza3 tche0 -100
+KRN alifwasla3 he0 -100
+KRN alifwasla3 khe0 -100
+KRN alifwasla3 dzim0 -100
+KRN alifwasla3 tche0 -100
+KRN alifmadda3 he0 -100
+KRN alifmadda3 khe0 -100
+KRN alifmadda3 dzim0 -100
+KRN alifmadda3 tche0 -100
+KRN alif4 he0 -100
+KRN alif4 khe0 -100
+KRN alif4 dzim0 -100
+KRN alif4 tche0 -100
+KRN alifuphamza4 he0 -100
+KRN alifuphamza4 khe0 -100
+KRN alifuphamza4 dzim0 -100
+KRN alifuphamza4 tche0 -100
+KRN aliflohamza4 he0 -100
+KRN aliflohamza4 khe0 -100
+KRN aliflohamza4 dzim0 -100
+KRN aliflohamza4 tche0 -100
+KRN alifwasla4 he0 -100
+KRN alifwasla4 khe0 -100
+KRN alifwasla4 dzim0 -100
+KRN alifwasla4 tche0 -100
+KRN alifmadda43 he0 -100
+KRN alifmadda43 khe0 -100
+KRN alifmadda43 dzim0 -100
+KRN alifmadda43 tche0 -100
+KRN alif5 he0 -100
+KRN alif5 khe0 -100
+KRN alif5 dzim0 -100
+KRN alif5 tche0 -100
+KRN alifuphamza5 he0 -100
+KRN alifuphamza5 khe0 -100
+KRN alifuphamza5 dzim0 -100
+KRN alifuphamza5 tche0 -100
+KRN aliflohamza5 he0 -100
+KRN aliflohamza5 khe0 -100
+KRN aliflohamza5 dzim0 -100
+KRN aliflohamza5 tche0 -100
+KRN alifwasla5 he0 -100
+KRN alifwasla5 khe0 -100
+KRN alifwasla5 dzim0 -100
+KRN alifwasla5 tche0 -100
+KRN alifmadda5 he0 -100
+KRN alifmadda5 khe0 -100
+KRN alifmadda5 dzim0 -100
+KRN alifmadda5 tche0 -100
+KRN alif0 ayn0 -150
+KRN alif0 ghayn0 -150
+KRN alifuphamza0 ayn0 -150
+KRN alifuphamza0 ghayn0 -150
+KRN aliflohamza0 ayn0 -150
+KRN aliflohamza0 ghayn0 -150
+KRN alifwasla0 ayn0 -150
+KRN alifwasla0 ghayn0 -150
+KRN alifmadda0 ayn0 -150
+KRN alifmadda0 ghayn0 -150
+KRN alif3 ayn0 -150
+KRN alif3 ghayn0 -150
+KRN alifuphamza3 ayn0 -150
+KRN alifuphamza3 ghayn0 -150
+KRN aliflohamza3 ayn0 -150
+KRN aliflohamza3 ghayn0 -150
+KRN alifwasla3 ayn0 -150
+KRN alifwasla3 ghayn0 -150
+KRN alifmadda3 ayn0 -150
+KRN alifmadda3 ghayn0 -150
+KRN alif4 ayn0 -150
+KRN alif4 ghayn0 -150
+KRN alifuphamza4 ayn0 -150
+KRN alifuphamza4 ghayn0 -150
+KRN aliflohamza4 ayn0 -150
+KRN aliflohamza4 ghayn0 -150
+KRN alifwasla4 ayn0 -150
+KRN alifwasla4 ghayn0 -150
+KRN alifmadda43 ayn0 -150
+KRN alifmadda43 ghayn0 -150
+KRN alif5 ayn0 -150
+KRN alif5 ghayn0 -150
+KRN alifuphamza5 ayn0 -150
+KRN alifuphamza5 ghayn0 -150
+KRN aliflohamza5 ayn0 -150
+KRN aliflohamza5 ghayn0 -150
+KRN alifwasla5 ayn0 -150
+KRN alifwasla5 ghayn0 -150
+KRN alifmadda5 ayn0 -150
+KRN alifmadda5 ghayn0 -150
+KRN ra0 he0 -100
+KRN ra0 khe0 -100
+KRN ra0 dzim0 -100
+KRN ra0 tche0 -100
+KRN ra3 he0 -100
+KRN ra3 khe0 -100
+KRN ra3 dzim0 -100
+KRN ra3 tche0 -100
+KRN za0 he0 -100
+KRN za0 khe0 -100
+KRN za0 dzim0 -100
+KRN za0 tche0 -100
+KRN za3 he0 -100
+KRN za3 khe0 -100
+KRN za3 dzim0 -100
+KRN za3 tche0 -100
+KRN zhe0 he0 -100
+KRN zhe0 khe0 -100
+KRN zhe0 dzim0 -100
+KRN zhe0 tche0 -100
+KRN zhe3 he0 -100
+KRN zhe3 khe0 -100
+KRN zhe3 dzim0 -100
+KRN zhe3 tche0 -100
+KRN ra0 ayn0 -100
+KRN ra0 ghayn0 -100
+KRN ra3 ayn0 -100
+KRN ra3 ghayn0 -100
+KRN za0 ayn0 -100
+KRN za0 ghayn0 -100
+KRN za3 ayn0 -100
+KRN za3 ghayn0 -100
+KRN zhe0 ayn0 -100
+KRN zhe0 ghayn0 -100
+KRN zhe3 ayn0 -100
+KRN zhe3 ghayn0 -100
+KRN ra0 he0 -100
+KRN ra0 khe0 -100
+KRN ra0 dzim0 -100
+KRN ra0 tche0 -100
+KRN ra3 he0 -100
+KRN ra3 khe0 -100
+KRN ra3 dzim0 -100
+KRN ra3 tche0 -100
+KRN za0 he0 -100
+KRN za0 khe0 -100
+KRN za0 dzim0 -100
+KRN za0 tche0 -100
+KRN za3 he0 -100
+KRN za3 khe0 -100
+KRN za3 dzim0 -100
+KRN za3 tche0 -100
+KRN zhe0 he0 -100
+KRN zhe0 khe0 -100
+KRN zhe0 dzim0 -100
+KRN zhe0 tche0 -100
+KRN zhe3 he0 -100
+KRN zhe3 khe0 -100
+KRN zhe3 dzim0 -100
+KRN zhe3 tche0 -100
+KRN ra0 alif0 -100
+KRN ra0 alifuphamza0 -100
+KRN ra0 aliflohamza0 -100
+KRN ra0 alifwasla0 -100
+KRN ra0 alifmadda0 -100
+KRN ra3 alif0 -100
+KRN ra3 alifuphamza0 -100
+KRN ra3 aliflohamza0 -100
+KRN ra3 alifwasla0 -100
+KRN ra3 alifmadda0 -100
+# KRN za0 alif0 -100
+# KRN za0 alifuphamza0 -100
+# KRN za0 aliflohamza0 -100
+# KRN za0 alifwasla0 -100
+# KRN za0 alifmadda0 -100
+# KRN za3 alif0 -100
+# KRN za3 alifuphamza0 -100
+# KRN za3 aliflohamza0 -100
+# KRN za3 alifwasla0 -100
+# KRN za3 alifmadda0 -100
+# KRN zhe0 alif0 -100
+# KRN zhe0 alifuphamza0 -100
+# KRN zhe0 aliflohamza0 -100
+# KRN zhe0 alifwasla0 -100
+# KRN zhe0 alifmadda0 -100
+# KRN zhe3 alif0 -100
+# KRN zhe3 alifuphamza0 -100
+# KRN zhe3 aliflohamza0 -100
+# KRN zhe3 alifwasla0 -100
+# KRN zhe3 alifmadda0 -100
+KRN ra0 lam4 -50
+KRN ra3 lam4 -50
+KRN za0 lam4 -50
+KRN za3 lam4 -50
+KRN zhe0 lam4 -50
+KRN zhe3 lam4 -50
+KRN dal0 he0 -100
+KRN dal0 khe0 -100
+KRN dal0 dzim0 -100
+KRN dal0 tche0 -100
+KRN dal3 he0 -100
+KRN dal3 khe0 -100
+KRN dal3 dzim0 -100
+KRN dal3 tche0 -100
+KRN dhal0 he0 -100
+KRN dhal0 khe0 -100
+KRN dhal0 dzim0 -100
+KRN dhal0 tche0 -100
+KRN dhal3 he0 -100
+KRN dhal3 khe0 -100
+KRN dhal3 dzim0 -100
+KRN dhal3 tche0 -100
+KRN dal0 ayn0 -150
+KRN dal0 ghayn0 -150
+KRN dal3 ayn0 -150
+KRN dal3 ghayn0 -150
+KRN dhal0 ayn0 -150
+KRN dhal0 ghayn0 -150
+KRN dhal3 ayn0 -150
+KRN dhal3 ghayn0 -150
+ADJ tche0 #UVOWEL# 0 -200
+ADJ tche1 #UVOWEL# 0 -200
+ADJ tche2 #UVOWEL# 0 -200
+ADJ tche3 #UVOWEL# 0 -200
+ADJ he0 #UVOWEL# 0 -200
+ADJ he1 #UVOWEL# 0 -200
+ADJ he2 #UVOWEL# 0 -200
+ADJ he3 #UVOWEL# 0 -200
+ADJ he1 #LVOWEL# 0 150
+ADJ he2 #LVOWEL# 0 150
+ADJ khe1 #LVOWEL# 0 150
+ADJ khe2 #LVOWEL# 0 150
+ADJ khe0 #UVOWEL# 0 -50
+ADJ khe1 #UVOWEL# 0 -50
+ADJ khe2 #UVOWEL# 0 -50
+ADJ khe3 #UVOWEL# 0 -50
+ADJ dzim0 #UVOWEL# 0 -200
+ADJ dzim1 #UVOWEL# 0 -200
+ADJ dzim2 #UVOWEL# 0 -200
+ADJ dzim3 #UVOWEL# 0 -200
+ADJ dad0 #UVOWEL# 0 -200
+ADJ dad1 #UVOWEL# 50 -200
+ADJ dad2 #UVOWEL# 50 -200
+ADJ dad3 #UVOWEL# 0 -200
+ADJ dad1 #LVOWEL# 50 150
+ADJ dad2 #LVOWEL# 50 150
+ADJ alifmaqsura0 #UVOWEL# 0 -300
+ADJ alifmaqsura1 #UVOWEL# 0 -300
+ADJ alifmaqsura2 #UVOWEL# 0 -300
+ADJ alifmaqsura3 #UVOWEL# 0 -300
+ADJ ghayn1 #LVOWEL# 0 150
+ADJ ghayn2 #LVOWEL# 0 150
+ADJ sad0 #UVOWEL# 0 -200
+ADJ sad1 #UVOWEL# 50 -200
+ADJ sad2 #UVOWEL# 50 -200
+ADJ sad3 #UVOWEL# 0 -200
+ADJ sad1 #LVOWEL# 50 150
+ADJ sad2 #LVOWEL# 50 150
+ADJ tta0 #LVOWEL# 0 150
+ADJ tta1 #LVOWEL# 0 150
+ADJ tta2 #LVOWEL# 0 150
+ADJ tta3 #LVOWEL# 0 150
+ADJ zza0 #LVOWEL# 0 150
+ADJ zza1 #LVOWEL# 0 150
+ADJ zza2 #LVOWEL# 0 150
+ADJ zza3 #LVOWEL# 0 150
+ADJ waw0 #UVOWEL# 0 -200
+ADJ waw3 #UVOWEL# 0 -200
+ADJ ayn0 #UVOWEL# 0 -200
+ADJ ayn1 #UVOWEL# 0 -200
+ADJ ayn2 #UVOWEL# 0 -200
+ADJ ayn3 #UVOWEL# 0 -200
+ADJ ayn1 #LVOWEL# 0 150
+ADJ ayn2 #LVOWEL# 0 150
+ADJ ba0 #UVOWEL# 0 -200
+ADJ ba1 #UVOWEL# 0 -200
+ADJ ba2 #UVOWEL# 0 -200
+ADJ ba3 #UVOWEL# 0 -200
+ADJ banodots0 #UVOWEL# 0 -300
+ADJ banodots1 #UVOWEL# 0 -300
+ADJ banodots2 #UVOWEL# 0 -300
+ADJ banodots3 #UVOWEL# 0 -300
+ADJ banodots0 #LVOWEL# 0 150
+ADJ banodots1 #LVOWEL# 0 150
+ADJ banodots2 #LVOWEL# 0 150
+ADJ banodots3 #LVOWEL# 0 150
+ADJ pe0 #UVOWEL# 0 -200
+ADJ pe1 #UVOWEL# 0 -200
+ADJ pe2 #UVOWEL# 0 -200
+ADJ pe3 #UVOWEL# 0 -200
+ADJ ta0 #UVOWEL# 0 -150
+ADJ ta3 #UVOWEL# 0 -150
+ADJ ta0 #LVOWEL# 0 150
+ADJ ta1 #LVOWEL# 0 150
+ADJ ta2 #LVOWEL# 0 150
+ADJ ta3 #LVOWEL# 0 150
+ADJ tha0 #LVOWEL# 0 150
+ADJ tha1 #LVOWEL# 0 150
+ADJ tha2 #LVOWEL# 0 150
+ADJ tha3 #LVOWEL# 0 150
+ADJ tha0 #UVOWEL# 0 0
+ADJ tha1 #UVOWEL# -50 50
+ADJ tha2 #UVOWEL# -50 50
+ADJ tha3 #UVOWEL# 0 0
+ADJ dal0 #UVOWEL# 0 -200
+ADJ dal3 #UVOWEL# 0 -200
+ADJ dal0 #LVOWEL# 0 150
+ADJ dal3 #LVOWEL# 0 150
+ADJ fa0 #LVOWEL# 0 150
+ADJ fa1 #LVOWEL# 0 150
+ADJ fa2 #LVOWEL# 0 150
+ADJ fa3 #LVOWEL# 0 150
+ADJ fa0 #UVOWEL# 0 -200
+ADJ fa3 #UVOWEL# 0 -200
+ADJ fanodots0 #UVOWEL# 0 -200
+ADJ fanodots1 #UVOWEL# 0 -200
+ADJ fanodots2 #UVOWEL# 0 -200
+ADJ fanodots3 #UVOWEL# 0 -200
+ADJ fanodots0 #LVOWEL# 0 150
+ADJ fanodots1 #LVOWEL# 0 150
+ADJ fanodots2 #LVOWEL# 0 150
+ADJ fanodots3 #LVOWEL# 0 150
+ADJ gaf0 #LVOWEL# 0 150
+ADJ gaf1 #LVOWEL# 0 150
+ADJ gaf2 #LVOWEL# 0 150
+ADJ gaf3 #LVOWEL# 0 150
+ADJ gaf0 #UVOWEL# 0 -100
+ADJ gaf3 #UVOWEL# 0 -100
+ADJ kaf0 #LVOWEL# 0 150
+ADJ kaf1 #LVOWEL# 0 150
+ADJ kaf2 #LVOWEL# 0 150
+ADJ kaf3 #LVOWEL# 0 150
+ADJ kaf0 #UVOWEL# 0 -150
+ADJ kaf3 #UVOWEL# 0 -150
+ADJ ha0 #LVOWEL# 0 150
+ADJ ha1 #LVOWEL# 0 150
+ADJ ha3 #LVOWEL# 0 150
+ADJ ha4 #LVOWEL# 50 150
+ADJ ha0 #UVOWEL# 0 -150
+ADJ ha1 #UVOWEL# 0 -150
+ADJ ha2 #UVOWEL# 0 -150
+ADJ ha3 #UVOWEL# 0 -150
+ADJ ha4 #UVOWEL# 0 -150
+ADJ lam0 #UVOWEL# -50 -150
+ADJ lam3 #UVOWEL# -50 -150
+ADJ lam6 #UVOWEL# -50 -150
+# ADJ lam7 #UVOWEL# -50 -150
+ADJ lam8 #UVOWEL# -50 -150
+ADJ lam1 #LVOWEL# 50 150
+ADJ lam2 #LVOWEL# 50 150
+ADJ lam4 #LVOWEL# 50 150
+ADJ lam5 #LVOWEL# 50 150
+ADJ lam6 #LVOWEL# 50 150
+ADJ lam7 #LVOWEL# 50 150
+ADJ lam8 #LVOWEL# 50 150
+ADJ meem0 #UVOWEL# 0 -200
+ADJ meem1 #UVOWEL# 0 -200
+ADJ meem2 #UVOWEL# 0 -200
+ADJ meem3 #UVOWEL# 0 -200
+ADJ meem0 #LVOWEL# 0 -50
+ADJ meem1 #LVOWEL# 0 150
+ADJ meem2 #LVOWEL# 0 150
+ADJ meem3 #LVOWEL# 0 -50
+ADJ nun0 #UVOWEL# 0 -100
+ADJ nun1 #UVOWEL# 0 -50
+ADJ nun2 #UVOWEL# 0 -50
+ADJ nun3 #UVOWEL# 0 -100
+ADJ nun1 #LVOWEL# 0 150
+ADJ nun2 #LVOWEL# 0 150
+ADJ nunnodots0 #UVOWEL# 0 -300
+ADJ nunnodots1 #UVOWEL# 0 -300
+ADJ nunnodots2 #UVOWEL# 0 -300
+ADJ nunnodots3 #UVOWEL# 0 -300
+ADJ nunnodots1 #LVOWEL# 0 150
+ADJ nunnodots2 #LVOWEL# 0 150
+ADJ qaf0 #UVOWEL# 0 -100
+ADJ qaf3 #UVOWEL# 0 -100
+ADJ qaf1 #LVOWEL# 0 150
+ADJ qaf2 #LVOWEL# 0 150
+ADJ qafnodots0 #UVOWEL# 0 -200
+ADJ qafnodots1 #UVOWEL# 0 -200
+ADJ qafnodots2 #UVOWEL# 0 -200
+ADJ qafnodots3 #UVOWEL# 0 -200
+ADJ qafnodots1 #LVOWEL# 0 150
+ADJ qafnodots2 #LVOWEL# 0 150
+ADJ ra0 #UVOWEL# 0 -300
+ADJ ra3 #UVOWEL# 0 -300
+ADJ sin0 #UVOWEL# 0 -200
+ADJ sin1 #UVOWEL# 0 -200
+ADJ sin2 #UVOWEL# 0 -200
+ADJ sin3 #UVOWEL# 0 -200
+ADJ sin1 #LVOWEL# 0 150
+ADJ sin2 #LVOWEL# 0 150
+ADJ va0 #LVOWEL# 0 150
+ADJ va1 #LVOWEL# 0 150
+ADJ va2 #LVOWEL# 0 150
+ADJ va3 #LVOWEL# 0 150
+ADJ va0 #UVOWEL# 0 -200
+ADJ va3 #UVOWEL# 0 -200
+ADJ ya0 #UVOWEL# 0 -200
+ADJ ya1 #UVOWEL# 0 -200
+ADJ ya2 #UVOWEL# 0 -200
+ADJ ya3 #UVOWEL# 0 -300
+ADJ ya0 #LVOWEL# 0 -100
+ADJ ya3 #LVOWEL# 0 -100
+ADJ za0 #UVOWEL# 0 -100
+ADJ za3 #UVOWEL# 0 -100
+ADJ dhal0 #LVOWEL# 0 150
+ADJ dhal3 #LVOWEL# 0 150
+ADJ shin0 #UVOWEL# 0 -200
+ADJ shin1 #UVOWEL# 0 -200
+ADJ shin2 #UVOWEL# 0 -200
+ADJ shin3 #UVOWEL# 0 -200
+ADJ shin1 #LVOWEL# 0 150
+ADJ shin2 #LVOWEL# 0 150
+ADJ tamarbuta0 #LVOWEL# 0 150
+ADJ tamarbuta1 #LVOWEL# 0 150
+ADJ tamarbuta2 #LVOWEL# 0 150
+ADJ tamarbuta3 #LVOWEL# 0 150
+ADJ alif0 #LVOWEL# 75 150
+ADJ alif3 #LVOWEL# 100 150
+ADJ alif4 #LVOWEL# 0 150
+ADJ alif5 #LVOWEL# 0 150
+ADJ alif4 #UVOWEL# 0 -75
+ADJ alif5 #UVOWEL# 0 -75
+ADJ alifuphamza0 #LVOWEL# 0 150
+ADJ alifuphamza3 #LVOWEL# 0 150
+ADJ alifuphamza4 #LVOWEL# 0 150
+ADJ alifuphamza5 #LVOWEL# 0 150
+ADJ alifmadda0 #LVOWEL# 0 150
+ADJ alifmadda3 #LVOWEL# 0 150
+ADJ alifmadda4 #LVOWEL# 0 150
+ADJ alifmadda5 #LVOWEL# 0 150
+ADJ alifwasla0 #LVOWEL# 0 150
+ADJ alifwasla3 #LVOWEL# 0 150
+ADJ alifwasla4 #LVOWEL# 0 150
+ADJ alifwasla5 #LVOWEL# 0 150
+ADJ alifuphamza0 #UVOWEL# 0 50
+ADJ alifuphamza3 #UVOWEL# -40 30
+ADJ alifuphamza4 #UVOWEL# -50 70
+ADJ alifuphamza5 #UVOWEL# -60 40
+ADJ aliflohamza0 #LVOWEL# 100 20
+ADJ aliflohamza3 #LVOWEL# 80 60
+ADJ aliflohamza4 #LVOWEL# 80 60
+ADJ aliflohamza5 #LVOWEL# 80 30
+ADJ wawhamza0 #UVOWEL# 20 -140
+ADJ wawhamza3 #UVOWEL# 20 -140
+ADJ yahamza0 #UVOWEL# -80 -90
+ADJ yahamza1 #UVOWEL# 0 -30
+ADJ yahamza2 #UVOWEL# 0 -30
+ADJ yahamza3 #UVOWEL# -80 -170
+ADJ yahamza1 #LVOWEL# 50 150
+ADJ yahamza2 #LVOWEL# 50 150
+ADJ hamza0 #UVOWEL# -30 -300
+ADJ hamza0 #LVOWEL# 30 270
+ADJ lam6 #UVOWEL# 10 0
+ADJ keshideh0 #UVOWEL# 0 -300
+ADJ keshideh1 #UVOWEL# 0 -300
+ADJ keshideh2 #UVOWEL# 0 -300
+ADJ keshideh3 #UVOWEL# 0 -300
+ADJ keshideh0 #LVOWEL# 0 150
+ADJ keshideh1 #LVOWEL# 0 150
+ADJ keshideh2 #LVOWEL# 0 150
+ADJ keshideh3 #LVOWEL# 0 150
+ADJ zwj0 #UVOWEL# 0 -300
+ADJ zwj1 #UVOWEL# 0 -300
+ADJ zwj2 #UVOWEL# 0 -300
+ADJ zwj3 #UVOWEL# 0 -300
+ADJ zwj0 #LVOWEL# 0 150
+ADJ zwj1 #LVOWEL# 0 150
+ADJ zwj2 #LVOWEL# 0 150
+ADJ zwj3 #LVOWEL# 0 150
diff --git a/Master/texmf-dist/doc/fonts/dad/dadbold.adjust b/Master/texmf-dist/doc/fonts/dad/dadbold.adjust
new file mode 100644
index 00000000000..ae7059be95b
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/dad/dadbold.adjust
@@ -0,0 +1,492 @@
+KRN alif0 he0 -100
+KRN alif0 khe0 -100
+KRN alif0 dzim0 -100
+KRN alif0 tche0 -100
+KRN alifuphamza0 he0 -100
+KRN alifuphamza0 khe0 -100
+KRN alifuphamza0 dzim0 -100
+KRN alifuphamza0 tche0 -100
+KRN aliflohamza0 he0 -100
+KRN aliflohamza0 khe0 -100
+KRN aliflohamza0 dzim0 -100
+KRN aliflohamza0 tche0 -100
+KRN alifwasla0 he0 -100
+KRN alifwasla0 khe0 -100
+KRN alifwasla0 dzim0 -100
+KRN alifwasla0 tche0 -100
+KRN alifmadda0 he0 -100
+KRN alifmadda0 khe0 -100
+KRN alifmadda0 dzim0 -100
+KRN alifmadda0 tche0 -100
+KRN alif3 he0 -100
+KRN alif3 khe0 -100
+KRN alif3 dzim0 -100
+KRN alif3 tche0 -100
+KRN alifuphamza3 he0 -100
+KRN alifuphamza3 khe0 -100
+KRN alifuphamza3 dzim0 -100
+KRN alifuphamza3 tche0 -100
+KRN aliflohamza3 he0 -100
+KRN aliflohamza3 khe0 -100
+KRN aliflohamza3 dzim0 -100
+KRN aliflohamza3 tche0 -100
+KRN alifwasla3 he0 -100
+KRN alifwasla3 khe0 -100
+KRN alifwasla3 dzim0 -100
+KRN alifwasla3 tche0 -100
+KRN alifmadda3 he0 -100
+KRN alifmadda3 khe0 -100
+KRN alifmadda3 dzim0 -100
+KRN alifmadda3 tche0 -100
+KRN alif4 he0 -100
+KRN alif4 khe0 -100
+KRN alif4 dzim0 -100
+KRN alif4 tche0 -100
+KRN alifuphamza4 he0 -100
+KRN alifuphamza4 khe0 -100
+KRN alifuphamza4 dzim0 -100
+KRN alifuphamza4 tche0 -100
+KRN aliflohamza4 he0 -100
+KRN aliflohamza4 khe0 -100
+KRN aliflohamza4 dzim0 -100
+KRN aliflohamza4 tche0 -100
+KRN alifwasla4 he0 -100
+KRN alifwasla4 khe0 -100
+KRN alifwasla4 dzim0 -100
+KRN alifwasla4 tche0 -100
+KRN alifmadda43 he0 -100
+KRN alifmadda43 khe0 -100
+KRN alifmadda43 dzim0 -100
+KRN alifmadda43 tche0 -100
+KRN alif5 he0 -100
+KRN alif5 khe0 -100
+KRN alif5 dzim0 -100
+KRN alif5 tche0 -100
+KRN alifuphamza5 he0 -100
+KRN alifuphamza5 khe0 -100
+KRN alifuphamza5 dzim0 -100
+KRN alifuphamza5 tche0 -100
+KRN aliflohamza5 he0 -100
+KRN aliflohamza5 khe0 -100
+KRN aliflohamza5 dzim0 -100
+KRN aliflohamza5 tche0 -100
+KRN alifwasla5 he0 -100
+KRN alifwasla5 khe0 -100
+KRN alifwasla5 dzim0 -100
+KRN alifwasla5 tche0 -100
+KRN alifmadda5 he0 -100
+KRN alifmadda5 khe0 -100
+KRN alifmadda5 dzim0 -100
+KRN alifmadda5 tche0 -100
+KRN alif0 ayn0 -150
+KRN alif0 ghayn0 -150
+KRN alifuphamza0 ayn0 -150
+KRN alifuphamza0 ghayn0 -150
+KRN aliflohamza0 ayn0 -150
+KRN aliflohamza0 ghayn0 -150
+KRN alifwasla0 ayn0 -150
+KRN alifwasla0 ghayn0 -150
+KRN alifmadda0 ayn0 -150
+KRN alifmadda0 ghayn0 -150
+KRN alif3 ayn0 -150
+KRN alif3 ghayn0 -150
+KRN alifuphamza3 ayn0 -150
+KRN alifuphamza3 ghayn0 -150
+KRN aliflohamza3 ayn0 -150
+KRN aliflohamza3 ghayn0 -150
+KRN alifwasla3 ayn0 -150
+KRN alifwasla3 ghayn0 -150
+KRN alifmadda3 ayn0 -150
+KRN alifmadda3 ghayn0 -150
+KRN alif4 ayn0 -150
+KRN alif4 ghayn0 -150
+KRN alifuphamza4 ayn0 -150
+KRN alifuphamza4 ghayn0 -150
+KRN aliflohamza4 ayn0 -150
+KRN aliflohamza4 ghayn0 -150
+KRN alifwasla4 ayn0 -150
+KRN alifwasla4 ghayn0 -150
+KRN alifmadda43 ayn0 -150
+KRN alifmadda43 ghayn0 -150
+KRN alif5 ayn0 -150
+KRN alif5 ghayn0 -150
+KRN alifuphamza5 ayn0 -150
+KRN alifuphamza5 ghayn0 -150
+KRN aliflohamza5 ayn0 -150
+KRN aliflohamza5 ghayn0 -150
+KRN alifwasla5 ayn0 -150
+KRN alifwasla5 ghayn0 -150
+KRN alifmadda5 ayn0 -150
+KRN alifmadda5 ghayn0 -150
+KRN ra0 he0 -100
+KRN ra0 khe0 -100
+KRN ra0 dzim0 -100
+KRN ra0 tche0 -100
+KRN ra3 he0 -100
+KRN ra3 khe0 -100
+KRN ra3 dzim0 -100
+KRN ra3 tche0 -100
+KRN za0 he0 -100
+KRN za0 khe0 -100
+KRN za0 dzim0 -100
+KRN za0 tche0 -100
+KRN za3 he0 -100
+KRN za3 khe0 -100
+KRN za3 dzim0 -100
+KRN za3 tche0 -100
+KRN zhe0 he0 -100
+KRN zhe0 khe0 -100
+KRN zhe0 dzim0 -100
+KRN zhe0 tche0 -100
+KRN zhe3 he0 -100
+KRN zhe3 khe0 -100
+KRN zhe3 dzim0 -100
+KRN zhe3 tche0 -100
+KRN ra0 ayn0 -100
+KRN ra0 ghayn0 -100
+KRN ra3 ayn0 -100
+KRN ra3 ghayn0 -100
+KRN za0 ayn0 -100
+KRN za0 ghayn0 -100
+KRN za3 ayn0 -100
+KRN za3 ghayn0 -100
+KRN zhe0 ayn0 -100
+KRN zhe0 ghayn0 -100
+KRN zhe3 ayn0 -100
+KRN zhe3 ghayn0 -100
+KRN ra0 he0 -100
+KRN ra0 khe0 -100
+KRN ra0 dzim0 -100
+KRN ra0 tche0 -100
+KRN ra3 he0 -100
+KRN ra3 khe0 -100
+KRN ra3 dzim0 -100
+KRN ra3 tche0 -100
+KRN za0 he0 -100
+KRN za0 khe0 -100
+KRN za0 dzim0 -100
+KRN za0 tche0 -100
+KRN za3 he0 -100
+KRN za3 khe0 -100
+KRN za3 dzim0 -100
+KRN za3 tche0 -100
+KRN zhe0 he0 -100
+KRN zhe0 khe0 -100
+KRN zhe0 dzim0 -100
+KRN zhe0 tche0 -100
+KRN zhe3 he0 -100
+KRN zhe3 khe0 -100
+KRN zhe3 dzim0 -100
+KRN zhe3 tche0 -100
+KRN ra0 alif0 -100
+KRN ra0 alifuphamza0 -100
+KRN ra0 aliflohamza0 -100
+KRN ra0 alifwasla0 -100
+KRN ra0 alifmadda0 -100
+KRN ra3 alif0 -100
+KRN ra3 alifuphamza0 -100
+KRN ra3 aliflohamza0 -100
+KRN ra3 alifwasla0 -100
+KRN ra3 alifmadda0 -100
+# KRN za0 alif0 -100
+# KRN za0 alifuphamza0 -100
+# KRN za0 aliflohamza0 -100
+# KRN za0 alifwasla0 -100
+# KRN za0 alifmadda0 -100
+# KRN za3 alif0 -100
+# KRN za3 alifuphamza0 -100
+# KRN za3 aliflohamza0 -100
+# KRN za3 alifwasla0 -100
+# KRN za3 alifmadda0 -100
+# KRN zhe0 alif0 -100
+# KRN zhe0 alifuphamza0 -100
+# KRN zhe0 aliflohamza0 -100
+# KRN zhe0 alifwasla0 -100
+# KRN zhe0 alifmadda0 -100
+# KRN zhe3 alif0 -100
+# KRN zhe3 alifuphamza0 -100
+# KRN zhe3 aliflohamza0 -100
+# KRN zhe3 alifwasla0 -100
+# KRN zhe3 alifmadda0 -100
+KRN ra0 lam4 -50
+KRN ra3 lam4 -50
+KRN za0 lam4 -50
+KRN za3 lam4 -50
+KRN zhe0 lam4 -50
+KRN zhe3 lam4 -50
+KRN dal0 he0 -100
+KRN dal0 khe0 -100
+KRN dal0 dzim0 -100
+KRN dal0 tche0 -100
+KRN dal3 he0 -100
+KRN dal3 khe0 -100
+KRN dal3 dzim0 -100
+KRN dal3 tche0 -100
+KRN dhal0 he0 -100
+KRN dhal0 khe0 -100
+KRN dhal0 dzim0 -100
+KRN dhal0 tche0 -100
+KRN dhal3 he0 -100
+KRN dhal3 khe0 -100
+KRN dhal3 dzim0 -100
+KRN dhal3 tche0 -100
+KRN dal0 ayn0 -150
+KRN dal0 ghayn0 -150
+KRN dal3 ayn0 -150
+KRN dal3 ghayn0 -150
+KRN dhal0 ayn0 -150
+KRN dhal0 ghayn0 -150
+KRN dhal3 ayn0 -150
+KRN dhal3 ghayn0 -150
+ADJ tche0 #UVOWEL# 0 -200
+ADJ tche1 #UVOWEL# 0 -200
+ADJ tche2 #UVOWEL# 0 -200
+ADJ tche3 #UVOWEL# 0 -200
+ADJ he0 #UVOWEL# 0 -200
+ADJ he1 #UVOWEL# 0 -200
+ADJ he2 #UVOWEL# 0 -200
+ADJ he3 #UVOWEL# 0 -200
+ADJ he1 #LVOWEL# 0 150
+ADJ he2 #LVOWEL# 0 150
+ADJ khe1 #LVOWEL# 0 150
+ADJ khe2 #LVOWEL# 0 150
+ADJ khe0 #UVOWEL# 0 -50
+ADJ khe1 #UVOWEL# 0 -50
+ADJ khe2 #UVOWEL# 0 -50
+ADJ khe3 #UVOWEL# 0 -50
+ADJ dzim0 #UVOWEL# 0 -200
+ADJ dzim1 #UVOWEL# 0 -200
+ADJ dzim2 #UVOWEL# 0 -200
+ADJ dzim3 #UVOWEL# 0 -200
+ADJ dad0 #UVOWEL# 0 -200
+ADJ dad1 #UVOWEL# 50 -200
+ADJ dad2 #UVOWEL# 50 -200
+ADJ dad3 #UVOWEL# 0 -200
+ADJ dad1 #LVOWEL# 50 150
+ADJ dad2 #LVOWEL# 50 150
+ADJ alifmaqsura0 #UVOWEL# 0 -300
+ADJ alifmaqsura1 #UVOWEL# 0 -300
+ADJ alifmaqsura2 #UVOWEL# 0 -300
+ADJ alifmaqsura3 #UVOWEL# 0 -300
+ADJ ghayn1 #LVOWEL# 0 150
+ADJ ghayn2 #LVOWEL# 0 150
+ADJ sad0 #UVOWEL# 0 -200
+ADJ sad1 #UVOWEL# 50 -200
+ADJ sad2 #UVOWEL# 50 -200
+ADJ sad3 #UVOWEL# 0 -200
+ADJ sad1 #LVOWEL# 50 150
+ADJ sad2 #LVOWEL# 50 150
+ADJ tta0 #LVOWEL# 0 150
+ADJ tta1 #LVOWEL# 0 150
+ADJ tta2 #LVOWEL# 0 150
+ADJ tta3 #LVOWEL# 0 150
+ADJ zza0 #LVOWEL# 0 150
+ADJ zza1 #LVOWEL# 0 150
+ADJ zza2 #LVOWEL# 0 150
+ADJ zza3 #LVOWEL# 0 150
+ADJ waw0 #UVOWEL# 0 -200
+ADJ waw3 #UVOWEL# 0 -200
+ADJ ayn0 #UVOWEL# 0 -200
+ADJ ayn1 #UVOWEL# 0 -200
+ADJ ayn2 #UVOWEL# 0 -200
+ADJ ayn3 #UVOWEL# 0 -200
+ADJ ayn1 #LVOWEL# 0 150
+ADJ ayn2 #LVOWEL# 0 150
+ADJ ba0 #UVOWEL# 0 -200
+ADJ ba1 #UVOWEL# 0 -200
+ADJ ba2 #UVOWEL# 0 -200
+ADJ ba3 #UVOWEL# 0 -200
+ADJ banodots0 #UVOWEL# 0 -300
+ADJ banodots1 #UVOWEL# 0 -300
+ADJ banodots2 #UVOWEL# 0 -300
+ADJ banodots3 #UVOWEL# 0 -300
+ADJ banodots0 #LVOWEL# 0 150
+ADJ banodots1 #LVOWEL# 0 150
+ADJ banodots2 #LVOWEL# 0 150
+ADJ banodots3 #LVOWEL# 0 150
+ADJ pe0 #UVOWEL# 0 -200
+ADJ pe1 #UVOWEL# 0 -200
+ADJ pe2 #UVOWEL# 0 -200
+ADJ pe3 #UVOWEL# 0 -200
+ADJ ta0 #UVOWEL# 0 -150
+ADJ ta3 #UVOWEL# 0 -150
+ADJ ta0 #LVOWEL# 0 150
+ADJ ta1 #LVOWEL# 0 150
+ADJ ta2 #LVOWEL# 0 150
+ADJ ta3 #LVOWEL# 0 150
+ADJ tha0 #LVOWEL# 0 150
+ADJ tha1 #LVOWEL# 0 150
+ADJ tha2 #LVOWEL# 0 150
+ADJ tha3 #LVOWEL# 0 150
+ADJ tha0 #UVOWEL# 0 0
+ADJ tha1 #UVOWEL# -50 50
+ADJ tha2 #UVOWEL# -50 50
+ADJ tha3 #UVOWEL# 0 0
+ADJ dal0 #UVOWEL# 0 -200
+ADJ dal3 #UVOWEL# 0 -200
+ADJ dal0 #LVOWEL# 0 150
+ADJ dal3 #LVOWEL# 0 150
+ADJ fa0 #LVOWEL# 0 150
+ADJ fa1 #LVOWEL# 0 150
+ADJ fa2 #LVOWEL# 0 150
+ADJ fa3 #LVOWEL# 0 150
+ADJ fa0 #UVOWEL# 0 -200
+ADJ fa3 #UVOWEL# 0 -200
+ADJ fanodots0 #UVOWEL# 0 -200
+ADJ fanodots1 #UVOWEL# 0 -200
+ADJ fanodots2 #UVOWEL# 0 -200
+ADJ fanodots3 #UVOWEL# 0 -200
+ADJ fanodots0 #LVOWEL# 0 150
+ADJ fanodots1 #LVOWEL# 0 150
+ADJ fanodots2 #LVOWEL# 0 150
+ADJ fanodots3 #LVOWEL# 0 150
+ADJ gaf0 #LVOWEL# 0 150
+ADJ gaf1 #LVOWEL# 0 150
+ADJ gaf2 #LVOWEL# 0 150
+ADJ gaf3 #LVOWEL# 0 150
+ADJ gaf0 #UVOWEL# 0 -100
+ADJ gaf3 #UVOWEL# 0 -100
+ADJ kaf0 #LVOWEL# 0 150
+ADJ kaf1 #LVOWEL# 0 150
+ADJ kaf2 #LVOWEL# 0 150
+ADJ kaf3 #LVOWEL# 0 150
+ADJ kaf0 #UVOWEL# 0 -150
+ADJ kaf3 #UVOWEL# 0 -150
+ADJ ha0 #LVOWEL# 0 150
+ADJ ha1 #LVOWEL# 0 150
+ADJ ha3 #LVOWEL# 0 150
+ADJ ha4 #LVOWEL# 50 150
+ADJ ha0 #UVOWEL# 0 -150
+ADJ ha1 #UVOWEL# 0 -150
+ADJ ha2 #UVOWEL# 0 -150
+ADJ ha3 #UVOWEL# 0 -150
+ADJ ha4 #UVOWEL# 0 -150
+ADJ lam0 #UVOWEL# -50 -150
+ADJ lam3 #UVOWEL# -50 -150
+ADJ lam6 #UVOWEL# -50 -150
+ADJ lam7 #UVOWEL# -50 -150
+ADJ lam8 #UVOWEL# -50 -150
+ADJ lam1 #LVOWEL# 50 150
+ADJ lam2 #LVOWEL# 50 150
+ADJ lam4 #LVOWEL# 50 150
+ADJ lam5 #LVOWEL# 50 150
+ADJ lam6 #LVOWEL# 50 150
+ADJ lam7 #LVOWEL# 50 150
+ADJ lam8 #LVOWEL# 50 150
+ADJ meem0 #UVOWEL# 0 -200
+ADJ meem1 #UVOWEL# 0 -200
+ADJ meem2 #UVOWEL# 0 -200
+ADJ meem3 #UVOWEL# 0 -200
+ADJ meem0 #LVOWEL# 0 -50
+ADJ meem1 #LVOWEL# 0 150
+ADJ meem2 #LVOWEL# 0 150
+ADJ meem3 #LVOWEL# 0 -50
+ADJ nun0 #UVOWEL# 0 -100
+ADJ nun1 #UVOWEL# 0 -50
+ADJ nun2 #UVOWEL# 0 -50
+ADJ nun3 #UVOWEL# 0 -100
+ADJ nun1 #LVOWEL# 0 150
+ADJ nun2 #LVOWEL# 0 150
+ADJ nunnodots0 #UVOWEL# 0 -300
+ADJ nunnodots1 #UVOWEL# 0 -300
+ADJ nunnodots2 #UVOWEL# 0 -300
+ADJ nunnodots3 #UVOWEL# 0 -300
+ADJ nunnodots1 #LVOWEL# 0 150
+ADJ nunnodots2 #LVOWEL# 0 150
+ADJ qaf0 #UVOWEL# 0 -100
+ADJ qaf3 #UVOWEL# 0 -100
+ADJ qaf1 #LVOWEL# 0 150
+ADJ qaf2 #LVOWEL# 0 150
+ADJ qafnodots0 #UVOWEL# 0 -200
+ADJ qafnodots1 #UVOWEL# 0 -200
+ADJ qafnodots2 #UVOWEL# 0 -200
+ADJ qafnodots3 #UVOWEL# 0 -200
+ADJ qafnodots1 #LVOWEL# 0 150
+ADJ qafnodots2 #LVOWEL# 0 150
+ADJ ra0 #UVOWEL# 0 -300
+ADJ ra3 #UVOWEL# 0 -300
+ADJ sin0 #UVOWEL# 0 -200
+ADJ sin1 #UVOWEL# 0 -200
+ADJ sin2 #UVOWEL# 0 -200
+ADJ sin3 #UVOWEL# 0 -200
+ADJ sin1 #LVOWEL# 0 150
+ADJ sin2 #LVOWEL# 0 150
+ADJ va0 #LVOWEL# 0 150
+ADJ va1 #LVOWEL# 0 150
+ADJ va2 #LVOWEL# 0 150
+ADJ va3 #LVOWEL# 0 150
+ADJ va0 #UVOWEL# 0 -200
+ADJ va3 #UVOWEL# 0 -200
+ADJ ya0 #UVOWEL# 0 -200
+ADJ ya1 #UVOWEL# 0 -200
+ADJ ya2 #UVOWEL# 0 -200
+ADJ ya3 #UVOWEL# 0 -300
+ADJ ya0 #LVOWEL# 0 -100
+ADJ ya3 #LVOWEL# 0 -100
+ADJ za0 #UVOWEL# 0 -100
+ADJ za3 #UVOWEL# 0 -100
+ADJ dhal0 #LVOWEL# 0 150
+ADJ dhal3 #LVOWEL# 0 150
+ADJ shin0 #UVOWEL# 0 -200
+ADJ shin1 #UVOWEL# 0 -200
+ADJ shin2 #UVOWEL# 0 -200
+ADJ shin3 #UVOWEL# 0 -200
+ADJ shin1 #LVOWEL# 0 150
+ADJ shin2 #LVOWEL# 0 150
+ADJ tamarbuta0 #LVOWEL# 0 150
+ADJ tamarbuta1 #LVOWEL# 0 150
+ADJ tamarbuta2 #LVOWEL# 0 150
+ADJ tamarbuta3 #LVOWEL# 0 150
+ADJ alif0 #LVOWEL# 75 150
+ADJ alif3 #LVOWEL# 100 150
+ADJ alif4 #LVOWEL# 50 150
+ADJ alif5 #LVOWEL# 0 150
+ADJ alif4 #UVOWEL# 0 -75
+ADJ alif5 #UVOWEL# 0 -75
+ADJ alifuphamza0 #LVOWEL# 0 150
+ADJ alifuphamza3 #LVOWEL# 0 150
+ADJ alifuphamza4 #LVOWEL# 0 150
+ADJ alifuphamza5 #LVOWEL# 0 150
+ADJ alifmadda0 #LVOWEL# 0 150
+ADJ alifmadda3 #LVOWEL# 0 150
+ADJ alifmadda4 #LVOWEL# 0 150
+ADJ alifmadda5 #LVOWEL# 0 150
+ADJ alifwasla0 #LVOWEL# 0 150
+ADJ alifwasla3 #LVOWEL# 0 150
+ADJ alifwasla4 #LVOWEL# 0 150
+ADJ alifwasla5 #LVOWEL# 0 150
+ADJ alifuphamza0 #UVOWEL# 0 -40
+ADJ alifuphamza3 #UVOWEL# -40 -40
+ADJ alifuphamza4 #UVOWEL# -70 -10
+ADJ alifuphamza5 #UVOWEL# -60 -40
+ADJ aliflohamza0 #LVOWEL# 100 160
+ADJ aliflohamza3 #LVOWEL# 70 140
+ADJ aliflohamza4 #LVOWEL# 60 50
+ADJ aliflohamza5 #LVOWEL# 40 40
+ADJ wawhamza0 #UVOWEL# 0 -60
+ADJ wawhamza3 #UVOWEL# 40 -60
+ADJ yahamza0 #UVOWEL# -80 -90
+ADJ yahamza1 #UVOWEL# 0 -60
+ADJ yahamza2 #UVOWEL# 0 -60
+ADJ yahamza3 #UVOWEL# -80 -220
+ADJ yahamza1 #LVOWEL# 50 150
+ADJ yahamza2 #LVOWEL# 50 150
+ADJ hamza0 #UVOWEL# 30 -250
+ADJ hamza0 #LVOWEL# 90 260
+ADJ lam6 #UVOWEL# 10 0
+ADJ keshideh0 #UVOWEL# 0 -300
+ADJ keshideh1 #UVOWEL# 0 -300
+ADJ keshideh2 #UVOWEL# 0 -300
+ADJ keshideh3 #UVOWEL# 0 -300
+ADJ keshideh0 #LVOWEL# 0 150
+ADJ keshideh1 #LVOWEL# 0 150
+ADJ keshideh2 #LVOWEL# 0 150
+ADJ keshideh3 #LVOWEL# 0 150
+ADJ zwj0 #UVOWEL# 0 -300
+ADJ zwj1 #UVOWEL# 0 -300
+ADJ zwj2 #UVOWEL# 0 -300
+ADJ zwj3 #UVOWEL# 0 -300
+ADJ zwj0 #LVOWEL# 0 150
+ADJ zwj1 #LVOWEL# 0 150
+ADJ zwj2 #LVOWEL# 0 150
+ADJ zwj3 #LVOWEL# 0 150
diff --git a/Master/texmf-dist/doc/fonts/dad/dadmono.adjust b/Master/texmf-dist/doc/fonts/dad/dadmono.adjust
new file mode 100644
index 00000000000..ce821bb99c9
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/dad/dadmono.adjust
@@ -0,0 +1,325 @@
+# ADJ lam7 #UVOWEL# -50 -150
+ADJ alif0 #LVOWEL# 0 0
+ADJ alif3 #LVOWEL# 0 0
+ADJ alif4 #LVOWEL# -150 0
+ADJ alif4 #UVOWEL# -150 -75
+ADJ alif5 #LVOWEL# -150 0
+ADJ alif5 #UVOWEL# -150 -75
+ADJ aliflohamza0 #LVOWEL# 0 -150
+ADJ aliflohamza3 #LVOWEL# 0 -150
+ADJ aliflohamza4 #LVOWEL# -100 -100
+ADJ aliflohamza5 #LVOWEL# -120 -170
+ADJ alifmadda0 #LVOWEL# 0 0
+ADJ alifmadda3 #LVOWEL# 0 0
+ADJ alifmadda4 #LVOWEL# 0 0
+ADJ alifmadda5 #LVOWEL# 0 0
+ADJ alifmaqsura0 #LVOWEL# 0 -100
+ADJ alifmaqsura0 #UVOWEL# 0 -250
+ADJ alifmaqsura1 #LVOWEL# 0 -250
+ADJ alifmaqsura1 #UVOWEL# 0 -250
+ADJ alifmaqsura2 #LVOWEL# 0 -250
+ADJ alifmaqsura2 #UVOWEL# 0 -250
+ADJ alifmaqsura3 #LVOWEL# 0 -250
+ADJ alifmaqsura3 #UVOWEL# 0 -500
+ADJ alifuphamza0 #LVOWEL# 0 0
+ADJ alifuphamza0 #UVOWEL# -100 100
+ADJ alifuphamza3 #LVOWEL# 0 0
+ADJ alifuphamza3 #UVOWEL# -100 100
+ADJ alifuphamza4 #LVOWEL# 0 0
+ADJ alifuphamza4 #UVOWEL# -200 100
+ADJ alifuphamza5 #LVOWEL# 0 0
+ADJ alifuphamza5 #UVOWEL# -200 100
+ADJ alifwasla0 #LVOWEL# 0 0
+ADJ alifwasla3 #LVOWEL# 0 0
+ADJ alifwasla4 #LVOWEL# 0 0
+ADJ alifwasla5 #LVOWEL# 0 0
+ADJ ayn0 #LVOWEL# 0 -250
+ADJ ayn0 #UVOWEL# 0 -200
+ADJ ayn1 #LVOWEL# 0 0
+ADJ ayn1 #UVOWEL# 0 -200
+ADJ ayn2 #LVOWEL# 0 0
+ADJ ayn2 #UVOWEL# 0 -200
+ADJ ayn3 #LVOWEL# 0 -250
+ADJ ayn3 #UVOWEL# 0 -200
+ADJ ba0 #LVOWEL# -100 -250
+ADJ ba0 #UVOWEL# 0 -200
+ADJ ba1 #LVOWEL# -100 -250
+ADJ ba1 #UVOWEL# 0 -200
+ADJ ba2 #LVOWEL# -100 -250
+ADJ ba2 #UVOWEL# 0 -200
+ADJ ba3 #LVOWEL# -100 -250
+ADJ ba3 #UVOWEL# 0 -200
+ADJ banodots0 #LVOWEL# 0 0
+ADJ banodots0 #UVOWEL# 0 -250
+ADJ banodots1 #LVOWEL# 0 0
+ADJ banodots1 #UVOWEL# 0 -250
+ADJ banodots2 #LVOWEL# 0 0
+ADJ banodots2 #UVOWEL# 0 -250
+ADJ banodots3 #LVOWEL# 0 0
+ADJ banodots3 #UVOWEL# 0 -250
+ADJ dad0 #LVOWEL# 0 -150
+ADJ dad0 #UVOWEL# 0 -100
+ADJ dad1 #UVOWEL# 50 -100
+ADJ dad2 #UVOWEL# 50 -100
+ADJ dad3 #LVOWEL# 0 -150
+ADJ dad3 #UVOWEL# 0 -100
+ADJ dal0 #LVOWEL# 0 0
+ADJ dal0 #UVOWEL# 0 -200
+ADJ dal3 #LVOWEL# 0 0
+ADJ dal3 #UVOWEL# 0 -200
+ADJ dhal0 #LVOWEL# 0 0
+ADJ dhal3 #LVOWEL# 0 0
+ADJ dzim0 #UVOWEL# 0 -200
+ADJ dzim1 #UVOWEL# 0 -200
+ADJ dzim2 #UVOWEL# 0 -200
+ADJ dzim3 #UVOWEL# 0 -200
+ADJ dzim0 #LVOWEL# 0 -250
+ADJ dzim1 #LVOWEL# 0 -100
+ADJ dzim2 #LVOWEL# 0 -200
+ADJ dzim3 #LVOWEL# 0 -250
+ADJ fa0 #LVOWEL# 0 0
+ADJ fa0 #UVOWEL# 0 -100
+ADJ fa1 #LVOWEL# 0 0
+ADJ fa1 #UVOWEL# 0 -100
+ADJ fa2 #LVOWEL# 0 0
+ADJ fa2 #UVOWEL# 0 -100
+ADJ fa3 #LVOWEL# 0 0
+ADJ fa3 #UVOWEL# 0 -100
+ADJ fanodots0 #LVOWEL# 0 0
+ADJ fanodots0 #UVOWEL# 0 -200
+ADJ fanodots1 #LVOWEL# 0 0
+ADJ fanodots1 #UVOWEL# 0 -200
+ADJ fanodots2 #LVOWEL# 0 0
+ADJ fanodots2 #UVOWEL# 0 -200
+ADJ fanodots3 #LVOWEL# 0 0
+ADJ fanodots3 #UVOWEL# 0 -200
+ADJ gaf0 #LVOWEL# 0 0
+ADJ gaf0 #UVOWEL# 0 -100
+ADJ gaf1 #LVOWEL# 0 0
+ADJ gaf2 #LVOWEL# 0 0
+ADJ gaf3 #LVOWEL# 0 0
+ADJ gaf3 #UVOWEL# 0 -100
+ADJ ghayn0 #LVOWEL# 0 -250
+ADJ ghayn1 #LVOWEL# 0 0
+ADJ ghayn2 #LVOWEL# 0 0
+ADJ ghayn3 #LVOWEL# 0 -250
+ADJ ghayn2 #UVOWEL# 0 -100
+ADJ ghayn3 #UVOWEL# 0 -100
+ADJ ha0 #LVOWEL# 0 0
+ADJ ha0 #UVOWEL# 0 -150
+ADJ ha1 #LVOWEL# 0 0
+ADJ ha1 #UVOWEL# 0 -150
+ADJ ha2 #UVOWEL# 0 -150
+ADJ ha2 #LVOWEL# 0 -200
+ADJ ha3 #LVOWEL# 0 0
+ADJ ha3 #UVOWEL# 0 -150
+ADJ ha4 #LVOWEL# -200 0
+ADJ ha4 #UVOWEL# -200 -250
+ADJ hamza0 #LVOWEL# 30 200
+ADJ hamza0 #UVOWEL# -30 -300
+ADJ he0 #LVOWEL# 0 -250
+ADJ he0 #UVOWEL# 0 -200
+ADJ he1 #LVOWEL# 0 0
+ADJ he1 #UVOWEL# 0 -200
+ADJ he2 #LVOWEL# 0 0
+ADJ he2 #UVOWEL# 0 -200
+ADJ he3 #LVOWEL# 0 -250
+ADJ he3 #UVOWEL# 0 -200
+ADJ kaf0 #LVOWEL# 0 0
+ADJ kaf0 #UVOWEL# 0 -100
+ADJ kaf1 #LVOWEL# 0 0
+ADJ kaf2 #LVOWEL# 0 0
+ADJ kaf3 #LVOWEL# 0 0
+ADJ kaf3 #UVOWEL# 0 -100
+ADJ keshideh0 #LVOWEL# 0 0
+ADJ keshideh0 #UVOWEL# 0 -250
+ADJ keshideh1 #LVOWEL# 0 0
+ADJ keshideh1 #UVOWEL# 0 -250
+ADJ keshideh2 #LVOWEL# 0 0
+ADJ keshideh2 #UVOWEL# 0 -250
+ADJ keshideh3 #LVOWEL# 0 0
+ADJ keshideh3 #UVOWEL# 0 -250
+ADJ khe0 #UVOWEL# 0 -50
+ADJ khe0 #LVOWEL# 0 -200
+ADJ khe1 #LVOWEL# 0 0
+ADJ khe1 #UVOWEL# 0 -50
+ADJ khe2 #LVOWEL# 0 0
+ADJ khe2 #UVOWEL# 0 -50
+ADJ khe3 #UVOWEL# 0 -50
+ADJ khe3 #LVOWEL# 0 -200
+ADJ lam0 #UVOWEL# -50 -100
+ADJ lam0 #LVOWEL# -50 -150
+ADJ lam1 #LVOWEL# 50 0
+ADJ lam2 #LVOWEL# 50 0
+ADJ lam3 #UVOWEL# -50 -100
+ADJ lam3 #LVOWEL# -50 -150
+ADJ lam4 #LVOWEL# -200 0
+ADJ lam5 #LVOWEL# -200 0
+ADJ lam4 #UVOWEL# -200 0
+ADJ lam5 #UVOWEL# -200 0
+ADJ lam6 #LVOWEL# -200 0
+ADJ lam6 #UVOWEL# -200 -200
+ADJ lam7 #UVOWEL# -200 -200
+ADJ lam7 #LVOWEL# -200 0
+ADJ lam8 #LVOWEL# -170 0
+ADJ lam8 #UVOWEL# -170 -100
+ADJ meem0 #LVOWEL# 0 -200
+ADJ meem0 #UVOWEL# 0 -200
+ADJ meem1 #LVOWEL# 0 0
+ADJ meem1 #UVOWEL# 0 -200
+ADJ meem2 #LVOWEL# 0 0
+ADJ meem2 #UVOWEL# 0 -200
+ADJ meem3 #LVOWEL# 0 -200
+ADJ meem3 #UVOWEL# 0 -200
+ADJ nun0 #UVOWEL# 0 -100
+ADJ nun0 #LVOWEL# 0 -200
+ADJ nun1 #LVOWEL# 0 0
+ADJ nun1 #UVOWEL# 0 -50
+ADJ nun2 #LVOWEL# 0 0
+ADJ nun2 #UVOWEL# 0 -50
+ADJ nun3 #UVOWEL# 0 -100
+ADJ nun3 #LVOWEL# 0 -200
+ADJ nunnodots0 #UVOWEL# 0 -250
+ADJ nunnodots1 #LVOWEL# 0 0
+ADJ nunnodots1 #UVOWEL# 0 -250
+ADJ nunnodots2 #LVOWEL# 0 0
+ADJ nunnodots2 #UVOWEL# 0 -250
+ADJ nunnodots3 #UVOWEL# 0 -250
+ADJ nunnodots3 #LVOWEL# 0 -200
+ADJ pe0 #UVOWEL# 0 -200
+ADJ pe1 #UVOWEL# 0 -200
+ADJ pe2 #UVOWEL# 0 -200
+ADJ pe3 #UVOWEL# 0 -200
+ADJ pe0 #LVOWEL# 0 -200
+ADJ pe1 #LVOWEL# 0 -200
+ADJ pe2 #LVOWEL# 0 -200
+ADJ pe3 #LVOWEL# 0 -200
+ADJ qaf0 #UVOWEL# 0 -100
+ADJ qaf1 #LVOWEL# 0 0
+ADJ qaf2 #LVOWEL# 0 0
+ADJ qaf3 #UVOWEL# 0 -100
+ADJ qaf0 #LVOWEL# 0 -150
+ADJ qaf3 #LVOWEL# 0 -150
+ADJ qafnodots0 #UVOWEL# 0 -200
+ADJ qafnodots1 #LVOWEL# 0 0
+ADJ qafnodots1 #UVOWEL# 0 -200
+ADJ qafnodots2 #LVOWEL# 0 0
+ADJ qafnodots2 #UVOWEL# 0 -200
+ADJ qafnodots3 #UVOWEL# 0 -200
+ADJ qafnodots0 #LVOWEL# 0 -150
+ADJ qafnodots3 #LVOWEL# 0 -150
+ADJ ra0 #LVOWEL# 0 -250
+ADJ ra0 #UVOWEL# 0 -250
+ADJ ra3 #LVOWEL# 0 -250
+ADJ ra3 #UVOWEL# 0 -250
+ADJ sad0 #LVOWEL# 0 -150
+ADJ sad0 #UVOWEL# 0 -200
+ADJ sad1 #LVOWEL# 50 0
+ADJ sad1 #UVOWEL# 50 -200
+ADJ sad2 #LVOWEL# 50 0
+ADJ sad2 #UVOWEL# 50 -200
+ADJ sad3 #LVOWEL# 0 -150
+ADJ sad3 #UVOWEL# 0 -200
+ADJ shin0 #UVOWEL# 0 -200
+ADJ shin0 #LVOWEL# 0 -100
+ADJ shin1 #LVOWEL# 0 0
+ADJ shin1 #UVOWEL# 0 -200
+ADJ shin2 #LVOWEL# 0 0
+ADJ shin2 #UVOWEL# 0 -200
+ADJ shin3 #UVOWEL# 0 -200
+ADJ shin3 #LVOWEL# 0 -100
+ADJ sin0 #UVOWEL# 0 -200
+ADJ sin0 #LVOWEL# 0 -100
+ADJ sin1 #LVOWEL# 0 0
+ADJ sin1 #UVOWEL# 0 -200
+ADJ sin2 #LVOWEL# 0 0
+ADJ sin2 #UVOWEL# 0 -200
+ADJ sin3 #UVOWEL# 0 -200
+ADJ sin3 #LVOWEL# 0 -100
+ADJ ta0 #LVOWEL# 0 0
+ADJ ta0 #UVOWEL# 0 -150
+ADJ ta1 #LVOWEL# 0 0
+ADJ ta2 #LVOWEL# 0 0
+ADJ ta3 #LVOWEL# 0 0
+ADJ ta3 #UVOWEL# 0 -150
+ADJ tamarbuta0 #LVOWEL# 0 0
+ADJ tamarbuta1 #LVOWEL# 0 0
+ADJ tamarbuta2 #LVOWEL# 0 0
+ADJ tamarbuta3 #LVOWEL# 0 0
+ADJ tamarbuta3 #UVOWEL# 0 50
+ADJ tche0 #LVOWEL# 0 -250
+ADJ tche0 #UVOWEL# 0 -200
+ADJ tche1 #LVOWEL# 0 -250
+ADJ tche1 #UVOWEL# 0 -200
+ADJ tche2 #LVOWEL# 0 -250
+ADJ tche2 #UVOWEL# 0 -200
+ADJ tche3 #LVOWEL# 0 -250
+ADJ tche3 #UVOWEL# 0 -200
+ADJ tha0 #LVOWEL# 0 0
+ADJ tha0 #UVOWEL# 0 100
+ADJ tha1 #LVOWEL# 0 0
+ADJ tha1 #UVOWEL# 0 100
+ADJ tha2 #LVOWEL# 0 0
+ADJ tha2 #UVOWEL# 0 100
+ADJ tha3 #LVOWEL# 0 0
+ADJ tha3 #UVOWEL# 0 100
+ADJ tta0 #LVOWEL# 0 0
+ADJ tta0 #UVOWEL# -100 0
+ADJ tta1 #LVOWEL# 0 0
+ADJ tta1 #UVOWEL# -100 0
+ADJ tta2 #LVOWEL# 0 0
+ADJ tta2 #UVOWEL# -100 0
+ADJ tta3 #LVOWEL# 0 0
+ADJ tta3 #UVOWEL# -100 0
+ADJ va0 #LVOWEL# 0 0
+ADJ va0 #UVOWEL# 0 0
+ADJ va1 #LVOWEL# 0 0
+ADJ va2 #LVOWEL# 0 0
+ADJ va3 #LVOWEL# 0 0
+ADJ va3 #UVOWEL# 0 0
+ADJ waw0 #LVOWEL# 0 -250
+ADJ waw0 #UVOWEL# 0 -250
+ADJ waw3 #LVOWEL# 0 -250
+ADJ waw3 #UVOWEL# 0 -250
+ADJ wawhamza0 #UVOWEL# 20 -100
+ADJ wawhamza3 #UVOWEL# 20 -100
+ADJ ya0 #LVOWEL# 0 -200
+ADJ ya0 #UVOWEL# 0 -200
+ADJ ya1 #UVOWEL# 0 -200
+ADJ ya2 #UVOWEL# 0 -200
+ADJ ya1 #LVOWEL# 0 -200
+ADJ ya2 #LVOWEL# 0 -200
+ADJ ya3 #LVOWEL# 0 -250
+ADJ ya3 #UVOWEL# 0 -400
+ADJ yahamza0 #LVOWEL# 0 -70
+ADJ yahamza0 #UVOWEL# -80 -90
+ADJ yahamza1 #LVOWEL# 50 0
+ADJ yahamza1 #UVOWEL# 50 -50
+ADJ yahamza2 #LVOWEL# 50 0
+ADJ yahamza2 #UVOWEL# 0 -30
+ADJ yahamza3 #LVOWEL# 0 -250
+ADJ yahamza3 #UVOWEL# -80 -250
+ADJ za0 #LVOWEL# 0 -250
+ADJ za0 #UVOWEL# 0 0
+ADJ za3 #LVOWEL# 0 -250
+ADJ za3 #UVOWEL# 0 0
+ADJ zhe0 #LVOWEL# 0 -250
+ADJ zhe0 #UVOWEL# 0 100
+ADJ zhe3 #LVOWEL# 0 -250
+ADJ zhe3 #UVOWEL# 0 100
+ADJ zwj0 #LVOWEL# 0 0
+ADJ zwj0 #UVOWEL# 0 -250
+ADJ zwj1 #LVOWEL# 0 0
+ADJ zwj1 #UVOWEL# 0 -250
+ADJ zwj2 #LVOWEL# 0 0
+ADJ zwj2 #UVOWEL# 0 -250
+ADJ zwj3 #LVOWEL# 0 0
+ADJ zwj3 #UVOWEL# 0 -250
+ADJ zza0 #LVOWEL# 0 0
+ADJ zza0 #UVOWEL# -100 0
+ADJ zza1 #LVOWEL# 0 0
+ADJ zza1 #UVOWEL# -100 0
+ADJ zza2 #LVOWEL# 0 0
+ADJ zza2 #UVOWEL# -100 0
+ADJ zza3 #LVOWEL# 0 0
+ADJ zza3 #UVOWEL# -100 0
diff --git a/Master/texmf-dist/doc/fonts/dad/make-dad-font.pl b/Master/texmf-dist/doc/fonts/dad/make-dad-font.pl
new file mode 100644
index 00000000000..f082d2d21e5
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/dad/make-dad-font.pl
@@ -0,0 +1,1157 @@
+$MAXHEIGHT=560;
+$MAXDEPTH=-360;
+if ($ARGV[0] ne "") { $STYLE_="-".$ARGV[0]; $STYLE=$ARGV[0]; } else { $STYLE=""; }
+
+@LETTERS=("alif","ba","tamarbuta","ta","tha","dzim","he","khe","dal","dhal","ra","za",
+"sin","shin","sad","dad","tta","zza","ayn","ghayn","fa","qaf","kaf","lam","meem","nun",
+"ha","waw","ya","alifmaqsura","alifwasla","pe","tche","zhe","va","gaf",
+"hahamza","alifuphamza","alifmadda","aliflohamza","wawhamza","yahamza","banodots","nunnodots","fanodots","qafnodots","keshideh");
+@LETTERS_NO_LAMS=("alif","ba","tamarbuta","ta","tha","dzim","he","khe","dal","dhal","ra","za","sin","shin","sad","dad","tta","zza","ayn","ghayn","fa","qaf","kaf","meem","nun",
+"ha","waw","ya","alifmaqsura","alifwasla","alifmadda","pe","tche","zhe","va","gaf",
+"hahamza","alifuphamza","aliflohamza","wawhamza","yahamza","banodots","nunnodots","fanodots","qafnodots","keshideh");
+@LETTERS_NO_ALIFS=("ba","tamarbuta","ta","tha","dzim","he","khe","dal","dhal","ra","za",
+"sin","shin","sad","dad","tta","zza","ayn","ghayn","fa","qaf","kaf","lam","meem","nun",
+"ha","waw","ya","alifmaqsura","pe","tche","zhe","va","gaf",
+"hahamza","wawhamza","yahamza","banodots","nunnodots","fanodots","qafnodots","keshideh");
+@LETTERS_NO_LAMS_NO_ALIFS=("ba","tamarbuta","ta","tha","dzim","he","khe","dal","dhal","ra","za","sin","shin","sad","dad","tta","zza","ayn","ghayn","fa","qaf","kaf","meem","nun",
+"ha","waw","ya","alifmaqsura","pe","tche","zhe","va","gaf",
+"hahamza","wawhamza","yahamza","banodots","nunnodots","fanodots","qafnodots","keshideh");
+@LAMS=("lam");
+@ALIFS=("alif","alifuphamza","aliflohamza","alifwasla","alifmadda");
+@DIACS=("shadda","sukun","madda","vfatha");
+@vDIACS=("fatha","kasra","damma");
+$FORM{"apos"}=4;
+$FORM{"alif"}=2;
+$FORM{"ba"}=4;
+$FORM{"banodots"}=4;
+$FORM{"tamarbuta"}=4;
+$FORM{"ta"}=4;
+$FORM{"tha"}=4;
+$FORM{"dzim"}=4;
+$FORM{"he"}=4;
+$FORM{"khe"}=4;
+$FORM{"dal"}=2;
+$FORM{"dhal"}=2;
+$FORM{"ra"}=2;
+$FORM{"za"}=2;
+$FORM{"sin"}=4;
+$FORM{"shin"}=4;
+$FORM{"sad"}=4;
+$FORM{"dad"}=4;
+$FORM{"tta"}=4;
+$FORM{"zza"}=4;
+$FORM{"ayn"}=4;
+$FORM{"ghayn"}=4;
+$FORM{"fa"}=4;
+$FORM{"fanodots"}=4;
+$FORM{"qaf"}=4;
+$FORM{"qafnodots"}=4;
+$FORM{"kaf"}=4;
+$FORM{"lam"}=4;
+$FORM{"meem"}=4;
+$FORM{"nun"}=4;
+$FORM{"nunnodots"}=4;
+$FORM{"ha"}=4;
+$FORM{"waw"}=2;
+$FORM{"ya"}=4;
+$FORM{"alifmaqsura"}=2;
+$FORM{"alifwasla"}=2;
+$FORM{"pe"}=4;
+$FORM{"tche"}=4;
+$FORM{"zhe"}=2;
+$FORM{"va"}=4;
+$FORM{"gaf"}=4;
+$FORM{"hahamza"}=2;
+$FORM{"alifuphamza"}=2;
+$FORM{"aliflohamza"}=2;
+$FORM{"wawhamza"}=2;
+$FORM{"yahamza"}=4;
+$FORM{"hamza"}=1;
+$FORM{"keshideh"}=4;
+$FORM{"zwj"}=4;
+$POS{"alif0"}="41";
+$POS{"alif3"}="00";
+$POS{"alif4"}="8F";
+$POS{"alif5"}="E6";
+$POS{"ba0"}="62";
+$POS{"ba1"}="1A";
+$POS{"ba2"}="1B";
+$POS{"ba3"}="1C";
+$POS{"banodots0"}="88";
+$POS{"banodots1"}="DE";
+$POS{"banodots2"}="DF";
+$POS{"banodots3"}="E1";
+$POS{"tamarbuta0"}="84";
+$POS{"tamarbuta1"}="F4";
+$POS{"tamarbuta2"}="F5";
+$POS{"tamarbuta3"}="D2";
+$POS{"ta0"}="74";
+$POS{"ta1"}="C1";
+$POS{"ta2"}="EB";
+$POS{"ta3"}="C3";
+$POS{"tha0"}="63";
+$POS{"tha1"}="D3";
+$POS{"tha2"}="D4";
+$POS{"tha3"}="D5";
+$POS{"dzim0"}="6A";
+$POS{"dzim1"}="A8";
+$POS{"dzim2"}="A9";
+$POS{"dzim3"}="AA";
+$POS{"he0"}="48";
+$POS{"he1"}="07";
+$POS{"he2"}="08";
+$POS{"he3"}="09";
+$POS{"khe0"}="78";
+$POS{"khe1"}="C7";
+$POS{"khe2"}="C8";
+$POS{"khe3"}="C9";
+$POS{"dal0"}="64";
+$POS{"dal3"}="1D";
+$POS{"dhal0"}="85";
+$POS{"dhal3"}="86";
+$POS{"ra0"}="72";
+$POS{"ra3"}="BD";
+$POS{"za0"}="7A";
+$POS{"za3"}="CB";
+$POS{"sin0"}="73";
+$POS{"sin1"}="BE";
+$POS{"sin2"}="BF";
+$POS{"sin3"}="C0";
+$POS{"shin0"}="89";
+$POS{"shin1"}="DA";
+$POS{"shin2"}="DB";
+$POS{"shin3"}="DC";
+$POS{"sad0"}="53";
+$POS{"sad1"}="0D";
+$POS{"sad2"}="0E";
+$POS{"sad3"}="0F";
+$POS{"dad0"}="44";
+$POS{"dad1"}="04";
+$POS{"dad2"}="05";
+$POS{"dad3"}="06";
+$POS{"tta0"}="54";
+$POS{"tta1"}="10";
+$POS{"tta2"}="11";
+$POS{"tta3"}="12";
+$POS{"zza0"}="5A";
+$POS{"zza1"}="14";
+$POS{"zza2"}="15";
+$POS{"zza3"}="16";
+$POS{"ayn0"}="60";
+$POS{"ayn1"}="17";
+$POS{"ayn2"}="18";
+$POS{"ayn3"}="19";
+$POS{"ghayn0"}="52";
+$POS{"ghayn1"}="D6";
+$POS{"ghayn2"}="D7";
+$POS{"ghayn3"}="D8";
+$POS{"fa0"}="66";
+$POS{"fa1"}="1F";
+$POS{"fa2"}="A0";
+$POS{"fa3"}="A1";
+$POS{"fanodots0"}="8C";
+$POS{"fanodots1"}="E2";
+$POS{"fanodots2"}="E3";
+$POS{"fanodots3"}="F3";
+$POS{"qaf0"}="71";
+$POS{"qaf1"}="BA";
+$POS{"qaf2"}="BB";
+$POS{"qaf3"}="BC";
+$POS{"qafnodots0"}="8D";
+$POS{"qafnodots1"}="EE";
+$POS{"qafnodots2"}="F6";
+$POS{"qafnodots3"}="E5";
+$POS{"kaf0"}="6B";
+$POS{"kaf1"}="AB";
+$POS{"kaf2"}="AC";
+$POS{"kaf3"}="AD";
+$POS{"lam0"}="6C";
+$POS{"lam1"}="AE";
+$POS{"lam2"}="AF";
+$POS{"lam3"}="B0";
+$POS{"lam4"}="46"; #lam1-alif3
+$POS{"lam5"}="47"; #lam2-alif3
+$POS{"lam6"}="4C"; #lam1-(lam2)-ha3
+$POS{"lam7"}="4D"; #lam2-(lam2)-ha3
+$POS{"lam8"}="94"; #(lam1)-lam2-ha3
+$POS{"ll0"}="F7";
+$POS{"ll1"}="F8";
+$POS{"ll5"}="F9";
+$POS{"LLh0"}="FA";
+$POS{"meem0"}="6D";
+$POS{"meem1"}="B1";
+$POS{"meem2"}="B2";
+$POS{"meem3"}="B3";
+$POS{"nun0"}="6E";
+$POS{"nun1"}="B4";
+$POS{"nun2"}="B5";
+$POS{"nun3"}="B6";
+$POS{"nunnodots0"}="8B";
+$POS{"nunnodots1"}="EC";
+$POS{"nunnodots2"}="ED";
+$POS{"nunnodots3"}="E0";
+$POS{"ha0"}="68";
+$POS{"ha1"}="A5";
+$POS{"ha2"}="A6";
+$POS{"ha3"}="A7";
+$POS{"ha4"}="93"; #(lam1-lam2)-ha3
+$POS{"waw0"}="55";
+$POS{"waw3"}="13";
+$POS{"ya0"}="59";
+$POS{"ya1"}="0A";
+$POS{"ya2"}="0B";
+$POS{"ya3"}="CA";
+$POS{"alifmaqsura0"}="49";
+$POS{"alifmaqsura3"}="0C";
+$POS{"pe0"}="70";
+$POS{"pe1"}="B7";
+$POS{"pe2"}="B8";
+$POS{"pe3"}="B9";
+$POS{"tche0"}="43";
+$POS{"tche1"}="01";
+$POS{"tche2"}="02";
+$POS{"tche3"}="03";
+$POS{"zhe0"}="4A";
+$POS{"zhe3"}="D9";
+$POS{"va0"}="76";
+$POS{"va1"}="C4";
+$POS{"va2"}="C5";
+$POS{"va3"}="C6";
+$POS{"gaf0"}="67";
+$POS{"gaf1"}="A2";
+$POS{"gaf2"}="A3";
+$POS{"gaf3"}="A4";
+$POS{"hahamza0"}="65";
+$POS{"hahamza3"}="1E";
+$POS{"alifuphamza0"}="E4";
+$POS{"alifuphamza3"}="CC";
+$POS{"alifuphamza4"}="90";
+$POS{"alifuphamza5"}="E7";
+$POS{"aliflohamza0"}="EF";
+$POS{"aliflohamza3"}="CD";
+$POS{"aliflohamza4"}="91";
+$POS{"aliflohamza5"}="E8";
+$POS{"alifmadda0"}="C2";
+$POS{"alifmadda3"}="DD";
+$POS{"alifmadda4"}="92";
+$POS{"alifmadda5"}="E9";
+$POS{"alifwasla0"}="83";
+$POS{"alifwasla3"}="F0";
+$POS{"alifwasla4"}="F1";
+$POS{"alifwasla5"}="F2";
+$POS{"wawhamza0"}="FC";
+$POS{"wawhamza3"}="CE";
+$POS{"yahamza0"}="FF";
+$POS{"yahamza1"}="CF";
+$POS{"yahamza2"}="D0";
+$POS{"yahamza3"}="D1";
+$POS{"hamza0"}="7C";
+$POS{"keshideh0"}="4B";
+$POS{"keshideh1"}="4F";
+$POS{"keshideh2"}="50";
+$POS{"keshideh3"}="51";
+$POS{"zwj0"}="2D";
+$POS{"zwj1"}="2D";
+$POS{"zwj2"}="2D";
+$POS{"zwj3"}="26";
+$POS{"fatha"}="61";
+$POS{"vfatha"}="8E";
+$POS{"kasra"}="69";
+$POS{"damma"}="75";
+$POS{"sukun"}="6F";
+$POS{"madda"}="9F";
+$POS{"fathatan"}="99";
+$POS{"kasratan"}="9A";
+$POS{"dammatan"}="9B";
+$POS{"shadda"}="2B";
+$POS{"shaddafatha"}="96";
+$POS{"shaddavfatha"}="EA";
+$POS{"shaddakasra"}="97";
+$POS{"shaddadamma"}="98";
+$POS{"shaddamadda"}="8A";
+$POS{"shaddafathatan"}="9C";
+$POS{"shaddakasratan"}="9D";
+$POS{"shaddadammatan"}="9E";
+$POS{"BC"}="7C";
+$POS{"plus"}="2B";
+$POS{"apos0"}="27";
+$POS{"apos1"}="56";
+$POS{"apos2"}="57";
+$POS{"apos3"}="58";
+$POS{"apos4"}="5E";
+$POS{"apos5"}="5F";
+$POS{"aster"}="2A";
+$POS{"N"}="4E";
+$POS{"zero"}="30";
+$POS{"un"}="31";
+$POS{"deux"}="32";
+$POS{"trois"}="33";
+$POS{"quatre"}="34";
+$POS{"cinq"}="35";
+$POS{"six"}="36";
+$POS{"sept"}="37";
+$POS{"huit"}="38";
+$POS{"neuf"}="39";
+$POS{"question"}="3F";
+$POS{"comma"}="2C";
+$POS{"semicolon"}="EB";
+$DECALAGE{"fatha"}=1;
+$DECALAGE{"kasra"}=2;
+$DECALAGE{"damma"}=3;
+$DECALAGE{"fathatan"}=4;
+$DECALAGE{"kasratan"}=5;
+$DECALAGE{"dammatan"}=7;
+$DECALAGE{"shadda"}=8;
+$DECALAGE{"shaddafatha"}=9;
+$DECALAGE{"shaddakasra"}=10;
+$DECALAGE{"shaddadamma"}=11;
+$DECALAGE{"shaddafathatan"}=12;
+$DECALAGE{"shaddakasratan"}=13;
+$DECALAGE{"shaddadammatan"}=14;
+$DECALAGE{"sukun"}=15;
+$DECALAGE{"madda"}=16;
+$DECALAGE{"vfatha"}=17;
+$DECALAGE{"shaddavfatha"}=18;
+$DECALAGE{"shaddamadda"}=19;
+
+$UTFPOS{"alif0"}="0627";
+$UTFPOS{"ba0"}="0628";
+$UTFPOS{"banodots0"}="066E";
+$UTFPOS{"tamarbuta0"}="0629";
+$UTFPOS{"ta0"}="062A";
+$UTFPOS{"tha0"}="062B";
+$UTFPOS{"dzim0"}="062C";
+$UTFPOS{"he0"}="062D";
+$UTFPOS{"khe0"}="062E";
+$UTFPOS{"dal0"}="062F";
+$UTFPOS{"dhal0"}="0630";
+$UTFPOS{"ra0"}="0631";
+$UTFPOS{"za0"}="0632";
+$UTFPOS{"sin0"}="0633";
+$UTFPOS{"shin0"}="0634";
+$UTFPOS{"sad0"}="0635";
+$UTFPOS{"dad0"}="0636";
+$UTFPOS{"tta0"}="0637";
+$UTFPOS{"zza0"}="0638";
+$UTFPOS{"ayn0"}="0639";
+$UTFPOS{"ghayn0"}="063A";
+$UTFPOS{"fa0"}="0641";
+$UTFPOS{"fanodots0"}="06A1";
+$UTFPOS{"qaf0"}="0642";
+$UTFPOS{"qafnodots0"}="066F";
+$UTFPOS{"kaf0"}="0643";
+$UTFPOS{"lam0"}="0644";
+$UTFPOS{"meem0"}="0645";
+$UTFPOS{"nun0"}="0646";
+$UTFPOS{"nunnodots0"}="06BA";
+$UTFPOS{"ha0"}="0647";
+$UTFPOS{"waw0"}="0648";
+$UTFPOS{"ya0"}="064A";
+$UTFPOS{"alifmaqsura0"}="0649";
+$UTFPOS{"pe0"}="067E";
+$UTFPOS{"tche0"}="0686";
+$UTFPOS{"zhe0"}="0698";
+$UTFPOS{"va0"}="06A4";
+$UTFPOS{"gaf0"}="06AF";
+$UTFPOS{"hahamza0"}="06C2";
+$UTFPOS{"alifuphamza0"}="0623";
+$UTFPOS{"aliflohamza0"}="0625";
+$UTFPOS{"alifmadda0"}="0622";
+$UTFPOS{"alifwasla0"}="0671";
+$UTFPOS{"wawhamza0"}="0624";
+$UTFPOS{"yahamza0"}="0626";
+$UTFPOS{"hamza0"}="0621";
+$UTFPOS{"keshideh0"}="0640";
+$UTFPOS{"zwj0"}="200D";
+$UTFPOS{"fatha"}="064E";
+$UTFPOS{"vfatha"}="0670";
+$UTFPOS{"kasra"}="0650";
+$UTFPOS{"damma"}="064F";
+$UTFPOS{"shadda"}="0651";
+$UTFPOS{"sukun"}="0652";
+$UTFPOS{"madda"}="0653";
+$UTFPOS{"fathatan"}="064B";
+$UTFPOS{"kasratan"}="064D";
+$UTFPOS{"dammatan"}="064C";
+$UTFPOS{"zero"}="0660";
+$UTFPOS{"un"}="0661";
+$UTFPOS{"deux"}="0662";
+$UTFPOS{"trois"}="0663";
+$UTFPOS{"quatre"}="0664";
+$UTFPOS{"cinq"}="0665";
+$UTFPOS{"six"}="0666";
+$UTFPOS{"sept"}="0667";
+$UTFPOS{"huit"}="0668";
+$UTFPOS{"neuf"}="0669";
+$UTFPOS{"question"}="061F";
+$UTFPOS{"comma"}="060C";
+$UTFPOS{"semicolon"}="061B";
+foreach $utf (%UTFPOS) {
+if ($POS{$utf} ne "") {
+$UTF_GOTO{$POS{$utf}}=$UTFPOS{$utf};
+}}
+
+###read AFM file
+open IN, "Dad$STYLE_.afm";
+while (<IN>) {
+if (m/^C ([0-9]+) ; WX ([0-9]+) ; N [^;]+ ; B ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+) ;/) {
+$w=$2;
+$h=$6;
+$d=$4;
+$HEX=sprintf("%X",$1 + 0);
+$HEX=~s/^([0-9A-F])$/0\1/;
+$WIDTH{$HEX}=$w/1000;
+$HEIGHT{$HEX}=($h>$MAXHEIGHT?$MAXHEIGHT/1000:$h/1000);
+if ($d != 0) { $DEPTH{$HEX}=-($d<$MAXDEPTH?$MAXDEPTH/1000:$d/1000); } else { $DEPTH{$HEX}="0.0"; }
+}
+}
+close IN;
+
+if ($STYLE eq "bold") { $thickness="0.111"; }
+elsif ($STYLE eq "mono") { $thickness="0.113"; }
+else { $thickness="0.072"; }
+
+$PRELUDE="(OFMLEVEL D 0)
+(FONTDIR TL)
+(FAMILY YARABIC)
+(FACE F MRR)
+(CODINGSCHEME FONTSPECIFIC)
+(DESIGNSIZE R 10.0)
+(CHECKSUM H 9DCC4880)
+(FONTDIMEN
+ (SLANT R 0.000000)
+ (SPACE R 0.333334)
+ (STRETCH R 0.166667)
+ (SHRINK R 0.111112)
+ (XHEIGHT R 0.430555)
+ (QUAD R 1.000003)
+ (EXTRASPACE R 0.111112)
+ (DEFAULTRULETHICKNESS R $thickness)
+ )
+(MAPFONT D 0
+ (FONTNAME dadreal$STYLE)
+ (FONTAT R 1.0)
+ (FONTDSIZE R 10.0)
+ )
+(LIGTABLE
+";
+$PL_PRELUDE="(FAMILY DADREAL)
+(CODINGSCHEME FONTSPECIFIC)
+(DESIGNSIZE R 10.0)
+(FONTDIMEN
+ (SPACE R 0.333334)
+ (STRETCH R 0.166667)
+ (SHRINK R 0.111112)
+ (XHEIGHT R 0.430555)
+ (QUAD R 1.000003)
+ (EXTRASPACE R 0.111112)
+ )
+(LIGTABLE
+";
+
+###write real PL file
+open OUT, ">dadreal$STYLE.pl";
+print OUT $PL_PRELUDE;
+print OUT " )\n";
+foreach $i (0 .. 255) {
+$i_hex=sprintf("%X",$i);
+$i_hex=~s/^([0-9A-F])$/0\1/;
+print OUT "(CHARACTER H $i_hex (COMMENT char$i_hex)
+ (CHARWD R ".$WIDTH{$i_hex}.")
+ (CHARHT R ".$HEIGHT{$i_hex}.")
+ (CHARDP R ".$DEPTH{$i_hex}.")
+ )
+";
+}
+close OUT;
+system("pltotf dadreal$STYLE.pl");
+
+sub alter_LIGS {
+my $label=shift;
+my $LIG=shift;
+my $right=shift;
+my $result=shift;
+if ($label ne "" and $LIG ne "" and $right ne "" and $result ne "") {
+if ($LIGS{$label} =~ m|[/]?LIG[/>]*:$right:([0-9A-F]+)|) {
+$LIGS{$label} =~ s|[/]?LIG[/>]*:$right:([0-9A-F]+)|$LIG:$right:$result|;
+} else {
+if ($LIGS{$label} ne "") {
+$LIGS{$label} .= "#";
+}
+$LIGS{$label} .= "$LIG:$right:$result";
+}
+}
+}
+
+sub addoperation {
+my $tmp=shift;
+my $label=$POS{$tmp};
+my $LIG=shift;
+my $tmp=shift;
+my $right=$POS{$tmp};
+my $tmp=shift;
+my $result=$POS{$tmp};
+&alter_LIGS($label,$LIG,$right,$result);
+}
+
+sub addplusutfvowoperation {
+my $tmp=shift;
+my $label=$POS{$tmp};
+my $LIG=shift;
+my $tmp=shift;
+my $right=$UTFPOS{$tmp};
+my $tmp=shift;
+my $result=$POS{$tmp};
+&alter_LIGS($label,$LIG,$right,$result);
+}
+
+sub addutfoperation {
+my $tmp=shift;
+if ($tmp =~ m/^(.+?)([0-9])$/) { $labelc=$1; $labelp=$2; }
+my $label=$POS{$tmp};
+my $LIG=shift;
+my $tmp=shift;
+if ($tmp =~ m/^(.+?)([0-9])$/) { $rightc=$1; $rightp=$2; }
+my $right=$POS{$tmp};
+my $tmp=shift;
+if ($tmp =~ m/^(.+?)([0-9])$/) { $resultc=$1; $resultp=$2; }
+my $result=$POS{$tmp};
+
+if ($labelp==0 and $UTFPOS{$labelc.$labelp} ne "") { $label=$UTF_GOTO{$label}; }
+if ($rightp==0 and $UTFPOS{$rightc.$rightp} ne "") { $right=$UTF_GOTO{$right}; }
+if ($resultp==0 and $UTFPOS{$resultc.$resultp} ne "") { $result=$UTF_GOTO{$result}; }
+
+&alter_LIGS($label,$LIG,$right,$result);
+}
+
+sub addutfvowoperation {
+my $tmp=shift;
+my $label=$UTFPOS{$tmp};
+my $labellow=$POS{$tmp};
+my $tmp=shift;
+my $vowelname=$tmp;
+my $vow=$UTFPOS{$tmp};
+my $vowlow=$POS{$tmp};
+
+&alter_LIGS($label,"LIG",$vow,sprintf("%X",$DECALAGE{$vowelname}).$labellow);
+}
+
+# sub addutfccoperation {
+# my $tmp=shift;
+# my $label=$UTFPOS{$tmp};
+# my $labellow=$POS{$tmp};
+# my $tmp=shift;
+# my $vowelname=$tmp;
+# my $vow=$UTFPOS{$tmp};
+# my $vowlow=$POS{$tmp};
+# my $tmp=shift;
+# my $labelb=$UTFPOS{$tmp};
+# my $labelblow=$POS{$tmp};•••
+#
+# &alter_LIGS(sprintf("%X",$DECALAGE{$vowelname}).$labellow,"/LIG",$labelb,$labelblow);
+# }
+
+##k0 + l0 - /LIG/ -> k0 - l0
+##k0 + - LIG/ -> k1 -
+##- + l0 LIG -> l3
+# foreach $lettera (@LETTERS) {
+# if ($FORM{$lettera}==4) {
+# foreach $letterb (@LETTERS) {
+# &addoperation($lettera."0","/LIG/",$letterb."0","zwj0");
+# }
+# &addoperation($lettera."0","LIG/","zwj0",$lettera."1");
+# }
+# if ($FORM{$lettera}==4 or $FORM{$lettera}==2) {
+# &addoperation("zwj0","LIG",$lettera."0",$lettera."3");
+# }
+# }
+foreach $lettera (@LETTERS) {
+&addoperation("zwj0","LIG",$lettera."0",$lettera."3");
+&addutfoperation("zwj0","LIG",$lettera."0",$lettera."3");
+}
+&addoperation("zwj0","LIG","apos0","apos3");
+
+foreach $lettera (@LETTERS) {
+if ($FORM{$lettera}==4) {
+&addoperation($lettera."0","LIG/","zwj0",$lettera."1");
+&addoperation($lettera."3","LIG/","zwj0",$lettera."2");
+&addutfoperation($lettera."0","LIG/","zwj0",$lettera."1");
+&addutfoperation($lettera."3","LIG/","zwj0",$lettera."2");
+&addoperation($lettera."0","LIG/","apos0",$lettera."1");
+&addoperation($lettera."3","LIG/","apos0",$lettera."2");
+&addoperation($lettera."0","LIG/","lam6",$lettera."1");
+&addoperation($lettera."3","LIG/","lam6",$lettera."2");
+&addoperation($lettera."2","/LIG","lam6","lam7");
+&addoperation($lettera."1","/LIG","lam6","lam7");
+&addutfoperation($lettera."0","LIG/","lam6",$lettera."1");
+&addutfoperation($lettera."3","LIG/","lam6",$lettera."2");
+&addutfoperation($lettera."2","/LIG","lam6","lam7");
+&addutfoperation($lettera."1","/LIG","lam6","lam7");
+}
+elsif ($FORM{$lettera}==2) {
+&addoperation($lettera."0","/LIG","zwj0","zwj3");
+&addoperation($lettera."3","/LIG","zwj0","zwj3");
+}
+}
+foreach $lettera (@LETTERS_NO_LAMS) {
+if ($FORM{$lettera}==4) {
+&addoperation($lettera."1","/LIG","apos0","apos3");
+&addoperation($lettera."2","/LIG","apos0","apos3");
+}
+}
+foreach $lettera (@LAMS) {
+if ($FORM{$lettera}==4) {
+&addoperation($lettera."1","/LIG","apos0","apos3");
+&addoperation($lettera."2","/LIG","apos0","apos3");
+&addoperation($lettera."0","LIG/","apos0",$lettera."4");
+&addoperation($lettera."3","LIG/","apos0",$lettera."5");
+&addoperation($lettera."4","/LIG>","apos0","apos4");
+&addoperation($lettera."5","/LIG>","apos0","apos5");
+}
+}
+
+foreach $lettera (@LETTERS_NO_LAMS) {
+if ($FORM{$lettera}==4) {
+foreach $letterb (@LETTERS_NO_ALIFS) {
+if ($FORM{$letterb}==4 or $FORM{$letterb}==2) {
+&addoperation($lettera."0","LIG/",$letterb."0",$lettera."1");
+&addoperation($lettera."3","LIG/",$letterb."0",$lettera."2");
+&addoperation($lettera."1","/LIG",$letterb."0",$letterb."3");
+&addoperation($lettera."2","/LIG",$letterb."0",$letterb."3");
+&addutfoperation($lettera."0","LIG/",$letterb."0",$lettera."1");
+&addutfoperation($lettera."3","LIG/",$letterb."0",$lettera."2");
+&addutfoperation($lettera."1","/LIG",$letterb."0",$letterb."3");
+&addutfoperation($lettera."2","/LIG",$letterb."0",$letterb."3");
+}
+}
+}
+}
+foreach $lettera (@LAMS) {
+if ($FORM{$lettera}==4) {
+foreach $letterb (@LETTERS_NO_ALIFS) {
+if ($FORM{$letterb}==4 or $FORM{$letterb}==2) {
+&addoperation($lettera."0","LIG/",$letterb."0",$lettera."1");
+&addoperation($lettera."3","LIG/",$letterb."0",$lettera."2");
+&addoperation($lettera."1","/LIG",$letterb."0",$letterb."3");
+&addoperation($lettera."2","/LIG",$letterb."0",$letterb."3");
+&addutfoperation($lettera."0","LIG/",$letterb."0",$lettera."1");
+&addutfoperation($lettera."3","LIG/",$letterb."0",$lettera."2");
+&addutfoperation($lettera."1","/LIG",$letterb."0",$letterb."3");
+&addutfoperation($lettera."2","/LIG",$letterb."0",$letterb."3");
+}
+}
+}
+}
+foreach $lettera (@LETTERS_NO_LAMS) {
+if ($FORM{$lettera}==4) {
+foreach $letterb (@ALIFS) {
+if ($FORM{$letterb}==4 or $FORM{$letterb}==2) {
+&addoperation($lettera."0","LIG/",$letterb."0",$lettera."1");
+&addoperation($lettera."3","LIG/",$letterb."0",$lettera."2");
+&addoperation($lettera."1","/LIG",$letterb."0",$letterb."3");
+&addoperation($lettera."2","/LIG",$letterb."0",$letterb."3");
+&addutfoperation($lettera."0","LIG/",$letterb."0",$lettera."1");
+&addutfoperation($lettera."3","LIG/",$letterb."0",$lettera."2");
+&addutfoperation($lettera."1","/LIG",$letterb."0",$letterb."3");
+&addutfoperation($lettera."2","/LIG",$letterb."0",$letterb."3");
+}
+}
+}
+}
+foreach $lettera (@LAMS) {
+foreach $letterb (@ALIFS) {
+&addoperation($lettera."0","LIG/",$letterb."0",$lettera."4");
+&addoperation($lettera."3","LIG/",$letterb."0",$lettera."5");
+&addoperation($lettera."4","/LIG>",$letterb."0",$letterb."4");
+&addoperation($lettera."5","/LIG>",$letterb."0",$letterb."5");
+&addutfoperation($lettera."0","LIG/",$letterb."0",$lettera."4");
+&addutfoperation($lettera."3","LIG/",$letterb."0",$lettera."5");
+&addutfoperation($lettera."4","/LIG>",$letterb."0",$letterb."4");
+&addutfoperation($lettera."5","/LIG>",$letterb."0",$letterb."5");
+}
+}
+
+foreach $letter (@LETTERS) {
+foreach $vowel ("fatha","kasra","damma","sukun","shadda","madda","vfatha") {
+&addutfvowoperation($letter."0",$vowel);
+# foreach $letterb (@LETTERS) {
+# if ($FORM{$letter}==4 and $FORM{$letterb}==4) {•••
+# &addutfccoperation($letter."0",$vowel,"LIG/",$letterb."0",$letter."1");
+# &addutfccoperation($letter."1",$vowel,"/LIG",$letterb."0",$letterb."3");
+# }
+# }
+}
+}
+
+##encoding operations
+# &operation("'","LIG","a","alifuphamza0"); ä
+# &operation("'","LIG","i","aliflohamza0"); ï
+# &operation("'","LIG","u","wawhamza0"); ü
+# &operation("'","LIG","I","yahamza0"); ÿ
+# &operation("'","LIG","A","alifmadda0"); Â
+&addoperation("lam6","/LIG","lam6","lam8");
+&addoperation("lam7","/LIG","lam6","lam8");
+&addoperation("lam8","/LIG","ha0","ha4");
+&addoperation("apos0","LIG","ba0","banodots0");
+&addoperation("apos3","LIG","ba0","banodots3");
+&addoperation("apos0","LIG","nun0","nunnodots0");
+&addoperation("apos3","LIG","nun0","nunnodots3");
+&addoperation("apos0","LIG","fa0","fanodots0");
+&addoperation("apos3","LIG","fa0","fanodots3");
+&addoperation("apos0","LIG","qaf0","qafnodots0");
+&addoperation("apos3","LIG","qaf0","qafnodots3");
+&addoperation("apos0","LIG","fatha","alifuphamza0");
+&addoperation("apos3","LIG","fatha","alifuphamza3");
+&addoperation("apos4","LIG","fatha","alifuphamza4");
+&addoperation("apos5","LIG","fatha","alifuphamza5");
+&addoperation("apos0","LIG","kasra","aliflohamza0");
+&addoperation("apos3","LIG","kasra","aliflohamza3");
+&addoperation("apos4","LIG","kasra","aliflohamza4");
+&addoperation("apos5","LIG","kasra","aliflohamza5");
+&addoperation("apos0","LIG","alif0","alifmadda0");
+&addoperation("apos3","LIG","alif0","alifmadda3");
+&addoperation("apos4","LIG","alif0","alifmadda4");
+&addoperation("apos5","LIG","alif0","alifmadda5");
+&addoperation("apos0","LIG","damma","wawhamza0");
+&addoperation("apos3","LIG","damma","wawhamza3");
+&addoperation("apos0","LIG","alifmaqsura0","yahamza0");
+&addoperation("apos3","LIG","alifmaqsura0","yahamza3");
+&addoperation("alif0","LIG","aster","alifwasla0");
+&addoperation("alif3","LIG","aster","alifwasla3");
+&addoperation("ta0","LIG","aster","tamarbuta0");
+&addoperation("ta1","LIG","aster","tamarbuta1");
+&addoperation("ta2","LIG","aster","tamarbuta2");
+&addoperation("ta3","LIG","aster","tamarbuta3");
+&addoperation("ta0","LIG","ha0","tha0");
+&addoperation("ta1","LIG","ha0","tha1");
+&addoperation("ta2","LIG","ha0","tha2");
+&addoperation("ta3","LIG","ha0","tha3");
+&addoperation("dal0","LIG","ha0","dhal0");
+&addoperation("dal3","LIG","ha0","dhal3");
+# &addoperation("za0","LIG","ha0","zhe0");
+# &addoperation("za3","LIG","ha0","zhe3");
+# &addoperation("kaf0","LIG","ha0","khe0");
+# &addoperation("kaf1","LIG","ha0","khe1");
+# &addoperation("kaf2","LIG","ha0","khe2");
+# &addoperation("kaf3","LIG","ha0","khe3");
+&addoperation("lam0","LIG","quatre","lam4");
+&addoperation("lam3","LIG","cinq","lam5");
+&addoperation("lam1","LIG","quatre","lam4");
+&addoperation("lam2","LIG","cinq","lam5");
+&addoperation("alif3","LIG","quatre","alif4");
+&addoperation("alif3","LIG","cinq","alif5");
+&addoperation("alifuphamza3","LIG","quatre","alifuphamza4");
+&addoperation("alifuphamza3","LIG","cinq","alifuphamza5");
+&addoperation("aliflohamza3","LIG","quatre","aliflohamza4");
+&addoperation("aliflohamza3","LIG","cinq","aliflohamza5");
+&addoperation("alifmadda3","LIG","quatre","alifmadda4");
+&addoperation("alifmadda3","LIG","cinq","alifmadda5");
+&addoperation("alifwasla3","LIG","quatre","alifwasla4");
+&addoperation("alifwasla3","LIG","cinq","alifwasla5");
+&addoperation("sin0","LIG","ha0","shin0");
+&addoperation("sin1","LIG","ha0","shin1");
+&addoperation("sin2","LIG","ha0","shin2");
+&addoperation("sin3","LIG","ha0","shin3");
+# &addoperation("gaf0","LIG","ha0","ghayn0");
+# &addoperation("gaf1","LIG","ha0","ghayn1");
+# &addoperation("gaf2","LIG","ha0","ghayn2");
+# &addoperation("gaf3","LIG","ha0","ghayn3");
+&addoperation("plus","LIG","fatha","shaddafatha");
+&addoperation("plus","LIG","kasra","shaddakasra");
+&addoperation("plus","LIG","damma","shaddadamma");
+&addoperation("fatha","LIG","N","fathatan");
+&addoperation("kasra","LIG","N","kasratan");
+&addoperation("damma","LIG","N","dammatan");
+&addoperation("fatha","LIG","aster","vfatha");
+&addoperation("vfatha","LIG","aster","madda");
+&addoperation("shaddafatha","LIG","aster","shaddavfatha");
+&addoperation("shaddavfatha","LIG","aster","shaddamadda");
+&addoperation("shaddafatha","LIG","N","shaddafathatan");
+&addoperation("shaddakasra","LIG","N","shaddakasratan");
+&addoperation("shaddadamma","LIG","N","shaddadammatan");
+&addoperation("zwj0","LIG","zwj0","keshideh0");
+&addoperation("zwj3","LIG","zwj0","keshideh3");
+&addoperation("keshideh0","/LIG>","zwj0","keshideh0");
+&addoperation("keshideh3","/LIG>","zwj0","keshideh3");
+
+if (-e "dad$STYLE.adjust") {
+open ADJ, "dad$STYLE.adjust";
+while (<ADJ>) {
+if (m/^KRN ([^ ]+) ([^ ]+) ([0-9.-]+)/) {
+$l=$1;
+$r=$2;
+$k=$3;
+if ($POS{$l} ne "" and $POS{$r} ne "") {
+if ($LIGS{$POS{$l}} eq "") {
+$LIGS{$POS{$l}} = "KRN:".$POS{$r}.":".$k;
+} else {
+$LIGS{$POS{$l}} .= "#KRN:".$POS{$r}.":".$k;
+}
+}
+}
+elsif (m/^ADJ ([^ ]+) ([^ ]+) ([0-9.-]+) ([0-9.-]+)/) {
+$l=$1;
+$r=$2;
+$h=$3;
+$v=$4;
+if ($POS{$l} ne "" and ($POS{$r} ne "" or $r eq "#UVOWEL#" or $r eq "#LVOWEL#")) {
+$HADJUST{"$l:$r"}=$h;
+$VADJUST{"$l:$r"}=$v;
+}
+}
+}
+close ADJ;
+}
+
+%ALREADY_OUTPUT=();
+
+sub clone_LIGS {
+my $orig=shift;
+my $diac=shift;
+my $decalage=shift;
+
+my $new=$orig."+".$diac;
+
+foreach $i ("0","1","2","3","4","5","6","7","8") {
+if ($POS{$orig.$i} ne "") {
+
+
+###############
+$POS{$new.$i}=sprintf("%X",hex($POS{$orig.$i})+$decalage*256);
+
+my @lesLIGS=split(/#/,$LIGS{$POS{$orig.$i}});
+my @tmp=();
+foreach $laLIG (@lesLIGS) {
+($a,$b,$c)=split(/:/,$laLIG);
+
+if ($a eq "LIG/" and hex($b)<256) { $c=sprintf("%X",hex($c)+$decalage*256); }
+push @tmp, "$a:$b:$c";
+#if ($b eq "69" and $c eq "A6C") { print STDERR "zut"; }
+if ($UTF_GOTO{$b} ne "") {
+if ($decalage==8 and ($diac eq "fatha" or $diac eq "kasra" or $diac eq "damma" or $diac eq "fathatan" or $diac eq "kasratan" or $diac eq "dammatan" or $diac eq "vfatha" or $diac eq "damma")) {}
+else { push @tmp, "$a:".$UTF_GOTO{$b}.":$c"; }
+#if ($UTF_GOTO{$b} eq "0650" and $c eq "26C") { print STDERR "$b $c yes"; }
+}
+}
+
+###############
+if ($diac eq "fathatan" or $diac eq "kasratan" or $diac eq "dammatan") {
+$new_without_tan=$new;
+$new_without_tan=~s/tan$//;
+&addoperation($new_without_tan.$i,"LIG","N",$new.$i);
+}
+elsif ($diac eq "shaddafathatan" or $diac eq "shaddakasratan" or $diac eq "shaddadammatan") {
+$new_without_tan=$new;
+$new_without_tan=~s/tan$//;
+&addoperation($new_without_tan.$i,"LIG","N",$new.$i);
+$diac_without_shadda=$diac;
+$diac_without_shadda=~s/^shadda//;
+&addplusutfvowoperation($orig."+"."shadda".$i,"LIG",$diac_without_shadda,$new.$i);
+}
+elsif ($diac eq "shaddafatha" or $diac eq "shaddakasra" or $diac eq "shaddadamma") {
+$diac_without_shadda=$diac;
+$diac_without_shadda=~s/^shadda//;
+&addoperation($orig."+"."shadda".$i,"LIG",$diac_without_shadda,$new.$i);
+&addplusutfvowoperation($orig."+"."shadda".$i,"LIG",$diac_without_shadda,$new.$i);
+}
+elsif ($diac eq "shaddavfatha") {
+&addoperation($orig."+"."shaddafatha".$i,"LIG","aster",$orig."+"."shaddavfatha".$i);
+&addplusutfvowoperation($orig."+"."shadda".$i,"LIG","vfatha",$new.$i);
+}
+elsif ($diac eq "vfatha") {
+&addoperation($orig."+"."fatha".$i,"LIG","aster",$orig."+"."vfatha".$i);
+}
+elsif ($diac eq "madda") {
+&addoperation($orig."+"."vfatha".$i,"LIG","aster",$orig."+"."madda".$i);
+}
+elsif ($diac eq "shaddamadda") {
+&addoperation($orig."+"."shaddavfatha".$i,"LIG","aster",$orig."+"."shaddamadda".$i);
+&addplusutfvowoperation($orig."+"."shadda".$i,"LIG","madda",$new.$i);
+}
+###############
+
+$LIGS{$POS{$new.$i}}=join("#",@tmp);
+###############
+
+
+}
+}
+}
+
+
+$UVOWEL{"fatha"}=1;
+$UVOWEL{"damma"}=1;
+$LVOWEL{"kasra"}=1;
+$UVOWEL{"fathatan"}=1;
+$UVOWEL{"dammatan"}=1;
+$LVOWEL{"kasratan"}=1;
+$UVOWEL{"shaddafatha"}=1;
+$UVOWEL{"shaddadamma"}=1;
+$UVOWEL{"shaddakasra"}=1;
+$UVOWEL{"shaddafathatan"}=1;
+$UVOWEL{"shaddadammatan"}=1;
+$UVOWEL{"shaddakasratan"}=1;
+$UVOWEL{"sukun"}=1;
+$UVOWEL{"shadda"}=1;
+$UVOWEL{"madda"}=1;
+$UVOWEL{"vfatha"}=1;
+$UVOWEL{"shaddavfatha"}=1;
+$UVOWEL{"shaddamadda"}=1;
+
+sub buildchar_one {
+my $base=shift;
+my $form=shift;
+my $diac=shift;
+my $decalage=shift;
+my $position=sprintf("%X",hex($POS{$base.$form})+$decalage*256);
+my $res="";
+
+if ($POS{"$base$form"} ne "") {
+$POS{"$base+$diac$form"}=$position;
+&addoperation("$base$form","LIG",$diac,"$base+$diac$form");
+&addplusutfvowoperation("$base$form","LIG",$diac,"$base+$diac$form");
+$res="(CHARACTER H $position (COMMENT $base+$diac$form)
+ (CHARWD R ".$WIDTH{$POS{$base.$form}}.")
+ (CHARHT R ".$HEIGHT{$POS{$base.$form}}.")
+ (CHARDP R ".$DEPTH{$POS{$base.$form}}.")
+ (MAP
+ (SELECTFONT D 0)
+";
+
+if ($UVOWEL{$diac}==1 and ($HADJUST{"$base$form:#UVOWEL#"} ne "" or $VADJUST{"$base$form:#UVOWEL#"} ne "")) {
+$HADJUST{"$base$form:$diac"}=$HADJUST{"$base$form:#UVOWEL#"};
+$VADJUST{"$base$form:$diac"}=$VADJUST{"$base$form:#UVOWEL#"};
+}
+if ($LVOWEL{$diac}==1 and ($HADJUST{"$base$form:#LVOWEL#"} ne "" or $VADJUST{"$base$form:#LVOWEL#"} ne "")) {
+$HADJUST{"$base$form:$diac"}=$HADJUST{"$base$form:#LVOWEL#"};
+$VADJUST{"$base$form:$diac"}=$VADJUST{"$base$form:#LVOWEL#"};
+}
+
+$res.=
+" (PUSH)
+ (SETCHAR H ".$POS{$base.$form}.")
+ (POP)
+";
+if ($HADJUST{"$base$form:$diac"} ne "" or $VADJUST{"$base$form:$diac"} ne "")
+{
+$res.=
+" (PUSH)
+ (MOVERIGHT R ".($HADJUST{"$base$form:$diac"}/1000).")
+ (MOVEUP R ".($VADJUST{"$base$form:$diac"}/1000).")
+ (SETCHAR H ".$POS{$diac}.")
+ (POP)
+"; } else {
+$res.=" (SETCHAR H ".$POS{$diac}.")
+"; }
+$res.=" )
+ )
+";
+}
+}
+
+foreach $utf (sort keys %UTFPOS) {
+if ($WIDTH{$POS{$utf}} ne "") {
+$BUILD .= "(CHARACTER H ".$UTFPOS{$utf}." (COMMENT char".$UTFPOS{$utf}.")
+ (CHARWD R ".$WIDTH{$POS{$utf}}.")
+ (CHARHT R ".$HEIGHT{$POS{$utf}}.")
+ (CHARDP R ".$DEPTH{$POS{$utf}}.")
+ (MAP
+ (SELECTFONT D 0)
+ (SETCHAR H ".$POS{$utf}.")
+ )
+ )
+";
+}
+}
+
+foreach $vowel ("fatha","kasra","damma","fathatan","kasratan","dammatan","sukun","shadda","shaddafatha","shaddakasra","shaddadamma","shaddafathatan","shaddakasratan","shaddadammatan",
+"vfatha","shaddavfatha","madda","shaddamadda") #,"shadda","sukun","madda","shaddafatha","shaddakasra","shaddadamma","shaddafathatan","shaddakasratan","shaddadammatan")
+{
+foreach $letter (@LETTERS_NO_LAMS_NO_ALIFS) {
+if ($FORM{$letter}==4) {
+$BUILD .= &buildchar_one($letter,"0",$vowel,$DECALAGE{$vowel});
+$BUILD .= &buildchar_one($letter,"1",$vowel,$DECALAGE{$vowel});
+$BUILD .= &buildchar_one($letter,"2",$vowel,$DECALAGE{$vowel});
+$BUILD .= &buildchar_one($letter,"3",$vowel,$DECALAGE{$vowel});
+$BUILD .= &buildchar_one($letter,"4",$vowel,$DECALAGE{$vowel});
+} elsif ($FORM{$letter}==2) {
+$BUILD .= &buildchar_one($letter,"0",$vowel,$DECALAGE{$vowel});
+$BUILD .= &buildchar_one($letter,"3",$vowel,$DECALAGE{$vowel});
+} elsif ($FORM{$letter}==1) {
+$BUILD .= &buildchar_one($letter,"0",$vowel,$DECALAGE{$vowel});
+}
+&clone_LIGS($letter,$vowel,$DECALAGE{$vowel});
+}
+foreach $letter (@LAMS) {
+$BUILD .= &buildchar_one($letter,"0",$vowel,$DECALAGE{$vowel});
+$BUILD .= &buildchar_one($letter,"1",$vowel,$DECALAGE{$vowel});
+$BUILD .= &buildchar_one($letter,"2",$vowel,$DECALAGE{$vowel});
+$BUILD .= &buildchar_one($letter,"3",$vowel,$DECALAGE{$vowel});
+$BUILD .= &buildchar_one($letter,"4",$vowel,$DECALAGE{$vowel});
+$BUILD .= &buildchar_one($letter,"5",$vowel,$DECALAGE{$vowel});
+$BUILD .= &buildchar_one($letter,"6",$vowel,$DECALAGE{$vowel});
+$BUILD .= &buildchar_one($letter,"7",$vowel,$DECALAGE{$vowel});
+$BUILD .= &buildchar_one($letter,"8",$vowel,$DECALAGE{$vowel});
+&clone_LIGS($letter,$vowel,$DECALAGE{$vowel});
+}
+foreach $letter (@ALIFS) {
+$BUILD .= &buildchar_one($letter,"0",$vowel,$DECALAGE{$vowel});
+$BUILD .= &buildchar_one($letter,"3",$vowel,$DECALAGE{$vowel});
+$BUILD .= &buildchar_one($letter,"4",$vowel,$DECALAGE{$vowel});
+$BUILD .= &buildchar_one($letter,"5",$vowel,$DECALAGE{$vowel});
+&clone_LIGS($letter,$vowel,$DECALAGE{$vowel});
+}
+$BUILD .= &buildchar_one("hamza","0",$vowel,$DECALAGE{$vowel});
+&clone_LIGS("hamza",$vowel,$DECALAGE{$vowel});
+}
+
+# sub printLIGS {
+# my $res="";
+# my $letter=shift;
+# if ($ALREADY_OUTPUT{$POS{$letter}} ne "") { return ""; }
+# else { $ALREADY_OUTPUT{$POS{$letter}}=1;
+# if ($LIGS{$POS{$letter}} ne "") {
+# @lesLIGS=split(/#/,$LIGS{$POS{$letter}});
+# $res .= " (LABEL H ".$POS{$letter}.")\n";
+# foreach $uneLIG (@lesLIGS) {
+# ($LIG,$right,$result)=split(/:/,$uneLIG);
+# $res .= " ($LIG H $right H $result)\n";
+# }
+# $res .= " (STOP)\n";
+# }
+# return $res;
+# }
+# }
+
+%BIG=();
+foreach $key (sort keys %LIGS) {
+$BIG{$key."|".$LIGS{$key}}=1;
+}
+%LIGS=();
+foreach $entry (sort keys %BIG) {
+($left,$right)=split(/\|/,$entry);
+$LIGS{$left}=$right;
+}
+
+sub erase_ligature {
+my $left=shift;
+my $right=shift;
+$LIS{$left} =~ /#$right:[^:]+:[^#:]+/g;
+$LIS{$left} =~ /^$right:[^:]+:[^#:]+/;
+}
+
+&erase_ligature("0644","0644");
+&alter_LIGS("0644","LIG","0644","F7");
+
+foreach $letterb (@ALIFS) {
+&addutfoperation("ll0","LIG/",$letterb."0","ll5");
+&addutfoperation("ll5","/LIG>",$letterb."0",$letterb."5");
+}
+
+foreach $letterb (@LETTERS_NO_ALIFS) {
+if ($letterb ne "ha") {
+if ($FORM{$letterb}==4 or $FORM{$letterb}==2) {
+&addutfoperation("ll0","LIG/",$letterb."0","ll1");
+&addutfoperation("ll1","/LIG",$letterb."0",$letterb."3");
+}
+}
+}
+&addutfoperation("ll0","LIG","ha0","LLh0");
+
+###write dad.ovp
+open OUT, ">dad$STYLE.ovp";
+print OUT $PRELUDE;
+foreach $key (sort keys %LIGS) {
+if ($key ne "" and $LIGS{$key} ne "") {
+@lesLIGS=split(/#/,$LIGS{$key});
+$res .= " (LABEL H $key)\n";
+foreach $uneLIG (@lesLIGS) {
+($LIG,$right,$result)=split(/:/,$uneLIG);
+if ($LIG eq "KRN") {
+$result /= 1000;
+$res .= " ($LIG H $right R $result)\n";
+} else {
+$res .= " ($LIG H $right H $result)\n";
+}
+}
+$res .= " (STOP)\n";
+}
+}
+print OUT $res;
+
+# print OUT &printLIGS("zwj0");
+# foreach $letter (@LETTERS_NO_LAMS_NO_ALIFS) {
+# if ($FORM{$letter}==4) {
+# print OUT &printLIGS($letter."0");
+# print OUT &printLIGS($letter."1");
+# print OUT &printLIGS($letter."2");
+# print OUT &printLIGS($letter."3");
+# } elsif ($FORM{$letter}==2) {
+# print OUT &printLIGS($letter."0");
+# print OUT &printLIGS($letter."3");
+# } elsif ($FORM{$letter}==1) {
+# print OUT &printLIGS($letter."0");
+# }
+# }
+# foreach $letter (@LAMS) {
+# print OUT &printLIGS($letter."0");
+# print OUT &printLIGS($letter."1");
+# print OUT &printLIGS($letter."2");
+# print OUT &printLIGS($letter."3");
+# print OUT &printLIGS($letter."4");
+# print OUT &printLIGS($letter."5");
+# }
+# foreach $letter (@ALIFS) {
+# print OUT &printLIGS($letter."0");
+# print OUT &printLIGS($letter."3");
+# print OUT &printLIGS($letter."4");
+# print OUT &printLIGS($letter."5");
+# }
+# foreach $diac (@DIACS) {
+# print OUT &printLIGS($diac);
+# }
+# foreach $diac (@vDIACS) {
+# print OUT &printLIGS($diac."tan");
+# print OUT &printLIGS("shadda".$diac);
+# print OUT &printLIGS("shadda".$diac."tan");
+# }
+
+
+print OUT " )\n"; ###END OF LIGTABLE
+
+foreach $i (0 .. 255) {
+$i_hex=sprintf("%X",$i);
+$i_hex=~s/^([0-9A-F])$/0\1/;
+print OUT "(CHARACTER H $i_hex (COMMENT char$i_hex)
+ (CHARWD R ".$WIDTH{$i_hex}.")
+ (CHARHT R ".$HEIGHT{$i_hex}.")
+ (CHARDP R ".$DEPTH{$i_hex}.")
+ (MAP
+ (SELECTFONT D 0)
+ (SETCHAR H $i_hex)
+ )
+ )
+";
+}
+
+
+print OUT $BUILD;
+
+
+
+
+close OUT;
+system("cp Dad$STYLE_.pfa /hom/yannis/texmf-static/fonts/pfb/");
+system("wovp2ovf dad$STYLE.ovp");
+
+open IN, "dad$STYLE.ovp";
+while (<IN>) {
+if (m/LIG[^T]/) { $countLIG++; }
+if (m|/LIG/|) { $countSMA++; }
+elsif (m|/LIG|) { $countSMA++; }
+elsif (m|LIG/|) { $countSMA++; }
+if (m/KRN/) { $countKRN++; }
+if (m/CHARACTER/) { $countCHA++; }
+}
+print "$countLIG ligatures ($countSMA smart), $countKRN kerns, $countCHA characters\n";
+close IN;
diff --git a/Master/texmf-dist/doc/fonts/dad/utf8-to-dad.pl b/Master/texmf-dist/doc/fonts/dad/utf8-to-dad.pl
new file mode 100755
index 00000000000..b9be01ac8c4
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/dad/utf8-to-dad.pl
@@ -0,0 +1,72 @@
+#!/opt/local/bin/perl
+use utf8;
+binmode stdin,":utf8";
+binmode stdout,":utf8";
+
+while (<>) {
+s/لله/LLh/g;
+s/لِله/LiLh/g;
+s/لِّله/L+iLh/g;
+s/ء/|/g;
+s/ٱ/A*/g;
+s/آ/'A/g;
+s/أ/'a/g;
+s/ؤ/'u/g;
+s/إ/'i/g;
+s/ئ/'I/g;
+s/ا/A/g;
+s/ب/b/g;
+s/ة/t*/g;
+s/ت/t/g;
+s/ث/c/g;
+s/ج/j/g;
+s/ح/H/g;
+s/خ/x/g;
+s/د/d/g;
+s/ذ/d•/g;
+s/ر/r/g;
+s/ز/z/g;
+s/س/s/g;
+s/ش/s•/g;
+s/ص/S/g;
+s/ض/D/g;
+s/ط/T/g;
+s/ظ/Z/g;
+s/ع/`/g;
+s/غ/R/g;
+s/ف/f/g;
+s/ق/q/g;
+s/ك/k/g;
+s/ل/l/g;
+s/م/m/g;
+s/ن/n/g;
+s/ه/h/g;
+s/و/U/g;
+s/ى/I/g;
+s/ي/Y/g;
+s/پ/p/g;
+s/گ/g/g;
+s/چ/C/g;
+s/ۀ/e/g;
+s/ژ/J/g;
+s/ڤ/v/g;
+s/ٮ/'b/g;
+s/ں/'n/g;
+s/ڡ/'f/g;
+s/ٯ/'q/g;
+s/ً/aN/g;
+s/ٌ/uN/g;
+s/ٍ/iN/g;
+s/َ/a/g;
+s/ُ/u/g;
+s/ِ/i/g;
+s/ّ/+/g;
+s/ْ/o/g;
+s/ٰ/a*/g;
+s/ٓ/a**/g;
+s/‍/-/g;
+s/ـ/--/g;
+s/([tds])h/\1-h/g;
+s/•/h/g;
+print;
+} \ No newline at end of file