mirror of
https://github.com/Smaug123/KaTeX
synced 2025-10-05 19:28:39 +00:00
71 lines
3.5 KiB
Plaintext
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.
|