Fix interaction between styles and sizes. (#719)

* Fix interaction between styles and sizes by implementing styles as sizes.

Rather than having both `textstyle` CSS classes and `size5` CSS classes
affect the font size (and step on each other), implement sizes more the
way TeX does: a command like `\displaystyle` changes the current size.

This is actually a simplification, since now only `size` affects the size.
Simplifies CSS and computation. Many screenshotter tests change; they
change to be more like TeX. For instance, `\sqrt` fixes some
discrepancies in size treatment.

Also:

Remove the `Options.withX()` methods in favor of `.havingX()`, which
might return the same `options`.

Remove `Style.cls()` and `Style.reset()`.

Remove `Options.reset()`. You should never modify an `Options`; they
should change only by the `havingX()` methods.

* Implement TeX sizing for scriptsize/scriptscriptsize.

At every size level. Also make the sizes match TeX to the last decimal.

* Review comments.
This commit is contained in:
Eddie Kohler
2017-06-27 20:55:14 -04:00
committed by Kevin Barabash
parent 4f57d53f6e
commit b866cd5224
29 changed files with 347 additions and 410 deletions

View File

@@ -17,7 +17,7 @@ const Style = require("../src/Style");
const defaultSettings = new Settings({});
const defaultOptions = new Options({
style: Style.TEXT,
size: "size5",
size: 5,
});
const _getBuilt = function(expr, settings) {