# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). ## [Unreleased] ## [v3.0.4] - 2024-12-22 ### Changed - `\PrintFontSizeParameters` and `\PrintAllFontSizeParamters` now print the font step and font scale rounded to 5 decimal places. (`\CurrentFontStep` and `\CurrentFontScale` are unchanged.) ## [v3.0.3] - 2024-12-09 ### Changed - The documentation now displays code in a light-gray background using the `tcolorbox` package. This subtle contrast enhances readability. ## [v3.0.2] - 2024-11-25 ### Changed - Keys and commands that take an integer expression as a value or argument now remove the extra tokens that were not part of the integer expression. - Added more explanatory code comments. ## [v3.0.1] - 2024-10-20 ### Changed - Improved the error message when the font size is not a positive length. - Documentation improvements. ## [v3.0.0] - 2024-10-05 ### Added - Added new `expl3` public variables that store the current font step, font scale, font size, and font baselineskip. They are set in the `selectfont` hook. - `\l_fontscale_step_fp` - `\l_fontscale_scale_fp` - `\l_fontscale_size_dim` - `\l_fontscale_baselineskip_skip` ### Changed - This update includes some changes that are backwards incompatible. - The package commands now use the above variables instead of `\f@size` and `\f@baselineskip`. This changes the behavior of `\CurrentFontStep`, `\CurrentFontScale`, and `\CurrentFontSize` within the second argument of `\fontsize` because `\fontsize` sets `\f@size` to the new font size before expanding its second argument. - `\PrintFontSizeCommand` no longer tests if the current font baselineskip equals the font baselineskip of any font size command from `\tiny` to `\Huge`. - `\SetFontStep` now rounds the new font step to 5 decimal places. This is important when checking if it equals the font step of any font size command from `\tiny` to `\Huge`. - A default `pt` is now appended only in user-level commands, not in internal `expl3` functions. - `\fontscalesetup` now processes the keys slightly faster when the key `/baselineskip` is not set. - Documentation improvements. ### Removed - `\CurrentFontSizeCommand` (redundant with `\CurrentFontSize` and `\CurrentFontBaselineskip`) ### Fixed - The error message for `\SetFontStep*` when the current font step is undefined no longer writes `\SetFontStep*`. This would be incorrect if its corresponding internal function was used instead of `\SetFontStep*`. - The internal functions of `\PrintSampleText` now correctly enclose their contents within a group. ## [v2.4.0] - 2024-09-10 ### Changed - `\fontscalesetup` no longer issues a warning if the lengths of the font baselineskips are not ordered from `\tiny` to `\Huge`. - Code improvements. ## [v2.3.0] - 2024-09-06 ### Changed - The package commands no longer check if the font baselineskip is less than the font size. ## [v2.2.0] - 2024-08-29 ### Changed - Improved the messages issued by this package. ### Added - `\SetFontBaselineskip` ## [v2.1.0] - 2024-08-12 ### Changed - Documentation improvements. ### Added - `\CurrentFontSizeCommand` ## [v2.0.0] - 2024-08-02 ### Changed - This update includes many changes that are backwards incompatible. - The documentation has been completely rewritten. - Package description changed from "A user interface for setting document font sizes" to "A flexible interface for setting font sizes". - The code no longer uses `\@setfontsize`. - The font size commands provided by this package now do nothing, except issue a warning, if used in math mode. - The base font size of the musical typographic scale is now set by the new key `musical/base`. - `\PrintFontParameters` renamed to `\PrintFontSizeParameters`. - `\PrintAllFontParameters` renamed to `\PrintAllFontSizeParameters`. - `\PrintSampleText` uses a `+m`- instead of an `O`-type argument. - `\PrintFontSizeCommand` prints `\undefined` instead of `UNDEFINED`. - `\fontscalesetup` is now removed in `\text_purify:n`. ### Removed - Keys `typographic-scale=modular` and `modular`. - Key `ignore-order` (no support for using `\tiny` to `\Huge` in the wrong order). - Key `reset` (very rarely used). - Public `prop` variables for each font size command from `\tiny` to `\Huge`. (They are redundant with the other public variables and programmers will very likely prefer using their own `prop` variables.) ### Added - `\fontscalesetup` now has an optional starred argument which first resets the keys to their initial values. - Key `musical/base` (explained earlier). - The package commands now issue a user-friendly error message if the font size is a zero or negative length. - The package commands now issue an error if the font baselineskip is less than the font size. - The package commands that would produce a low-level error if used in math mode now issue a user-friendly error message instead. ### Fixed - Now correctly checks that the package requires `LaTeX2e` version 2023-11-01 or newer. - The keys `` no longer incorrectly treat a `/` within a brace group as the delimiter. ## [v1.3.0] - 2024-05-17 ### Added - `\fontscalesetup` now provides error checking for the keys `modular/ratio`, `musical/ratio`, and `musical/notes`. - It is now documented that `\fontscalesetup` uses `\normalsize` after it finishes processing the package keys. ### Changed - The code now regularly uses `V`- and `v`-type arguments to get the value of a variable. - The code now uses private `expl3` wrappers around the `LaTeX2e` commands `\@setfontsize`, `\fontsize`, and `\selectfont`. ## [v1.2.2] - 2024-04-29 ### Changed - Improved package messages when issuing errors and warnings. - Code improvements. ### Fixed - The documentation no longer incorrectly compares `\ScaleFont` with `\scalefont` from the `scalefnt` package. - The internal function for the key `reset=preamble` now correctly initializes to `\prg_do_nothing:`. ## [v1.2.1] - 2024-04-21 ### Changed - Improved the error message for `\SetFontStep*` when the current font step is undefined. - Documentation improvements. ## [v1.2.0] - 2024-04-15 ### Added - It is now documented that the keys and commands provided by this package take as a value or argument a dimen, skip, floating point, or integer expression instead of simply a size, skip, number, or integer. - This package now includes a CHANGELOG file. ### Changed - Documentation improvements. ### Fixed - The key `reset=preamble` and `\SetFontStep` no longer rely on undocumented `expl3` features. - Corrected typo in the documentation. ## [v1.1.1] - 2024-04-07 ### Changed - Improved performance, especially when using a musical typographic scale. - Small documentation improvements. ## [v1.1.0] - 2024-03-31 ### Added - `\SetFontStep`, `\SetFontScale`, `\SetFontSize`, `\ScaleFont`, and `\SetFontSizeBaselineskip` are now set up to work with `\text_purify:n`. ## [v1.0.3] - 2024-03-26 ### Changed - Code improvements, particularly to document commands defined with optional arguments. ## [v1.0.2] - 2024-03-22 ### Changed - Performance and code improvements. ### Fixed - Fixed issue where the key `reset=preamble` relied on an unsupported `V`-type `bool` argument. ## [v1.0.1] - 2024-03-08 ### Added - Added the `.tex` sources for the documentation. - Added the CTAN link to the `.sty` and README files. ## [v1.0.0] - 2024-03-06 ### Added - First official release to CTAN.