Document class "novel"

5. Fonts

 

Documentation for novel document class

Documentation version: 1.0.6.

5. Fonts

This page describes how to choose fonts and font features, and how to apply fonts within your document. If you are looking for information about how to specify the master text point size, see Page 4. If you are looking for information about how to change the size of text within the body of your document, or about how to style text (such as italics), then see Page 7.

Forget TeX PostScript fonts such as cmr and encodings such as T1. This is the Twenty-First Century. You will be using Unicode, Open Type fonts, and font features.

You may not have to choose or configure any fonts. The novel class is pre-configured with fonts carefully chosen for print fiction. They come with the SIL Open Font License, and can be used for commercial purposes. So, before you panic about having to learn a new way to handle fonts, try some test documents using the defaults.

5.1 General Considerations

Many TeX fonts are only available in older Type 1 format (PostScript) or even as bitmap metafonts. Do not use them.

In some other cases, a TeX font package provides both the older format, and a newer Open Type (*.otf or *.ttf) format. The different formats will have different font names. Sometimes the difference is very slight. Carefully look at the font name for the Open Type format. Remember that most on-line discussions will refer to the older fonts, simply because they have been around longer.

Do not attempt to load a font by the \RequirePackage or \usepackage commands. That will cause TeX to look for the older PostScript fonts, which will probably fail with an eror message about being unable to find metrics. And, even if the fonts happen to load, they will be the wrong ones. Instead, if you choose to use fonts other than the defaults, load them via the font setting commands described on this page.

5.1.1 Licensing Issues

Presumably, you are writing your novel for commercial value, and do not intend to give anything away for free. For that reason, avoid fonts licensed under the GPL (GNU Public License) unless it has the font exception clause. Some TeX fonts are licensed under GPL, so watch out.

Beware of fonts "free for personal use" from download sites. Your commercial application is not "personal use." Of course, if you like the font, you may purchase its commercial license.

Also beware of fonts generically labeled as "freeware" with no particular designer name. If you don't know who created the font, then how do you know that it can be given away for free? Even if there is a designer name, some of them had second thoughts about "freeware." They intended the fonts to be free only if you give your own work away for free. But they didn't mention it. Maybe they have no legal recourse, but you don't want them making anonymous negative reviews of your book.

You have numerous fonts already installed in your operating system, and perhaps others that came bundled with a particular application. If you intend to use those fonts, carefully read their licenses. It is often the case that fonts bundled with an application may only be used for documents created within, or processed by, that application.

Always look for a Copyright notice, which can be identified with a particular person or organization. Copyright is good! It means that someone is claiming authorship of the font software. Only the Copyright owner has the right to give the font away for free, or license it to you after payment (often through an intermediary).

If you prefer free fonts, the most widely accepted license is the SIL Open Font License. This allows you to use the font for commercial purposes, embed it in PDF, modify it to suit your needs (if you change the font name), and even re-distribute the modifications. The default fonts chosen for novel use this license.

5.1.2 Technical Issues

Many fonts have technical errors, even among professional fonts. Some of the errors are so minor that they are not worth fixing. This is particularly true for glyphs that are missing extrema.

However, beware of fonts that are based on traced artwork. The late 1990s had an explosion of amateur dingbat and decorative fonts produced this way, by scanning images from old books and digitizing the scan. The resulting vector glyphs rarely meet standards, and often are quite awful. The problem is that when a commercial printer renders your PDF to print, the printer's software is very different from what you have on your home computer. A technically erroneous glyph might look OK at home, but be rejected commercially.

If you have the knowledge, you can open a font in font editor software (such as FontForge) and ask it for validation. Missing extrema are rarely a problem, even if a lot of them are missing. Self-intersecting glyphs are not a problem if the the glyph is composed of two elements stuck together, such as Ç composed of C with separate cedilla. However, a self-intersecting glyph may be a problem if its lines criss-cross each other. Open paths, and outer paths drawn the wrong way, are often a problem. If the errors are confined to glyphs that you will not be using, then it can pass.

5.1.3 Appearance Issues

There are general expectations for book fonts, in terms of character sizes and shapes, and weights. Many of the widely-used TeX fonts, including Latin Modern, are unacceptable in fiction for this reason. The most commonly-used font in word processors, Times New Roman, is only marginally acceptable for fiction, and only because it is so often used by amateur writers who don't know how to change the font (but write books advising you to change your lifestyle).

The best way to assess a font is to print it to paper. Computer screens rarely show details, except at large magnification. Depending on whom you ask for an opinion, fiction is most easily read when there are about 60 to 66 characters (including spaces) per line. To evaluate a font for the main text, print out some paragraphs about 4" to 4.25" wide, and scale the font's point size so that you get an average number of characters per line in that range. Be sure to do that: Adobe Garamond Pro at 12pt, Libertinus Serif at 11.4pt, and Libre Caslon Text at 9.6pt (!) provide about the same number of characters per line of text. At the proper point size, some fonts will look too dark, and others will look too light.

Things to look for: Are the lowercase letters too tall? If they are, then it is hard for readers in many Western languages to find where sentences start, by looking for capital letters. Also, there is less white space between lines, which makes the text appear dense and harder to read. Is the shape of the characters so natural that you don't notice them? That's good! It is your writing, not the font, that is to be noticed. Remember that some fonts are designed for use at large size, in posters; such fonts tend to look mechanical in fiction. Other fonts are designed for computer screens; the letters will be too widely-spaced in fiction. Nearly all modern fonts have decent kerning and important ligatures, so that's not usually a decisive factor.

The prevailing rule: If you notice the font, it's wrong.

5.1.4 The Default Fonts

After considerable examination of fonts, both within and without TeX, I settled on the Libertinus font family. This is a fork of the well-known [Linux] Libertine and Biolinum fonts. Libertinus is available only as Open Type, and can be installed as TeX package libertinus, or downloaded separately. Note that \RequirePackage{libertinus} and \usepackage{libertinus} do not work. You have to get the fonts yourself.

Libertinus Serif has a favorable combination of quality, character set, Open Type features, glyph design, and licensing. Its character shapes are very good for flowing text, as in fiction. Do not confuse [Linux] Libertine or Libertinus with Liberation, which is a font resembling Times New Roman with a "word processor" look about it.

If you don't have Libertinus, then novel will look for [Linux] Libertine and Biolinum. If you don't have those either, then solely for the purpose of providing minimal working examples, the Latin Modern fonts will be used as a last resort. But don't rely on Latin Modern for an actual book! Set your own Open Type fonts, or install Libertinus or Libertine/Biolinum.

Class novel is bundled with its own custom font, NovelDeco. This font provides some hard-to-find capabilities that you might find useful.

Libertinus, Libertine/Biolinum, and NovelDeco are licensed under the SIL Open Font License.

Remember: You do not have to use TeX fonts. If you have the license for a font such as Adobe Garamond Pro, and wish to use it, you can easily do so.

5.2 Font Names, Files, and Features

If you have used Open Type fonts before, then much of this will be familiar to you. But do glance through it. The use of exotic and context-dependent features will not be discussed, partly because they are rarely used in fiction, and partly because I lack experience in using them.

You will be using fontspec syntax to select your own fonts. Much of what follows is a digested portion of the full fontspec documentation. There are many more features, and ways to use them, than will be described below.

5.2.1 Font (Family) Name vs. Font File Name

A font file is an individual file, with its own file name, including file extension. For example, libertinusserif-regular.otf and libertinusserif-italic.otf are two different font files. This much is obvious.

