Last active
March 13, 2019 09:53
-
-
Save puripuri2100/3efb4aab6c12a6c27293c6f25a919599 to your computer and use it in GitHub Desktop.
SATySFiの`\app`の括弧の色を変える
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
% Author : T.Suwa and puripuri2100 | |
% LICENSE : LGPL v3 | |
@require: math | |
@require: color | |
let half-length hgt dpt hgtaxis fontsize = | |
let minhalflen = fontsize *' 0.5 in | |
let lenappend = fontsize *' 0.1 in | |
length-max minhalflen ((length-max (hgt -' hgtaxis) (hgtaxis +' dpt)) +' lenappend) | |
let color-paren-left hgt dpt hgtaxis fontsize color = | |
let halflen = half-length hgt dpt hgtaxis fontsize in | |
let w0 = fontsize *' 0.1 in | |
let w1 = fontsize *' 0.075 +' halflen *' 0.01 in | |
let w2 = halflen *' 0.25 in %temporary | |
let w-extra = fontsize *' 0.1 in | |
let t1 = fontsize *' 0.025 in | |
let t2 = fontsize *' 0.025 in | |
let qA = halflen *' 0.35 in | |
let p1 = (w1 +' w2) *' 0.75 in | |
let q1 = halflen *' 0.3 in | |
let qB = halflen *' 0.45 in | |
let p2 = w2 *' 0.5 in | |
let q2 = halflen *' 0.2 in | |
let path (xpos, ypos) = | |
let ycenter = ypos +' hgtaxis in | |
let x0 = xpos +' w0 in | |
let x1 = x0 +' w1 in | |
let x2 = x1 +' w2 in | |
start-path (x2, ycenter +' halflen) | |
|> bezier-to (x2 -' p1, ycenter +' halflen -' q1) (x0, ycenter +' qA) (x0, ycenter) | |
|> bezier-to (x0, ycenter -' qA) (x2 -' p1, ycenter -' halflen +' q1) (x2, ycenter -' halflen) | |
|> line-to (x2 +' t1, ycenter -' halflen +' t2) | |
|> bezier-to (x2 -' p2, ycenter -' halflen +' q2) (x1, ycenter -' qB) (x1, ycenter) | |
|> bezier-to (x1, ycenter +' qB) (x2 -' p2, ycenter +' halflen -' q2) (x2 +' t1, ycenter +' halflen -' t2) | |
|> close-with-line | |
in | |
% 変更箇所 | |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
let graphics point = [ fill Color.red (path point); ] in | |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
let kerninfo _ = 0pt in | |
(inline-graphics (w0 +' w1 +' w2 +' w-extra) (hgtaxis +' halflen) (halflen -' hgtaxis) graphics, kerninfo) | |
let color-paren-right hgt dpt hgtaxis fontsize color = | |
let halflen = half-length hgt dpt hgtaxis fontsize in | |
let w0 = fontsize *' 0.1 in | |
let w1 = fontsize *' 0.075 +' halflen *' 0.01 in | |
let w2 = halflen *' 0.25 in %temporary | |
let w-extra = fontsize *' 0.1 in | |
let t1 = 0pt -' fontsize *' 0.025 in | |
let t2 = fontsize *' 0.025 in | |
let qA = halflen *' 0.35 in | |
let p1 = 0pt -' (w1 +' w2) *' 0.75 in | |
let q1 = halflen *' 0.3 in | |
let qB = halflen *' 0.45 in | |
let p2 = 0pt -' w2 *' 0.5 in | |
let q2 = halflen *' 0.2 in | |
let path (xpos, ypos) = | |
let ycenter = ypos +' hgtaxis in | |
let x0 = xpos +' w-extra +' w2 +' w1 in | |
let x1 = xpos +' w-extra +' w2 in | |
let x2 = xpos +' w-extra in | |
start-path (x2, ycenter +' halflen) | |
|> bezier-to (x2 -' p1, ycenter +' halflen -' q1) (x0, ycenter +' qA) (x0, ycenter) | |
|> bezier-to (x0, ycenter -' qA) (x2 -' p1, ycenter -' halflen +' q1) (x2, ycenter -' halflen) | |
|> line-to (x2 +' t1, ycenter -' halflen +' t2) | |
|> bezier-to (x2 -' p2, ycenter -' halflen +' q2) (x1, ycenter -' qB) (x1, ycenter) | |
|> bezier-to (x1, ycenter +' qB) (x2 -' p2, ycenter +' halflen -' q2) (x2 +' t1, ycenter +' halflen -' t2) | |
|> close-with-line | |
in | |
% 変更箇所 | |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
let graphics point = [ fill Color.red (path point); ] in | |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
let widparen = w0 +' w1 +' w2 +' w-extra in | |
let kerninfo y = | |
let widkern = widparen *' 0.5 in | |
let r = 0.25 in | |
let gap = length-abs (y -' hgtaxis) in | |
let diff = length-min (gap -' halflen *' r) (halflen *' (1. -. r)) in | |
if 0pt <' diff then | |
widkern *' (diff /' (halflen *' (1. -. r))) | |
else | |
0pt | |
in | |
(inline-graphics widparen (hgtaxis +' halflen) (halflen -' hgtaxis) graphics, kerninfo) | |
let-math \color-paren = math-paren color-paren-left color-paren-right | |
let-math \app m1 m2 = ${#m1 \color-paren{#m2}} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment