Changes

Jump to navigation Jump to search
4,927 bytes added ,  16:57, 16 December 2017
Hebrew addition
[[Arabic fonts]] >
 
{{todo|overview page for the use of middle-eastern scripts}}
== Examples Arabic ==
=== arabicThis is an example environment for typesetting Arabic documents in Mark IV (ConTeXt with LuaTeX). It won't work at all in Mark II (with either pdfTeX or XeTeX).tex ===
To use a specific font just put Save it under the current directory where you run context, as "ara-sty.tex" and replace ScheherazadeRegOT with use "\environment ara-sty" in your font file name. Then run 'context arabic.tex' document.
<texcode>
\startenvironment ara-sty \mainlanguage[arabic] % engine=luatex Font setup
% OpenType features needed for Arabic
\definefontfeature
[arabarabic] [mode=node,language=dflt,script=arab, init=yes,medi=yes,fina=yes,isol=yes, liga=yes,dlig=yes,rlig=yes,clig=yes, mark=yes,mkmk=yes,kern=yes,curs=yes] \starttypescript [serif] [arabic] \definefontsynonym [Arabic-Light] [name:arabtype] [features=arabic] \definefontsynonym [Arabic-Bold] [name:arabtype] [features=arabic] \definefontsynonym [Arabic-Italic] [name:arabtype] [features=arabic] \definefontsynonym [Arabic-Bold-Italic] [name:arabtype] [features=arabic]\stoptypescript \starttypescript [serif] [arabic] [name] \usetypescript[serif][fallback] \definefontsynonym [Serif] [Arabic-Light] [features=arabic] \definefontsynonym [SerifItalic] [Arabic-Italic] [features=arabic] \definefontsynonym [SerifBold] [Arabic-Bold] [features=arabic] \definefontsynonym [SerifBoldItalic] [Arabic-Bold-Italic] [features=arabic]\stoptypescript
% ScheherazadeRegOT is the font file name (without extension) replace it with your preferred font \starttypescript [Arabic] \fontdefinetypeface [Arabic] [rm] [serif] [arabic] [default] \Arab = ScheherazadeRegOT*arabstoptypescript
\hoffset=0ptdef\ArabicGlobalDir {\pagedir TRT\bodydir TRT\pardir TRT\textdir TRT}\def\ArabicParDir {\textdir TRT\pardir TRT}\def\ArabicTextDir {\textdir TRT}\def\LatinParDir {\textdir TLT\pardir TLT}\def\LatinTextDir {\textdir TLT}\def\LatinGlobalDir {\pagedir TLT\bodydir TLT\pardir TLT\textdir TLT}
\define\setarabic {\ArabicGlobalDir% For inner paragraph control within an LR paragraph \usetypescript[Arabic]% \setupbodyfont[Arabic,20pt]}
\definestartstop
[arabictextarabicpar] [commands=\Arabic\ArabicParDir] \define[1]\RT {{\Arabic\ArabicTextDir#1}} \define\setlatin {\LatinGlobalDir% \usetypescript[lm]% \setupbodyfont[lm,20pt]} \definestartstop [latinpar] [commands=\Arabic\LatinParDir] \define[1]\LT {{\LatinTextDir#1}} \setcharactermirroring[1] \stopenvironment</texcode> === Description === Here is some description: <texcode>\mainlanguage[arabic]</texcode> Sets the main language to Arabic, so that translatable titles are translated to Arabic. <texcode>\definefontfeature [arabic] [mode=node,language=dflt,script=arab, init=yes,medi=yes,fina=yes,isol=yes, liga=yes,dlig=yes,rlig=yes,clig=yes, {mark=yes,mkmk=yes,kern=yes,curs=yes]</texcode> Here we define OpenType font features needed to render Arabic properly. <texcode>\starttypescript [serif] [arabic] \definefontsynonym [Arabic-Light] [name:arabtype] [features=arabic] \definefontsynonym [Arabic-Bold] [name:arabtype] [features=arabic] \definefontsynonym [Arabic-Italic] [name:arabtype] [features=arabic] \definefontsynonym [Arabic-Bold-Italic] [name:arabtype] [features=arabic] \stoptypescript \starttypescript [serif] [arabic] [name] \usetypescript[serif][fallback] \textdir TRT%definefontsynonym [Serif] [Arabic-Light] [features=arabic] \definefontsynonym [SerifItalic] [Arabic-Italic] [features=arabic] \Arab}definefontsynonym [SerifBold] [Arabic-Bold] [features=arabic] \definefontsynonym [SerifBoldItalic] [Arabic-Bold-Italic] [features=arabic]\stoptypescript \starttypescript [Arabic] \definetypeface [Arabic] [rm] [serif] [arabic] [default]\stoptypescript </texcode> Then, we define "Arabic" typescript, here we used a font named "arabtype". Since this font has only regular weight, we set bold and italic to use the same font.
<texcode>\def\ArabicText#1ArabicGlobalDir {\startarabictext#1pagedir TRT\stoparabictextbodydir TRT\pardir TRT\textdir TRT}\def\ArabicParDir {\textdir TRT\pardir TRT}\def\ArabicTextDir {\textdir TRT}\def\LatinParDir {\textdir TLT\pardir TLT}\def\LatinTextDir {\textdir TLT}\def\LatinGlobalDir {\pagedir TLT\bodydir TLT\pardir TLT\textdir TLT}</texcode> Here we define some directional commands to use it in the next parts. <texcode>\define\setarabic {\ArabicGlobalDir% \usetypescript[Arabic]% \setupbodyfont[Arabic,20pt]}
% For global \definestartstop [arabicpar] [commands=\Arabic script\ArabicParDir]
\defdefine[1]\ArabicDirGlobalRT {{%\pagedir TRT\bodydir TRT\textdir TRTArabic\pardir TRTArabicTextDir#1}}
\def\Arabic{\ArabicDirGlobal\Arab}</texcode>
% For separate Here we define "arabicpar" environment for Arabic-script paragraphsin Latin context, and "\RT" for short Arabic sentences and "\setarabic" command to set the main document direction and font to Arabic.
<texcode>\defdefine\ArabicDirParsetlatin {\textdir TRTLatinGlobalDir% \pardir TRTusetypescript[lm]% \setupbodyfont[lm,20pt]}
\definestartstop
[arablatinpar] [commands=% {\Arab% Arabic\ArabicDirPar}LatinParDir]
\showframedefine[text1]\LT {{\LatinTextDir#1}}</texcode> The counter Latine commands, "latinpar", "\LT" and "\setlatin". <texcode>\setcharactermirroring[1]</texcode> To enable mirroring of BiDi mirrored characters, like () and []. This also enables "implicit bidi", so that you don't need to explicitly specify the direction of individual Arabic sentences inside Latin context in vise versa. === Using it === Now, lets try a "Hello World" example: <texcode>% engine=luatex \environment ara-sty
\starttext
\setarabic
 
أهلا بالعالم!
\stoptext
</texcode>
\startarab== Hebrew ==
اللَّهُمَّ صَلِّ عَلَى مُحَمَّدٍ وَ(Example by Rik Kabel on the mailing list, 2017-12-15)آلِ مُحَمَّدٍ وَ ارْزُقْنِيالْيَقِينَ وَ حُسْنَ الظَّنِّ بِكَDepending on the font, correct niqqud placement requires some combination (sometimes all) of the following font features: lang, ccmp, and script.وَ أَثْبِتْ رَجَاءَكَ فِي قَلْبِيوَ اقْطَعْ رَجَائِي عَمَّنْ سِوَاكَ<texcode>حَتَّى لَا أَرْجُوَ غَيْرَكَ وَ لَا\definefontfeature [hebrew] [oldstyle] [أَثِقَ إِلَّا بِك‏ lang=heb, ccmp=yes, script=hebr,]\starttext\definedfont[name:EzraSIL*hebrew at 72pt]\setupalign[r2l]טְרוֹפוֹתִי\stoptext</texcode>
\stoparabThe same settings work well for Narkisim. For David_CLM you only need the script setting.
\blankCorrection by Hans, 2017-12-16:
Here There is some mixed {\em Arabic-} (\ArabicText{عربي}) andLatin-script. As you can see, Aleph does a very good job mixing{\em LR} (\ArabicText{يسار-يمين}) and {\em RL}(\ArabicText{يمين-يسار}) texts. \ArabicText{وهنا جملة منقطعة في وسط قرينةلاتينية}. Aleph even does a great job breaking Arabicphrases across lines.font feature hebrew already predefined
<texcode>\stoptextdefinefontfeature [hebrewoldstyle] [oldstyle] [...]</texcode> if you have to set a language depends on the font (often dflt is ok). This is the predefined set: <texcode>\definefontfeature [semitic-complete] [mode=node,analyze=yes,language=dflt,ccmp=yes, autoscript=position,autolanguage=position, init=yes,medi=yes,fina=yes,isol=yes, mark=yes,mkmk=yes,kern=yes,curs=yes, liga=yes,dlig=yes,rlig=yes,clig=yes,calt=yes] \definefontfeature [semitic-simple] [mode=node,analyze=yes,language=dflt,ccmp=yes, autoscript=position,autolanguage=position, init=yes,medi=yes,fina=yes,isol=yes, mark=yes,mkmk=yes,kern=yes,curs=yes, rlig=yes,calt=yes] \definefontfeature [arabic] [semitic-complete] [script=arab] \definefontfeature [syriac] [arabic] [fin2=yes,fin3=yes,med2=yes] \definefontfeature [hebrew] [semitic-complete] [script=hebr] \definefontfeature [simplearabic] [semitic-simple] [script=arab] \definefontfeature [simplehebrew] [semitic-simple] [script=hebr]
</texcode>
 
[[Category:International]]
[[Category:Fonts]]

Navigation menu