A font family name, often merely called font name, refers to one or more font files that are variations of the same basic font. Some fonts are so unique that the family consists of just one file. For example, the NovelDeco font family consists of the one file NovelDeco.otf. Typically, a font family has four files, consisting of Regular, Italic, Bold, and BoldItalic variants. Even though there are four font files, there is a single font family name. Many font families have more than four files, including Semibold and Light weights, and Condensed tracking. It is up to the font designer to decide whether a Condensed variation of the "Bubble Turble" font should be treated as a member of the "Burble Turble" family, or as a separate "Burble Turble Condensed" family.

The font (family) name can be learned by opening font files in your system font viewer. Currently, the Windows 10 font viewer uses "Font name" and the Ubuntu font viewer puts the font name in more prominent type. A font (family) name may contain more than one word, with or without spaces, and may contain a general classification such as serif, sans, or mono, because those are actually different families. But it will not contain words such as regular, medium, semibold, bold, or italic; those are for individual members of the same family. Within TeX, some of the older PostScript fonts have been re-worked as newer TrueType and Open Type fonts. The family names are slightly different, so pay attention.

Windows 10 font viewer   Ubuntu font viewer

5.2.2 Set/New by Font Name vs. File Name

When you set an existing font, or create a new font command, you can use either the font (family) name, or the specific font file name. However, there may be a big difference in results!

By family name:

font family defined When you use the font family name, you configure all of the Regular, Italic, Bold, and BoldItalic variants. The usual TeX commands will be applied:

Preamble:

\NewFontFamily\rway{Raleway}

Document Body:

{\rway I came, \textbf{I saw}, \emph{I conquered}, \textsc{I left}.}

By file names:

font file defined However, if you specify the font file name, then only that font file will be used, regardless of requests for bold or italic. Small caps will be honored, if the specific file has them:

Preamble:

\NewFontFamily\rwayi{Raleway-Regular-Italic.otf}

Document Body:

{\rwayi I came, \textbf{I saw}, \emph{I conquered}, \textsc{I left}.}

File Name Combinations:

frankenfont What you write is what you get. You can customize a font family by individually selecting its members. Here is the syntax.

Preamble:

\NewFontFamily\frankenfont[% note the % at linebreaks
  ItalicFont=BaskervilleF-Italic.otf,%
  BoldFont=libertinusserif-semibold.otf,%
  BoldItalicFont=texgyrepagella-bolditalic.otf,%
]{Raleway-Medium.otf}

Document Body:

{\frankenfont I came, \textbf{I saw}, \emph{I conquered}, \textsc{I left}.}

Semibold, Light, etc.: The above syntax is especially useful when you wish to specify semibold (if available), rather than bold. It is also a way to select something such as light versions:

\NewFontFamily\rwlight[% note the % at linebreaks
  ItalicFont=Raleway-Light-Italic.otf,%
  BoldFont=Raleway-Medium.otf,%
  BoldItalicFont=Raleway-Medium-Italic.otf,%
]{Raleway-Light.otf}

Note that the font file in braces is the one used as the "regular" font, in this definition.

5.2.3 Open Type Features

Features are variations, contained within a single font file. In the bad old days, when you wanted true small caps, you had to load a separate font file that had them (and did not have ordinary lowercase letters). Now, if an Open Type font file has the "smcp" feature, you obtain the small caps from within the same file, by asking for them. Requests for the feature may be made on-the-fly, or pre-loaded for global use.

Here are several of the most frequently-used features, relevant to fiction writing. There are many more, and most fonts have only a few of them. Even when a font has a feature, it may be limited to some portion of the characters. For example, it is common for small caps to be available only for Latin-1 letters, even though the font also contains Greek and Cyrillic. To put this another way: The availability of a feature does not tell you its breadth of coverage. Unless the font has documentation showing coverage of its features, the only way to find out is to create and print a test page.

Some Frequently-Used Open Type Features
Description Open Type code   fontspec code

kerning

kern

Kerning=On
enabled by default

common ligatures

liga

Ligatures=Common
enabled: mainfont, sansfont

Tex ligatures

tlig

Ligatures=TeX
enabled by default

lowercase letters to small caps

smcp

Letters=SmallCaps

