Copyright and Licensing ======================= Many KaTeX SVG images have been adapted from glyphs in the KaTeX fonts. Copyright (c) 2009-2010, Design Science, Inc. () Copyright (c) 2014-2017 Khan Academy () 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.