Repository: KaTeX/KaTeX (js)

Issue:
No character metrics for Armenian letters
**Describe the bug:**
Discovered by Khan Academy Armenian translators. When `\cancel{\text{g}}` works fine, but putting in a character from armenian alphabet (outside of KaTeX fonts) inside the `\text` breaks it.

https://katex.org/?data=%7B%22displayMode%22%3Atrue%2C%22leqno%22%3Afalse%2C%22fleqn%22%3Afalse%2C%22throwOnError%22%3Atrue%2C%22errorColor%22%3A%22%23cc0000%22%2C%22strict%22%3A%22warn%22%2C%22output%22%3A%22htmlAndMathml%22%2C%22trust%22%3Afalse%2C%22macros%22%3A%7B%22%5C%5Cf%22%3A%22%231f(%232)%22%7D%2C%22code%22%3A%22%5C%5Ccancel%7B%5C%5Ctext%7B%D5%A3%7D%7D%22%7D

However, this works `\cancel{\text{aգ}}`, suggesting that the issue is caused by the lack of vertical metrics for the argument.
As a workaround, one could do something like `\cancel{\text{\vphantom{a}գ}}`, but that's not a viable solution for our translators because changes to LaTeX markup get rejected by our linter.

**To Reproduce:**
Link to katex.org

https://katex.org/?data=%7B%22displayMode%22%3Atrue%2C%22leqno%22%3Afalse%2C%22fleqn%22%3Afalse%2C%22throwOnError%22%3Atrue%2C%22errorColor%22%3A%22%23cc0000%22%2C%22strict%22%3A%22warn%22%2C%22output%22%3A%22htmlAndMathml%22%2C%22trust%22%3Afalse%2C%22macros%22%3A%7B%22%5C%5Cf%22%3A%22%231f(%232)%22%7D%2C%22code%22%3A%22%5C%5Ccancel%7B%5C%5Ctext%7B%D5%A3%7D%7D%22%7D

**Expected behavior:**
I guess `\cancel` should use some reasonable height default for characters without vertical metrics.

**Screenshots:**

![obrazek](https://user-images.githubusercontent.com/9539441/97458416-f5594d00-193a-11eb-82fb-2a02f6f582f1.png)


**Environment (please complete the following information):**
 - KaTeX Version: version on katex.org
 - Device: Laptop
 - OS: Linux
 - Browser: latest Firefox, latest Chrome

Pull request:
fix: Support Armenian characters
Fix #2617. 

Patch:
diff --git a/docs/supported.md b/docs/supported.md
index a5a2460b..9290be47 100644
--- a/docs/supported.md
+++ b/docs/supported.md
@@ -194,7 +194,7 @@ Direct Input: $∂ ∇ ℑ Ⅎ ℵ ℶ ℷ ℸ ⅁ ℏ ð$
 
 The letters listed above will render properly in any KaTeX rendering mode.
 
-In addition, Brahmic, Georgian, Chinese, Japanese, and Korean glyphs are always accepted in text mode. However, these glyphs will be rendered from system fonts (not KaTeX-supplied fonts) so their typography may clash.
+In addition, Armenian, Brahmic, Georgian, Chinese, Japanese, and Korean glyphs are always accepted in text mode. However, these glyphs will be rendered from system fonts (not KaTeX-supplied fonts) so their typography may clash.
 You can provide rules for CSS classes `.latin-fallback`, `.cyrillic-fallback`, `.brahmic-fallback`, `.georgian-fallback`, `.cjk-fallback`, and `.hangul-fallback` to provide fallback fonts for these languages.
 Use of these glyphs may cause small vertical alignment issues: KaTeX has detailed metrics for listed symbols and most Latin, Greek, and Cyrillic letters, but other accepted glyphs are treated as if they are each as tall as the letter M in the current KaTeX font.
 
diff --git a/src/unicodeScripts.js b/src/unicodeScripts.js
index cc590b1e..59b05e57 100644
--- a/src/unicodeScripts.js
+++ b/src/unicodeScripts.js
@@ -38,6 +38,11 @@ const scriptData: Array<Script> = [
         name: 'cyrillic',
         blocks: [[0x0400, 0x04ff]],
     },
+    {
+        // Armenian
+        name: 'armenian',
+        blocks: [[0x0530, 0x058F]],
+    },
     {
         // The Brahmic scripts of South and Southeast Asia
         // Devanagari (0900–097F)


Test patch:
diff --git a/test/unicode-spec.js b/test/unicode-spec.js
index 2dfd846f..f9737454 100644
--- a/test/unicode-spec.js
+++ b/test/unicode-spec.js
@@ -80,6 +80,11 @@ describe("unicode", function() {
         expect`გამარჯობა`.not.toParse(strictSettings);
     });
 
+    it("should build Armenian both inside and outside \\text{}", function() {
+        expect`ԱԲԳաբգ`.toBuild(nonstrictSettings);
+        expect`\text{ԱԲԳաբգ}`.toBuild(nonstrictSettings);
+    });
+
     it("should build extended Latin characters inside \\text{}", function() {
         expect`\text{ěščřžůřťďňőİı}`.toBuild();
     });
@@ -116,6 +121,7 @@ describe("unicodeScripts", () => {
         // eslint-disable-next-line no-misleading-character-class
         latin: /[\u0100-\u024f\u0300-\u036f]/,
         cyrillic: /[\u0400-\u04ff]/,
+        armenian: /[\u0530-\u058F]/,
         brahmic: /[\u0900-\u109F]/,
         georgian: /[\u10a0-\u10ff]/,
         cjk: /[\u3000-\u30FF\u4E00-\u9FAF\uFF00-\uFF60]/,