uppercase letters to small caps

c2sc

Letters=UppercaseSmallCaps

lining numerals

lnum

Numbers=Lining

oldstyle numerals

onum

Numbers=OldStyle
enabled: mainfont, sansfont

• Kerning is the automatic adjustment of spacing between letters, so that they fit together nicely. Common ligatures are substitutions, such as a combined ff character for two consecutive f characters. It is up to the font designer to determine which ligatures, if any, are common.

• TeX ligatures (such as replacing `` with and --- with ) are not actually an Open Type feature, but they are treated that way by the software. All of these are enabled by default. The fontspec manual explains how to disable them, if necessary.

• The SmallCaps feature applies only to lowercase letters; ordinary capitals remain ordinary capitals. UppercaseSmallCaps deals only with converting ordinary capitals to small caps. If you want both, use both. In most fonts that have them, small caps are slightly taller than lowercase, and slightly more widely spaced. What distinguishes real small caps from fake ones (obtained by scaling ordinary capitals) is that the weight and spacing are more compatible with surrounding text.

real vs fake small caps

• Lining numerals are the ones most familiar to you, from math or accounting. They sit on the baseline and have the height of capital letters. That's just right for doing calculations, and doesn't look bad for things such as page numbers and chapter numbers.

• When lining numerals are mingled with flowing text, they may stand out too much. OldStyle numerals are more like flowing text: Most of the numerals are at lowercase height, with ascenders and descenders. Compare the first number as OldStyle, the second as Lining:

oldstyle vs lining numerals

Most fonts use Lining numerals as their default. A few default to OldStyle numerals. Thus, you should explicitly call for the kind of numerals you wish to use.

• True OldStyle numerals have a flat top on one, and a very round zero: true oldstyle 10 This may be a bit distracting. Some fonts use a transitional form, where the one has a tilted top (like big 1) and the zero is not so round: transitional oldstyle 10 Others offer you a choice, via an Open Type "style set." See the fontspec manual for how to code style sets.

• There are many more Open Type features, most of which are not useful in ordinary fiction writing. Fonts rarely have more than a few features. Some features (such as the ones shown above) have a specific meaning. Other features, such as "style sets", have whatever meaning the font designer assigns them; Thus the "ss03" feature of one font may do something very different from "ss03" in a different font.

5.2.4 Scale as Pseudo-Feature

Although it is not an Open Type feature, Scale=number may be written like a feature. Scale globally adjusts the size of the font, relative to what it would otherwise be. If a local font size command is also applied, then the result is the compounded value.

If the font will be mingled with other fonts in the same place, Scale can tweak a font so that it does not stand out. If Scale does not exceed 1, then the baselineskip will not be affected. Over 1 risks spreading lines to accomodate the extra size; this should not be done for fonts that will appear in the flowing main text. But over 1 is acceptable for display fonts that do not wrap lines and do not mingle with main text.

Example: Orbitron is a special-purpose font with a mechanical or futuristic look. Its characters are much larger and heavier than would be found in book fonts. If I wish to mingle Orbitron with ordinary text, I might load the font like this:

\NewFontFace\orbitron[Scale=0.6]{Orbitron} % Preamble

Then in the document body, I could use it like this, where I have added \textls to spread the letters by a tiny bit:

The message was brief: \textls{\orbitron DIE, EARTHLING.} Captain Withens smiled as he oiled his ray-gun. But ray-guns don't use oil.\par

charscale text

Scale is more often used for fonts that are pre-defined to have a special meaning and location, such as chapter titles or page headers. There, the font is not mingled with ordinary text, and it is OK to use a larger Scale. Then, it is not necessary to use local font scaling commands each time the font is used.

5.2.5 Color and Opacity

Even though the fontspec syntax allows you to set Color and Opacity as pseudo-features when you define a font, the novel class blocks these features. If you attempt to set them as features in a font definition, an error will result. The same applies if you attempt to add them, using \addfontfeature. However, you can still make use of grayscale using ordinary, local color commands.

