Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
OpenType
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Layout tags== OpenType Layout tags are 4-byte character strings that identify the scripts, language systems, features and baselines in an OpenType Layout font. Microsoft's Layout tag registry establishes conventions for naming and using these tags. OpenType features are created by using the tags in creating feature scripts that describe how characters are to be manipulated to make the desired feature. These feature scripts can be created and incorporated into OpenType fonts by advanced font editors such as [[Fontlab|FontLab Studio]], AsiaFont Studio, and [[FontForge]]. Operating system and application support for layout tags varies widely. ===Script tags=== Script tags identify the scripts (writing systems) represented in an OpenType font. Each tag corresponds to contiguous character code ranges in Unicode. A script tag can consist of 4 or fewer lowercase letters, such as <code>{{Sic|hide=y|ar|ab}}</code> for the [[Arabic alphabet]], <code>{{Sic|hide=y|cy|rl}}</code> for the [[Cyrillic script]] and <code>{{Sic|hide=y|la|tn}}</code> for the [[Latin alphabet]]. The <code>math</code> script tag, added by Microsoft for [[Cambria (typeface)|Cambria Math]], has been added to the specification.<ref name=ots-stags>{{cite web |url=https://learn.microsoft.com/en-us/typography/opentype/spec/scripttags |title=Script Tags |department=Microsoft Typography |website=[[Microsoft Learn]] |access-date=2024-04-13}}</ref><ref name="isoiec14496222009">{{cite web|url=http://standards.iso.org/ittf/PubliclyAvailableStandards/c052136_ISO_IEC_14496-22_2009(E).zip|title=ISO/IEC 14496-22:2009(E)|author=International Organization for Standardization and International Electrotechnical Commission|date=2009-08-15|work=Information technology β Coding of audio-visual objects β Part 22: Open Font Format (2nd ed)|pages=286 (section 6.4.1)|access-date=2009-11-02}} (consent to non-chargeable online licence agreement required to download specification)</ref> ===Language system tags=== [[File:Cyrillic cursive.svg|thumb|150px|Variations in Cyrillic cursive. Letters in same row have the same code point.]] Language system tags identify the language systems supported in an OpenType font. Examples include <code>ARA</code> for [[Arabic language|Arabic]], <code>ESP</code> for [[Spanish language|Spanish]], <code>HYE</code> for [[Armenian language|Armenian]], etc. In general, the codes are not the same as [[ISO 639-2]] codes.<ref name=ots-ltags>{{cite web |url=https://learn.microsoft.com/en-us/typography/opentype/spec/languagetags |title=Language System Tags |department=Microsoft Typography |website=[[Microsoft Learn]] |access-date=2024-04-13}}</ref> These tags can be used to select local variants of letters that share a single Unicode code point.<ref name=ots-ltags /><ref name=ots-feat-ko>{{Cite web |url=https://learn.microsoft.com/en-us/typography/opentype/spec/features_ko |title=Registered Features: Definitions and Implementations (k β o) |department=Microsoft Typography |website=[[Microsoft Learn]] |access-date=2024-04-13}}</ref> For instance, the [[Serbian Cyrillic alphabet|Serbian and Macedonian Cyrillic]] alphabet has some language-specific glyphs for certain letters, which are only preferred and are not strictly mandated.{{citation needed|date=January 2024}} ===Feature tags=== {{main|OpenType feature tag list}} A list of OpenType features with expanded descriptions is given [[OpenType feature tag list|list of typographic features]]. ===Baseline tags=== Baseline tags have a specific meaning when used in the horizontal writing direction (used in the 'BASE' table's HorizAxis table), vertical writing direction (used in the 'BASE' table's VertAxis table), or both. {|class="wikitable" |+Baseline tags and axes in OpenType fonts |- ! scope="col"| Baseline tag ! scope="col"| HorizAxis ! scope="col"| VertAxis |- ! scope="row"| 'hang' |horizontal line from which the syllabograms seem to hang in the [[Tibetan script]] |The same line in Tibetan vertical writing mode. |- ! scope="row"| 'icfb' |Ideographic character face bottom edge baseline. |Ideographic character face left edge baseline. |- ! scope="row"| 'icft' |Ideographic character face top edge baseline. |Ideographic character face right edge baseline. |- ! scope="row"| 'ideo' |Ideographic em-box bottom edge baseline. |Ideographic em-box left edge baseline. |- ! scope="row"| 'idtp' |Ideographic em-box top edge baseline. |Ideographic em-box right edge baseline. |- ! scope="row"| 'math' |The baseline about which mathematical characters are centered. |The baseline about which mathematical characters are centered in vertical writing mode. |- ! scope="row"| 'romn' |The baseline used by simple alphabetic scripts such as Latin, Cyrillic and Greek. |The alphabetic baseline for characters rotated 90 degrees clockwise for vertical writing mode. |} === Math === A set of tables that mirrors TeX math font metrics relatively closely was added by Microsoft initially to [[Cambria Math]] for supporting their new math editing and rendering engine in [[Office 2007]] and later.<ref>{{cite web|author=MurrayS3 |url=http://blogs.msdn.com/b/murrays/archive/2006/11/15/lineservices.aspx |title=LineServices β Murray Sargent: Math in Office |website=Blogs.msdn.com |date=2006-11-14 |access-date=2017-01-19}}</ref><ref>{{cite web|url=http://ultrasparky.org/school/pdf/DanielRhatigan_Dissertation.pdf |title=Three Typefaces for Mathematics |website=Ultrasparky.org |access-date=2017-01-19}}</ref> This extension was added to the ISO standard (ISO/IEC CD 14496-22 3rd edition) in April 2014.<ref>{{cite web|author=MurrayS3 |url=http://blogs.msdn.com/b/murrays/archive/2014/04/27/opentype-math-tables.aspx |title=OpenType Math Tables β Murray Sargent: Math in Office |website=Blogs.msdn.com |date=2014-04-27 |access-date=2017-01-19}}</ref> Additional (usage) details are available in the Unicode technical report 25<ref>{{cite web|url=https://www.unicode.org/reports/tr25/ |format=PDF |title=Unicode Technical Report #25 : UNICODE SUPPORT FOR MATHEMATICS |website=Unicode.org |access-date=2017-01-19}}</ref> and technical note 28.<ref>{{cite web|url=https://www.unicode.org/notes/tn28/ |title=UTN #28: Nearly Plain-Text Encoding of Mathematics |website=Unicode.org |date=2016-11-16 |access-date=2017-01-19}}</ref> Some of the new technical features (not present in TeX), such as "cut-ins" (which allows kerning of subscripts and superscripts relative to their bases<ref>{{cite web|author=MurrayS3 |url=http://blogs.msdn.com/b/murrays/archive/2010/01/12/special-capabilities-of-a-math-font.aspx |title=Special Capabilities of a Math Font β Murray Sargent: Math in Office |website=Blogs.msdn.com |date=2010-01-11 |access-date=2017-01-19}}</ref>) and stretch stacks<ref name="illum"/> have been patented by Microsoft.<ref>{{cite web|url=https://patents.google.com/patent/US7492366 |title=Patent US7492366 - Method and system of character placement in opentype fonts - Google Patents |website=Google.com |date=2008-03-03 |access-date=2017-01-19}}</ref><ref>{{cite web|url=https://patents.google.com/patent/US7242404 |title=Patent US7242404 - Enlargement of font characters - Google Patents |website=Google.com |date=2007-02-16 |access-date=2017-01-19}}</ref><ref>{{cite web|url=https://patents.google.com/patent/US7453463 |title=Patent US7453463 - Enlargement of font characters - Google Patents |website=Google.com |access-date=2017-01-19}}</ref> [[Windows 8]] supports OpenType math outside MS Office applications via the [[RichEdit]] 8.0 component.<ref>{{cite web|author=MurrayS3 |url=http://blogs.msdn.com/b/murrays/archive/2012/03/03/richedit-8-0-preview.aspx |title=RichEdit 8.0 Preview β Murray Sargent: Math in Office |website=Blogs.msdn.com |date=2012-03-03 |access-date=2017-01-19}}</ref> Besides Microsoft products, XeTeX and [[LuaTeX]] also have some level of support for these tables; support is more limited in XeTeX because it uses the traditional TeX math rendering engine (thus it cannot fully use some of the new features in OpenType math that extend TeX), while LuaTeX takes a more flexible approach by changing some of the internals of TeX's math rendering; in the words of Ulrik Vieth (2009): "More precisely, while XeTeX only provides access to the OpenType parameters as additional \fontdimens, LuaTeX uses an internal data structure based on the combined set of OpenType and TeX parameters, making it possible to supply missing values which are not supported in either OpenType math fonts or traditional TeX math fonts."<ref name="illum">https://www.tug.org/TUGboat/tb30-1/tb94vieth.pdf also at http://www.ntg.nl/maps/38/03.pdf</ref> In 2013, XeTeX also gained support for cut-ins.<ref>{{cite web|last=Preining |first=Norbert |url=http://www.preining.info/blog/2013/06/tex-live-2013-released/ |title=TeX Live 2013 released |publisher=Preining.info |date=2013-06-19 |access-date=2017-01-19}}</ref> The [[Gecko (software)|Gecko]] rendering engine used by the [[Firefox]] web browser also supports some OpenType math features in its [[MathML]] implementation.<ref>{{cite web|url=https://fred-wang.github.io/MathUI2014/demos/4-mathml-fonts.html |title=OpenType MATH Fonts |website=Fred-wang.github.io |access-date=2017-01-19}}</ref><ref>{{cite web|url=https://wiki.mozilla.org/MathML:Open_Type_MATH_Table |title=MathML:Open Type MATH Table - MozillaWiki |website=Wiki.mozilla.org |date=2015-12-27 |access-date=2017-01-19}}</ref> {{As of|2024}}, the set of fonts that supported OpenType math includes: [[Asana-Math]], Cambria Math, [[DejaVu fonts|DejaVu Math TeX Gyre]], [[Garamond|Garamond Math]], [[Latin Modern|Latin Modern Math]], [[Libertinus|Libertinus Math]], [[Neo Euler]], [[STIX|STIX Math]], [[XITS|XITS Math]], [[Fira (typeface)|Fira Math]], [[Greek Font Society|GFS Neohellenic Math]], and four TeX Gyre fonts Bonum Math, Pagella Math, Schola Math, Termes Math.<ref name="mozilla"/> <ref>{{cite web|url=http://www.tug.org/~vieth/papers/context2010/context-paper.pdf |title=Experiences typesetting OpenType math with LuaLaTEX and XeLaTEX |website=Tug.org |access-date=2017-01-19}}</ref> More recently the [[Latin Modern]] and [[TeX Gyre]] fonts (an "[[Computer Modern#Latin Modern|LM-ization]]" of the standard PostScript fonts<ref>{{cite web|url=https://www.tug.org/TUGboat/tb27-2/tb87hagen-gyre.pdf |title=The New Font Project: TEX Gyre |author=Jerzy B. Ludwichowski |website=Tug.org |access-date=2017-01-19}}</ref>) have also gained support for OpenType math.<ref>{{cite web |url=http://www.gust.org.pl/projects/e-foundry/lm-math |title=The Latin Modern Math (LM Math) font β GUST |language=pl |website=Gust.org.pl |access-date=2017-01-19 |archive-date=2015-06-02 |archive-url=https://web.archive.org/web/20150602051818/http://www.gust.org.pl/projects/e-foundry/lm-math |url-status=dead }}</ref><ref>{{cite web|url=http://www.ctan.org/pkg/lm-math |title=Package lm-math |publisher=CTAN |access-date=2017-01-19}}</ref><ref>{{cite web|url=http://vimeo.com/51944975 |title=UK-TUG 2012 - TeX Gyre Math report on Vimeo |website=Vimeo.com |date=2012-10-22 |access-date=2017-01-19}}</ref><ref>{{cite web|url=http://www.ctan.org/tex-archive/fonts/tex-gyre-math |title=/tex-archive/fonts/tex-gyre-math |publisher=CTAN |date=2016-05-19 |access-date=2017-01-19}}</ref> {{As of|2014}} the number of OpenType math fonts is still fairly limited.<ref>{{cite web|url=http://www.gust.org.pl/bachotex/2014-pl/presentations/tgm-final03web.pdf |title=Progress of the TEX Gyre Math Font Project |website=Gust.org |access-date=2017-01-19}}</ref> A more up-to-date list is maintained on [[Mozilla]]'s web site .<ref name="mozilla">{{cite web|url=https://developer.mozilla.org/en-US/docs/Mozilla/MathML_Project/Fonts#MATH_fonts |title=Fonts for Mozilla's MathML engine - Mozilla {{pipe}} MDN |website=Developer.mozilla.org |date=2016-12-01 |access-date=2024-09-23}}</ref> === Color === Emergence of Unicode emoji created a need for TrueType and OpenType formats to support color glyphs. Apple added a color extension in [[Mac OS X Lion]] (and also to [[iOS]] 4+). Fonts were extended with colored {{Abbrlink|PNG|Portable Network Graphics}} images within the sbix table.<ref>{{cite web|url=http://typographica.org/typeface-reviews/apple-color-emoji/ |title=Apple Color Emoji β Typographica |website=Typographica.org |date=2014-06-20 |access-date=2017-01-19}}</ref><ref name="colorinfo">{{cite web|url=http://opentype.info/blog/2013/07/03/color-emoji-in-windows-8-1-the-future-of-color-fonts/ |title=Color Emoji in Windows 8.1βThe Future of Color Fonts? |website=Opentype.info |date=3 July 2013|access-date=2017-01-19 |url-status=dead |archive-url=https://web.archive.org/web/20140710201619/http://opentype.info/blog/2013/07/03/color-emoji-in-windows-8-1-the-future-of-color-fonts/ |archive-date=2014-07-10 }}</ref><ref>{{cite web|author=Apple Inc. |url=https://developer.apple.com/fonts/TrueType-Reference-Manual/RM06/Chap6sbix.html |title=Extended Bitmaps |website=Developer.apple.com |access-date=2017-01-19}}</ref> Google used a similar extension with embedded color bitmap images contained within a pair of tables, the CBDT and CBLC tables.<ref name="nl14">{{cite web|author=Roel Nieskens |url=http://pixelambacht.nl/2014/multicolor-fonts/ |title=Colorful typography on the web: get ready for multicolor fonts β Pixelambacht |website=Pixelambacht.nl |access-date=2017-01-19}}</ref> The Google version is implemented in [[FreeType]] 2.5.<ref name="fontlab-col">{{cite web|url=http://blog.fontlab.com/font-tech/color-fonts/color-font-format-proposals/ |title=FontLab Blog Color fonts. Overview of the proposals for color extensions of the OpenType font format. - FontLab Blog |website=Blog.fontlab.com |date=2013-09-19 |access-date=2017-01-19}}</ref> In [[Windows 8.1]] Microsoft also added color support to fonts, first implemented in the [[Segoe UI]] [[Emoji]] font.<ref name="colorinfo"/><ref>{{cite web |url=https://learn.microsoft.com/en-us/globalization/fonts-layout/font-support#windows-81 |title=Script and font support in Windows Β§ Windows 8.1 |department=Globalization |website=[[Microsoft Learn]] |date=20 November 2023 |access-date=2024-04-13}}</ref><ref>{{cite web|url=http://www.charlespetzold.com/blog/2013/06/Multicolor-Font-Characters-in-Windows-8-1.html |title=Petzold Book Blog - Multicolor Font Characters in Windows 8.1 |website=Charlespetzold.com |access-date=2017-01-19}}</ref><ref>{{cite web|url=http://channel9.msdn.com/Events/Build/2013/3-191 |title=Innovations in High Performance 2D Graphics with DirectX {{pipe}} Build 2013 {{pipe}} Channel 9 |website=Channel9.msdn.com |date=2013-06-25 |access-date=2017-01-19}}</ref> Microsoft's implementation, however, relies entirely on [[vector graphics]]:<ref name="colorinfo"/><ref>{{cite web|url=http://www.hanselman.com/blog/HowToEnterAndUseEmojiOnWindows81.aspx |title=How to enter and use Emoji on Windows 8.1 - Scott Hanselman |website=Hanselman.com |access-date=2017-01-19}}</ref> two new OpenType tables were added in Microsoft's implementation: the COLR table allows layered glyphs and the CPAL ("Color Palette") actually defines the colors for the layers. The multi-layer approach allows a backwards compatible implementation as well as varying the rendering depending on the color context surrounding the glyphs.<ref name="colorinfo"/> According to [[Adam Twardoch]]: "At [[TypeCon]] [2013], [[Greg Hitchcock]] clarified the envisioned roles of the palettes: first palette is used by default for "dark on light" color situations while second palette is intended for use in "light on dark" situations. Additional palettes should be selectable by the user."<ref name="fontlab-col"/> [[Mozilla]] and Adobe developed a different vector-based extension by adding embedded [[Scalable Vector Graphics|SVG]] documents (supporting color but also animations) into the SVG table. The SVG table also allowed for using color palettes defined in the CPAL table.<ref name=ots-svg-color>{{cite web |url=https://learn.microsoft.com/en-us/typography/opentype/spec/svg#colors-and-color-palettes |title=SVG β The SVG (Scalable Vector Graphics) Table Β§ Colors and Color Palettes |department=Microsoft Typography |website=[[Microsoft Learn]] |access-date=2024-04-13}}</ref> Support was first implemented in [[Firefox]] 26.<ref name="nl14"/> Adobe, Mozilla, Google and Microsoft each submitted their color extensions for standardization thorough ISO/IEC 14496-22.<ref>{{cite web|url=https://lwn.net/Articles/564944/ |title=Chromatic fonts are coming |website=Lwn.net |access-date=2017-01-19}}</ref> The new tables for each of these were then added into OpenType version 1.7.<ref name=ots170>{{cite web |url=https://learn.microsoft.com/en-us/typography/opentype/otspec170/ |title=OpenType specification (OpenType 1.7) |department=Microsoft Typography |website=[[Microsoft Learn]] |date=22 September 2020 |access-date=2024-04-13}}</ref> Apple's sbix table was originally supported only in AAT fonts, but it was later added into OpenType version 1.8.<ref name=ots180>{{cite web |url=https://learn.microsoft.com/en-us/typography/opentype/otspec180/ |title=OpenType specification (OpenType 1.8) |department=Microsoft Typography |website=[[Microsoft Learn]] |date=9 June 2022 |access-date=2024-04-13}}</ref> Microsoft Windows 10 Anniversary Update was the first OS to support all four color font extensions, and Microsoft Edge was the first browser to do so.<ref>{{cite web |url=https://learn.microsoft.com/en-us/windows/win32/directwrite/what-s-new-in-directwrite-for-windows-8-consumer-preview#windows-10-anniversary-update |title=What's new in DirectWrite Β§ Windows 10 Anniversary Update |department=Microsoft Typography |website=[[Microsoft Learn]] |date=4 October 2021 |access-date=2024-04-13}}</ref><ref>{{cite web |url=https://blogs.windows.com/buildingapps/2017/06/06/using-color-fonts-beautiful-text-icons/#4AQPMh72mUwdrRpF.97 |title=Using color fonts for beautiful text and icons |website=blogs.microsoft.com |date=2017-06-06 |access-date=2018-09-14}}</ref> In OpenType Version 1.8.3, the specification for the SVG table was revised to be more constrained, providing more clarity for implementations and better interoperability. Apple is supporting the revised specification in Safari 12, iOS 12 and macOS 10.14.<ref>{{cite web|url=https://developer.apple.com/safari/whats-new/ |title=What's New in Safari |website=developer.apple.com |access-date=2018-09-14}}</ref> The implementation in Microsoft Windows also conforms to this revision.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)