Commit Graph

3361 Commits

Author SHA1 Message Date
Ben Alpert
3e78a76a47 Enable travis-ci.org
This tests against Node 0.10 (latest stable) and 0.11 (latest dev).

Test Plan: Crossed fingers. In theory we'll see this at https://travis-ci.org/Khan/KaTeX as soon as I push it.

Auditors: emily
2014-09-12 17:50:39 -07:00
Emily Eisenberg
79ab06d88d Get rid of the lookahead-y dots
Summary:
The `\dots` and `\dots{c,o,b,i,m}` commands do more than just show characters,
they add extra space and `\dots` also looks ahead to determine what kind of
environment it is in (see [this math.sx post]
(http://tex.stackexchange.com/questions/122491/difference-of-the-dots)). We
can't support that yet, so remove them.

Also, add comments to the extract_ttf script to show what caracters we are
extracting metrics for.

Test Plan: - Make sure tests work

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D13151
2014-09-12 17:29:49 -07:00
Emily Eisenberg
2920348bdd Fix large integrals in IE 8
IE 8 clips the \int sign when it is `display: inline-block`. This fixes that.

Test plan:
 - Make sure no huxley tests changed

Auditors: alpert
2014-09-12 16:27:48 -07:00
Emily Eisenberg
ad056abbaf Fix undefined maxFontSize
Fix getting a NaN maxFontSize in makeVList because symbolNodes don't have a
maxFontSize property.

Test plan:
 - Make sure no huxley screenshots changed

Auditors: alpert
2014-09-12 15:38:48 -07:00
Emily Eisenberg
6ee2ecf47e Add \dots commands
Add all of the \dots commands, and import their metrics from the ttf files.

Fixes #23

Auditors: alpert
2014-09-12 15:02:18 -07:00
Emily Eisenberg
71da6aa50f Add the ability to extract metrics from ttfs
Summary:
Upon switching over from ttf metrics to TeX metrics, we lost metrics for a
couple of the characters that are dynamically generated by TeX. Thus TeX doesn't
have metrics for them, but our fonts do have the characters because the MathJax
scripts also dynamically build them. This adds the ability to extract metrics
from the generated font files so that we can use the generated characters
correctly. A better solution would be to dynamically generate the characters
ourselves, but that is much harder, and will be left to a future time.

Test Plan:
 - Make sure typing "\neq \cong \text{ }" produces no warnings in the console.
 - Make sure huxley screenshots look the same

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D13107
2014-09-12 14:59:28 -07:00
Emily Eisenberg
f52c84c187 Add limit operators
Summary:
Add support for all of the other operators, including the ones with symbols and
limits. This also fixes the bug where subscripts were shifted the same amount as
subscripts.

To accomplish this, the domTree.textNode has been repurposed into symbolNode
which is no longer an actual text node, but instead represents an element with a
single symbol in it. This lets us access properties like the italic correction
of a symbol in a reasonable manner without having to recursively look through
children of spans.

Depends on D13082

Fixes #8

Test Plan:
 - Make sure tests work
 - Make sure huxley screenshots didn't change much, and new screenshot looks good

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D13122
2014-09-12 14:58:58 -07:00
Emily Eisenberg
29b00ee6b7 Add vlist builder for more consistent stacking
Summary:
Add a way to automatically build vlists correctly. Previously, we built
vlists manually in ~4 different places, which made it difficult to manage
changes, and led to a large amount of duplication in the less. This also fixes
the vlist construction in safari, where the `display: inline-table` wasn't being
applied because of CSS specificity. This leads to the only significant change in
the huxley tests, with the vertical spacing.

Test Plan:
 - Make sure the tests still work
 - Make sure most of the huxley screenshots didn't change, and that the new
   changes are insignificant.
 - Make sure vlists now work in Safari
 - Make sure the change to the VerticalSpacing screenshot is caused by the
   fix-baseline span now correctly applying `display: inline-table` by creating
   the construct in master and adding `display: inline-table !important` to the
   `.fix-ie` css rule

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D13082
2014-09-12 14:41:31 -07:00
Emily Eisenberg
403dca64ab Improve testing
Summary:
Move dom creation into katex.js so our tests can test non-dom things, and add
some buildTree tests. Add some checks make utils.js work in node. Add support
for jasmine-node, to allow for command line unit testing.

Test Plan:
- Make sure tests work, in both the browser and with `make test`
- Make sure huxley screenshots didn't change

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D13125
2014-09-12 13:30:30 -07:00
Emily Eisenberg
5cca3a299e Cleanup package.json
Add a license, main file, and add missing huxley dependency

Auditors: alpert
2014-09-12 02:23:00 -07:00
Davide P. Cervone
e0a81d5f7c Force displaystyle and scriptstyle to be included in toMathML output, since the defaults for these are complicated. Resolves issue #912. 2014-09-11 13:53:49 -04:00
Davide P. Cervone
e2e94d3c45 Check for undefined rather than false when deciding which attributes to allow for \mmlToken. Resolves issue #913. 2014-09-11 13:14:38 -04:00
Davide P. Cervone
98e3f098bd Add rules to mtable to properly handle displaystyle and scriptlevel as described in the MathML spec. Resolves issue #839. 2014-09-11 12:52:10 -04:00
Davide P. Cervone
e8c7ade7c4 Allow comma-separated parameters in \mmlToken. Resolves issue #906. 2014-09-11 08:34:26 -04:00
Davide P. Cervone
5d266d2f81 Take advantage of SVGdatStretched() rather than doing it by hand. 2014-09-11 08:05:29 -04:00
Davide P. Cervone
74253a955f Merge branch 'issue834' into develop. Issue #834. 2014-09-11 06:59:18 -04:00
Davide P. Cervone
84206a3f15 Merge branch 'issue769' into develop. Issue #769. 2014-09-11 06:58:42 -04:00
Davide P. Cervone
f307196e1a Merge branch 'issue490' into develop. Issue #490. 2014-09-11 06:57:47 -04:00
Davide P. Cervone
c30dd6647b Merge branch 'issue829' into develop. Issue #829. 2014-09-11 06:50:13 -04:00
Davide P. Cervone
0a89bc1ac5 Merge branch 'issue800' into develop. Issue #800. 2014-09-11 06:49:30 -04:00
Davide P. Cervone
1e219b4304 Get linebreaking size correct for zoom boxes, and do a better job of managing the width for full-width tables (only make the box as wide as necessary). Resolves issue #834. 2014-09-10 22:05:03 -04:00
Emily Eisenberg
0be77d4e6f Add style changing functions
Summary:
Add \displaystyle, \textstyle, \scriptstyle, and \scriptscriptstyle commands.
Added tests and huxley screenshots for everything that looks different in
displaystyle vs normal style.

Fixes #24.

Test Plan:
 - See new tests work, and old tests still work
 - See no huxley screenshots changed, and new screenshot looks good

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D13079
2014-09-10 17:10:38 -07:00
Davide P. Cervone
a3fbae1037 fix min width of tables (em's inside are different from em's outside). 2014-09-10 19:59:34 -04:00
Emily Eisenberg
a76f6eb985 Make all the lines the correct sizes
Fix the \frac and \overline lines so they actually render at the correct sizes
(i.e. don't get smaller when in script and scriptscript sizes). This also seems
to fix #33.

Test Plan:
 - Make sure new huxley screenshot look good.
 - Render
     \frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} =
     1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}}
     {1+\frac{e^{-8\pi}} {1+...} } } }
   at small font sizes like 30pt and smaller, see that it looks much better

Auditors: alpert
2014-09-10 16:30:38 -07:00
Emily Eisenberg
4b2edea985 Make the page look better 2014-09-10 15:20:49 -07:00
Emily Eisenberg
eef846ce94 Initial github pages commit 2014-09-10 13:22:30 -07:00
Emily Eisenberg
0c9e9738c3 Fix our parsing strategy so it is the same as (or very similar to) TeX's
Summary:
Rewrote the parser to make this work, and added a bunch of tests to make sure
this does work. In the process, refactored all of our functions into a separate
file, functions.js. Added a bunch of comments to Parser.js. Also, update jasmine
so we can make our tests better, and add a lint_blacklist.txt to not lint bad
jasmine stuff.

Fixes #10
Fixes #12

Test Plan:
- Make sure all of the tests still work, and all of the new ones work also
- Make sure huxley screenshots didn't change

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D12989
2014-09-09 23:18:37 -07:00
Davide P. Cervone
acd5857a99 Use alignment function for mtable with labels as well. 2014-09-09 20:07:07 -04:00
Davide P. Cervone
a9c66b5cee Fix the alignment function so that it handles overlapping on the left and right better, and so we don't have to do it in the linebreaking directly. 2014-09-09 19:22:02 -04:00
Davide P. Cervone
612e622e0b Add an empty <mo> to nested <munderover> used for overline and friends to avoid being an embellished operator that gets movablelimits. Resolves issue #490. 2014-09-09 12:35:00 -04:00
Davide P. Cervone
cfc6fa2ae0 Make fences use empty <mo> for blank delimiters so the result will not be an embellished operator. Also resolves issue #775. 2014-09-09 11:51:22 -04:00
Davide P. Cervone
871f395ce6 Make mrows that are embellished operators properly include the elements other than the core when stretched. Resolves issue #775. 2014-09-09 11:27:39 -04:00
Davide P. Cervone
ea42f427f6 Fix multiple problems with indentshift and indentalign in HTML-CSS and SVG output. (Negative values not handled properly, shift not applied to centering, SVG not handling shift past edges well, percentage shifts now in relation to container, etc.) Resolves issues #769 and #768. 2014-09-09 10:28:25 -04:00
Davide P. Cervone
82d0ea22c2 Fix a conflict with noReflows and mtextFontInherit. 2014-09-08 17:49:47 -04:00
Davide P. Cervone
177eade964 Use delimitershortfall and delimiterfactor for stretching vertical delimiters for SVG. 2014-09-08 15:27:31 -04:00
Davide P. Cervone
14fd3918ed Use delimitershortfall and delimiterfactor for stretching vertical delimiters. Resolves issue #829. 2014-09-08 15:23:42 -04:00
Ben Alpert
5b4fa72299 Remove pdiff from README
Test Plan: Crossed fingers.

Auditors: emily
2014-09-06 23:24:26 -07:00
Emily Eisenberg
925c96dbe2 Add square roots (\sqrt)
Summary:
Follow the TeXbook instructions on how to construct square roots. Using
makeCustomSizedDelim, this becomes nearly trivial.

Test Plan:
 - Make sure normal tests work
 - Make sure the new huxley test looks good, and other huxley tests haven't changed.

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D12918
2014-09-06 15:08:23 -07:00
Ben Alpert
5a94faac9e Render nothing for /?text=
Test Plan: Went to /?text=, saw nothing (instead of the default).

Auditors: emily
2014-09-05 23:57:29 -07:00
Emily Eisenberg
edb42c50f8 Clean up the Makefile, package.json
Make the makefile more sane, add minification of CSS, and add and remove
necessary npm modules.

Auditors: alpert
2014-09-05 13:24:31 -07:00
Emily Eisenberg
fed954bb16 Remove pdiff, now that we have huxley
Auditors: alpert
2014-09-05 13:00:29 -07:00
Emily Eisenberg
c3f758c319 Add support for \left and \right
Summary:
Added stacked delimiter support for more delimiters. Split out delimiter
functions into its own file, and split out some tree building functions into a
common file. Supports the empty `.` delimiter with \left and \right, and doesn't
try to produce huge /, \backslash, <, or > delimiters. Depends on D7844

Test input:

\left( \left) \left[ \left\lbrack \left] \left\rbrack \left\{ \left\lbrace
\left\} \left\rbrace \left\lfloor \left\rfloor \left\lceil \left\rceil
\left\langle \left\rangle \left/ \left\backslash \left| \left\vert \left\|
\left\Vert \left\uparrow \left\Uparrow \left\downarrow \left\Downarrow
\left\updownarrow \left\Updownarrow {x^{x^{x^{x^{x^{x^{x^{x^{x^{x^x}}}}}}}}}}
\right.\right.\right.\right.\right.\right.\right.\right.\right.\right.
\right.\right.\right.\right.\right.\right.\right.\right.\right.\right.
\right.\right.\right.\right.\right.\right.\right.\right.

Test Plan:
 - Run the test input, see that it works
 - Run the tests, see that they work
 - Look at huxley screenshots (not here yet :( ) and make sure they look good

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D11602
2014-09-04 21:58:43 -07:00
Emily Eisenberg
513ae30fe1 Update fonts from the mathjax fonts Docker
Summary:
This incorporates the changes to add a KA copyright, and to generate the woffs
from the ttfs, not the otfs.

Test Plan:
 - Run huxley tests, see very little has changed (it looks like all the images
   shifted back down ~1/2 pixel, the opposite of what happened in ad97dab19c
   when we started making our own woffs, which means we probably are now
   generating woffs the same way fontsquirrel does)

Reviewers: alpert

Reviewed By: alpert

Differential Revision: http://phabricator.khanacademy.org/D12889
2014-09-04 17:54:15 -07:00
Davide P. Cervone
3ae1a46217 Take vertical offset into account in mpadded background color in SVG output. Resolves issue #800. 2014-09-04 19:41:19 -04:00
Davide P. Cervone
13b16f9b26 Merge branch 'node-issue3' into develop. Issue mathjax/MathJax-node#3. 2014-09-04 05:57:14 -04:00
Davide P. Cervone
d74208ef1f Merge branch 'node-issue18' into develop. Issue mathjax/MathJax-node#18. 2014-09-04 05:56:27 -04:00
Davide P. Cervone
ffd71440e6 Merge branch 'issue898' into develop. Issue #898. 2014-09-04 05:55:52 -04:00
Davide P. Cervone
8ddeed3a3c Merge branch 'issue902' into develop. Issue #902. 2014-09-04 05:55:18 -04:00
Davide P. Cervone
a27d83444f Merge branch 'issue903' into develop. Issue #903. 2014-09-04 05:52:20 -04:00
Davide P. Cervone
b938cf1576 Merge branch 'issue901' into develop. Issue 901. 2014-09-04 05:51:50 -04:00