Change History -------------- 2024-02-28 luaotfload v3.28 * Improving compatibility with Windows paths 2024-02-14 luaotfload v3.27 * Improved support for arabic mark rendering in \texttt{node} mode. * Better ordering of GSUB substitutions. * Avoid dropping hyphens in DVI mode * Compatibility with \identifier{luatex} 1.18 * Various bug fixes 2023-08-31 luaotfload v3.26 * Reimplement mathsize feature recently dropped from fontloader luaotfload v3.25 has been skipped 2023-08-19 luaotfload v3.24 * Add experimental configuration option to change default font lookup location precedence. * Support xdvipsk in DVI mode * Preserve soft-hyphens when dropping default ignorable characters * Hash cache keys to better support certain rather unflexible operating systems * Various bug fixes 2022-10-03 luaotfload v3.23 * More reliable ToUnicode mappings in Harf mode * Various bug fixes 2022-06-15 luaotfload v3.22 * Tailored case mappings * Avoid database rebuilds when switching Lua versions * Improved attribute settings of ActualText nodes in harf mode * Callback-based customization for color parameter * Various bug fixes 2022-03-18 luaotfload v3.21 * Fix performance regression introduced in version 3.19. * More reliably support TrueType based variable fonts in harf mode. 2022-02-27 luaotfload v3.20 * A bug in luaotfload-tool has been corrected. * The directory for the font name database has been corrected and no longer uses the development directory. 2022-02-24 luaotfload v3.19 * When used with LuaTeX 1.15.0 or newer, variable fonts are supported when using the harf shaper too. * A new algorithm for selecting fonts based on font family names allows to more reliably load fonts based on their family name. * The compiled font database gets compressed to reduce disk space and improve performance on newer systems. * Text automatically gets normalized to Unicode's NFC before shaping. This improves rendering for text written in decomposed forms for many fonts. This can be turned off by passing the -normalize font feature. * The fontloader has been synced with the context code from 2022-02-24. This fixes some broken rendering of TrueType based variable fonts. * A number of small bugfixes. 2021-05-21 luaotfload v3.18 * Allow using variable fonts without explicitly specifying any axis values * The fontloader has been synced with the context code from 2021-05-20 * Multiple small fixes, mostly concerning discretionaries in harf mode. 2021-01-08 luaotfload v3.17 * The fontloader has been synced with the context code from 2021-01-07. This improves support for advanced CFF based OpenType variable fonts. 2020-12-31 luaotfload v3.16 * The fontloader has been synced with the context code from 2020-12-30 * The entry point is called luaotfload.lua instead of luaotfload-main.lua (but the old name is still provided for compatibility). * pre/post_shaping_filter callbacks has been added. * The number of lua-files and submodules shown in the log-file has been reduced. But it is extended again by setting the environment variable LUAOTFLOAD_TRACE_SUBMODULES=1. * The HarfBuzz based shaper will in some situations drop hyphenation points. This happens less frequently now since the new version uses first/second discretionaries (the mechanism described in the LuaTeX manual, section 5.6 for the of-f-ice example) to support a limited amount of nesting. * When the node shaper is used, experimental support for OpenType variable fonts has been added. To use them, set the font feature axis to a comma separated list of axis names and values. (E.g. axis={weight=600}) The supported axis names and value range depend on the font. * The font features upper and lower can be used to map the text of a font to upper or lowercase before displaying it. Currently this implements the untailored Unicode case mapping algorithm, but it is planned to add tailoring later. * A number of small bugfixes. 2020-09-02 luaotfload v3.15 * The font database is updated more reliably if fonts get deleted. * In multiple error cases, error messages are shown instead of silently generating bad output. * Write glyph ids instead of internal identifiers to DVI files. This allows using OpenType fonts when working with dvilualatex. (This requires additional support from the DVI reader) * The set of font features which are enabled by default has been changed to be more similar to HarfBuzz. Especially Above-base mark Positioning (abvm), Below-base mark Positioning (blwm), Contextual Alternates (calt), Cursive Positioning (curs), Distances (dist), and Required Contextual Alternates (rclt) are now enabled by default for all scripts. * Added a mathfontdimen font feature which allows emulating fontdimen values from xetex or traditional \TeX\ math fonts. * Initial support for variable fonts in node mode. 2020-05-01 luaotfload v3.14 * bug fix for luaotfload-tool, luaotfload-tool --list=basename failed (texlive list) * fontloader patched to resolve issue #124 2020-05-01 luaotfload v3.13 * A problem with text fonts with minimal math table has been fixed (issue 148.) In new luaotfload versions, math parameters will only be loaded for fonts with `script=math`. If you do want to set math parameters for fonts with other scripts, add `-nomathparam`. We strongly recommend against setting math parameters for text fonts because these would overwrite parameters from actual math fonts. * A bug in harf-mode that could lead to missing chars and freezing was corrected (issue 141). * A font size problem in harf-mode has been fixed (issue 147). * An error if the main function was called twice has been fixed (issue 145). * Allow .ttf fonts to be loaded with a map file with luahbtex (issue 142) (issue 143). * Fonts installed for a single user on windows are now found (issue 138). * A problem with wrong \TeX-ligatures in harf mode has been fixed (issue 139). * The debugging output has been changed (issue 131). * a missing U+1E9E (Capital ß) in a font is replaced by SS instead of giving a missing character. * extended the color handling to be compatible with the luacolor package * sync with context files from 2020-04-30 2020-02-02 luaotfload v3.12 * new experimental feature multiscript * new experimental feature fallback * extension of the color feature to color output glyphs * Small bug correction 2019-11-10 luaotfload v3.11 * Changed the handling of the script key in harf mode to be more compatible with behaviour of the node mode. It now expects the name of a script that is actually in the font instead of a ISO 15924 script tag. See issue 117. * Corrected a number of small typos and bugs in harf mode. 2019-11-04 luaotfload v3.1 * added code to use the harfbuzz library of luahbtex ("mode=harf") * fonts in ttc can now be indexed by name * remove a number of lua tables from the global enviroment (_G) to reduce the polution. Kept there are only the tables luaotfload, fonts and nodes. * sync with context files from 2019-10-29 2019-09-13 luaotfload v3.0 * invisible option to avoid that some glyph are shown (issue #63) * correct small bug in xheight calculation 2019-08-11 luaotfload v2.99 * some clean up * fix a bug in luaotfload.aux.resolve_fontname() (issue #76) * removed dependency on slnunicode (PR#72) * sync with context files from 2019-08-11 2019-06-20 luaotfload v2.98 * add embolden key * add missing char detection issue #65 * sync with context files from 2019-07-04 2019-05-18 luaotfload v2.97 * fix issue #47 * fix whatsits interfering with letterspacing (issue #53) * fix luaotfload-tool switches version and find not working correctly (PR#59) * fix luaotfload-tool support of ttc fonts (PR#58) * sync with context files from 2019-05-18 (improves handling of large fonts, see e.g. issue #55 and PR#58) 2019-01-28 luaotfload v2.96 * repaired broken letterspace (issue #38) * changed handling of spaces in letterspacing * changed handling of ligatures in letterspacing * corrected detection of bold fonts (issue #41) 2019-01-28 luaotfload v2.95 * imported context files of 2019-01-28 * changed bold indification (for lucida demi bold) (issue #33) * changed handling of tex file (issue #35) * changed resolver code (pr #36) 2019-01-14 luaotfload v2.94 * imported context files of 2018-12-19 * removed luaotfload-characters from init - use the basics-chr instead. * allow custom fontloaders through the mode-key https://github.com/u-fischer/luaotfload/pull/25 * resolved issue #29 2018-10-28 luaotfload v2.93 * reinserted forgotten man files * unified and improved version/module info for automatic tagging 2018-10-21 luaotfload v2.92 * better deva support, issue #9 * test for --safer and abort, issue #12 * newest context files * correct file: syntax for tfm files, issue #11. 2018-10-03 luaotfload v2.91 * solved copy & paste of variant glyphs, https://tex.stackexchange.com/questions/451442/localized-glyphs-locl-have-unicode-value-ufffd * solved problem with PUA no longer accessible with \char, see https://github.com/u-fischer/luaotfload/issues/7 2018-09-21 luaotfload v2.9 * added various testfiles for the l3build system/travis tests to the github repository * solved a bug regarding directions https://github.com/u-fischer/lua-font-pond/issues/12 * adapted luaotfload-letterspace to new fontloader * solved the case problem see https://github.com/u-fischer/lua-font-pond/issues/6 * Fix parsing of font.conf see https://github.com/lualatex/luaotfload/pull/420 * imported new versions of the context files - fontloader is compatible with luatex 1.08 again * adapted the files list * created a luaotfload-filelist.lua which describes the files of the package * removed some not functional files * adapted mkstatus to use the new file list. 2017-01-29, luaotfload v2.8: * Latest fontloader code. * Support for Luatex 1.0. * Integration of the extended AFM handler. * Fixes to font family assignment. * Skip initialization if Luaotfload is already loaded. * Optical sizes advertised by fonts treated as big points. 2016/04/21, luaotfload v2.7: * Rework lookup chaining. * Combining glyphs from different fonts (``combo: ...`` requests). * Glyph fallbacks. * Latest fontloader code. * Adapt packaging to changed upstream file layout. * Remove support for builtin Fontforge libraries (this includes the PFA, PFB, DFONT, and feature file readers). * Allow configuration of anonymous lookups. 2015/12/09, luaotfload v2.6 * Add ``sign`` target to makefile for automated package signing. * Add ``--dumpconf`` option to luaotfload-tool for generating configuration files. * Move fontloader files to subtree src/fontloader. * New script ``mkimport`` facilitates maintainance of code imported from Context. * Revised letterspacing, now utilizing the ``node.direct`` interface. * Revized colorization of fonts, utilizing ``node.direct`` (Dohyun Kim). * Colorization was moved to the ``post_linebreak_filter`` stage. * Move remaining functionality from ``luaotfload-override`` into initialization. * Write names index if fonts were removed. * Separate module loading from initialization. * Custom fontloader package with the files from Lualibs removed. * Swappable fontloader via configuration option. * Lualibs are now a dependency when used in a TeX run as well. * Respect interword spaces when letterspacing. 2014/07/13, luaotfload v2.5 * Remove legacy code. * Remove compatibility with the old mkluatexfontdb script. * Remove test directory. Use https://bitbucket.org/phg/lua-la-tex-tests instead. * Remove luaotfload.lua from luaotfload.dtx; it is now a separate file luaotfload-main.lua. * Standard source tree structure: the code is now located in the ./doc, ./scripts, ./src, ./build, and ./misc directories. * Move the heavier LPEG parsers from luaotfload-features (syntax) and luaotfload-database (fontconfig) into the new file luaotfload-parsers.lua. * Move logging routines from luaotfload-override in to luaotfload-log. * Scan local font files (``--local`` flag to luaotfload-tool, flag ``scan_local`` during TeX run). * Add bisection mode (``--bisect``) to luaotfload-tool. * Add functions for accessing the database: ``aux.font_index()`` and ``aux.read_font_index()``. * Distinguish XDG configuration paths (Reuben Thomas) * Optional configuration via rc files. * Configure default features via configuration file. 2013/12/31, luaotfload v2.4 * Additional self-tests, now in separate file (luaotfload-diagnostics.lua) * Better path and directory handling, especially on Windows * database now indexes Type1 fonts (PFA, PFB) and makes them accessible with style modifiers (requires --format=+pfa,pfb option to luaotfload-tool) * Test runner (script mktests) * New luaotfload-tool option: ``--no-reload`` * ``luaotfload-tool --find`` now understands request syntax * text (Lua script) version of the font index is filtered through gzip by default, the ``--no-compress`` option of luaotfload-tool will prevent this * rename ``luaotfload-merged.lua`` (the fontloader package from Context) to ``luaotfload-fontloader.lua`` * Treat arguments of the ``letterspace`` option as percentages; add ``kernfactor`` option that behaves as before. * Remove imported version of typo-krn.lua. Xetex-style per-font letterspacing is now the canonical method. * Merge functionality from extralibs (fake Context layer) into luaotfload-letterspace.lua as it is only needed there anyways. 2013/07/10, luaotfload v2.3a * Detect LuaJIT interpreter (LuaJITTeX) * Self-test functionality for luaotfload-tool.lua (option ``--diagnose``) 2013/07/03, luaotfload v2.3: * New experimental lookups: ``kpse`` (kpathsea), ``my`` (callback) * Precedence of texmf over system fonts can be requested using the ``--prefer-texmf`` option of luaotfload-tool * Resolve file names to full paths at later stage * Rewrite the output of ``\fontname`` via ``patch_font`` callback * Allow blacklisting directories * Drop compatibility layer * Remove dependency on luaotfload-lib-dir (references to dir.glob() and dir.mkdirs()) * luaotfload-tool now displays extensive information about a font if given the argument --inspect 2013/05/20, luaotfload v2.2: * There is now a central, non-personal dev repo on github: https://github.com/lualatex/luaotfload * Synchronisation with ConTeXt from TeXLive 2013, inducing backward-incompatible changes in the font structure. A backward-compatibility layer has been added for the current versions of fontspec, unicode-math and microtype, but it should disapear in a future version. * Synchronisation with ConTeXt is now easier and can be done by just updating luaotfload-merged.lua (<= luatex-fonts-merged.lua from the LuaTeX-Plain format) * Improved and extended documentation * Font filenames are stored in the database (file: lookups more efficient) * Optional caching of name: lookups (uses separate cache file) * Rewriting and increased fidelity of XeTeX emulation * Renaming mkluatexfontdb into luaotfload-tool (the old behavior is kept if the script is symlinked or renamed mkluatexfontdb) * Added options to luaotfload-tool for simple database queries * Logging facilities have been rewritten and allow for more granularity * All files have been renamed, abandoning cryptic acronyms; also the new prefix is "luaotfload" (<= "otfl") * The Adobe Glyph List (font-age.lua) is now built via script (mkglyphlist) * Hans adapted the font loader to several of our requests (attribute allocation, custom merged package name etc.) * Auxiliary functions for package authors * Man page for luaotfload-tool * Unsupported v1.3 codebase is included in the luaotfload-*lua files. Crude, but effective way to support older Luatex binaries * implemented basic cache control/stats option for luaotfload-tool * Character list is generated from char-def.lua (mkcharacters) 2013/04/27, luaotfload v1.3: * blacklisting lingoes.ttf (segfaults) * unblacklisting ttc fonts (warning: may break LuaTeX < 0.65) * fixing font cache file name with non-ascii characters 2013/04/25, luaotfload v1.29: * Reverting the unified resolver, as the database was rebuilt too often which made the compilation longer. This will come back improved in the next version, hopefully for TeXLive 2013. * Fix resolving of Libertine Mono * Fix a bug that made fontconfig files not parsed when OSFONTDIR is set 2013/04/11, luaotfload v1.28: * Adapting to LuaTeX 0.75 * Fix small documentation issues in mkluatexfontdb * Fix possible infite loop with fontconfig config files references * Adding semibold synonym for bold * file:xxx syntax now uses the same search function as name: which make more fonts recognized 2012/05/28, luaotfload v1.27: * Fix "endless loop in charlist" with some OpenType math fonts 2012/03/27, luaotfload v1.26: * Enable setting italic correction values by default * Fix finding demibold italic fonts 2011/04/21, luaotfload v1.25: * Fix bug loading *.dfont fonts * Misc. documentation fixes * Fix the need to manually delete font cache when feature file is changed * Hack to support Demi fonts 2011/02/16, luaotfload v1.24: * Fix infinite loop first time creating a name list 2011/02/04, luaotfload v1.23: * Fix a typo breaking fonts.names.scan() 2011/01/25, luaotfload v1.22: * Remove --database-dir and --sys options from mkluatexfontdb * Provide a "luaotfload.patch_font" callback for on the fly patching of fonts * Some documentation improvements 2010/11/11, luaotfload v1.21: * Adapt to luatexbase v3.0 2010/10/16, luaotfload v1.20: * Make cache directory creation more robust * Fix GPOS mark placement in left-to-right direction * Reject fonts missing 'names' table * Sanitize color value before attempting to use it 2010/09/12, luaotfload v1.19: * fix LaTeX's detection (made Tikz fail under a non-LaTeX format) 2010/07/15, luaotfload v1.18: * fix for \overwithdelims and brothers 2010/07/14, luaotfload v1.17: * allow stylistic sets features in base mode * don't scale percent math constants 2010/07/12, luaotfload v1.16: * support keys prefixed by "+", for compatibility with XeTeX * remove the progress bar from mkluatexfontdb, it is of little use now * minor code a documentation cleanups 2010/06/28, luaotfload v1.15: * anum feature did not work as advertised * add system shipped TTC fonts on Mac OS X to the blacklist, until the culprit ones are isolated 2010/06/25, luaotfload v1.14: * fix mkluatexfontdb which was broken in the last version * support general font blacklisting feature * temporally re-enable ttc fonts on Mac OS X * make sure mkluatexfontdb in verbose mode prints font filename before attempting to load it 2010/06/24, luaotfload v1.13: * fix typo in font cache path 2010/06/18, luaotfload v1.12: * populate MathConstants table for OpenType math fonts, now such fonts can be really used in math mode. * sync with ConTeXt beta 2010.06.18 * change cache dir to $TEXMFCACHE/luatex-cache/generic 2010/06/09, luaotfload v1.11: * when asking for a font with style that doesn't exist, we would return nothing, now we fallback to the regular font 2010/06/07, luaotfload v1.10: * provide a fonts.names.scan(dir) function that temporally loads fonts from the specified dir into the names database * Log loaded font file before attempting to open it * fix XeTeX's square brackets syntax so that it doesn't trigger database update * fix loading fonts with absolute path * add \fontdimen8 support, for XeTeX compatibility * be more verbose when updating the font database * improve fonts.conf parsing * make sure when a TFM font is requested we don't end up loading a non-TFM font with a similar name instead * Remove --fc-cache option from mkluatexfontdb.lua, since we no longer use fontconfig tools * misc. bug fixes 2010/05/30, luaotfload v1.09: * the last release didn't even load * fix passing --destdir to mkluatexfontdb 2010/05/28, luaotfload v1.08a: * revert experimental code that was committed by mistake 2010/05/28, luaotfload v1.08: * fix misc. bugs with system fonts scanning * parse fontconfig configuration directly, no longer dependant on 'fc-list' * now if no font names database is found, luaotfload will generate it, also it will force an update of the database if the asked font can not be found * avoid loading non-tfm fonts when the user asks for tfm font * update the documentation * blacklist .ttc and LastResort font on mac. * sync with ConTeXt beta 2010.05.22 * fix attribute handling * clarify license * misc. bug fixes 2010/05/10, luaotfload v1.07: * using the new luatexbase package * synchronizing with latest ConTeXt stable 2010.05.08 * adding support for microtypography * adding support for color and transparency * adding a script to generate a font database with TeX and system fonts * more verbose log file 2010/02/07, luaotfload v1.06a: * more complete tlig and trep * defaults options changed to "+ccmp;+locl;+rlig;+liga;+clig;+kern; +mark;+mkmk;" * supporting windows absolute path 2009/12/01, luaotfload v1.06: * synchronizing with ConTeXt stable 2009.11.26 * adding backward compatibility with LuaTeX 0.40.6