When you use the graytext class option, you may write text in grayscale, using commands from the included xcolor package. You should only do this for text that is in special locations. For example, if you begin each chapter with a number that is very large, you might wish to make that number gray, so that it does not overpower the main text.

To avoid possible conflicts, the color specification should be chosen from a limited list of names. In order from dark to light: black, blue, violet, darkgray, purple, red, teal, olive, magenta, gray, brown, green, orange, cyan, lightgray, lime, pink, yellow, white. They will all be rendered in shades of gray (of course, black and white will be themselves). You may also choose from this more convenient list: black, gray1, gray2, gray3, gray4, gray5, gray6, gray7, gray8, gray9, white.

If graytext is not chosen as class option, then any color (even white) will be rendered as black.

5.2.6 \CreateFeature{code}{substitutions}

Once in a while, a font has a glyph that you would like to use, but it is not included in any of the font's Open Type feature sets. So, how to you grab that particular glyph? For example: One well-known font has a glyph named emdash.alt, which is not as long as the font's ordinary emdash glyph, and looks better in text. Unfortunately, emdash.alt is not in any of the font's style sets. Without some trickery, only a program such as InDesign can grab that glyph.

Thanks to the included fontspec 2016 update, novel has the necessary trickery. Command \CreateFeature creates a fake Open Type feature code, and assigns your list of substitutions to that code. Use comma-separated entries if there are multiple substitutions. For the case in question:

\CreateFeature{myem}{emdash=emdash.alt}

The code myem was randomly chosen as something that is not already defined among Open Type feature codes. Once specified, the fake feature may be used in any font definition, such as this:

\SetMainFont[RawFeature=+myem]{Adobe Garamond Pro}

Of course, the fake feature has no effect if the font does not have the subsitution. Note that this technique is only used for a list of subtitutions, not for ligatures or any context-dependent features.

5.3 Setting and Defining Fonts

Some font commands are pre-defined by fontspec, for general purposes. These indicate the kind of font: main (meaning serif), sans, or mono. They may be used wherever you wish, for any purpose. Only the mainfont has a particular meaning, as the standard default font for your book text.

Other pre-defined font commands are specific to novel. These fonts are used in specific places, or for specific purposes. They are called by other macros, and are not normally available for general purposes.

Whether the font command is pre-defined by fontspec or by novel, it is "set". But you can also create your own font commands, which are "new". The syntax is explained below.

When more than one feature is used, they must be separated by commas.

5.3.1 Setting Pre-Defined, General-Purpose Font Commands

As a matter of coding style, I use capital camel case ForImportantSettings. Many commands, such as \SetMainFont, are merely an alias for the lowercase commands such as \setmainfont, and the commands may be used interchangeably.

Several standard font selection commands are not specific to novel. You may never need them, but here they are:

mainfont

Intended Usage: serif. Normal text.

Default features: OldStyle numbers, kerning, common ligatures, TeX ligatures.

Preamble: \SetMainFont[features]{font}

Document: \rmfamily{text}

Pre-Configured Font: Libertinus Serif, using Semibold instead of Bold.

Backup Font: If you do not have Libertinus Serif, then Linux Libertine O will be tried.

sansfont

Intended Usage: sans-serif. Rarely used in fiction.

Default features: OldStyle numbers, kerning, common ligatures, TeX ligatures.

Preamble: \SetSansFont[features]{font}

Document: \sffamily{text}

Pre-Configured Font: Libertinus Sans

Backup Font: If you do not have Libertinus Sans, then Linux Biolinum O will be tried.

monofont

Intended Usage: monospaced. Rarely used in fiction.

Default features: TeX ligatures.

Preamble: \SetMonoFont[features]{font}

Document: \ttfamily{text}

Pre-Configured Font: Libertinus Mono

Backup Font: If you do not have Libertinus Mono, then Linux Libertine Mono O will be tried.

