From 81c628656996d5e303be1f934610dbfd13860c6d Mon Sep 17 00:00:00 2001 From: Doctor Dan <8849311+DoctorDan1986@users.noreply.github.com> Date: Sun, 11 Oct 2026 16:02:16 -0400 Subject: [PATCH] Add native \uparrow and \downarrow TXF3 arrow symbols --- assets/TeXFonts.8xv | Bin 8795 -> 8851 bytes assets/TeXScrpt.8xv | Bin 5907 -> 5933 bytes include/texfont.h | 4 ++++ src/tex/tex_symbols.c | 2 ++ tests/test_symbols.c | 2 ++ tools/process_fonts.py | 4 +++- 6 files changed, 11 insertions(+), 1 deletion(-) mode change 100755 => 100644 tools/process_fonts.py diff --git a/assets/TeXFonts.8xv b/assets/TeXFonts.8xv index 656f2f7ac5cb3d52cc3a41ea0278d2728faef4de..a37aea97df0e77128755c9ba2133442cf71294b0 100644 GIT binary patch delta 636 zcma)3J8M)y7@fI~`M#OCdv{qA1G$fxEEefh@X;Dj!=|zbqNzlPc1lny!MiDJgO4&P z45Smmu$2h9zd*slLcvN=1O<^577P7m#_i=chx7Q(8SeYj56|2?KC{+qv3_rMb^XHG z>(_4HV1s^ddB1-Gy0;3%oQ+v>e+q`1z@z3#k!6~A`KrjY=3@rm3hfxK^0JkA=5R?K zKIV9?R8ER;!%37<56V{V%<@?Y=zw@#N=fDjzm$29+Ld+;6N^=+<0Q3O`BWrtH&v*| zol3d-2%cB1%nij)RTw0aS}Bq^+FJU0u~h3|zEn#GVrc5NKP?~EVGzCv=2-j;W{zEh z2yDVqYXIE(_?T$`Jhfy{IttcE^UPIpx2YBG63{NTZ6s0|i}#I4ojG|)<~9NG&LDW{ zyGav&dSde2-4R`@qytIM{;NM?QK~=0EL&(mu?ZI!ZD>udSQNmiY{QCFv0p5?W2Mih zThsiG)!LtaI+aEw`H62WgeQKq^vC#bCO+Fveu#gSxV|tqJI8;p?8Cy$frA9pfIVWv iEq%0eG8)9A`Mup0e(L|e-Ie*hcoYp^6x$-YeEu)FC4)Zz delta 565 zcmXw0zfTlF6rS1Jo%d#DZ}-qcNOpE-ZbM4`7MKmOm zP!K{vrBQRy#>(Cr6Z{7Vl@=!wP4LYubYH%oFL_(jKkmP}-L3038>vU2K5l$JB zD5V~ocIM6Ug#q+HY#S-b9N`C(HPUyZJ;TIL)9H9gnKGmzd9PnK^SD?lKOe!%vYlpB zjql3lAn~nKiX@K5r3~{zR=P1?ucQYpn62_qEtjh1Al#{fxh1|dW{yV{BCs=-99IDT z`qsay4-hD6QF;n$d%;Xv#GF>)Apz}U3sxeHvDT^;i8sgVWX=hQeTxvJ&o+re^;er^ zzF8buB|V5ws3&awp)GYzOzxl$ik)%MbIode)1d%PV^dBfiv4EsjFTasJaQNLMW=PB zUb&PuND3$JI%qcDI{Fy@%fx%v$tL)T#2dY_(J}sur3bz4)oTRQ8rx%oO?|5~I4yQW H)Sdkgi&b>N diff --git a/assets/TeXScrpt.8xv b/assets/TeXScrpt.8xv index 598e0682b46ed0a27972ec29c2e0d2c8020d278a..b5911fd677d2530f305ca90ae7fb6d91c6c68023 100644 GIT binary patch delta 606 zcmXwzJt($O9LE3WiqkA7$|{kjbLw-QL0?i-jVaWRj9>=)q(mWt8E4OHw2~ zn?>17QdUWiO$MTTq?~i^`(Ez*>i@gWbzQrCCw)6r^X8hM;q3VA>=Mb!z0`(gygP9MSEDIhvQKGq;$?I|1#Au3JCQ)H1{woka%ij~cFd}TF z{5nSj?~RbYjN-FNv(PG-jmwCzwlH_wSV6FAg+TZQ_SeR(K!j}%YcU^C92^{U(MjEeZsI6)=&H4=i0xj*!O1U*xVjWvM5Kt| zDpKkuE>agaagq)~OA$TjfZ$Muk-cDkA*1BdN-yvrxku2IkrRl2$S8JZ_9FqDphL-+ z&A|XFMFqvVGt*fmg!Ax~46Qd*QV*NTM-!;2D2%Nej#5M~llK@}in*hMM4A2M#Gum%OWL`G_{AtlLw-Jh#`OB&XChS-!d$)bI zm3qjIrU6Go6x1z>t)K@PI@Uqpa!6ChvCE-XnkTK-S@NwlbGPGBLj#~R3@YLjTPVgc_ QbL|r`9kx4iJ0QL4KUGI^djJ3c diff --git a/include/texfont.h b/include/texfont.h index ca1d722..20d4693 100644 --- a/include/texfont.h +++ b/include/texfont.h @@ -213,5 +213,9 @@ #define TEXFONT_BOTTOM_CHAR '\303' #define TEXFONT_SUPSET "\304" #define TEXFONT_SUPSET_CHAR '\304' +#define TEXFONT_ARROW_UP "\305" +#define TEXFONT_ARROW_UP_CHAR '\305' +#define TEXFONT_ARROW_DOWN "\306" +#define TEXFONT_ARROW_DOWN_CHAR '\306' #endif /* TEXFONT_H */ diff --git a/src/tex/tex_symbols.c b/src/tex/tex_symbols.c index 988ab58..766bbd5 100644 --- a/src/tex/tex_symbols.c +++ b/src/tex/tex_symbols.c @@ -64,6 +64,7 @@ static const MapEnt g_map[] = { { "dim", SYMC_FUNC_DIM, SYM_FUNC }, { "div", GL(TEXFONT_DIVIDE_CHAR), SYM_GLYPH }, { "dot", SYMC_ACC_DOT, SYM_ACCENT }, + { "downarrow", GL(TEXFONT_ARROW_DOWN_CHAR), SYM_GLYPH }, { "ell", GL(TEXFONT_ELL_CHAR), SYM_GLYPH }, { "emptyset", GL(TEXFONT_EMPTY_SET_CHAR), SYM_GLYPH }, { "end", SYMC_END, SYM_STRUCT }, @@ -171,6 +172,7 @@ static const MapEnt g_map[] = { { "top", GL(TEXFONT_TOP_CHAR), SYM_GLYPH }, { "underbrace", SYMC_UNDERBRACE, SYM_STRUCT }, { "underline", SYMC_ACC_UNDERLINE, SYM_ACCENT }, + { "uparrow", GL(TEXFONT_ARROW_UP_CHAR), SYM_GLYPH }, { "upsilon", GL(TEXFONT_upsilon_CHAR), SYM_GLYPH }, { "vec", SYMC_ACC_VEC, SYM_ACCENT }, { "vee", GL(TEXFONT_LOGICAL_OR_CHAR), SYM_GLYPH }, diff --git a/tests/test_symbols.c b/tests/test_symbols.c index 04562d6..74ec7ab 100644 --- a/tests/test_symbols.c +++ b/tests/test_symbols.c @@ -45,6 +45,8 @@ int main(void) check_sym("langle", SYM_GLYPH, TEXFONT_LANGLE_CHAR); check_sym("rangle", SYM_GLYPH, TEXFONT_RANGLE_CHAR); check_sym("supset", SYM_GLYPH, TEXFONT_SUPSET_CHAR); + check_sym("uparrow", SYM_GLYPH, TEXFONT_ARROW_UP_CHAR); + check_sym("downarrow", SYM_GLYPH, TEXFONT_ARROW_DOWN_CHAR); // Structural SymbolDesc d; diff --git a/tools/process_fonts.py b/tools/process_fonts.py old mode 100755 new mode 100644 index 1c9ad57..8032c90 --- a/tools/process_fonts.py +++ b/tools/process_fonts.py @@ -87,7 +87,7 @@ 0x2295, # ⊕ Circled plus (oplus) ] -# The Master Symbol List (0x80 - 0xC4). +# The Master Symbol List (0x80 - 0xC6). SYMBOLS = [ # Greek Lower 0x03B1, 0x03B2, 0x03B3, 0x03B4, 0x03B5, 0x03B6, 0x03B7, 0x03B8, @@ -110,6 +110,8 @@ # Boolean logic 0x2227, 0x2228, 0x00AC, 0x21D2, 0x21D4, 0x22A4, 0x22A5, 0x2283, # Superset / material-implication horseshoe (\supset) + 0x2191, # Up arrow / Sheffer stroke for NAND (\uparrow) + 0x2193, # Down arrow / Peirce arrow for NOR (\downarrow) ]