Commit Graph

11 Commits

Author SHA1 Message Date
Emily Eisenberg
3173a6e53e Make supsubs work correctly with character boxes
Summary:
In rule 18a. of the TeX book, it says we're supposed to set `u` and `v` to 0 if
the nucleus is a character box. Character boxes are loosely defined, but through
experimentation they are anything that contains a single character, including
ordgroups with a single element in them. This change makes KaTeX follow this
rule, and fixes T2404.

Test Plan:
- Make sure the new huxley screenshot looks good
- Make sure none of the huxley tests have changed

Reviewers: alpert

Reviewed By: alpert

Maniphest Tasks: T2404

Differential Revision: http://phabricator.khanacademy.org/D8275
2014-04-17 14:44:30 -04:00
Emily Eisenberg
5416b92d5d Make rlap test a little easier to find errors in
Summary: See rKATc22d8644cc7f45443c6c0756ab64f2dfc2b454e0.

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D7967
2014-04-14 21:52:52 -04:00
Emily Eisenberg
c22d8644cc Fix a weird bug with rlap
For some reason, when you have a nested elements that look like
  `display: inline-block; > position: relative; > position: absolute;`
then the `position: absolute;` element is shifted down a bunch. If there is
anything* else inside either of the other two elements, then this behavior
disappears. (This can be seen at [this fiddle](http://jsfiddle.net/qZXRr/). We
have this structure when we create `\llap` and `\rlap`s, and this weird behavior
So, to fix this I added an empty `display: inline-block;` span inside the llap
to fix this.

Test plan:
 - See that the new huxley image looks good
 - Test this in a bunch of browsers and see they also look good

Auditors: alpert
2014-03-29 23:33:05 -04:00
Emily Eisenberg
b5ef06b52d Fix our getTypeOfGroup function
Add in the missing `'sizing'` entry, put the `'text'` entry in the correct
place, and replace `groupToType.ord` (a null value) with `groupToType.mathord`
(something real).

Test Plan:
 - See that `^3+` now puts the correct space before the `+`
 - See the new huxley test works, and nothing else has changed

Auditors: alpert
2014-03-28 23:50:18 -04:00
Emily Eisenberg
4154c370ec Add tie symbol (~)
Summary:
Add real support for the tie symbol. Also, get rid of any of the
leftover bad support

Test Plan:
 - See the new normal tests succeed
 - See huxley tests didn't change except the new ones, which looks good

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D7772
2014-03-27 19:23:15 -04:00
Emily Eisenberg
d729ba5281 Add a \color command for custom colors
Summary:
Keep track of the color inside the style now, and use that when we are
rendering things. Added a custom lexing mode to handle lexing colors correctly.
Prefixed the old katex colors (internally) with "katex-" to distinguish them
from CSS colors.

Test Plan:
 - Run the normal tests, see they work
 - Run the huxley tests, see that they didn't change except for the color one
   which looks right

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D7763
2014-03-27 12:34:45 -04:00
Emily Eisenberg
7723d3dcaf First attempt at \text function
Summary:
Make all of the parsing functions keep track of whether they are
parsing in math mode or text mode. Then, add a separate lexing function to lex
text mode, which is different than the normal mode because it does weird things
with spacing and allows a different set of characters.

Test Plan:
 - See that the normal tests work
 - See that the huxley screenshot looks reasonable
 - See that none of the other huxley screenshots changed

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D7578
2014-03-26 22:17:41 -04:00
Ben Alpert
bff85c638b Compile .less on demand for test page
Test Plan: Opened test page in Chrome and IE8, saw math.

Reviewers: emily

Reviewed By: emily

Differential Revision: http://phabricator.khanacademy.org/D7581
2014-03-20 20:22:07 -07:00
Emily Eisenberg
204270fa0d Somehow manage to fix the sizing bugs
Summary:
Remove a single `vertical-align: top`, and somewhow it now works. May
the gods of CSS have mercy on us. Also added some tests.

Test Plan:
 - See that the huxley tests don't have any changes
 - See that the new huxley screenshots look reasonable
 - Run the normal tests and see that they work

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D7494
2014-03-20 21:36:37 -04:00
Emily Eisenberg
63fda74202 Make marginRight work in firefox
Summary:
`.style["margin-right"]` doesn't work in firefox, but
`.style.marginRight` does.

Test Plan:
- Look at `b\llap{f}` in chrome and firefox
- Make sure it looks the same (or at least very similar) in both

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D7476
2014-03-17 23:44:36 -04:00
Emily Eisenberg
a7820b12ff Add huxley screenshot tests
Summary:
Add in a testing page, which just renders the location hash in the body. Use
this to make some screenshot tests in huxley. Note, these screenshots were made
in Firefox on a Linux computer, so running the tests somewhere else might
produce something else.

Test Plan:
- Serve KaTeX (`make serve`)
- Run a Selenium Server (I used selenium 2.40.0)
- Run `huxley` from the test/huxley/ directory
- Ensure that all of the tests pass

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D7258
2014-03-11 16:29:45 -06:00