hyhyhy 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +15 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +4 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +184 -0
- data/Rakefile +2 -0
- data/bin/hyhyhy +59 -0
- data/hyhyhy.gemspec +29 -0
- data/lib/hyhyhy.rb +101 -0
- data/lib/hyhyhy/config.rb +29 -0
- data/lib/hyhyhy/frames.rb +108 -0
- data/lib/hyhyhy/logger.rb +40 -0
- data/lib/hyhyhy/parser.rb +9 -0
- data/lib/hyhyhy/structure/.bowerrc +5 -0
- data/lib/hyhyhy/structure/.hyhyhy +5 -0
- data/lib/hyhyhy/structure/README.md +0 -0
- data/lib/hyhyhy/structure/_assets/javascripts/main.js +395 -0
- data/lib/hyhyhy/structure/_assets/stylesheets/main.css +520 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/.bower.json +47 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/Gruntfile.js +472 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/LICENSE +21 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/README.md +129 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/bower.json +38 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/dist/css/bootstrap-theme.css +470 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/dist/css/bootstrap-theme.css.map +1 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/dist/css/bootstrap-theme.min.css +5 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/dist/css/bootstrap.css +6332 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/dist/css/bootstrap.css.map +1 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/dist/css/bootstrap.min.css +5 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/dist/fonts/glyphicons-halflings-regular.eot +0 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/dist/fonts/glyphicons-halflings-regular.svg +229 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/dist/fonts/glyphicons-halflings-regular.woff +0 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/dist/js/bootstrap.js +2320 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/dist/js/bootstrap.min.js +7 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/dist/js/npm.js +13 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/fonts/glyphicons-halflings-regular.eot +0 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/fonts/glyphicons-halflings-regular.svg +229 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/fonts/glyphicons-halflings-regular.ttf +0 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/fonts/glyphicons-halflings-regular.woff +0 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/grunt/.jshintrc +7 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/grunt/bs-commonjs-generator.js +23 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/grunt/bs-lessdoc-parser.js +238 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/grunt/bs-raw-files-generator.js +46 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/grunt/configBridge.json +44 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/grunt/sauce_browsers.yml +82 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/js/.jscsrc +34 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/js/.jshintrc +15 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/js/affix.js +162 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/js/alert.js +94 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/js/button.js +116 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/js/carousel.js +240 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/js/collapse.js +211 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/js/dropdown.js +161 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/js/modal.js +324 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/js/popover.js +119 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/js/scrollspy.js +175 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/js/tab.js +153 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/js/tooltip.js +478 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/js/transition.js +59 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/.csscomb.json +304 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/.csslintrc +19 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/alerts.less +68 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/badges.less +61 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/bootstrap.less +50 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/breadcrumbs.less +26 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/button-groups.less +243 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/buttons.less +160 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/carousel.less +267 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/close.less +33 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/code.less +69 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/component-animations.less +34 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/dropdowns.less +213 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/forms.less +546 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/glyphicons.less +234 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/grid.less +84 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/input-groups.less +166 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/jumbotron.less +49 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/labels.less +64 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/list-group.less +124 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/media.less +47 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins.less +39 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/alerts.less +14 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/background-variant.less +8 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/border-radius.less +18 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/buttons.less +52 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/center-block.less +7 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/clearfix.less +22 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/forms.less +85 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/gradients.less +59 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/grid-framework.less +91 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/grid.less +122 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/hide-text.less +21 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/image.less +33 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/labels.less +12 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/list-group.less +29 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/nav-divider.less +10 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/nav-vertical-align.less +9 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/opacity.less +8 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/pagination.less +23 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/panels.less +24 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/progress-bar.less +10 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/reset-filter.less +8 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/resize.less +6 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/responsive-visibility.less +15 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/size.less +10 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/tab-focus.less +9 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/table-row.less +28 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/text-emphasis.less +8 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/text-overflow.less +8 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/mixins/vendor-prefixes.less +227 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/modals.less +148 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/navbar.less +660 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/navs.less +244 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/normalize.less +427 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/pager.less +54 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/pagination.less +88 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/panels.less +261 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/popovers.less +135 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/print.less +107 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/progress-bars.less +87 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/responsive-embed.less +35 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/responsive-utilities.less +194 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/scaffolding.less +150 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/tables.less +234 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/theme.less +272 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/thumbnails.less +36 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/tooltip.less +103 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/type.less +302 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/utilities.less +56 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/variables.less +856 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/less/wells.less +29 -0
- data/lib/hyhyhy/structure/_includes/bootstrap/package.json +82 -0
- data/lib/hyhyhy/structure/_includes/bower.json +9 -0
- data/lib/hyhyhy/structure/_includes/d3/.bower.json +37 -0
- data/lib/hyhyhy/structure/_includes/d3/CONTRIBUTING.md +25 -0
- data/lib/hyhyhy/structure/_includes/d3/LICENSE +26 -0
- data/lib/hyhyhy/structure/_includes/d3/README.md +9 -0
- data/lib/hyhyhy/structure/_includes/d3/bower.json +26 -0
- data/lib/hyhyhy/structure/_includes/d3/d3.js +9470 -0
- data/lib/hyhyhy/structure/_includes/d3/d3.min.js +5 -0
- data/lib/hyhyhy/structure/_includes/jquery/.bower.json +38 -0
- data/lib/hyhyhy/structure/_includes/jquery/MIT-LICENSE.txt +21 -0
- data/lib/hyhyhy/structure/_includes/jquery/bower.json +27 -0
- data/lib/hyhyhy/structure/_includes/jquery/dist/jquery.js +9190 -0
- data/lib/hyhyhy/structure/_includes/jquery/dist/jquery.min.js +5 -0
- data/lib/hyhyhy/structure/_includes/jquery/dist/jquery.min.map +1 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/ajax.js +806 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/ajax/jsonp.js +89 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/ajax/load.js +75 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/ajax/parseJSON.js +13 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/ajax/parseXML.js +28 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/ajax/script.js +64 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/ajax/var/nonce.js +5 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/ajax/var/rquery.js +3 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/ajax/xhr.js +135 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/attributes.js +11 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/attributes/attr.js +143 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/attributes/classes.js +158 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/attributes/prop.js +96 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/attributes/support.js +35 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/attributes/val.js +163 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/callbacks.js +205 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/core.js +498 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/core/access.js +60 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/core/init.js +123 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/core/parseHTML.js +39 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/core/ready.js +97 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/core/var/rsingleTag.js +4 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/css.js +451 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/css/addGetHookIf.js +24 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/css/curCSS.js +57 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/css/defaultDisplay.js +70 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/css/hiddenVisibleSelectors.js +15 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/css/support.js +91 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/css/swap.js +28 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/css/var/cssExpand.js +3 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/css/var/getStyles.js +5 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/css/var/isHidden.js +13 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/css/var/rmargin.js +3 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/css/var/rnumnonpx.js +5 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/data.js +179 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/data/Data.js +181 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/data/accepts.js +20 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/data/var/data_priv.js +5 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/data/var/data_user.js +5 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/deferred.js +149 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/deprecated.js +13 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/dimensions.js +50 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/effects.js +649 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/effects/Tween.js +114 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/effects/animatedSelector.js +13 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/event.js +868 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/event/alias.js +39 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/event/support.js +9 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/exports/amd.js +24 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/exports/global.js +32 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/intro.js +44 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/jquery.js +36 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/manipulation.js +582 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/manipulation/_evalUrl.js +18 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/manipulation/support.js +31 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/manipulation/var/rcheckableType.js +3 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/offset.js +204 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/outro.js +1 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/queue.js +142 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/queue/delay.js +22 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/selector-native.js +172 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/selector-sizzle.js +14 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/selector.js +1 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/serialize.js +111 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/sizzle/dist/sizzle.js +2044 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/sizzle/dist/sizzle.min.js +3 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/sizzle/dist/sizzle.min.map +1 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/traversing.js +200 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/traversing/findFilter.js +100 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/traversing/var/rneedsContext.js +6 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/var/arr.js +3 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/var/class2type.js +4 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/var/concat.js +5 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/var/hasOwn.js +5 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/var/indexOf.js +5 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/var/pnum.js +3 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/var/push.js +5 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/var/rnotwhite.js +3 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/var/slice.js +5 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/var/strundefined.js +3 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/var/support.js +4 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/var/toString.js +5 -0
- data/lib/hyhyhy/structure/_includes/jquery/src/wrap.js +78 -0
- data/lib/hyhyhy/structure/_includes/katex/.arcconfig +4 -0
- data/lib/hyhyhy/structure/_includes/katex/.bower.json +14 -0
- data/lib/hyhyhy/structure/_includes/katex/.gitignore +5 -0
- data/lib/hyhyhy/structure/_includes/katex/.hyhyhy +10 -0
- data/lib/hyhyhy/structure/_includes/katex/.jshintrc +67 -0
- data/lib/hyhyhy/structure/_includes/katex/.travis.yml +4 -0
- data/lib/hyhyhy/structure/_includes/katex/CONTRIBUTING.md +112 -0
- data/lib/hyhyhy/structure/_includes/katex/LICENSE.txt +21 -0
- data/lib/hyhyhy/structure/_includes/katex/Makefile +61 -0
- data/lib/hyhyhy/structure/_includes/katex/README.md +50 -0
- data/lib/hyhyhy/structure/_includes/katex/cli.js +15 -0
- data/lib/hyhyhy/structure/_includes/katex/dockers/HuxleyTests/Dockerfile +13 -0
- data/lib/hyhyhy/structure/_includes/katex/dockers/HuxleyTests/README.md +29 -0
- data/lib/hyhyhy/structure/_includes/katex/dockers/MathJaxFonts/Dockerfile +34 -0
- data/lib/hyhyhy/structure/_includes/katex/dockers/MathJaxFonts/README.md +55 -0
- data/lib/hyhyhy/structure/_includes/katex/dockers/MathJaxFonts/copy_fonts.sh +47 -0
- data/lib/hyhyhy/structure/_includes/katex/katex.js +54 -0
- data/lib/hyhyhy/structure/_includes/katex/lint_blacklist.txt +8 -0
- data/lib/hyhyhy/structure/_includes/katex/metrics/README.md +21 -0
- data/lib/hyhyhy/structure/_includes/katex/metrics/extract_tfms.py +94 -0
- data/lib/hyhyhy/structure/_includes/katex/metrics/extract_ttfs.py +75 -0
- data/lib/hyhyhy/structure/_includes/katex/metrics/mapping.pl +997 -0
- data/lib/hyhyhy/structure/_includes/katex/metrics/parse_tfm.py +201 -0
- data/lib/hyhyhy/structure/_includes/katex/metrics/replace_line.py +17 -0
- data/lib/hyhyhy/structure/_includes/katex/package.json +30 -0
- data/lib/hyhyhy/structure/_includes/katex/server.js +77 -0
- data/lib/hyhyhy/structure/_includes/katex/src/Lexer.js +190 -0
- data/lib/hyhyhy/structure/_includes/katex/src/Options.js +85 -0
- data/lib/hyhyhy/structure/_includes/katex/src/ParseError.js +40 -0
- data/lib/hyhyhy/structure/_includes/katex/src/Parser.js +639 -0
- data/lib/hyhyhy/structure/_includes/katex/src/Style.js +126 -0
- data/lib/hyhyhy/structure/_includes/katex/src/buildCommon.js +271 -0
- data/lib/hyhyhy/structure/_includes/katex/src/buildTree.js +1167 -0
- data/lib/hyhyhy/structure/_includes/katex/src/delimiter.js +541 -0
- data/lib/hyhyhy/structure/_includes/katex/src/domTree.js +241 -0
- data/lib/hyhyhy/structure/_includes/katex/src/fontMetrics.js +129 -0
- data/lib/hyhyhy/structure/_includes/katex/src/functions.js +539 -0
- data/lib/hyhyhy/structure/_includes/katex/src/parseTree.js +17 -0
- data/lib/hyhyhy/structure/_includes/katex/src/symbols.js +1006 -0
- data/lib/hyhyhy/structure/_includes/katex/src/utils.js +97 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts.less +73 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_AMS-Regular.eot +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_AMS-Regular.ttf +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_AMS-Regular.woff +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_AMS-Regular.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Caligraphic-Bold.eot +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Caligraphic-Regular.eot +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Fraktur-Bold.eot +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Fraktur-Bold.woff +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Fraktur-Regular.eot +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Fraktur-Regular.woff +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Greek-Bold.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Greek-BoldItalic.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Greek-Italic.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Greek-Regular.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Main-Bold.eot +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Main-Bold.ttf +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Main-Bold.woff +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Main-Bold.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Main-Italic.eot +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Main-Italic.ttf +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Main-Italic.woff +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Main-Italic.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Main-Regular.eot +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Main-Regular.ttf +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Main-Regular.woff +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Main-Regular.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Math-BoldItalic.eot +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Math-BoldItalic.woff +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Math-Italic.eot +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Math-Italic.ttf +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Math-Italic.woff +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Math-Italic.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Math-Regular.eot +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Math-Regular.ttf +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Math-Regular.woff +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Math-Regular.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_SansSerif-Bold.eot +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_SansSerif-Bold.woff +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_SansSerif-Italic.eot +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_SansSerif-Italic.woff +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_SansSerif-Regular.eot +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_SansSerif-Regular.woff +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Script-Regular.eot +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Script-Regular.ttf +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Script-Regular.woff +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Script-Regular.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Size1-Regular.eot +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Size1-Regular.ttf +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Size1-Regular.woff +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Size1-Regular.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Size2-Regular.eot +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Size2-Regular.ttf +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Size2-Regular.woff +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Size2-Regular.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Size3-Regular.eot +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Size3-Regular.ttf +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Size3-Regular.woff +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Size3-Regular.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Size4-Regular.eot +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Size4-Regular.ttf +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Size4-Regular.woff +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Size4-Regular.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Typewriter-Regular.eot +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Typewriter-Regular.woff +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
- data/lib/hyhyhy/structure/_includes/katex/static/index.html +17 -0
- data/lib/hyhyhy/structure/_includes/katex/static/katex.less +430 -0
- data/lib/hyhyhy/structure/_includes/katex/static/main.css +12 -0
- data/lib/hyhyhy/structure/_includes/katex/static/main.js +42 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfile.json +199 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Accents.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Accents.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Baseline.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Baseline.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/BasicTest.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/BasicTest.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/BinomTest.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/BinomTest.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Colors.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Colors.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/DeepFontSizing.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/DeepFontSizing.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/DelimiterSizing.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/DelimiterSizing.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/DisplayStyle.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/DisplayStyle.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Exponents.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Exponents.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/FractionTest.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/FractionTest.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Functions.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Functions.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/GreekLetters.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/GreekLetters.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/KaTeX.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/KaTeX.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Lap.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Lap.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/LeftRight.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/LeftRight.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/LeftRightListStyling.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/LeftRightListStyling.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/LeftRightStyleSizing.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/LeftRightStyleSizing.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/NestedFractions.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/NestedFractions.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/NullDelimiterInteraction.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/NullDelimiterInteraction.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/OpLimits.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/OpLimits.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Overline.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Overline.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/PrimeSpacing.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/PrimeSpacing.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/RlapBug.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/RlapBug.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Rule.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Rule.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Sizing.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Sizing.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/SizingBaseline.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/SizingBaseline.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Spacing.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Spacing.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Sqrt.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Sqrt.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/SupSubCharacterBox.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/SupSubCharacterBox.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/SupSubHorizSpacing.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/SupSubHorizSpacing.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/SupSubOffsets.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/SupSubOffsets.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Text.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/Text.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/VerticalSpacing.hux/firefox-1.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/Huxleyfolder/VerticalSpacing.record.json +5 -0
- data/lib/hyhyhy/structure/_includes/katex/test/huxley/test.html +30 -0
- data/lib/hyhyhy/structure/_includes/katex/test/jasmine/MIT.LICENSE +20 -0
- data/lib/hyhyhy/structure/_includes/katex/test/jasmine/boot.js +120 -0
- data/lib/hyhyhy/structure/_includes/katex/test/jasmine/console.js +166 -0
- data/lib/hyhyhy/structure/_includes/katex/test/jasmine/jasmine-html.js +390 -0
- data/lib/hyhyhy/structure/_includes/katex/test/jasmine/jasmine.css +61 -0
- data/lib/hyhyhy/structure/_includes/katex/test/jasmine/jasmine.js +2593 -0
- data/lib/hyhyhy/structure/_includes/katex/test/jasmine/jasmine_favicon.png +0 -0
- data/lib/hyhyhy/structure/_includes/katex/test/katex-spec.js +1179 -0
- data/lib/hyhyhy/structure/_includes/katex/test/test.html +12 -0
- data/lib/hyhyhy/structure/_includes/metrics-graphics/.bower.json +61 -0
- data/lib/hyhyhy/structure/_includes/metrics-graphics/.hyhyhy +17 -0
- data/lib/hyhyhy/structure/_includes/metrics-graphics/LICENSE +362 -0
- data/lib/hyhyhy/structure/_includes/metrics-graphics/README.md +70 -0
- data/lib/hyhyhy/structure/_includes/metrics-graphics/bower.json +50 -0
- data/lib/hyhyhy/structure/_includes/metrics-graphics/css/metricsgraphics-demo-dark.css +640 -0
- data/lib/hyhyhy/structure/_includes/metrics-graphics/css/metricsgraphics-demo.css +176 -0
- data/lib/hyhyhy/structure/_includes/metrics-graphics/css/metricsgraphics.css +344 -0
- data/lib/hyhyhy/structure/_includes/metrics-graphics/images/missing-data-dark.png +0 -0
- data/lib/hyhyhy/structure/_includes/metrics-graphics/images/missing-data.png +0 -0
- data/lib/hyhyhy/structure/_includes/metrics-graphics/js/metricsgraphics.min.js +590 -0
- data/lib/hyhyhy/structure/_includes/metrics-graphics/package.json +35 -0
- data/lib/hyhyhy/structure/_includes/prism/.bower.json +34 -0
- data/lib/hyhyhy/structure/_includes/prism/.hyhyhy +33 -0
- data/lib/hyhyhy/structure/_includes/prism/LICENSE +21 -0
- data/lib/hyhyhy/structure/_includes/prism/README.md +22 -0
- data/lib/hyhyhy/structure/_includes/prism/bower.json +26 -0
- data/lib/hyhyhy/structure/_includes/prism/components.js +233 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-apacheconf.js +46 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-apacheconf.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-aspnet.js +49 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-aspnet.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-autohotkey.js +27 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-autohotkey.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-bash.js +24 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-bash.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-c.js +26 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-c.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-clike.js +32 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-clike.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-coffeescript.js +18 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-coffeescript.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-core.js +424 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-core.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-cpp.js +12 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-cpp.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-csharp.js +6 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-csharp.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-css-extras.js +15 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-css-extras.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-css.js +50 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-css.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-gherkin.js +13 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-gherkin.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-git.js +68 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-git.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-go.js +9 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-go.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-groovy.js +43 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-groovy.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-handlebars.js +92 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-handlebars.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-haskell.js +32 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-haskell.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-http.js +44 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-http.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-ini.js +11 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-ini.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-java.js +8 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-java.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-javascript.js +27 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-javascript.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-latex.js +6 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-latex.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-markup.js +41 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-markup.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-nasm.js +20 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-nasm.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-nsis.js +19 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-nsis.min.js +5 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-objectivec.js +5 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-objectivec.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-perl.js +112 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-perl.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-php-extras.js +11 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-php-extras.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-php.js +99 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-php.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-python.js +14 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-python.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-rip.js +29 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-rip.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-ruby.js +21 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-ruby.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-scala.js +8 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-scala.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-scheme-min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-scheme.js +24 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-scss.js +36 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-scss.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-sql.js +17 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-sql.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-swift.js +8 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-swift.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-twig.js +46 -0
- data/lib/hyhyhy/structure/_includes/prism/components/prism-twig.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/gulpfile.js +48 -0
- data/lib/hyhyhy/structure/_includes/prism/package.json +27 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/autolinker/prism-autolinker.css +3 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/autolinker/prism-autolinker.js +66 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/autolinker/prism-autolinker.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/file-highlight/prism-file-highlight.js +54 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/file-highlight/prism-file-highlight.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/ie8/prism-ie8.css +3 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/ie8/prism-ie8.js +42 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/ie8/prism-ie8.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/line-highlight/prism-line-highlight.css +47 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/line-highlight/prism-line-highlight.js +109 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/line-highlight/prism-line-highlight.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/line-numbers/prism-line-numbers.css +40 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/line-numbers/prism-line-numbers.js +24 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/line-numbers/prism-line-numbers.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/show-invisibles/prism-show-invisibles.css +17 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/show-invisibles/prism-show-invisibles.js +15 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/show-invisibles/prism-show-invisibles.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/show-language/prism-show-language.css +21 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/show-language/prism-show-language.js +16 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/show-language/prism-show-language.min.css +1 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/show-language/prism-show-language.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/wpd/prism-wpd.css +11 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/wpd/prism-wpd.js +163 -0
- data/lib/hyhyhy/structure/_includes/prism/plugins/wpd/prism-wpd.min.js +1 -0
- data/lib/hyhyhy/structure/_includes/prism/prism.js +662 -0
- data/lib/hyhyhy/structure/_includes/prism/themes/prism-coy.css +210 -0
- data/lib/hyhyhy/structure/_includes/prism/themes/prism-dark.css +122 -0
- data/lib/hyhyhy/structure/_includes/prism/themes/prism-funky.css +111 -0
- data/lib/hyhyhy/structure/_includes/prism/themes/prism-okaidia.css +114 -0
- data/lib/hyhyhy/structure/_includes/prism/themes/prism-tomorrow.css +115 -0
- data/lib/hyhyhy/structure/_includes/prism/themes/prism-twilight.css +195 -0
- data/lib/hyhyhy/structure/_includes/prism/themes/prism.css +131 -0
- data/lib/hyhyhy/structure/_includes/prism/vendor/promise.js +5 -0
- data/lib/hyhyhy/structure/_layouts/default.erb +41 -0
- data/lib/hyhyhy/structure/_slides/1.introduction.md +36 -0
- data/lib/hyhyhy/structure/_slides/2.packages.md +52 -0
- data/lib/hyhyhy/structure/_slides/3.usage.md +146 -0
- data/lib/hyhyhy/version.rb +5 -0
- metadata +747 -0
@@ -0,0 +1,55 @@
|
|
1
|
+
### How to generate MathJax fonts
|
2
|
+
---------------------------------
|
3
|
+
|
4
|
+
It's really simple (now)! Just make a docker image from the included Dockerfile
|
5
|
+
using a command like
|
6
|
+
|
7
|
+
sudo docker build --tag=mathjaxfonts .
|
8
|
+
|
9
|
+
from within this directory (note you need to have docker installed and running
|
10
|
+
for this to work). This will build a docker image with the mathjaxfonts tag,
|
11
|
+
which you can then use to run dockers based on them. Then, run a mathjaxfonts
|
12
|
+
docker with
|
13
|
+
|
14
|
+
sudo docker run --interactive --tty --name mjf mathjaxfonts /bin/bash
|
15
|
+
|
16
|
+
We name this docker "mjf" so we can reference it later when we want to copy the
|
17
|
+
files off. (If you get an error about the name being in use, perhaps because you
|
18
|
+
are trying to create another docker, you can either delete the old docker with
|
19
|
+
|
20
|
+
sudo docker rm mjf
|
21
|
+
|
22
|
+
or use a different name.) This will get you into the docker in the root
|
23
|
+
directory. From there, cd into the `/MathJax-dev/fonts/OTF/TeX` directory, and
|
24
|
+
run
|
25
|
+
|
26
|
+
make ttf eot woff woff2
|
27
|
+
|
28
|
+
to build all of the fonts that we need. Finally, leave the docker and copy all
|
29
|
+
the files off with the `copy_fonts.sh` script:
|
30
|
+
|
31
|
+
./copy_fonts.sh mjf
|
32
|
+
|
33
|
+
And you're good to go! Don't forget to update the font metrics with `make
|
34
|
+
metrics`.
|
35
|
+
|
36
|
+
### General Docker Help
|
37
|
+
-----------------------
|
38
|
+
|
39
|
+
When you quit the docker, it will stop the docker from running. If you want to
|
40
|
+
reattach to the docker, you can start it again with
|
41
|
+
|
42
|
+
sudo docker start mjf
|
43
|
+
|
44
|
+
and then attach with
|
45
|
+
|
46
|
+
sudo docker attach mjf
|
47
|
+
|
48
|
+
Alternatively, if you want to detach from the docker when you're done instead of
|
49
|
+
quitting and stopping it, you can detach with `C-p C-q`, and then re-attach with
|
50
|
+
|
51
|
+
sudo docker attach mjf
|
52
|
+
|
53
|
+
To see a list of your current dockers, you can run
|
54
|
+
|
55
|
+
docker ps
|
@@ -0,0 +1,47 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
set -e
|
4
|
+
|
5
|
+
if [ -z "$1" ]; then
|
6
|
+
echo "Usage: $(basename $0) <docker name>"
|
7
|
+
echo " If you followed the README, the docker name would be 'mjf'"
|
8
|
+
exit 1
|
9
|
+
else
|
10
|
+
DOCKER_NAME="$1"
|
11
|
+
fi
|
12
|
+
|
13
|
+
mkdir fonts
|
14
|
+
|
15
|
+
used_fonts=(
|
16
|
+
KaTeX_AMS-Regular
|
17
|
+
KaTeX_Caligraphic-Bold
|
18
|
+
KaTeX_Caligraphic-Regular
|
19
|
+
KaTeX_Fraktur-Bold
|
20
|
+
KaTeX_Fraktur-Regular
|
21
|
+
KaTeX_Main-Bold
|
22
|
+
KaTeX_Main-Italic
|
23
|
+
KaTeX_Main-Regular
|
24
|
+
KaTeX_Math-BoldItalic
|
25
|
+
KaTeX_Math-Italic
|
26
|
+
KaTeX_Math-Regular
|
27
|
+
KaTeX_SansSerif-Bold
|
28
|
+
KaTeX_SansSerif-Italic
|
29
|
+
KaTeX_SansSerif-Regular
|
30
|
+
KaTeX_Script-Regular
|
31
|
+
KaTeX_Size1-Regular
|
32
|
+
KaTeX_Size2-Regular
|
33
|
+
KaTeX_Size3-Regular
|
34
|
+
KaTeX_Size4-Regular
|
35
|
+
KaTeX_Typewriter-Regular
|
36
|
+
)
|
37
|
+
|
38
|
+
for filetype in ttf eot woff woff2; do
|
39
|
+
echo "Copying $filetype"
|
40
|
+
docker cp "$DOCKER_NAME":/MathJax-dev/fonts/OTF/TeX/"$filetype" fonts
|
41
|
+
|
42
|
+
for font in ${used_fonts[*]}; do
|
43
|
+
mv fonts/"$filetype"/"$font"* fonts/
|
44
|
+
done
|
45
|
+
|
46
|
+
rm -rf fonts/"$filetype"
|
47
|
+
done
|
@@ -0,0 +1,54 @@
|
|
1
|
+
/**
|
2
|
+
* This is the main entry point for KaTeX. Here, we expose functions for
|
3
|
+
* rendering expressions either to DOM nodes or to markup strings.
|
4
|
+
*
|
5
|
+
* We also expose the ParseError class to check if errors thrown from KaTeX are
|
6
|
+
* errors in the expression, or errors in javascript handling.
|
7
|
+
*/
|
8
|
+
|
9
|
+
var ParseError = require("./src/ParseError");
|
10
|
+
|
11
|
+
var buildTree = require("./src/buildTree");
|
12
|
+
var parseTree = require("./src/parseTree");
|
13
|
+
var utils = require("./src/utils");
|
14
|
+
|
15
|
+
/**
|
16
|
+
* Parse and build an expression, and place that expression in the DOM node
|
17
|
+
* given.
|
18
|
+
*/
|
19
|
+
var render = function(toParse, baseNode) {
|
20
|
+
utils.clearNode(baseNode);
|
21
|
+
|
22
|
+
var tree = parseTree(toParse);
|
23
|
+
var node = buildTree(tree).toNode();
|
24
|
+
|
25
|
+
baseNode.appendChild(node);
|
26
|
+
};
|
27
|
+
|
28
|
+
// KaTeX's styles don't work properly in quirks mode. Print out an error, and
|
29
|
+
// disable rendering.
|
30
|
+
if (typeof document !== "undefined") {
|
31
|
+
if (document.compatMode !== "CSS1Compat") {
|
32
|
+
typeof console !== "undefined" && console.warn(
|
33
|
+
"Warning: KaTeX doesn't work in quirks mode. Make sure your " +
|
34
|
+
"website has a suitable doctype.");
|
35
|
+
|
36
|
+
render = function() {
|
37
|
+
throw new ParseError("KaTeX doesn't work in quirks mode.");
|
38
|
+
};
|
39
|
+
}
|
40
|
+
}
|
41
|
+
|
42
|
+
/**
|
43
|
+
* Parse and build an expression, and return the markup for that.
|
44
|
+
*/
|
45
|
+
var renderToString = function(toParse) {
|
46
|
+
var tree = parseTree(toParse);
|
47
|
+
return buildTree(tree).toMarkup();
|
48
|
+
};
|
49
|
+
|
50
|
+
module.exports = {
|
51
|
+
render: render,
|
52
|
+
renderToString: renderToString,
|
53
|
+
ParseError: ParseError
|
54
|
+
};
|
@@ -0,0 +1,21 @@
|
|
1
|
+
### How to generate new metrics
|
2
|
+
-------------------------------
|
3
|
+
|
4
|
+
There are several requirements for generating the metrics used by KaTeX.
|
5
|
+
|
6
|
+
- You need to have an installation of TeX which supports kpathsea. You can check
|
7
|
+
this by running `tex --version`, and seeing if it has a line that looks like
|
8
|
+
> kpathsea version 6.2.0
|
9
|
+
|
10
|
+
- You need the JSON module for perl. You can install this either from CPAN or with
|
11
|
+
your package manager.
|
12
|
+
|
13
|
+
- You need the python fontforge module. This is probably either installed with
|
14
|
+
fontforge or can be installed from your package manager.
|
15
|
+
|
16
|
+
Once you have these things, run
|
17
|
+
|
18
|
+
make metrics
|
19
|
+
|
20
|
+
which should generate new metrics and place them into `fontMetrics.js`. You're
|
21
|
+
done!
|
@@ -0,0 +1,94 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
|
3
|
+
import collections
|
4
|
+
import json
|
5
|
+
import parse_tfm
|
6
|
+
import subprocess
|
7
|
+
import sys
|
8
|
+
|
9
|
+
|
10
|
+
def find_font_path(font_name):
|
11
|
+
try:
|
12
|
+
font_path = subprocess.check_output(['kpsewhich', font_name])
|
13
|
+
except OSError:
|
14
|
+
raise RuntimeError("Couldn't find kpsewhich program, make sure you" +
|
15
|
+
" have TeX installed")
|
16
|
+
except subprocess.CalledProcessError:
|
17
|
+
raise RuntimeError("Couldn't find font metrics: '%s'" % font_name)
|
18
|
+
return font_path.strip()
|
19
|
+
|
20
|
+
|
21
|
+
def main():
|
22
|
+
mapping = json.load(sys.stdin)
|
23
|
+
|
24
|
+
fonts = [
|
25
|
+
'cmbsy10.tfm',
|
26
|
+
'cmbx10.tfm',
|
27
|
+
'cmex10.tfm',
|
28
|
+
'cmmi10.tfm',
|
29
|
+
'cmmib10.tfm',
|
30
|
+
'cmr10.tfm',
|
31
|
+
'cmsy10.tfm',
|
32
|
+
'cmti10.tfm',
|
33
|
+
'msam10.tfm',
|
34
|
+
'msbm10.tfm'
|
35
|
+
]
|
36
|
+
|
37
|
+
# Extracted by running `\font\a=<font>` and then `\showthe\skewchar\a` in
|
38
|
+
# TeX, where `<font>` is the name of the font listed here. The skewchar
|
39
|
+
# will be printed out in the output. If it outputs `-1`, that means there
|
40
|
+
# is no skewchar, so we use `None` here.
|
41
|
+
font_skewchar = {
|
42
|
+
'cmbsy10': None,
|
43
|
+
'cmbx10': None,
|
44
|
+
'cmex10': None,
|
45
|
+
'cmmi10': 127,
|
46
|
+
'cmmib10': None,
|
47
|
+
'cmr10': None,
|
48
|
+
'cmsy10': 48,
|
49
|
+
'cmti10': None,
|
50
|
+
'msam10': None,
|
51
|
+
'msbm10': None
|
52
|
+
}
|
53
|
+
|
54
|
+
font_name_to_tfm = {}
|
55
|
+
|
56
|
+
for font_name in fonts:
|
57
|
+
font_basename = font_name.split('.')[0]
|
58
|
+
font_path = find_font_path(font_name)
|
59
|
+
font_name_to_tfm[font_basename] = parse_tfm.read_tfm_file(font_path)
|
60
|
+
|
61
|
+
families = collections.defaultdict(dict)
|
62
|
+
|
63
|
+
for family, chars in mapping.iteritems():
|
64
|
+
for char, char_data in chars.iteritems():
|
65
|
+
char_num = int(char)
|
66
|
+
|
67
|
+
font = char_data['font']
|
68
|
+
tex_char_num = int(char_data['char'])
|
69
|
+
yshift = float(char_data['yshift'])
|
70
|
+
|
71
|
+
tfm_char = font_name_to_tfm[font].get_char_metrics(tex_char_num)
|
72
|
+
|
73
|
+
height = round(tfm_char.height + yshift / 1000.0, 5)
|
74
|
+
depth = round(tfm_char.depth - yshift / 1000.0, 5)
|
75
|
+
italic = round(tfm_char.italic_correction, 5)
|
76
|
+
|
77
|
+
skewkern = 0.0
|
78
|
+
if (font_skewchar[font] and
|
79
|
+
font_skewchar[font] in tfm_char.kern_table):
|
80
|
+
skewkern = round(
|
81
|
+
tfm_char.kern_table[font_skewchar[font]], 5)
|
82
|
+
|
83
|
+
families[family][char_num] = {
|
84
|
+
'height': height,
|
85
|
+
'depth': depth,
|
86
|
+
'italic': italic,
|
87
|
+
'skew': skewkern,
|
88
|
+
}
|
89
|
+
|
90
|
+
sys.stdout.write(
|
91
|
+
json.dumps(families, separators=(',', ':'), sort_keys=True))
|
92
|
+
|
93
|
+
if __name__ == '__main__':
|
94
|
+
main()
|
@@ -0,0 +1,75 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
|
3
|
+
import fontforge
|
4
|
+
import sys
|
5
|
+
import json
|
6
|
+
|
7
|
+
# map of characters to extract
|
8
|
+
metrics_to_extract = {
|
9
|
+
# Font name
|
10
|
+
"Main-Regular": {
|
11
|
+
# Skew and italic metrics can't be easily parsed from the TTF. Instead,
|
12
|
+
# we map each character to a "base character", which is a character
|
13
|
+
# from the same font with correct italic and skew metrics. A character
|
14
|
+
# maps to None if it doesn't have a base.
|
15
|
+
|
16
|
+
u"\u2260": None, # \neq
|
17
|
+
u"\u2245": None, # \cong
|
18
|
+
u"\u0020": None, # space
|
19
|
+
u"\u00a0": None, # nbsp
|
20
|
+
u"\u2026": None, # \ldots
|
21
|
+
u"\u22ef": None, # \cdots
|
22
|
+
u"\u22f1": None, # \ddots
|
23
|
+
u"\u22ee": None, # \vdots
|
24
|
+
},
|
25
|
+
"Size1-Regular": {
|
26
|
+
u"\u222c": u"\u222b", # \iint, based on \int
|
27
|
+
u"\u222d": u"\u222b", # \iiint, based on \int
|
28
|
+
},
|
29
|
+
"Size2-Regular": {
|
30
|
+
u"\u222c": u"\u222b", # \iint, based on \int
|
31
|
+
u"\u222d": u"\u222b", # \iiint, based on \int
|
32
|
+
},
|
33
|
+
}
|
34
|
+
|
35
|
+
|
36
|
+
def main():
|
37
|
+
start_json = json.load(sys.stdin)
|
38
|
+
|
39
|
+
for font, chars in metrics_to_extract.iteritems():
|
40
|
+
fontInfo = fontforge.open("../static/fonts/KaTeX_" + font + ".ttf")
|
41
|
+
|
42
|
+
for glyph in fontInfo.glyphs():
|
43
|
+
try:
|
44
|
+
char = unichr(glyph.unicode)
|
45
|
+
except ValueError:
|
46
|
+
continue
|
47
|
+
|
48
|
+
if char in chars:
|
49
|
+
_, depth, _, height = glyph.boundingBox()
|
50
|
+
|
51
|
+
depth = -depth
|
52
|
+
|
53
|
+
base_char = chars[char]
|
54
|
+
if base_char:
|
55
|
+
base_char_str = str(ord(base_char))
|
56
|
+
base_metrics = start_json[font][base_char_str]
|
57
|
+
|
58
|
+
italic = base_metrics["italic"]
|
59
|
+
skew = base_metrics["skew"]
|
60
|
+
else:
|
61
|
+
italic = 0
|
62
|
+
skew = 0
|
63
|
+
|
64
|
+
start_json[font][ord(char)] = {
|
65
|
+
"height": height / fontInfo.em,
|
66
|
+
"depth": depth / fontInfo.em,
|
67
|
+
"italic": italic,
|
68
|
+
"skew": skew,
|
69
|
+
}
|
70
|
+
|
71
|
+
sys.stdout.write(
|
72
|
+
json.dumps(start_json, separators=(',', ':'), sort_keys=True))
|
73
|
+
|
74
|
+
if __name__ == "__main__":
|
75
|
+
main()
|
@@ -0,0 +1,997 @@
|
|
1
|
+
#! /usr/bin/perl
|
2
|
+
|
3
|
+
# Adapted from the MathJax-dev repository file /fonts/OTF/TeX/makeFF under the
|
4
|
+
# Apache 2 license
|
5
|
+
|
6
|
+
# We use this file to recover the mapping from TeX fonts to KaTeX fonts, to
|
7
|
+
# accurately extract the metrics from the corresponding .tfm (TeX font metric)
|
8
|
+
# files
|
9
|
+
|
10
|
+
use JSON;
|
11
|
+
|
12
|
+
$map{cmr10} = {
|
13
|
+
"Main-Regular" => [
|
14
|
+
[0,1] => 0x393, # \Gamma, \Delta
|
15
|
+
2 => 0x398, # \Theta
|
16
|
+
3 => 0x39B, # \Lambda
|
17
|
+
4 => 0x39E, # \Xi
|
18
|
+
5 => 0x3A0, # \Pi
|
19
|
+
6 => 0x3A3, # \Sigma
|
20
|
+
[7,8] => 0x3A5, # \Upsilon, \Phi
|
21
|
+
[9,0xA] => 0x3A8, # \Psi, \Omega
|
22
|
+
|
23
|
+
0x10 => 0x131, # \imath (roman)
|
24
|
+
0x11 => 0x237, # \jmath (roman)
|
25
|
+
0x12 => 0x60, # \grave
|
26
|
+
0x12 => 0x2CB, # \grave
|
27
|
+
0x12 => [0x300,-500,0], # \grave (combining)
|
28
|
+
0x13 => 0xB4, # \acute
|
29
|
+
0x13 => 0x2CA, # \acute
|
30
|
+
0x13 => [0x301,-500,0], # \acute (combining)
|
31
|
+
0x14 => 0x2C7, # \check
|
32
|
+
0x14 => [0x30C,-500,0], # \check (combining)
|
33
|
+
0x15 => 0x2D8, # \breve
|
34
|
+
0x15 => [0x306,-500,0], # \breve (combining)
|
35
|
+
0x16 => 0xAF, # \bar
|
36
|
+
0x16 => 0x2C9, # \bar
|
37
|
+
0x16 => [0x304,-500,0], # \bar (combining)
|
38
|
+
0x17 => [0xB0,-125,0], # ring above
|
39
|
+
0x17 => [0x2DA,-125,0], # ring above
|
40
|
+
0x17 => [0x30A,-625,0], # ring above (combining)
|
41
|
+
|
42
|
+
[0x21,0x2F] => 0x21, # !, ", #, $, %, &, ', (, ), *, +, comma, -, ., /
|
43
|
+
0x22 => 0x201D, # "
|
44
|
+
0x27 => 0x2019, # '
|
45
|
+
[0x30,0x39] => 0x30, # 0-9
|
46
|
+
[0x3A,0x3B] => 0x3A, # :, ;
|
47
|
+
0x3D => 0x3D, # =
|
48
|
+
[0x3F,0x40] => 0x3F, # ?, @
|
49
|
+
[0x41,0x5A] => 0x41, # A-Z
|
50
|
+
0x5B => 0x5B, # [
|
51
|
+
0x5C => 0x201C, # ``
|
52
|
+
[0x5D,0x5E] => 0x5D, # ], ^
|
53
|
+
0x5E => 0x2C6, # \hat
|
54
|
+
0x5E => [0x302,-500,0], # \hat (combining)
|
55
|
+
0x5F => [0x2D9,111,0], # \dot
|
56
|
+
0x5F => [0x307,-389,0], # \dot (combining)
|
57
|
+
0x60 => 0x2018, # `
|
58
|
+
[0x61,0x7A] => 0x61, # a-z
|
59
|
+
[0x7B,0x7C] => 0x2013, # \endash, \emdash
|
60
|
+
0x7B => [0x5F,0,-310], # underline
|
61
|
+
0x7D => [0x30B,-500,0], # double acute (combining)
|
62
|
+
0x7E => [0x7E,0,-350], # ~
|
63
|
+
0x7E => 0x2DC, # \tilde
|
64
|
+
0x7E => [0x303,-500,0], # \tilde (combining)
|
65
|
+
0x7F => 0xA8, # \ddot
|
66
|
+
0x7F => [0x308,-500,0], # \ddot (combining)
|
67
|
+
],
|
68
|
+
};
|
69
|
+
|
70
|
+
$map{cmmi10} = {
|
71
|
+
"Math-Regular" => [
|
72
|
+
[0,1] => 0x393, # \Gamma, \Delta
|
73
|
+
2 => 0x398, # \Theta
|
74
|
+
3 => 0x39B, # \Lambda
|
75
|
+
4 => 0x39E, # \Xi
|
76
|
+
5 => 0x3A0, # \Pi
|
77
|
+
6 => 0x3A3, # \Sigma
|
78
|
+
[7,8] => 0x3A5, # \Upsilon, \Phi
|
79
|
+
[9,0xA] => 0x3A8, # \Psi, \Omega
|
80
|
+
|
81
|
+
[0xB,0xE] => 0x3B1, # \alpha, \beta, \gamma, \delta
|
82
|
+
0xF => 0x3F5, # \elpsilon
|
83
|
+
[0x10,0x18] => 0x3B6, # \zeta, \eta, \theta, \iota, \kappa, \lambda, \mu, \nu, \xi
|
84
|
+
[0x19,0x1A] => 0x3C0, # \pi, \rho
|
85
|
+
[0x1B,0x1D] => 0x3C3, # \sigma, \tau, \upsilon
|
86
|
+
0x1E => 0x3D5, # \phi
|
87
|
+
[0x1F,0x21] => 0x3C7, # \chi, \psi, \omega
|
88
|
+
0x22 => 0x3B5, # \varepsilon
|
89
|
+
0x23 => 0x3D1, # \vartheta
|
90
|
+
0x24 => 0x3D6, # \varpi
|
91
|
+
0x25 => 0x3F1, # \varrho
|
92
|
+
0x26 => 0x3C2, # \varsigma
|
93
|
+
0x27 => 0x3C6, # \varphi
|
94
|
+
|
95
|
+
[0x41,0x5A] => 0x41, # A-Z
|
96
|
+
[0x61,0x7A] => 0x61, # a - z
|
97
|
+
0x6F => 0x3BF, # omicron
|
98
|
+
],
|
99
|
+
|
100
|
+
"Math-Italic" => [
|
101
|
+
[0,1] => 0x393, # \Gamma, \Delta
|
102
|
+
2 => 0x398, # \Theta
|
103
|
+
3 => 0x39B, # \Lambda
|
104
|
+
4 => 0x39E, # \Xi
|
105
|
+
5 => 0x3A0, # \Pi
|
106
|
+
6 => 0x3A3, # \Sigma
|
107
|
+
[7,8] => 0x3A5, # \Upsilon, \Phi
|
108
|
+
[9,0xA] => 0x3A8, # \Psi, \Omega
|
109
|
+
|
110
|
+
[0xB,0xE] => 0x3B1, # \alpha, \beta, \gamma, \delta
|
111
|
+
0xF => 0x3F5, # \elpsilon
|
112
|
+
[0x10,0x18] => 0x3B6, # \zeta, \eta, \theta, \iota, \kappa, \lambda, \mu, \nu, \xi
|
113
|
+
[0x19,0x1A] => 0x3C0, # \pi, \rho
|
114
|
+
[0x1B,0x1D] => 0x3C3, # \sigma, \tau, \upsilon
|
115
|
+
0x1E => 0x3D5, # \phi
|
116
|
+
[0x1F,0x21] => 0x3C7, # \chi, \psi, \omega
|
117
|
+
0x22 => 0x3B5, # \varepsilon
|
118
|
+
0x23 => 0x3D1, # \vartheta
|
119
|
+
0x24 => 0x3D6, # \varpi
|
120
|
+
0x25 => 0x3F1, # \varrho
|
121
|
+
0x26 => 0x3C2, # \varsigma
|
122
|
+
0x27 => 0x3C6, # \varphi
|
123
|
+
|
124
|
+
[0x41,0x5A] => 0x41, # A-Z
|
125
|
+
[0x61,0x7A] => 0x61, # a - z
|
126
|
+
0x6F => 0x3BF, # omicron
|
127
|
+
],
|
128
|
+
|
129
|
+
"Main-Regular" => [
|
130
|
+
0x28 => 0x21BC, # \leftharpoonup
|
131
|
+
0x29 => 0x21BD, # \leftharpoondown
|
132
|
+
0x2A => 0x21C0, # \rightharpoonup
|
133
|
+
0x2B => 0x21C1, # \rightharpoondown
|
134
|
+
|
135
|
+
0x2E => 0x25B9, # \triangleright
|
136
|
+
0x2F => 0x25C3, # \triangleleft
|
137
|
+
|
138
|
+
0x3A => 0x2E, # .
|
139
|
+
0x3B => 0x2C, # ,
|
140
|
+
0x3C => 0x3C, # <
|
141
|
+
0x3D => 0x2215, # /
|
142
|
+
0x3E => 0x3E, # >
|
143
|
+
0x3F => 0x22C6, # \star
|
144
|
+
0x40 => 0x2202, # \partial
|
145
|
+
|
146
|
+
[0x5B,0x5D] => 0x266D, # \flat, \natural, \sharp
|
147
|
+
0x5E => 0x2323, # \smile
|
148
|
+
0x5F => 0x2322, # \frown
|
149
|
+
0x60 => 0x2113, # \ell
|
150
|
+
|
151
|
+
0x7B => 0x131, # \imath
|
152
|
+
0x7C => 0x237, # \jmath
|
153
|
+
0x7D => 0x2118, # \wp
|
154
|
+
0x7E => [0x20D7,-653,0],# \vec
|
155
|
+
]
|
156
|
+
};
|
157
|
+
|
158
|
+
$map{cmsy10} = {
|
159
|
+
"Main-Regular" => [
|
160
|
+
[0,1] => 0x2212, # -
|
161
|
+
1 => 0x22C5, # \cdot
|
162
|
+
2 => 0xD7, # \times
|
163
|
+
3 => 0x2217, # \ast
|
164
|
+
4 => 0xF7, # \div
|
165
|
+
5 => 0x22C4, # \diamond
|
166
|
+
6 => 0xB1, # \pm
|
167
|
+
7 => 0x2213, # \mp
|
168
|
+
[8,0xC] => 0x2295, # \oplus, \ominus, \otimes, \oslash, \odot
|
169
|
+
0xD => 0x25EF, # \bigcirc
|
170
|
+
[0xE,0xF] => 0x2218, # \circ, \bullet
|
171
|
+
|
172
|
+
0x10 => 0x224D, # \asymp
|
173
|
+
0x11 => 0x2261, # \equiv
|
174
|
+
[0x12,0x13] => 0x2286, # \subseteq, \supseteq
|
175
|
+
[0x14,0x15] => 0x2264, # \leq, \geq
|
176
|
+
[0x16,0x17] => 0x2AAF, # \preceq, \succeq
|
177
|
+
0x18 => 0x223C, # \sim
|
178
|
+
0x19 => 0x2248, # \approx
|
179
|
+
[0x1A,0x1B] => 0x2282, # \subset, \supset
|
180
|
+
[0x1C,0x1D] => 0x226A, # \ll, \gg
|
181
|
+
[0x1E,0x1F] => 0x227A, # \prec, \succ
|
182
|
+
|
183
|
+
0x20 => 0x2190, # \leftarrow
|
184
|
+
0x21 => 0x2192, # \rightarrow
|
185
|
+
0x22 => 0x2191, # \uparrow
|
186
|
+
0x23 => 0x2193, # \downarrow
|
187
|
+
0x24 => 0x2194, # \leftrightarrow
|
188
|
+
0x25 => 0x2197, # \nearrow
|
189
|
+
0x26 => 0x2198, # \searrow
|
190
|
+
0x27 => 0x2243, # \simeq
|
191
|
+
|
192
|
+
0x28 => 0x21D0, # \Leftarrow
|
193
|
+
0x29 => 0x21D2, # \Rightarrow
|
194
|
+
0x2A => 0x21D1, # \Uparrow
|
195
|
+
0x2B => 0x21D3, # \Downarrow
|
196
|
+
0x2C => 0x21D4, # \Leftrightarrow
|
197
|
+
0x2D => 0x2196, # \nwarrow
|
198
|
+
0x2E => 0x2199, # \swarrow
|
199
|
+
0x2F => 0x221D, # \propto
|
200
|
+
|
201
|
+
0x30 => 0x2032, # \prime
|
202
|
+
0x31 => 0x221E, # \infty
|
203
|
+
0x32 => 0x2208, # \in
|
204
|
+
0x33 => 0x220B, # \ni
|
205
|
+
0x34 => 0x25B3, # \bigtriangleup and \triangle
|
206
|
+
0x35 => 0x25BD, # \bigtriangledown
|
207
|
+
0x36 => [0x338,-778,0], # \not (combining)
|
208
|
+
|
209
|
+
0x38 => 0x2200, # \forall
|
210
|
+
0x39 => 0x2203, # \exists
|
211
|
+
0x3A => 0xAC, # \neg
|
212
|
+
0x3B => 0x2205, # \emptyset
|
213
|
+
0x3C => 0x211C, # \Re
|
214
|
+
0x3D => 0x2111, # \Im
|
215
|
+
0x3E => 0x22A4, # \top
|
216
|
+
0x3F => 0x22A5, # \bot
|
217
|
+
|
218
|
+
0x40 => 0x2135, # \aleph
|
219
|
+
|
220
|
+
0x5B => 0x222A, # \cup
|
221
|
+
0x5C => 0x2229, # \cap
|
222
|
+
0x5D => 0x228E, # \uplus
|
223
|
+
[0x5E,0x5F] => 0x2227, # \wedge, \vee
|
224
|
+
|
225
|
+
[0x60,0x61] => 0x22A2, # \vdash, \dashv
|
226
|
+
[0x62,0x63] => 0x230A, # \lfloor, \rfloor
|
227
|
+
[0x64,0x65] => 0x2308, # \lceil, \rceil
|
228
|
+
0x66 => 0x7B, # {
|
229
|
+
0x67 => 0x7D, # }
|
230
|
+
[0x68,0x69] => 0x27E8, # \langle, \rangle
|
231
|
+
0x6A => 0x7C, # |
|
232
|
+
0x6A => 0x2223, # \vert
|
233
|
+
0x6B => 0x2225, # \Vert
|
234
|
+
0x6C => 0x2195, # \updownarrow
|
235
|
+
0x6D => 0x21D5, # \Updownarrow
|
236
|
+
0x6E => 0x5C, # \backslash
|
237
|
+
0x6E => 0x2216, # \setminus
|
238
|
+
0x6F => 0x2240, # \wr
|
239
|
+
|
240
|
+
0x70 => [0x221A,0,760], # \surd ### adjust position so font doesn't have a large depth
|
241
|
+
0x71 => 0x2A3F, # \amalg
|
242
|
+
0x72 => 0x2207, # \nabla
|
243
|
+
0x73 => 0x222B, # \int
|
244
|
+
0x74 => 0x2294, # \sqcup
|
245
|
+
0x75 => 0x2293, # \sqcap
|
246
|
+
[0x76,0x77] => 0x2291, # \sqsubseteq, \sqsupseteq
|
247
|
+
|
248
|
+
[0x79,0x7A] => 0x2020, # \dagger, \ddagger
|
249
|
+
|
250
|
+
0x7C => 0x2663, # \clubsuit
|
251
|
+
0x7D => 0x2662, # \diamondsuit
|
252
|
+
0x7E => 0x2661, # \heartsuit
|
253
|
+
0x7F => 0x2660, # \spadesuit
|
254
|
+
],
|
255
|
+
|
256
|
+
"Math-Italic" => [
|
257
|
+
0x36 => 0x2F # \not
|
258
|
+
],
|
259
|
+
};
|
260
|
+
|
261
|
+
$map{cmex10} = {
|
262
|
+
"Size1" => [
|
263
|
+
0 => [0x28,0,810], # (
|
264
|
+
1 => [0x29,0,810], # )
|
265
|
+
2 => [0x5B,0,810], # [
|
266
|
+
3 => [0x5D,0,810], # ]
|
267
|
+
4 => [0x230A,0,810], # \lfloor
|
268
|
+
5 => [0x230B,0,810], # \rfloor
|
269
|
+
6 => [0x2308,0,810], # \lceil
|
270
|
+
7 => [0x2309,0,810], # \rceil
|
271
|
+
8 => [0x7B,0,810], # {
|
272
|
+
9 => [0x7D,0,810], # }
|
273
|
+
0xA => [0x27E8,0,810], # \langle
|
274
|
+
0xB => [0x27E9,0,810], # \rangle
|
275
|
+
0xC => [0x2223,0,606], # \vert
|
276
|
+
0xD => [0x2225,0,606], # \Vert
|
277
|
+
0xE => [0x2F,0,810], # /
|
278
|
+
0xF => [0x5C,0,810], # \
|
279
|
+
|
280
|
+
0x46 => [0x2A06,0,750], # \bigsqcup
|
281
|
+
0x48 => [0x222E,0,805], # \oint
|
282
|
+
0x4A => [0x2A00,0,750], # \bigodot
|
283
|
+
0x4C => [0x2A01,0,750], # \bigoplus
|
284
|
+
0x4E => [0x2A02,0,750], # \bigotimes
|
285
|
+
|
286
|
+
0x50 => [0x2211,0,750], # \sum
|
287
|
+
0x51 => [0x220F,0,750], # \prod
|
288
|
+
0x52 => [0x222B,0,805], # \int
|
289
|
+
0x53 => [0x22C3,0,750], # \bigcup
|
290
|
+
0x54 => [0x22C2,0,750], # \bigcap
|
291
|
+
0x55 => [0x2A04,0,750], # \biguplus
|
292
|
+
0x56 => [0x22C0,0,750], # \bigwedge
|
293
|
+
0x57 => [0x22C1,0,750], # \bigvee
|
294
|
+
|
295
|
+
0x60 => [0x2210,0,750], # \coprod
|
296
|
+
0x62 => 0x2C6, # \widehat
|
297
|
+
0x62 => [0x302,-556,0], # \widehat (combining)
|
298
|
+
0x65 => 0x2DC, # \widetilde
|
299
|
+
0x65 => [0x303,-556,0], # \widetilde (combining)
|
300
|
+
|
301
|
+
0x70 => [0x221A,0,810], # surd
|
302
|
+
0x3F => [0x23D0,0,601], # arrow extension
|
303
|
+
0x77 => [0x2016,0,601], # Arrow extension (non-standard)
|
304
|
+
0x78 => [0x2191,0,600], # uparrow top
|
305
|
+
0x79 => [0x2193,0,600], # downarrow bottom
|
306
|
+
0x7E => [0x21D1,0,600], # Uparrow top
|
307
|
+
0x7F => [0x21D3,0,600], # Downarrow bottom
|
308
|
+
],
|
309
|
+
|
310
|
+
"Size2" => [
|
311
|
+
0x10 => [0x28,0,1110], # (
|
312
|
+
0x11 => [0x29,0,1110], # )
|
313
|
+
0x2E => [0x2F,0,1110], # /
|
314
|
+
0x2F => [0x5C,0,1110], # \
|
315
|
+
0x44 => [0x27E8,0,1110],# \langle
|
316
|
+
0x45 => [0x27E9,0,1110],# \rangle
|
317
|
+
|
318
|
+
0x47 => [0x2A06,0,950], # \bigsqcup
|
319
|
+
0x49 => [0x222E,0,1360],# \oint
|
320
|
+
0x4B => [0x2A00,0,950], # \bigodot
|
321
|
+
0x4D => [0x2A01,0,950], # \bigoplus
|
322
|
+
0x4F => [0x2A02,0,950], # \bigotimes
|
323
|
+
|
324
|
+
0x58 => [0x2211,0,950], # \sum
|
325
|
+
0x59 => [0x220F,0,950], # \prod
|
326
|
+
0x5A => [0x222B,0,1360],# \int
|
327
|
+
0x5B => [0x22C3,0,950], # \bigcup
|
328
|
+
0x5C => [0x22C2,0,950], # \bigcap
|
329
|
+
0x5D => [0x2A04,0,950], # \biguplus
|
330
|
+
0x5E => [0x22C0,0,950], # \bigwedge
|
331
|
+
0x5F => [0x22C1,0,950], # \bigvee
|
332
|
+
0x61 => [0x2210,0,950], # \coprod
|
333
|
+
|
334
|
+
0x63 => 0x2C6, # \widehat
|
335
|
+
0x63 => [0x302,-1000,0],# \widehat (combining)
|
336
|
+
0x66 => 0x2DC, # \widetilde
|
337
|
+
0x66 => [0x303,-1000,0],# \widetilde (combining)
|
338
|
+
|
339
|
+
0x68 => [0x5B,0,1110], # [
|
340
|
+
0x69 => [0x5D,0,1110], # ]
|
341
|
+
0x6A => [0x230A,0,1110],# \lfloor
|
342
|
+
0x6B => [0x230B,0,1110],# \rfloor
|
343
|
+
0x6C => [0x2308,0,1110],# \lceil
|
344
|
+
0x6D => [0x2309,0,1110],# \rceil
|
345
|
+
0x6E => [0x7B,0,1110], # {
|
346
|
+
0x6F => [0x7D,0,1110], # }
|
347
|
+
0x71 => [0x221A,0,1110],# surd
|
348
|
+
],
|
349
|
+
|
350
|
+
"Size3" => [
|
351
|
+
0x12 => [0x28,0,1410], # (
|
352
|
+
0x13 => [0x29,0,1410], # )
|
353
|
+
0x14 => [0x5B,0,1410], # [
|
354
|
+
0x15 => [0x5D,0,1410], # ]
|
355
|
+
0x16 => [0x230A,0,1410],# \lfloor
|
356
|
+
0x17 => [0x230B,0,1410],# \rfloor
|
357
|
+
0x18 => [0x2308,0,1410],# \lceil
|
358
|
+
0x19 => [0x2309,0,1410],# \rceil
|
359
|
+
0x1A => [0x7B,0,1410], # {
|
360
|
+
0x1B => [0x7D,0,1410], # }
|
361
|
+
0x1C => [0x27E8,0,1410],# \langle
|
362
|
+
0x1D => [0x27E9,0,1410],# \rangle
|
363
|
+
0x1E => [0x2F,0,1410], # /
|
364
|
+
0x1F => [0x5C,0,1410], # \
|
365
|
+
0x64 => 0x2C6, # \widehat
|
366
|
+
0x64 => [0x302,-1444,0],# \widehat (combining)
|
367
|
+
0x67 => 0x2DC, # \widetilde
|
368
|
+
0x67 => [0x303,-1444,0],# \widetilde (combining)
|
369
|
+
0x72 => [0x221A,0,1410],# surd
|
370
|
+
],
|
371
|
+
|
372
|
+
"Size4" => [
|
373
|
+
0x20 => [0x28,0,1710], # (
|
374
|
+
0x21 => [0x29,0,1710], # )
|
375
|
+
0x22 => [0x5B,0,1710], # [
|
376
|
+
0x23 => [0x5D,0,1710], # ]
|
377
|
+
0x24 => [0x230A,0,1710],# \lfloor
|
378
|
+
0x25 => [0x230B,0,1710],# \rfloor
|
379
|
+
0x26 => [0x2308,0,1710],# \lceil
|
380
|
+
0x27 => [0x2309,0,1710],# \rceil
|
381
|
+
0x28 => [0x7B,0,1710], # {
|
382
|
+
0x29 => [0x7D,0,1710], # }
|
383
|
+
0x2A => [0x27E8,0,1710],# \langle
|
384
|
+
0x2B => [0x27E9,0,1710],# \rangle
|
385
|
+
0x2C => [0x2F,0,1710], # /
|
386
|
+
0x2D => [0x5C,0,1710], # \
|
387
|
+
0x73 => [0x221A,0,1710],# surd
|
388
|
+
|
389
|
+
0x30 => [0x239B,0,1115],# left paren upper hook
|
390
|
+
0x31 => [0x239E,0,1115],# right paren upper hook
|
391
|
+
0x32 => [0x23A1,0,1115],# left square bracket upper corner
|
392
|
+
0x33 => [0x23A4,0,1115],# right square bracket upper corner
|
393
|
+
0x34 => [0x23A3,0,1115],# left square bracket lower corner
|
394
|
+
0x35 => [0x23A6,0,1115],# right square bracket lower hook
|
395
|
+
0x36 => [0x23A2,0,601], # left square bracket extension
|
396
|
+
0x37 => [0x23A5,0,601], # right square bracket extension
|
397
|
+
0x38 => [0x23A7,0,900], # left curly brace upper hook
|
398
|
+
0x39 => [0x23AB,0,900], # right curly brace upper hook
|
399
|
+
0x3A => 0x23A9, # left curly brace lower hook
|
400
|
+
0x3B => 0x23AD, # right curly brace lower hook
|
401
|
+
0x3C => [0x23A8,0,1150],# left curly brace middle
|
402
|
+
0x3D => [0x23AC,0,1150],# right curly brace middle
|
403
|
+
0x3E => [0x23AA,0,300], # curly brace extension
|
404
|
+
|
405
|
+
0x40 => [0x239D,0,1115],# left paren lower hook
|
406
|
+
0x41 => [0x23A0,0,1115],# right paren lower hook
|
407
|
+
0x42 => [0x239C,0,600], # left paren extension
|
408
|
+
0x43 => [0x239F,0,600], # right paren extension
|
409
|
+
|
410
|
+
0x74 => [0x23B7,0,915], # radical bottom
|
411
|
+
0x75 => [0xE000,0,605], # radical extension (PUA)
|
412
|
+
0x76 => [0xE001,0,565], # radical top (PUA)
|
413
|
+
[0x7A,0x7D] => 0xE150, # \braceld, \bracerd, \bracelu, \braceru (PUA)
|
414
|
+
],
|
415
|
+
};
|
416
|
+
|
417
|
+
$map{cmti10} = {
|
418
|
+
"Main-Italic" => [
|
419
|
+
[0,1] => 0x393, # \Gamma, \Delta
|
420
|
+
2 => 0x398, # \Theta
|
421
|
+
3 => 0x39B, # \Lambda
|
422
|
+
4 => 0x39E, # \Xi
|
423
|
+
5 => 0x3A0, # \Pi
|
424
|
+
6 => 0x3A3, # \Sigma
|
425
|
+
[7,8] => 0x3A5, # \Upsilon, \Phi
|
426
|
+
[9,0xA] => 0x3A8, # \Psi, \Omega
|
427
|
+
|
428
|
+
0x10 => 0x131, # \imath (roman)
|
429
|
+
0x11 => 0x237, # \jmath (roman)
|
430
|
+
0x12 => [0x300,-511,0], # \grave (combining)
|
431
|
+
0x13 => [0x301,-511,0], # \acute (combining)
|
432
|
+
0x14 => [0x30C,-511,0], # \check (combining)
|
433
|
+
0x15 => [0x306,-511,0], # \breve (combining)
|
434
|
+
0x16 => [0x304,-511,0], # \bar (combining)
|
435
|
+
0x17 => [0x30A,-671,0], # ring above (combining)
|
436
|
+
|
437
|
+
[0x21,0x23] => 0x21, # !, ", #,
|
438
|
+
0x22 => 0x201D, # "
|
439
|
+
0x24 => 0xA3, # pound sign
|
440
|
+
[0x25,0x2F] => 0x25, # %, &, ', (, ), *, +, comma, -, ., /
|
441
|
+
0x27 => 0x2019, # '
|
442
|
+
[0x30,0x39] => 0x30, # 0-9
|
443
|
+
[0x3A,0x3B] => 0x3A, # :, ;
|
444
|
+
0x3D => 0x3D, # =
|
445
|
+
[0x3F,0x40] => 0x3F, # ?, @
|
446
|
+
[0x41,0x5A] => 0x41, # A-Z
|
447
|
+
0x5B => 0x5B, # [
|
448
|
+
0x5C => 0x201C, # ``
|
449
|
+
[0x5D,0x5E] => 0x5D, # ], ^
|
450
|
+
0x5E => [0x302,-511,0], # \hat (combining)
|
451
|
+
0x5F => [0x307,-409,0], # \dot (combining)
|
452
|
+
0x60 => 0x2018, # `
|
453
|
+
[0x61,0x7A] => 0x61, # a-z
|
454
|
+
[0x7B,0x7C] => 0x2013, # \endash, \emdash
|
455
|
+
0x7B => [0x5F,0,-310], # underline
|
456
|
+
0x7D => [0x30B,-511,0], # double acute (combining)
|
457
|
+
0x7E => [0x7E,0,-350], # ~
|
458
|
+
0x7E => [0x303,-511,0], # \tilde (combining)
|
459
|
+
0x7F => [0x308,-511,0], # \ddot (combining)
|
460
|
+
],
|
461
|
+
};
|
462
|
+
|
463
|
+
$map{cmbx10} = {
|
464
|
+
"Main-Bold" => [
|
465
|
+
[0,1] => 0x393, # \Gamma, \Delta
|
466
|
+
2 => 0x398, # \Theta
|
467
|
+
3 => 0x39B, # \Lambda
|
468
|
+
4 => 0x39E, # \Xi
|
469
|
+
5 => 0x3A0, # \Pi
|
470
|
+
6 => 0x3A3, # \Sigma
|
471
|
+
[7,8] => 0x3A5, # \Upsilon, \Phi
|
472
|
+
[9,0xA] => 0x3A8, # \Psi, \Omega
|
473
|
+
|
474
|
+
0x10 => 0x131, # \imath (roman bold)
|
475
|
+
0x11 => 0x237, # \jmath (roman bold)
|
476
|
+
0x12 => 0x60, # \grave
|
477
|
+
0x12 => 0x2CB, # \grave
|
478
|
+
0x12 => [0x300,-575,0], # \grave (combining)
|
479
|
+
0x13 => 0xB4, # \acute
|
480
|
+
0x13 => 0x2CA, # \acute
|
481
|
+
0x13 => [0x301,-575,0], # \acute (combining)
|
482
|
+
0x14 => 0x2C7, # \check
|
483
|
+
0x14 => [0x30C,-575,0], # \check (combining)
|
484
|
+
0x15 => 0x2D8, # \breve
|
485
|
+
0x15 => [0x306,-575,0], # \breve (combining)
|
486
|
+
0x16 => 0xAF, # \bar
|
487
|
+
0x16 => 0x2C9, # \bar
|
488
|
+
0x16 => [0x304,-575,0], # \bar (combining)
|
489
|
+
0x17 => [0xB0,-147,0], # ring above
|
490
|
+
0x17 => [0x2DA,-147,0], # ring above
|
491
|
+
0x17 => [0x30A,-722,0], # ring above (combining)
|
492
|
+
|
493
|
+
[0x21,0x2F] => 0x21, # !, ", #, $, %, &, ', (, ), *, +, comma, -, ., /
|
494
|
+
0x22 => 0x201D, # "
|
495
|
+
0x27 => 0x2019, # '
|
496
|
+
[0x30,0x39] => 0x30, # 0-9
|
497
|
+
[0x3A,0x3B] => 0x3A, # :, ;
|
498
|
+
0x3D => 0x3D, # =
|
499
|
+
[0x3F,0x40] => 0x3F, # ?, @
|
500
|
+
[0x41,0x5A] => 0x41, # A-Z
|
501
|
+
0x5B => 0x5B, # [
|
502
|
+
0x5C => 0x201C, # ``
|
503
|
+
[0x5D,0x5E] => 0x5D, # ], ^
|
504
|
+
0x5E => 0x2C6, # \hat
|
505
|
+
0x5E => [0x302,-575,0], # \hat (combining)
|
506
|
+
0x5F => [0x2D9,128,0], # \dot
|
507
|
+
0x5F => [0x307,-447,0], # \dot (combining)
|
508
|
+
0x60 => 0x2018, # `
|
509
|
+
[0x61,0x7A] => 0x61, # a-z
|
510
|
+
[0x7B,0x7C] => 0x2013, # \endash, \emdash
|
511
|
+
0x7B => [0x5F,0,-310], # underline
|
512
|
+
0x7D => [0x30B,-575,0], # double acute (combining)
|
513
|
+
0x7E => [0x7E,0,-350], # ~
|
514
|
+
0x7E => 0x2DC, # \tilde
|
515
|
+
0x7E => [0x303,-575,0], # \tilde (combining)
|
516
|
+
0x7F => 0xA8, # \ddot
|
517
|
+
0x7F => [0x308,-575,0], # \ddot (combining)
|
518
|
+
],
|
519
|
+
};
|
520
|
+
|
521
|
+
$map{cmmib10} = {
|
522
|
+
"Math-BoldItalic" => [
|
523
|
+
[0,1] => 0x393, # \Gamma, \Delta
|
524
|
+
2 => 0x398, # \Theta
|
525
|
+
3 => 0x39B, # \Lambda
|
526
|
+
4 => 0x39E, # \Xi
|
527
|
+
5 => 0x3A0, # \Pi
|
528
|
+
6 => 0x3A3, # \Sigma
|
529
|
+
[7,8] => 0x3A5, # \Upsilon, \Phi
|
530
|
+
[9,0xA] => 0x3A8, # \Psi, \Omega
|
531
|
+
|
532
|
+
[0xB,0xE] => 0x3B1, # \alpha, \beta, \gamma, \delta
|
533
|
+
0xF => 0x3F5, # \elpsilon
|
534
|
+
[0x10,0x18] => 0x3B6, # \zeta, \eta, \theta, \iota, \kappa, \lambda, \mu, \nu, \xi
|
535
|
+
[0x19,0x1A] => 0x3C0, # \pi, \rho
|
536
|
+
[0x1B,0x1D] => 0x3C3, # \sigma, \tau, \upsilon
|
537
|
+
0x1E => 0x3D5, # \phi
|
538
|
+
[0x1F,0x21] => 0x3C7, # \chi, \psi, \omega
|
539
|
+
0x22 => 0x3B5, # \varepsilon
|
540
|
+
0x23 => 0x3D1, # \vartheta
|
541
|
+
0x24 => 0x3D6, # \varpi
|
542
|
+
0x25 => 0x3F1, # \varrho
|
543
|
+
0x26 => 0x3C2, # \varsigma
|
544
|
+
0x27 => 0x3C6, # \varphi
|
545
|
+
|
546
|
+
[0x41,0x5A] => 0x41, # A-Z
|
547
|
+
[0x61,0x7A] => 0x61, # a - z
|
548
|
+
0x6F => 0x3BF, # omicron
|
549
|
+
],
|
550
|
+
|
551
|
+
"Main-Bold" => [
|
552
|
+
0x28 => 0x21BC, # \leftharpoonup
|
553
|
+
0x29 => 0x21BD, # \leftharpoondown
|
554
|
+
0x2A => 0x21C0, # \rightharpoonup
|
555
|
+
0x2B => 0x21C1, # \rightharpoondown
|
556
|
+
|
557
|
+
0x2E => 0x25B9, # \triangleright
|
558
|
+
0x2F => 0x25C3, # \triangleleft
|
559
|
+
|
560
|
+
0x3A => 0x2E, # .
|
561
|
+
0x3B => 0x2C, # ,
|
562
|
+
0x3C => 0x3C, # <
|
563
|
+
0x3D => 0x2215, # /
|
564
|
+
0x3E => 0x3E, # >
|
565
|
+
0x3F => 0x22C6, # \star
|
566
|
+
0x40 => 0x2202, # \partial
|
567
|
+
|
568
|
+
[0x5B,0x5D] => 0x266D, # \flat, \natural, \sharp
|
569
|
+
0x5E => 0x2323, # \smile
|
570
|
+
0x5F => 0x2322, # \frown
|
571
|
+
0x60 => 0x2113, # \ell
|
572
|
+
0x68 => 0x210F, # \hbar (bar added below)
|
573
|
+
|
574
|
+
0x7B => 0x131, # \imath
|
575
|
+
0x7C => 0x237, # \jmath
|
576
|
+
0x7D => 0x2118, # \wp
|
577
|
+
0x7E => [0x20D7,-729,0],# \vec
|
578
|
+
],
|
579
|
+
};
|
580
|
+
|
581
|
+
$map{cmbsy10} = {
|
582
|
+
"Main-Bold" => [
|
583
|
+
[0,1] => 0x2212, # -
|
584
|
+
1 => 0x22C5, # \cdot
|
585
|
+
2 => 0xD7, # \times
|
586
|
+
3 => 0x2217, # \ast
|
587
|
+
4 => 0xF7, # \div
|
588
|
+
5 => 0x22C4, # \diamond
|
589
|
+
6 => 0xB1, # \pm
|
590
|
+
7 => 0x2213, # \mp
|
591
|
+
[8,0xC] => 0x2295, # \oplus, \ominus, \otimes, \oslash, \odot
|
592
|
+
0xD => 0x25EF, # \bigcirc
|
593
|
+
[0xE,0xF] => 0x2218, # \circ, \bullet
|
594
|
+
|
595
|
+
0x10 => 0x224D, # \asymp
|
596
|
+
0x11 => 0x2261, # \equiv
|
597
|
+
[0x12,0x13] => 0x2286, # \subseteq, \supseteq
|
598
|
+
[0x14,0x15] => 0x2264, # \leq, \geq
|
599
|
+
[0x16,0x17] => 0x2AAF, # \preceq, \succeq
|
600
|
+
0x18 => 0x223C, # \sim
|
601
|
+
0x19 => 0x2248, # \approx
|
602
|
+
[0x1A,0x1B] => 0x2282, # \subset, \supset
|
603
|
+
[0x1C,0x1D] => 0x226A, # \ll, \gg
|
604
|
+
[0x1E,0x1F] => 0x227A, # \prec, \succ
|
605
|
+
|
606
|
+
0x20 => 0x2190, # \leftarrow
|
607
|
+
0x21 => 0x2192, # \rightarrow
|
608
|
+
0x22 => 0x2191, # \uparrow
|
609
|
+
0x23 => 0x2193, # \downarrow
|
610
|
+
0x24 => 0x2194, # \leftrightarrow
|
611
|
+
0x25 => 0x2197, # \nearrow
|
612
|
+
0x26 => 0x2198, # \searrow
|
613
|
+
0x27 => 0x2243, # \simeq
|
614
|
+
|
615
|
+
0x28 => 0x21D0, # \Leftarrow
|
616
|
+
0x29 => 0x21D2, # \Rightarrow
|
617
|
+
0x2A => 0x21D1, # \Uparrow
|
618
|
+
0x2B => 0x21D3, # \Downarrow
|
619
|
+
0x2C => 0x21D4, # \Leftrightarrow
|
620
|
+
0x2D => 0x2196, # \nwarrow
|
621
|
+
0x2E => 0x2199, # \swarrow
|
622
|
+
0x2F => 0x221D, # \propto
|
623
|
+
|
624
|
+
0x30 => 0x2032, # \prime
|
625
|
+
0x31 => 0x221E, # \infty
|
626
|
+
0x32 => 0x2208, # \in
|
627
|
+
0x33 => 0x220B, # \ni
|
628
|
+
0x34 => 0x25B3, # \bigtriangleup and \triangle
|
629
|
+
0x35 => 0x25BD, # \bigtriangledown
|
630
|
+
0x36 => [0x338,-894,0], # \not (combining)
|
631
|
+
|
632
|
+
0x38 => 0x2200, # \forall
|
633
|
+
0x39 => 0x2203, # \exists
|
634
|
+
0x3A => 0xAC, # \neg
|
635
|
+
0x3B => 0x2205, # \emptyset
|
636
|
+
0x3C => 0x211C, # \Re
|
637
|
+
0x3D => 0x2111, # \Im
|
638
|
+
0x3E => 0x22A4, # \top
|
639
|
+
0x3F => 0x22A5, # \bot
|
640
|
+
|
641
|
+
0x40 => 0x2135, # \aleph
|
642
|
+
|
643
|
+
0x5B => 0x222A, # \cup
|
644
|
+
0x5C => 0x2229, # \cap
|
645
|
+
0x5D => 0x228E, # \uplus
|
646
|
+
[0x5E,0x5F] => 0x2227, # \wedge, \vee
|
647
|
+
|
648
|
+
[0x60,0x61] => 0x22A2, # \vdash, \dashv
|
649
|
+
[0x62,0x63] => 0x230A, # \lfloor, \rfloor
|
650
|
+
[0x64,0x65] => 0x2308, # \lceil, \rceil
|
651
|
+
0x66 => 0x7B, # {
|
652
|
+
0x67 => 0x7D, # }
|
653
|
+
[0x68,0x69] => 0x27E8, # \langle, \rangle
|
654
|
+
0x6A => 0x7C, # |
|
655
|
+
0x6A => 0x2223, # \vert
|
656
|
+
0x6B => 0x2225, # \Vert
|
657
|
+
0x6C => 0x2195, # \updownarrow
|
658
|
+
0x6D => 0x21D5, # \Updownarrow
|
659
|
+
0x6E => 0x5C, # \backslash
|
660
|
+
0x6E => 0x2216, # \setminus
|
661
|
+
0x6F => 0x2240, # \wr
|
662
|
+
|
663
|
+
0x70 => [0x221A,0,760], # \surd ### adjust position so font doesn't have a large depth
|
664
|
+
0x71 => 0x2A3F, # \amalg
|
665
|
+
0x72 => 0x2207, # \nabla
|
666
|
+
0x73 => 0x222B, # \int
|
667
|
+
0x74 => 0x2294, # \sqcup
|
668
|
+
0x75 => 0x2293, # \sqcap
|
669
|
+
[0x76,0x77] => 0x2291, # \sqsubseteq, \sqsupseteq
|
670
|
+
|
671
|
+
[0x79,0x7A] => 0x2020, # \dagger, \ddagger
|
672
|
+
|
673
|
+
0x7C => 0x2663, # \clubsuit
|
674
|
+
0x7D => 0x2662, # \diamondsuit
|
675
|
+
0x7E => 0x2661, # \heartsuit
|
676
|
+
0x7F => 0x2660, # \spadesuit
|
677
|
+
],
|
678
|
+
|
679
|
+
"Math-BoldItalic" => [
|
680
|
+
0x36 => 0x2F # \not
|
681
|
+
],
|
682
|
+
};
|
683
|
+
|
684
|
+
$map{msam10} = {
|
685
|
+
"Main-Regular" => [
|
686
|
+
0x5C => 0x2220, # \angle
|
687
|
+
],
|
688
|
+
|
689
|
+
"Main-Bold" => [
|
690
|
+
0x5C => 0x2220, # \angle (emboldened below)
|
691
|
+
],
|
692
|
+
|
693
|
+
"AMS" => [
|
694
|
+
0x00 => 0x22A1, # \boxdot
|
695
|
+
0x01 => 0x229E, # \boxplus
|
696
|
+
0x02 => 0x22A0, # \boxtimes
|
697
|
+
0x03 => 0x25A1, # \square
|
698
|
+
0x04 => 0x25A0, # \blacksquare
|
699
|
+
0x05 => 0x22C5, # \centerdot
|
700
|
+
0x06 => 0x25CA, # \lozenge
|
701
|
+
0x07 => 0x29EB, # \blacklozenge
|
702
|
+
0x08 => 0x21BB, # \circlearrowright
|
703
|
+
0x09 => 0x21BA, # \circlearrowleft
|
704
|
+
0x0A => 0x21CC, # \rightleftharpoons
|
705
|
+
0x0B => 0x21CB, # \leftrightharpoons
|
706
|
+
0x0C => 0x229F, # \boxminus
|
707
|
+
0x0D => 0x22A9, # \Vdash
|
708
|
+
0x0E => 0x22AA, # \Vvdash
|
709
|
+
0x0F => 0x22A8, # \vDash
|
710
|
+
0x10 => 0x21A0, # \twoheadrightarrow
|
711
|
+
0x11 => 0x219E, # \twoheadleftarrow
|
712
|
+
0x12 => 0x21C7, # \leftleftarrows
|
713
|
+
0x13 => 0x21C9, # \rightrightarrows
|
714
|
+
0x14 => 0x21C8, # \upuparrows
|
715
|
+
0x15 => 0x21CA, # \downdownarrows
|
716
|
+
0x16 => 0x21BE, # \upharpoonright
|
717
|
+
0x17 => 0x21C2, # \downharpoonright
|
718
|
+
0x18 => 0x21BF, # \upharpoonleft
|
719
|
+
0x19 => 0x21C3, # \downharpoonleft
|
720
|
+
0x1A => 0x21A3, # \rightarrowtail
|
721
|
+
0x1B => 0x21A2, # \leftarrowtail
|
722
|
+
0x1C => 0x21C6, # \leftrightarrows
|
723
|
+
0x1D => 0x21C4, # \rightleftarrows
|
724
|
+
0x1E => 0x21B0, # \Lsh
|
725
|
+
0x1F => 0x21B1, # \Rsh
|
726
|
+
0x20 => 0x21DD, # \rightsquigarrow
|
727
|
+
0x21 => 0x21AD, # \leftrightsquigarrow
|
728
|
+
0x22 => 0x21AB, # \looparrowleft
|
729
|
+
0x23 => 0x21AC, # \looparrowright
|
730
|
+
0x24 => 0x2257, # \circeq
|
731
|
+
0x25 => 0x227F, # \succsim
|
732
|
+
0x26 => 0x2273, # \gtrsim
|
733
|
+
0x27 => 0x2A86, # \gtrapprox
|
734
|
+
0x28 => 0x22B8, # \multimap
|
735
|
+
0x29 => 0x2234, # \therefore
|
736
|
+
0x2A => 0x2235, # \because
|
737
|
+
0x2B => 0x2251, # \doteqdot
|
738
|
+
0x2C => 0x225C, # \triangleq
|
739
|
+
0x2D => 0x227E, # \precsim
|
740
|
+
0x2E => 0x2272, # \lesssim
|
741
|
+
0x2F => 0x2A85, # \lessapprox
|
742
|
+
0x30 => 0x2A95, # \eqslantless
|
743
|
+
0x31 => 0x2A96, # \eqslantgtr
|
744
|
+
0x32 => 0x22DE, # \curlyeqprec
|
745
|
+
0x33 => 0x22DF, # \curlyeqsucc
|
746
|
+
0x34 => 0x227C, # \preccurlyeq
|
747
|
+
0x35 => 0x2266, # \leqq
|
748
|
+
0x36 => 0x2A7D, # \leqslant
|
749
|
+
0x37 => 0x2276, # \lessgtr
|
750
|
+
0x38 => 0x2035, # \backprime
|
751
|
+
0x39 => 0x2212, # dahsed arrow extension
|
752
|
+
0x3A => 0x2253, # \risingdotseq
|
753
|
+
0x3B => 0x2252, # \fallingdotseq
|
754
|
+
0x3C => 0x227D, # \succcurlyeq
|
755
|
+
0x3D => 0x2267, # \geqq
|
756
|
+
0x3E => 0x2A7E, # \geqslant
|
757
|
+
0x3F => 0x2277, # \gtrless
|
758
|
+
0x40 => 0x228F, # \sqsubset
|
759
|
+
0x41 => 0x2290, # \sqsupset
|
760
|
+
0x42 => 0x22B3, # \vartriangleright
|
761
|
+
0x43 => 0x22B2, # \vartriangleleft
|
762
|
+
0x44 => 0x22B5, # \trianglerighteq
|
763
|
+
0x45 => 0x22B4, # \trianglelefteq
|
764
|
+
0x46 => 0x2605, # \bigstar
|
765
|
+
0x47 => 0x226C, # \between
|
766
|
+
0x48 => 0x25BC, # \blacktriangledown
|
767
|
+
0x49 => 0x25B6, # \blacktriangleright
|
768
|
+
0x4A => 0x25C0, # \blacktriangleleft
|
769
|
+
0x4B => 0x2192, # rightarrow
|
770
|
+
0x4C => 0x2190, # leftarrow
|
771
|
+
0x4D => 0x25B3, # \vartriangle
|
772
|
+
0x4E => 0x25B2, # \blacktriangle
|
773
|
+
0x4F => 0x25BD, # \triangledown
|
774
|
+
0x50 => 0x2256, # \eqcirc
|
775
|
+
0x51 => 0x22DA, # \lesseqgtr
|
776
|
+
0x52 => 0x22DB, # \gtreqless
|
777
|
+
0x53 => 0x2A8B, # \lesseqqgtr
|
778
|
+
0x54 => 0x2A8C, # \gtreqqless
|
779
|
+
0x55 => 0x00A5, # yen
|
780
|
+
0x56 => 0x21DB, # \Rrightarrow
|
781
|
+
0x57 => 0x21DA, # \Lleftarrow
|
782
|
+
0x58 => 0x2713, # checkmark
|
783
|
+
0x59 => 0x22BB, # \veebar
|
784
|
+
0x5A => 0x22BC, # \barwedge
|
785
|
+
0x5B => 0x2A5E, # \doublebarwedge
|
786
|
+
0x5C => 0x2220, # \angle
|
787
|
+
0x5D => 0x2221, # \measuredangle
|
788
|
+
0x5E => 0x2222, # \sphericalangle
|
789
|
+
0x5F => 0x221D, # \varpropto
|
790
|
+
0x60 => 0x2323, # \smallsmile
|
791
|
+
0x61 => 0x2322, # \smallfrown
|
792
|
+
0x62 => 0x22D0, # \Subset
|
793
|
+
0x63 => 0x22D1, # \Supset
|
794
|
+
0x64 => 0x22D3, # \Cup
|
795
|
+
0x65 => 0x22D2, # \Cap
|
796
|
+
0x66 => 0x22CF, # \curlywedge
|
797
|
+
0x67 => 0x22CE, # \curlyvee
|
798
|
+
0x68 => 0x22CB, # \leftthreetimes
|
799
|
+
0x69 => 0x22CC, # \rightthreetimes
|
800
|
+
0x6A => 0x2AC5, # \subseteqq
|
801
|
+
0x6B => 0x2AC6, # \supseteqq
|
802
|
+
0x6C => 0x224F, # \bumpeq
|
803
|
+
0x6D => 0x224E, # \Bumpeq
|
804
|
+
0x6E => 0x22D8, # \lll
|
805
|
+
0x6F => 0x22D9, # \ggg
|
806
|
+
0x70 => 0x250C, # \ulcorner
|
807
|
+
0x71 => 0x2510, # \urcorner
|
808
|
+
0x72 => 0x00AE, # registered sign
|
809
|
+
0x73 => 0x24C8, # \circledS
|
810
|
+
0x74 => 0x22D4, # \pitchfork
|
811
|
+
0x75 => 0x2214, # \dotplus
|
812
|
+
0x76 => 0x223D, # \backsim
|
813
|
+
0x77 => 0x22CD, # \backsimeq
|
814
|
+
0x78 => 0x2514, # \llcorner
|
815
|
+
0x79 => 0x2518, # \lrcorner
|
816
|
+
0x7A => 0x2720, # maltese cross
|
817
|
+
0x7B => 0x2201, # \complement
|
818
|
+
0x7C => 0x22BA, # \intercal
|
819
|
+
0x7D => 0x229A, # \circledcirc
|
820
|
+
0x7E => 0x229B, # \circledast
|
821
|
+
0x7F => 0x229D, # \circleddash
|
822
|
+
],
|
823
|
+
};
|
824
|
+
|
825
|
+
$map{msbm10} = {
|
826
|
+
"Size4" => [
|
827
|
+
0x5B => 0x2C6, # \widehat
|
828
|
+
0x5B => [0x302,-1889,0],# \widehat (combining)
|
829
|
+
0x5D => 0x2DC, # \widetilde
|
830
|
+
0x5D => [0x303,-1889,0],# \widetilde (combining)
|
831
|
+
],
|
832
|
+
|
833
|
+
"Main-Regular" => [
|
834
|
+
0x7E => 0x210F, # \hbar
|
835
|
+
],
|
836
|
+
|
837
|
+
"Main-Italic" => [
|
838
|
+
0x7D => 0x210F, # \hbar (with slant)
|
839
|
+
],
|
840
|
+
|
841
|
+
"AMS" => [
|
842
|
+
0x00 => 0xE00C, # \lvertneqq
|
843
|
+
0x01 => 0xE00D, # \gvertneqq
|
844
|
+
0x02 => 0x2270, # \nleq
|
845
|
+
0x03 => 0x2271, # \ngeq
|
846
|
+
0x04 => 0x226E, # \nless
|
847
|
+
0x05 => 0x226F, # \ngtr
|
848
|
+
0x06 => 0x2280, # \nprec
|
849
|
+
0x07 => 0x2281, # \nsucc
|
850
|
+
0x08 => 0x2268, # \lneqq
|
851
|
+
0x09 => 0x2269, # \gneqq
|
852
|
+
0x0A => 0xE010, # \nleqslant
|
853
|
+
0x0B => 0xE00F, # \ngeqslant
|
854
|
+
0x0C => 0x2A87, # \lneq
|
855
|
+
0x0D => 0x2A88, # \gneq
|
856
|
+
0x0E => 0x22E0, # \npreceq
|
857
|
+
0x0F => 0x22E1, # \nsucceq
|
858
|
+
0x10 => 0x22E8, # \precnsim
|
859
|
+
0x11 => 0x22E9, # \succnsim
|
860
|
+
0x12 => 0x22E6, # \lnsim
|
861
|
+
0x13 => 0x22E7, # \gnsim
|
862
|
+
0x14 => 0xE011, # \nleqq
|
863
|
+
0x15 => 0xE00E, # \ngeqq
|
864
|
+
0x16 => 0x2AB5, # \precneqq
|
865
|
+
0x17 => 0x2AB6, # \succneqq
|
866
|
+
0x18 => 0x2AB9, # \precnapprox
|
867
|
+
0x19 => 0x2ABA, # \succnapprox
|
868
|
+
0x1A => 0x2A89, # \lnapprox
|
869
|
+
0x1B => 0x2A8A, # \gnapprox
|
870
|
+
0x1C => 0x2241, # \nsim
|
871
|
+
0x1D => 0x2246, # \ncong
|
872
|
+
0x1E => 0x2571, # \diagup
|
873
|
+
0x1F => 0x2572, # \diagdown
|
874
|
+
0x20 => 0xE01A, # \varsubsetneq
|
875
|
+
0x21 => 0xE01B, # \varsupsetneq
|
876
|
+
0x22 => 0xE016, # \nsubseteqq
|
877
|
+
0x23 => 0xE018, # \nsupseteqq
|
878
|
+
0x24 => 0x2ACB, # \subsetneqq
|
879
|
+
0x25 => 0x2ACC, # \supsetneqq
|
880
|
+
0x26 => 0xE017, # \varsubsetneqq
|
881
|
+
0x27 => 0xE019, # \varsupsetneqq
|
882
|
+
0x28 => 0x228A, # \subsetneq
|
883
|
+
0x29 => 0x228B, # \supsetneq
|
884
|
+
0x2A => 0x2288, # \nsubseteq
|
885
|
+
0x2B => 0x2289, # \nsupseteq
|
886
|
+
0x2C => 0x2226, # \nparallel
|
887
|
+
0x2D => 0x2224, # \nmid
|
888
|
+
0x2E => 0xE006, # \nshortmid
|
889
|
+
0x2F => 0xE007, # \nshortparallel
|
890
|
+
0x30 => 0x22AC, # \nvdash
|
891
|
+
0x31 => 0x22AE, # \nVdash
|
892
|
+
0x32 => 0x22AD, # \nvDash
|
893
|
+
0x33 => 0x22AF, # \nVDash
|
894
|
+
0x34 => 0x22ED, # \ntrianglerighteq
|
895
|
+
0x35 => 0x22EC, # \ntrianglelefteq
|
896
|
+
0x36 => 0x22EA, # \ntriangleleft
|
897
|
+
0x37 => 0x22EB, # \ntriangleright
|
898
|
+
0x38 => 0x219A, # \nleftarrow
|
899
|
+
0x39 => 0x219B, # \nrightarrow
|
900
|
+
0x3A => 0x21CD, # \nLeftarrow
|
901
|
+
0x3B => 0x21CF, # \nRightarrow
|
902
|
+
0x3C => 0x21CE, # \nLeftrightarrow
|
903
|
+
0x3D => 0x21AE, # \nleftrightarrow
|
904
|
+
0x3E => 0x22C7, # \divideontimes
|
905
|
+
0x3F => 0x2205, # \varnothing
|
906
|
+
0x40 => 0x2204, # \nexists
|
907
|
+
|
908
|
+
[0x41,0x5A] => 0x41, # A-Z
|
909
|
+
0x5C => 0x2C6, # \widehat
|
910
|
+
0x5C => [0x302,-2333,0],# \widehat (combining)
|
911
|
+
0x5E => 0x2DC, # \widetilde
|
912
|
+
0x5E => [0x303,-2333,0],# \widetilde (combining)
|
913
|
+
|
914
|
+
0x60 => 0x2132, # \Finv
|
915
|
+
0x61 => 0x2141, # \Game
|
916
|
+
0x66 => 0x2127, # \mho
|
917
|
+
0x67 => 0x00F0, # \eth
|
918
|
+
0x68 => 0x2242, # minus-tilde
|
919
|
+
0x69 => 0x2136, # \beth
|
920
|
+
0x6A => 0x2137, # \gimel
|
921
|
+
0x6B => 0x2138, # \daleth
|
922
|
+
0x6C => 0x22D6, # \lessdot
|
923
|
+
0x6D => 0x22D7, # \gtrdot
|
924
|
+
0x6E => 0x22C9, # \ltimes
|
925
|
+
0x6F => 0x22CA, # \rtimes
|
926
|
+
0x70 => 0x2223, # \shortmid
|
927
|
+
0x71 => 0x2225, # \shortparallel
|
928
|
+
0x72 => 0x2216, # \smallsetminus
|
929
|
+
0x73 => 0x223C, # \thicksim
|
930
|
+
0x74 => 0x2248, # \thickapprox
|
931
|
+
0x75 => 0x224A, # \approxeq
|
932
|
+
0x76 => 0x2AB8, # \succapprox
|
933
|
+
0x77 => 0x2AB7, # \precapprox
|
934
|
+
0x78 => 0x21B6, # \curvearrowleft
|
935
|
+
0x79 => 0x21B7, # \curvearrowright
|
936
|
+
0x7A => 0x03DD, # \digamma
|
937
|
+
0x7B => 0x03F0, # \varkappa
|
938
|
+
0x7A => 0xE008, # \digamma (non-standard, for IE)
|
939
|
+
0x7B => 0xE009, # \varkappa (non-standard, for IE)
|
940
|
+
0x7C => 0x006B, # \Bbbk
|
941
|
+
0x7D => 0x210F, # \hslash
|
942
|
+
0x7E => 0x0127, # \hbar
|
943
|
+
0x7F => 0x220D, # \backepsilon
|
944
|
+
],
|
945
|
+
};
|
946
|
+
|
947
|
+
foreach $cmfont (keys %map) {
|
948
|
+
foreach $mjfont (keys %{$map{$cmfont}}) {
|
949
|
+
$style = $mjfont; $style =~ s/.*?(-|$)//; $style = "Regular" unless $style;
|
950
|
+
$family = $mjfont; $family =~ s/-.*//;
|
951
|
+
$fontname = "$family-$style";
|
952
|
+
@{$reverse{$fontname}{$cmfont}} = @{$map{$cmfont}{$mjfont}};
|
953
|
+
}
|
954
|
+
}
|
955
|
+
|
956
|
+
my %output;
|
957
|
+
|
958
|
+
sub add_to_output {
|
959
|
+
my ($mjfont,$cmfont,$from,$to) = @_;
|
960
|
+
|
961
|
+
my $xshift = 0, $yshift = 0;
|
962
|
+
|
963
|
+
if (ref($to) eq "ARRAY") {
|
964
|
+
$xshift = $to->[1];
|
965
|
+
$yshift = $to->[2];
|
966
|
+
$to = $to->[0];
|
967
|
+
}
|
968
|
+
|
969
|
+
$data = {
|
970
|
+
"font" => $cmfont,
|
971
|
+
"char" => $from,
|
972
|
+
"xshift" => $xshift,
|
973
|
+
"yshift" => $yshift
|
974
|
+
};
|
975
|
+
|
976
|
+
$output{$mjfont}{$to} = $data;
|
977
|
+
}
|
978
|
+
|
979
|
+
foreach $mjfont (keys %reverse) {
|
980
|
+
foreach $cmfont (keys %{$reverse{$mjfont}}) {
|
981
|
+
@remap = @{$reverse{$mjfont}{$cmfont}};
|
982
|
+
while (defined($item = shift(@remap))) {
|
983
|
+
$remap = shift(@remap);
|
984
|
+
|
985
|
+
if (ref($item) eq "ARRAY") {
|
986
|
+
foreach $from ($item->[0]...$item->[1]) {
|
987
|
+
$to = $from - $item->[0] + $remap;
|
988
|
+
add_to_output($mjfont, $cmfont, $from, $to);
|
989
|
+
}
|
990
|
+
} else {
|
991
|
+
add_to_output($mjfont, $cmfont, $item, $remap);
|
992
|
+
}
|
993
|
+
}
|
994
|
+
}
|
995
|
+
}
|
996
|
+
|
997
|
+
print(encode_json(\%output));
|