mirror of
https://github.com/Smaug123/KaTeX
synced 2025-10-12 06:28:40 +00:00
Support stretchy wide elements. (#670)
This commit is contained in:
70
static/images/Image-Licensing-and-Technical-Notes.txt
Normal file
70
static/images/Image-Licensing-and-Technical-Notes.txt
Normal file
@@ -0,0 +1,70 @@
|
||||
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.
|
Reference in New Issue
Block a user