LuaLaTeX OpenType style sets by 4-character style set code
Here’s an updated version of the summary I made for myself when I began using fontspec
.
| tag | fontspec option | comments |
|------+--------------------------------------+-----------------------------------------------------|
| abvm | Diacritics=[No]AboveBase | default |
| afrc | Fractions=Alternate | |
| anum | Numbers=Arabic | luatex only: see manual §10.3 |
| blvm | Diacritics=[No]BelowBase | default |
| c2pc | Letters=UppercasePetiteCaps | |
| c2sc | Letters=UppercaseSmallCaps | |
| calt | Contextuals=[No]Alternate | default in xetex, not in luatex |
| case | Letters=Uppercase | |
| clig | Ligatures=[No]Contextual | default |
| cpsp | Kerning=Uppercase | |
| cswh | Contextuals=[No]Swash | |
| cv01 | CharacterVariant=1 | see manual §10.8 |
| dlig | Ligatures=Rare/Discretionary | |
| dnom | VerticalPosition=Denominator | |
| expt | CJKShape=Expert | |
| falt | Contextuals=[No]LineFinal | |
| fina | Contextuals=[No]WordFinal | has sometimes worked in xetex |
| frac | Fractions=On[/Off] | |
| fwid | CharacterWidth=Full | for Asian fonts |
| halt | CharacterWidth=AlternateHalf | |
| hist | Style=Historic | |
| hkna | Style=HorizontalKana | |
| hlig | Ligatures=Historic | |
| hwid | CharacterWidth=Half | |
| init | Contextuals=[No]WordInitial | has sometimes worked in xetex |
| ital | Style=Italic | |
| jp78 | CJKShape=JIS1978 | |
| jp83 | CJKShape=JIS1983 | |
| jp90 | CJKShape=JIS1990 | |
| kern | Kerning=On[/Off] | default |
| liga | Ligatures=[No]Common | default |
| lnum | Numbers=Uppercase/Lining | |
| mark | Diacritics=[No]MarkToBase | default |
| medi | Contextuals=[No]Inner | has sometimes worked in xetex |
| mkmk | Diacritics=[No]MarkToMark | default |
| nalt | Annotation=#… | see manual §10.14 |
| nlck | CJKShape=NLC | |
| numr | VerticalPosition=Numerator | |
| onum | Numbers=Lowercase/OldStyle | |
| ordn | VerticalPosition=Ordinal | |
| palt | CharacterWidth=AlternateProportional | |
| pcap | Letters=PetiteCaps | |
| pnum | Numbers=Proportional | |
| pwid | CharacterWidth=Proportional | |
| qwid | CharacterWidth=Quarter | |
| rand | Letters=Random | |
| rlig | Ligatures=[No]Required | default |
| ruby | Style=Ruby | |
| salt | Style=Alternate or Alternate=… | see manual §10.9 |
| sinf | VerticalPosition=ScientificInferior | |
| size | SizeFeatures={…} and OpticalSize=… | default for some fonts; see manual §§7.6, 8.6, 12.4 |
| smcp | Letters=SmallCaps | |
| smpl | CJKShape=Simplified | |
| ss01 | StylisticSet=1 | |
| subs | VerticalPosition=Inferior | |
| sups | VerticalPosition=Superior | see also realscripts package |
| swsh | Style=Swash | |
| titl | Style=TitlingCaps | |
| tnum | Numbers=Monospaced | |
| trad | CJKShape=Traditional | |
| twid | CharacterWidth=Third | |
| unic | Letters=Unicase | |
| vkna | Style=VerticalKana | |
| zero | Numbers=[No]SlashedZero | |
(Ignore the color, which is this web site taking my ASCII table for .tex
source.)
Note that defaults may vary by script; see Khaled Hosny’s remarks at article.gmane.org/gmane.comp.tex.xetex/15187.
To judge from the manual at §28.0.12, there are also vertical kerning options, probably to be explained in §10.17.
Update
Since version 2.5c (2017/01/20), the fontspec
manual also has a table; in version 2.6g (2017/11/09), it’s Table 2, on page 35.
EDIT: Based on the accepted answer above, the following answer, and comments, I have been able to solve my problem in detail. Thanks, all! Here is a MWE showing how it works.
% !TeX program = LuaLaTeX
% !TEX encoding = UTF-8
\documentclass{article}
\usepackage{fontspec} % required with LuaLaTeX
\setmainfont[
Ligatures=TeX,
Numbers=Proportional, % but cannot use Monospaced as below
]{Adobe Garamond Pro}
\newfontfamily{\myCustom}[
Ligatures=TeX,
]{RAcustom} % my own created opentype font
\newcommand\myFraktur{\addfontfeature{StylisticSet=1}} % only for \myCustom
\newcommand\myUncial{\addfontfeature{StylisticSet=2}} % only for \myCustom
\newcommand\myEmoticons{\addfontfeature{StylisticSet=3}} % only for \myCustom
\begin{document}
Hello {\myCustom world.} Here: {\myCustom\myEmoticons ^^^^46c7}
\end{document}
The above gives the expected output: "Hello " in AGaramondPro, "world." in RAcustom, "Here: " in AGaramondPro, and Unicode 46c7 (which would ordinarily be an Asian Han character) in RAcustom opentype feature ss03, which is a grin emoticon. Factoid: the Han character means "grin." I didn't want to use the full Unicode range beyond the BMP.
Thank you thank you thank you!