Fix regression with automatic detection and selection of small caps when the font script or language was requested but not found. (#517)
Add additional tests to check against regressions. (#516, #518)
Improve message in log file when defining a font without small caps.
Demote warnings when Script or Language are requested but not found to the log file instead of the console. (#421)
Now that Script
and Language
are retained even if the font doesn’t support them,
we can no longer check for font feature existence before applying the OpenType tags.
This release removes checking. (#515)
Fix bug/regression in loading font families constructed from fonts with different file extensions; e.g.: (#514)
\setmainfont{MyLato}
[
UprightFont = Lato-Regular.ttf ,
BoldFont = FiraSans-Bold.otf ,
]
Language
feature (primarily exposed through babel
package). (#513)expl3
for deprecated commands.Letters=Uppercase
(LuaLaTeX only) as an interface to luaotfload
feature which automatically performs case-changing at the font level
(i.e., not using macros to process the text tokens). (#461)Fix long-standing bug when loading fonts which only have extensions specified internally to the font shape (#504). E.g.:
\setmainfont{pagella}[ UprightFont = texgyrepagella-regular.otf ]
Script=CJK
) and it is not
available within the font, fontspec
previously would fall back on a default script.
This is now changed to always pass through the requested script so the renderer can
make use of that information regardless of whether the font itself supports the script.
(#507)hypenchar
settings seemingly erroneously. (#344)math=foo
, where fontspec
is expecting math=true
. Now, the global option will be ignored. (#501)Scale=MatchAveragecase
parameter which averages Scale=MatchLowercase
and Scale=MatchUppercase
.verbose
to undo silent/quiet.euenc
/tuenc
options are now obsolete (TU is the only encoding).KpseOnly
.SwashFont
and BoldSwashFont
features to support LaTeX’s now-builtin \textsw
and \swshape
commands, with matching SwashFeatures
and BoldSwashFeatures
.
A simple implementation that has scope to get more complex if need be.b
and bx
font series by default to avoid spurious warnings in some
cases, and broken behaviour in pathological cases.language=DFLT
changed to language=dflt
.SlantedFont
and BoldSlantedFont
being specified in a .fontspec
file.unicode-math
related log files showing the wrong
NFSS-based font ‘identifier’.fontspec
was loaded
(e.g., to use legacy fonts by default but use a fontspec
font occasionally).polyglossia
and perhaps elsewhere when Script
is set without
a corresponding Language
.\familydefault
instead of \rmdefault
when calculating scaling parameters in
Scale=MatchLowercase
and Scale=MatchUppercase
.Letters=Uppercase
to Style=Uppercase
, as this feature does
not generally affect the letters themselves, only symbols and accents.
The old name will be retained for the time being.Style=TitlingCaps
to Style=Titling
.expl3
.\addfontfeatures
would overwrite previous ones when using UprightFeatures={...}
or similar.
Now the ‘UprightFeatures
’ are accumulated.Renderer=HarfBuzz
(the old Harfbuzz
name is kept for compatibility)\verbvisiblespace
has now been offered by the kernel for a year.\rmdefault
, \sfdefault
, \ttdefault
if desired. Note this could cause problems if the fontspec
encoding does not
match the encoding of the specified families.\EncodingCommand
.HyphenChar
feature in XeLaTeX.Ligatures=TeXOff
even though it’s not a real OpenType feature.
(Functionally equivalent to Ligatures=TeXReset
.)Numbers=Arabic
, HypenChar=None
for \ttfamily
.muzimuzhi
!).FakeBold
being available in luaotfload
(thanks Khaled!).tlig
feature in LuaTeX.FontFace
options. Thanks to Bob Tennent for the test file and bringing
the problem to my attention.Fix regression in loading Language=Turkish
. This now allows users to define more
than one OpenType tag when defining a language name, where the first tag found is
the one selected for the font. E.g.,
\newfontlanguage{Turkish}{TRK,TUR}
when selected, this first checks for the existence of the TRK language tag, and if not found then checks for the TUR language tag to use if available.
Add new Renderer
options for LuaTeX that enable the HarfBuzz engine. These only
work running under luahbtex
and are currently experimental. The new options are
Harfbuzz
, OpenType
, AAT
, and Graphite
.
Always try to remove ‘clashing’ font features inside \addfontfeatures
even in
cases when the requested font feature doesn’t exist. E.g., now if a font is loaded
with Numbers=OldStyle
and doesn’t have Numbers=Lining
, requesting the latter
will still reset the former.
Add pxfonts
, txfonts
, newpxmath
, newtxmath
, mtpro2
to the list
of packages that automatically invoke no-math
.
Add \providefontfamily
, \setfontface
, \renewfontface
, and \providefontface
.
Add local/global distinction with \fontspec_(g)set_family:Nnn
and \fontspec_(g)set_fontface:NNnn
.
LocalForms=On/Off/Reset
to control the locl
OpenType tag.\-
which is nowadays defined correctly by the LaTeX2e kernel.\verbvisiblespace
command is defined in a future version of LaTeX2e.ScaleAgain
feature for compounding scale factors.
(This is largely to support unicode-math
but may be useful by others.)\oldstylenums
no longer overwritten if textcomp
loaded after fontspec
.expl3
for deprecated commands.\hbar
if anyone is relying on fontspec
to emulate legacy maths.\defaultfontfeatures
to specify a font face by a custom name can now use
Font=
to specify the filename.expl3
internals updated so loading expl3
with the check-declarations
option will run without error.FontFace
in which spaces weren’t being ignored.Bugfix for clash introduced with last version. When loading babel
before fontspec
the following error arose:
! Control sequence \latinencoding already defined.
\tracingoutput
mode.expl3
option check-declarations
.HyphenChar=None
in LuaLaTeX. (Hyphenation and font choice are
decoupled in LuaTeX, except for this one setting.)unicode-math
to fix some cross-over code.HyphenChar
feature when running LuaTeX — use \prehyphenchar
LuaTeX primitive instead.Scale=MatchLowercase
.IgnoreFontspecFile
to avoid loading the .fontspec
file for a font.\fontspec_if_feature:nTF
(which broke realscripts
, oops — must improve my test suite)..Reset
and ResetAll
keys.\newfontface
.\emph
(and \emfontdeclare
) to act only on the NFSS font shape; using the series as well was too fragile.\strong
as the “weight” analogy to \emph
. This will need some extra syntactic sugar from fontspec
before it becomes truly useful.Numbers=Tabular
alias for Numbers=Monospaced
.Numbers={Lining,Proportional}
in which only the first choice would be recognised.RawFeature
and “proper” fontspec
features.C:\...
file paths in Windows couldn’t be used.Ligatures=TeX
overrode Mapping=..
regardless of where the former was declared in the feature list.\newopentypefeature
.Improve monospace font in documentation.
fontspec
interface, but this issue should soon be addressed by the luaotfload
package.\fontspec_if_small_caps:TF
\emph
(!!)TU
font encoding now default, with encoding files provided by the kernel.Ornament=
n corresponding to OpenType feature +ornm=
n.FontIndex=
n to support TrueType Collection (TTC) files.\emph
is now much smarter and will cleverly nest even if manual font changes are made.Numbers={Uppercase,Lowercase}
will define only +onum
rather than the previous behaviour of +lnum;+onum
to let the engine sort things out. Coverage may still be preliminary.\fontspec_if_current_feature:nTF
for querying selected features based on their OpenType tag.\IfFontFeatureActiveTF
for querying selected features based on their fontspec
specification.Feat
/FeatOff
/FeatReset
forms to disable and reset them.ResetAll
provided for all “tag-based” OpenType feature keys. (E.g., Ligatures=ResetAll
.)Script
selection.FeatureFile
, since this is no longer supported under LuaLaTeX
(there are other methods to perform the same thing, but no “easy” user interface that fontspec
can provide at this stage).fontspec
loaded before `\documentclass’.unicode-math
was broken.)fontspec.cfg
file to the distribution.+trep
from Ligatures=TeX
(no longer necessary).l3build
; more to come.[tuenc]'; once it becomes the default (later this year),
[euenc]` option will revert to the old behaviour.\emfontdeclare
for defining font shapes when arbitrarily nesting the \emph
command.Script=Bengali
, fontspec will first query the font for the bng2
OpenType script, and if not found select beng
.\addfontfeatures
that were causing some font-loading confusion.\baselineskip
and \f@size
would (possibly) change values after loading the package.fixltx2e
’s code for footnote symbols; handled by LaTeX2e now.ExternalLocation
for the simpler (and identical) Path
option.[Path=...]
to be specified for individual font faces.\@fnsymbol
and avoid overwriting it if already fixed.Renderer=Graphite
” (off-by-one error).\aliasfontfeature
.Significant change to the user interface: instead of \setmainfont[features]{font}
, you now write \setmainfont{font}[features]
.
Backwards compatibility is of course preserved.
The reason for this change is to improve the visual comprehension of the font loading syntax with large numbers of font features.
Defaults for symbolic font families like this can now be specified with
\defaultfontfeatures[\rmfamily]{...}
or
\defaultfontfeatures[\headingsfont]{...}
\newfontfamily\headingsfont{...}
New PunctuationSpace=WordSpace
and PunctuationSpace=TwiceWordSpace
settings, intended for monospaced fonts; these force the space after a period to be exactly one or two spaces wide, respectively, which preserves character alignment across lines.
The features above now allow changes to the default settings:
Ligatures=TeX
is enabled by default with \setmainfont
and \setsansfont
.WordSpace={1,0,0}
and PunctuationSpace=WordSpace
are now enabled by default for \setmonofont
to produce better monospaced results.fontspec.cfg
file.)SizeFeatures
can now be nested inside ItalicFeatures
(etc.) and behaves correctly. This has been a very long overdue bug!
New feature NFSSFamily=ABC
to set the NFSS family of a font to “ABC
”. Useful
when other packages use the \fontfamily{ABC}\selectfont
interface.
New feature FontFace = {series}{shape}{font}
allows a font face to be loaded with a specific NFSS font series and font shape.
A more verbose syntax allows arbitrary font features as well (and this also plays nicely with SizeFeatures
):
\fontspec{myfont.otf}[
FontFace = {b}{ui}{Font = myfont-bui.otf, <features>} ,
]
The code above, for example, will allow a bold upright italic font to be selected using the standard NFSS interface: \fontseries{b}\fontshape{ui}\selectfont
.
\defaultfontfeatures+
(note the +
) can now be used to append to the default font feature set.
Setting the SmallCapsFont
using the *
-replacement notation has been improved/fixed.
\defaultfontfeatures
<fontname>.fontspec
per-font configuration files[CharacterVariant=5:2]
.fontspec
-compatible \oldstylenums
and \liningnums
commands.\fontspec_set_fontface:NNnn
(for use when
\zf@basefont
might previously have been queried).xkeyval
package no longer used for option processing;
expl3
’s l3keys
used instead.
This allows fontspec
to be loaded before \documentclass
(thanks Heiko Oberdiek for reporting the issue)
and fixes a potential conflict with the preview
package
(thanks again Vafa).expl3
support to latest CTAN version.Fix bug with detecting font features/scripts in some cases with:
- `\fontspec_if_feature:n(TF)`
- `\fontspec_if_language:n(TF)`
- `\fontspec_if_current_script:n(TF)`
- `\fontspec_if_current_language:n(TF)`
Bug fix and documentation tune-up.
Actually the final release before TeX Live 2010.
CharacterVariant
now supportedLigatures=Historical
is now Ligatures=Historic
for consistencyFinal release before TeX Live 2010.
\fontspec_glyph_if_exist:NnTF
FeatureFile=...
and Numbers=Arabic
.Parsi
and Persian
synonyms for Language=Farsi