Download 51643 free fonts in 25376 families for Windows and Mac. The home of free fonts since 1998. On the Mac you use the Font Book to add the font and then copy it to the Windows Office Compatible folder. Many third parties outside of Microsoft package their fonts in.zip files to reduce file size and to make downloading faster. If you have downloaded a font that is saved in.zip format double-click the zip file to open it.
-->There is a class of legacy fonts for Arabic that use not-well-documented mechanisms and legacy shaping implementations in Windows. This topic provides some details regarding this class of fonts.
These fonts date to the 1990s. These are TrueType fonts, in the sense that they are .ttf files that, in general, follow the TrueType spec. However, they make use of undocumented details not defined in the TrueType or OpenType specs, and do not conform to current specifications for how to implement Unicode fonts for Arabic.
Font encoding and character set declarations
These fonts use Windows Symbol encoding — that is, they have a cmap subtable for platform ID 3, encoding ID 0. By itself, the Windows Symbol encoding implies no interoperable character semantics, but rather implies font-specific semantics. Arabic character semantics are not established in the cmap subtable, as would be expected. Rather, this is done using special values within the OS/2 table that are not documented in the TrueType or OpenType specification.
Note that some of these fonts may also include cmap subtables for other platforms and encodings. Those should not be used, however. The fonts were created in an era in which single-byte encodings were used, and these alternate cmap subtables are likely to be redefinitions of the declared encodings. For example, the Royal Arabic font inclues a Mac Roman cmap subtable, but the glyphs that are mapped do not match the Mac Roman character set.
These fonts include a version 0 OS/2 table. Version 0 includes the fsSelection field, which is a uint16 value with various bits defined as flags. Only a limited set of bits — bits 0 to 6 — are defined; remaining bits are documented as reserved and to be set to 0. In this class of fonts, however, values are set in the reserved, upper word of the fsSelection field. These non-standardized values are the way in which the character semantics are declared.
The values set in the upper word of the fsSelection field are not bit flags, as otherwise used for the fsSelection field. Instead, the upper byte is set to one of the following constant values:
The first of these corresponds to the ARABIC_CHARSET constant defined in gdi32.h for use in the lfCharset member of the LOGFONT structure. The second is used in some fonts, but is not defined in gdi32.h.
Note: There is a correspondence between CHARSET values in Windows GDI and code pages, and code pages are referenced in the ulCodePageRange fields of the OS/2 table (version 1 and later). However, the ulCodePageRange fields are used to indicate logical character sets that are supported in the font, but say nothing about actual character encodings used in the font. For this class of fonts, the ulCodePageRange fields are not relevant.
Note: Similar use of the upper word of the fsSelection field is known to have been used for legacy Hebrew and Thai fonts as well.
The nature of the font encodings
In terms of Unicode characters, the Arabic characters supported by this class of fonts is a subset from the range U+0620 to U+065F.
![Download Arabic Font For Microsoft Word Mac Download Arabic Font For Microsoft Word Mac](/uploads/1/1/9/4/119469529/792791171.jpg)
Each of these legacy font encodings is a presentation-form encoding. That is, all presentation-form glyphs are mapped directly by some character code in the cmap table. The presentation forms will include the basic contextual shapes of Arabic letters: isolate, initial, medial, final. In addition, there are other presentation forms for certain ligatures; these are not documented here in detail.
Best Free Fonts For Mac
Note: There is nothing in the fonts themselves that determines the encoding order of text data that might be displayed with these fonts. It is certainly possible that these fonts have been used in combination with some legacy applications that support Arabic content encoded in visual rather than logical order.
As noted above, the fonts use Windows Symbol cmap subtables. In most fonts that use Windows Symbol encoding, the character index values are in the range 0xF020 to 0xF0FF. (In legacy, single-byte applications, these would be mapped to a code point range 0x20 to 0xFF.) In this class of fonts, however, different ranges are assumed for the two encoding declarations:
- ARABIC_CHARSET_SIMPLIFIED: 0xF100 to 0xF1FF
- ARABIC_CHARSET_TRADITIONAL: 0xF200 to 0xF2FF
These ranges are reflected in the usFirstCharIndex and usLastCharIndex fields of the fonts’ OS/2 tables.
Unicode to legacy font mappings
Code snippets are provided below that give mappings from Unicode characters to code points in the legacy font encodings. As mentioned, the font encodings are presentation-form encodings. Hence, these are mappings for contextual forms of the Unicode characters. The mapping logically assumes four different contextual shapes for each Arabic letter, though in some cases the same presentation-form code point is mapped for more than one context — for example, one legacy presentation form code point for both isolate and initial contexts.
The following constants are assumed in these code snippets:
Mac Fonts For Windows
Legacy Simplified Arabic mapping
The following provides the mapping for ARABIC_CHARSET_SIMPLIFIED:
Legacy Traditional Arabic mapping
The following provides the mapping for ARABIC_CHARSET_TRADITIONAL: