Files
KaTeX/static/images/Image-Licensing-and-Technical-Notes.txt
2017-06-15 23:47:51 -04:00

71 lines
3.5 KiB
Plaintext

Copyright and Licensing
=======================
Many KaTeX SVG images have been adapted from glyphs in the KaTeX fonts.
Copyright (c) 2009-2010, Design Science, Inc. (<www.mathjax.org>)
Copyright (c) 2014-2017 Khan Academy (<www.khanacademy.org>)
Licensed under the SIL Open Font License, Version 1.1. See \nhttp://scripts.sil.org/OFL
The license terms above apply to the following images:
FILENAME ORIGINAL GLYPH ORIGINAL FONT FILE
===================== ============== ==================
doubleleftarrow.svg U+21D0 KaTeX Main
doubleleftrightarrow.svg U+21D4 KaTeX Main
doublerightarrow.svg U+21D2 KaTeX Main
hookleftarrow.svg U+21A9 KaTeX Main
hookrightarrow.svg U+21AA KaTeX Main
leftarrow.svg U+2190 KaTeX Main
leftharpoon.svg U+21BD KaTeX Main
leftrightarrow.svg U+2194 KaTeX Main
leftrightharpoons.svg U+21BC/21B1 KaTeX Main
mapsto.svg U+21A6 KaTeX Main
overbrace.svg U+23A9/23A8/23A7 KaTeX Size 4 Regular
rightarrow.svg U+2192 KaTeX Main
rightharpoon.svg U+21C0 KaTeX Main
rightharpoondown.svg U+21C1 KaTeX Main
rightleftharpoons.svg U+21CC KaTeX Main
tofrom.svg U+21C4 KaTeX AMS Regular
twoheadleftarrow.svg U+219E KaTeX AMS Regular
twoheadrightarrow.svg U+21A0 KaTeX AMS Regular
underbrace.svg U+23A9/23A8/23A7 KaTeX Size 4 Regular
Images for \widehat, \widetilde, \overgroup, and \undergroup have been adapted (and modified)
from font glyphs in the MnSymbol package. These fonts are in the public domain.
Technical Comments
==================
Nested SVGs
Many of the KaTeX SVG images contain a nested SVG. This is done to achieve a
stretchy image while avoiding distortion of arrowheads or brace corners.
The inner SVG typically contains a very long (400 em) arrow.
The outer SVG acts like a window that exposes only part of the inner SVG. The
outer SVG will grow or shrink to match the dimensions set for it by CSS.
The inner SVG always has a longer, thinner aspect ratio than the outer SVG.
After the inner SVG fills 100% of the height of the outer SVG, there is a long
arrow shaft left over. That left-over shaft is not shown. Instead, it is
sliced off because the inner SVG is set to "preserveAspectRatio='... slice'".
Thus, the reader sees an arrow that matches the subject matter width without
distortion.
Some functions, such as \cancel, need to vary their aspect ratio. These functions
do not get the nested SVG treatment.
Second Brush Stroke
Low resolution monitors struggle to display images in fine detail.
So browsers apply anti-aliasing as described at http://www.rastertragedy.com/.
A long straight arrow shaft therefore will sometimes appear as if it has a
blurred edge.
To mitigate this, these SVG files contain a second "brush-stroke" on the
arrow shafts. That is, a second long thin rectangular SVG path has been
written directly on top of each arrow shaft. This reinforcement causes some
of the screen pixels to display as black instead of the anti-aliased gray
pixel that a single path would generate. So we get arrow shafts whose
edges appear to be sharper.