In all of the above cases, if neither the default nor backup font is found, and you do not set the font yourself, then Latin Modern (Open Type) fonts will be used, but only because you have them.

• You should never need math mode in a novel. To prevent the software from loading Computer Modern fonts, package unicode-math is used. Note that in novel, the dollar sign $ has its ordinary meaning as dollar, once the Preamble completes. It is not a means to enter or leave math mode.

5.3.2 Setting Novel-Specific, Pre-Defined Font Commands

Class novel comes with a variety of pre-configured header/footer styles and chapter titles. These are described in detail on other documentation pages. You do not have to set these unless you wish to do so, because all of them (except decofont will default to variations on the main font.

Each of these font commands has an "intended" usage, shown in the following map. When you allow novel to style your document, it will automatically choose the right font for the right place. But if you create custom styles, you will have to specify the fonts.

map of standard font locations

chapterfont

Intended Usage: chapter titles.

Default features: kerning, TeX ligatures.

Preamble: \SetChapterFont[features]{font}

Document: {\chapterfont text}

Pre-Configured Font: Duplicate of mainfont, but at Scale=1.6.

subchfont

Intended Usage: chapter subtitles

Default features: kerning, TeX ligatures.

Preamble: \SetSubchFont[features]{font}

Document: {\subchfont text}

Pre-Configured Font: Duplicate of mainfont, but at Scale=1.2.

headfont

Intended Usage: page header and footer

Default features: kerning, TeX ligatures.

Preamble: \SetHeadFont[features]{font}

Document: {\headfont text}

Pre-Configured Font: Duplicate of mainfont, but at Scale=0.92.

decofont

Intended Usage: special decorations and acronyms

Most usage of decofont is indirect, via \decoglyph and \acronym commands.

Default features: kerning, TeX ligatures.

Preamble: \SetDecoFont[features]{font}

Document: {\decofont text}

Pre-Configured Default: NovelDeco.otf   see explanation below

• The defaults will automatically track a change to the mainfont. For example, if you choose Adobe Garamond Pro as the mainfont, then the chapterfont (and all the others except decofont) will be variations of Adobe Garamond Pro. You may still manually set them to other fonts or with other features.

• In novel, certain styles use the fonts according to their descriptive command name. For example, chapterfont is intended for chapter titles. If you use one of the pre-defined chapter title commands, this font will be automatically selected, without the need for you to write {\chapterfont title}. If you choose to create your own chapter styles, you do not have to use chapterfont. But if you do, it will be easier to keep track of things. Similarly, you could use chapterfont outside of chapter titles, but that could lead to confusion if you lose track of your own coding.

• The same applies to the other pre-defined fonts. Each has a place where it is used by default in pre-defined styles. If you write your own style code, then you should choose the appropriate font (but it is not required). And, the font can be used elsewhere in the document, for other purposes.

• Most applications of decofont are indirect. Instead of requesting arbitrary text in this font, you use commands such as \decoglyph or \acronym for specific purposes. The decofont is NovelDeco.otf. Its font license allows modification (if you know how), but then you must change its internal font name and file name. In that case, you can use \SetDecoFont to point to your own derivative of NovelDeco. Do not use this command to choose an entirely different font, or macros that depend on it will fail, perhaps without warning. If you need an entirely different font for your own purposes, create a new font using the command shown below.

5.3.3 Creating New Font Commands

If you wish to create a new font command, so that you can apply it to text, the syntax differs from the "Set" commands shown above.

Suppose that you wish to create a font command \drabble which will be used like this:

{\drabble This text is in the font selected by the drabble command}

Here is how you you define it:

\NewFontFamily\drabble[features]{font family name}

The syntax begins with \NewFontFamily, followed by the macro name you wish to create, followed by the optional Open Type features, and finally the font family name.

If the font is in a family by itself, without accompanying italic or bold variants, use this:

\NewFontFace\drabble[features]{font name}

Note that the new font command works "inside the braces":

{\drabble text}.

If it is part of a family, then the usual commands for selecting italic and bold will choose the appropriate fonts.

• When you define new fonts, kerning and TeX ligatures are enabled by default. Any other features (such as common ligatures) must be explicitly specified by you.

5.3.4 Which Open Type Features Are In a Font?

You have a font. It has Open Type features. But which features does it have? There are several ways to find out, but the simplest and most reliable way is to request a feature, and see what happens. For example:

% !TeX program = LuaLaTeX
% !TeX encoding = UTF-8
\documentclass{novel}
\setlength\parindent{0pt}
%
\NewFontFace\testlibserit[VerticalPosition=Superior]{libertinusserif-italic.otf}
\NewFontFace\testcin[VerticalPosition=Superior]{Cinzel-Regular.otf}
%
\begin{document}
Libertinus Serif, Italic:\\{\testlibserit 0123456789 abcdefghijklmnopqrstuvwxyz \#‡}\par
\null
Cinzel, Regular:\\{\testcin 0123456789 abcdefghijklmnopqrstuvwxyz \#‡}\par
\end{document}\par

The resulting PDF shows that Libertinus Serif, Italic has numbers and lowercase letters as superiors. Cinzel, Regular does not have this feature (if it doesn't have it for these characters, it is not likely to have it for any others).

• Sometimes a font has features that you would like to use, but you do not know they are there. For example, the font linlibertine-regular.otf normally has capital W like most fonts, with three peaks. In its feature ss05, it has an alternative W with four peaks, like Garamond fonts. You can find that information in several ways: (1) Does the font come with documentation? Many do. (2) Is it described on a web site that offers the font? (3) Get a font editor, such as the free FontForge, and open the font. Look at the Element > Font Info > Lookups menu. Then you can discover which features it has, and which characters are contained in each feature. You can also look at the glyph drawings.

• Just remember that there is no specific meaning to a style set, such as ss05. It does whatever the font designer wants it to do, which varies from font to font.

5.3.5 Local Modifications to Open Type Features

If you specify a particular Open Type feature, it will always be generally for that font command. So if you define a new font command with Letters=SmallCaps as a feature (and if the font actually has them), then small caps will be used for that font, whether or not you locally request them with a command such as \textsc.

Often, you can add (or sometimes remove) features on a local basis. For example, suppose that you defined the font without using is ss03 style set. You can locally add that feature to some text, using a command that looks like this:

{\addfontfeature{which feature} applied to this text}

The above code assumes that you are already using the font in that location. You cannot apply ss03 from one font to an entirely different font!

See the fontspec documentation for details of \addfontfeature.

As an alternative the changing features locally, you can define different font commands to call the same underlying font, but with different features. For example, that is how novel defines the default \chapterfont and \headfont. Unless you manually change them, these fonts are the same as the main font. However, these fonts use Lining numbers instead of OldStyle, do not enable common ligatures, and are at different scales.

Two ways to accomplish the same thing:

\NewFontFamily\baskf{BaskervilleF}
\NewFontFamily\baskftab[Numbers=Monospaced]{BaskervilleF} % tnum feature
\begin{document}
Some text {\baskftab hello 123} is here.
Some text {\baskf\addfontfeature{Numbers=Monospaced} hello 123} is here.

5.4 Microtype Setup

The included microtype package comes with standard settings that are, in my opinion, too extreme for fiction. Although there are font to font differences, most modern book fonts have similar properties, as far as microtype is concerned. For this reason, a custom configuration file novel-microtype.cfg is included, and automatically used by novel.

Not all microtype features are available, but the most important ones (protrusion, expansion, tracking) are. The default expansion setting is 20, which corresponds to the ability to tweak for about one character per line of book text. It is large enough to be useful, small enough to be inconspicuous. You may change it using standard \microtypesetup commands, if you wish.

If you do not explicitly request a configuration file, perhaps by only changing stretch and shrink, then novel-microtype.cfg will still be used.