Add fine-grainded arrow ligation control (#2776)
This commit is contained in:
parent
effc731862
commit
1af116c52e
7 changed files with 262 additions and 127 deletions
|
@ -133,23 +133,32 @@ Subsection `ligations` is used to customize the ligation set assigned to `calt`
|
|||
|
||||
* `disables` and `enables`: Optional, String Array, Cherry-picking ligation groups to be disabled or enabled. Valid values include:
|
||||
|
||||
- `center-ops`: Vertically align some of the operators (like `*`) to the center position it is before or after a "center" operator (like `+`).
|
||||
- `center-op-trigger-plus-minus-l`: Plus (`+`) and Minus (`-`) will trigger other operator characters at left to be centered.
|
||||
- `center-op-trigger-plus-minus-r`: Plus (`+`) and Minus (`-`) will trigger other operator characters at right to be centered.
|
||||
- `center-op-trigger-equal-l`: Equal (`=`) will trigger other operator characters at left to be centered.
|
||||
- `center-op-trigger-equal-r`: Equal (`=`) will trigger other operator characters at right to be centered.
|
||||
- `center-op-trigger-bar-l`: Bars (`|`) will trigger other operator characters at left to be centered.
|
||||
- `center-op-trigger-bar-r`: Bars (`|`) will trigger other operator characters at right to be centered.
|
||||
- `center-op-trigger-angle-inside`: Less (`<`) and Greater (`>`) will trigger other operator characters at inside to be centered.
|
||||
- `center-op-trigger-angle-outside`: Less (`<`) and Greater (`>`) will trigger other operator characters at outside to be centered.
|
||||
- `center-op-influence-dot`: Treat dot (`.`) as operator and perform chained centering.
|
||||
- `center-op-influence-colon`: Treat colon (`:`) as operator and perform chained centering.
|
||||
- `arrow-l`: Enable ligation set that forms left-pointing arrows.
|
||||
- `arrow-r`: Enable ligation set that forms right-pointing arrows.
|
||||
- `arrow-lr`: Enable ligation set that forms dual-pointing arrows.
|
||||
- `counter-arrow-l`: Enable ligation that produces left-pointing counter-arrows.
|
||||
- `counter-arrow-r`: Enable ligation that produces right-pointing counter-arrows.
|
||||
- `trig`: Enable ligation for `<|`, `|>` , `<||`, and other bar-and-angle-bracket symbols.
|
||||
- `arrow-l`: Left-pointing arrows.
|
||||
- `arrow-r`: Right-pointing arrows.
|
||||
- `arrow-lr`: Dual-pointing arrows.
|
||||
- `counter-arrow-l`: Left-pointing counter-arrows.
|
||||
- `counter-arrow-r`: Right-pointing counter-arrows.
|
||||
- `arrow-hyphen`: Arrows using hyphen-minus (`-`) as the rod.
|
||||
- `arrow-equal`: Arrows using equal sign (`=`) as the rod.
|
||||
- `arrow-wave`: Arrows using tilde (`~`) as the rod.
|
||||
- `counter-arrow-hyphen`: Counter-arrows using hyphen-minus (`-`) as the rod.
|
||||
- `counter-arrow-equal`: Counter-arrows using equal sign (`=`) as the rod.
|
||||
- `counter-arrow-wave`: Counter-arrows using tilde (`~`) as the rod.
|
||||
- `arrow-l-hyphen`: Left-pointing arrows with hyphen-minus (`-`) being the rod.
|
||||
- `arrow-r-hyphen`: Right-pointing arrows with hyphen-minus (`-`) being the rod.
|
||||
- `arrow-lr-hyphen`: Dual-pointing arrows with hyphen-minus (`-`) being the rod.
|
||||
- `counter-arrow-l-hyphen`: Left-pointing counter-arrows with hyphen-minus (`-`) being the rod.
|
||||
- `counter-arrow-r-hyphen`: Right-pointing counter-arrows with hyphen-minus (`-`) being the rod.
|
||||
- `arrow-l-equal`: Left-pointing arrows with equal sign (`=`) being the rod.
|
||||
- `arrow-r-equal`: Right-pointing arrows with equal sign (`=`) being the rod.
|
||||
- `arrow-lr-equal`: Dual-pointing arrows with equal sign (`=`) being the rod.
|
||||
- `counter-arrow-l-equal`: Left-pointing counter-arrows with equal sign (`=`) being the rod.
|
||||
- `counter-arrow-r-equal`: Right-pointing counter-arrows with equal sign (`=`) being the rod.
|
||||
- `arrow-l-wave`: Left-pointing arrows with tilde (`~`) being the rod.
|
||||
- `arrow-r-wave`: Right-pointing arrows with tilde (`~`) being the rod.
|
||||
- `arrow-lr-wave`: Dual-pointing arrows with tilde (`~`) being the rod.
|
||||
- `counter-arrow-l-wave`: Left-pointing counter-arrows with tilde (`~`) being the rod.
|
||||
- `counter-arrow-r-wave`: Right-pointing counter-arrows with tilde (`~`) being the rod.
|
||||
- `eqeqeq`: Enable special ligation for `===` with triple lines.
|
||||
- `eqeq`: Enable ligation for `==` and `===`.
|
||||
- `lteq`: Enable ligation for `<=` as less-than-or-equal sign.
|
||||
|
@ -166,6 +175,7 @@ Subsection `ligations` is used to customize the ligation set assigned to `calt`
|
|||
- `tildeeq`: Enable ligation for `~=` as inequality.
|
||||
- `eqslasheq`: Enable special triple-line ligation for `=/=` as inequality.
|
||||
- `slasheq`: Enable ligation for `/=` and `=/=` as inequality.
|
||||
- `trig`: Enable ligation for `<|`, `|>` , `<||`, and other bar-and-angle-bracket symbols.
|
||||
- `ltgt-ne`: Enable ligation for `<>` as inequality.
|
||||
- `ltgt-diamond`: Enable ligation for `<>` as diamond.
|
||||
- `ltgt-diamond-tag`: Enable ligation for `<>` as diamond-shaped empty HTML/XML tag.
|
||||
|
@ -174,13 +184,17 @@ Subsection `ligations` is used to customize the ligation set assigned to `calt`
|
|||
- `slash-asterisk`: Shift asterisk in `/*` and `*/`.
|
||||
- `kern-dotty`: Move connecting dotty punctuations closer, like for `::`, `:::` and `...`.
|
||||
- `kern-bars`: Move consecutive bars closer, like for `||`, `|||` and `//`.
|
||||
- `logic`: Enable ligation for `/\` and `\/`.
|
||||
- `llgg`: Enable ligation for `<<`, `>>` and other angle-bracket chaining.
|
||||
- `llggeq`: Enable ligation for `<<=`, `>>=` as shift operator.
|
||||
- `html-comment`: Enable ligation for `<!--` and `<!---`.
|
||||
- `colon-greater-as-colon-arrow`: Transform `:>` into `:` and a narrow arrow.
|
||||
- `brace-bar`: Enable ligation for `{|` and `|}`.
|
||||
- `brack-bar`: Enable ligation for `[|` and `|]`.
|
||||
- `center-ops`: Vertically align some of the operators (like `*`) to the center position it is before or after a "center" operator (like `+`).
|
||||
- `center-op-trigger-plus-minus-l`: Plus (`+`) and Minus (`-`) will trigger other operator characters at left to be centered.
|
||||
- `center-op-trigger-plus-minus-r`: Plus (`+`) and Minus (`-`) will trigger other operator characters at right to be centered.
|
||||
- `center-op-trigger-equal-l`: Equal (`=`) will trigger other operator characters at left to be centered.
|
||||
- `center-op-trigger-equal-r`: Equal (`=`) will trigger other operator characters at right to be centered.
|
||||
- `center-op-trigger-bar-l`: Bars (`|`) will trigger other operator characters at left to be centered.
|
||||
- `center-op-trigger-bar-r`: Bars (`|`) will trigger other operator characters at right to be centered.
|
||||
- `center-op-trigger-angle-inside`: Less (`<`) and Greater (`>`) will trigger other operator characters at inside to be centered.
|
||||
- `center-op-trigger-angle-outside`: Less (`<`) and Greater (`>`) will trigger other operator characters at outside to be centered.
|
||||
- `center-op-influence-dot`: Treat dot (`.`) as operator and perform chained centering.
|
||||
- `center-op-influence-colon`: Treat colon (`:`) as operator and perform chained centering.
|
||||
- `tilde-tilde`: Make 2 or more contiguous ASCII tildes (like `~~`, `~~~` and `~~~~`) connected as a wave line.
|
||||
- `tilde-tilde-tilde`: Make 3 or more contiguous ASCII tildes (like `~~~` and `~~~~`) connected as a wave line.
|
||||
- `minus-minus`: Make 2 or more contiguous hyphen-minuses (like `--`, `---` and `----`) connected as a straight solid line.
|
||||
|
@ -191,6 +205,13 @@ Subsection `ligations` is used to customize the ligation set assigned to `calt`
|
|||
- `underscore-underscore-underscore`: Make 3 or more contiguous underscores (like `___` and `____`) connected.
|
||||
- `hash-hash`: Make 2 or more contiguous hash signs (number signs) (like `##`, `###` and `####`) connected.
|
||||
- `hash-hash-hash`: Make 3 or more contiguous hash signs (number signs) (like `##` and `###`) connected.
|
||||
- `logic`: Enable ligation for `/\` and `\/`.
|
||||
- `llgg`: Enable ligation for `<<`, `>>` and other angle-bracket chaining.
|
||||
- `llggeq`: Enable ligation for `<<=`, `>>=` as shift operator.
|
||||
- `html-comment`: Enable ligation for `<!--` and `<!---`.
|
||||
- `colon-greater-as-colon-arrow`: Transform `:>` into `:` and a narrow arrow.
|
||||
- `brace-bar`: Enable ligation for `{|` and `|}`.
|
||||
- `brack-bar`: Enable ligation for `[|` and `|]`.
|
||||
|
||||
<!-- END Section-Cherry-Picking-Ligation-Sets -->
|
||||
|
||||
|
|
|
@ -141,7 +141,7 @@
|
|||
<path d="M 249 8 Q 227 8 205.5 5.5 Q 184 3 163 -3.5 Q 142 -10 123.5 -21.5 Q 105 -33 91 -49.5 Q 77 -66 69.5 -87 Q 62 -108 62 -130 L 62 -135 L 140 -135 L 140 -132 Q 140 -114 151 -99 Q 162 -84 178.5 -75.5 Q 195 -67 213 -64.5 Q 231 -62 249 -62 Q 267 -62 285.5 -65 Q 304 -68 320 -76 Q 336 -84 347.5 -99.5 Q 359 -115 359 -133 Q 359 -151 349 -165.5 Q 339 -180 324.5 -189.5 Q 310 -199 294 -205 Q 278 -211 261.5 -216 Q 245 -221 228.5 -226.5 Q 212 -232 196 -238.5 Q 180 -245 165 -253 Q 150 -261 136 -271.5 Q 122 -282 110.5 -294.5 Q 99 -307 90 -321.5 Q 81 -336 76.5 -353 Q 72 -370 72 -387 Q 72 -408 78.5 -429 Q 85 -450 98 -467 Q 111 -484 129 -496 Q 147 -508 167 -515.5 Q 187 -523 208.5 -525.5 Q 230 -528 251 -528 Q 272 -528 293 -525.5 Q 314 -523 334 -516 Q 354 -509 372 -497.5 Q 390 -486 403 -469.5 Q 416 -453 423 -432.5 Q 430 -412 430 -391 L 430 -385 L 352 -385 L 352 -388 Q 352 -405 342.5 -420 Q 333 -435 318 -443.5 Q 303 -452 285.5 -455 Q 268 -458 251 -458 Q 234 -458 216.5 -455 Q 199 -452 184 -443.5 Q 169 -435 159 -419.5 Q 149 -404 149 -387 Q 149 -370 159 -355 Q 169 -340 183 -330.5 Q 197 -321 213.5 -315 Q 230 -309 246.5 -304 Q 263 -299 279 -293.5 Q 295 -288 311 -281.5 Q 327 -275 342.5 -267 Q 358 -259 371.5 -248.5 Q 385 -238 397 -225.5 Q 409 -213 418 -198.5 Q 427 -184 431.5 -167 Q 436 -150 436 -133 Q 436 -111 428.5 -90 Q 421 -69 407.5 -52 Q 394 -35 375 -23 Q 356 -11 335.5 -4 Q 315 3 293 5.5 Q 271 8 249 8 Z M 137 62 L 88 42 L 363 -582 L 412 -562 Z " id="path138"/>
|
||||
<path d="M 45 0 L 211 -439 L 211 -735 L 289 -735 L 289 -439 L 455 0 L 372 0 L 250 -336 L 128 0 Z " id="path139"/>
|
||||
<path d="M 132 0 L 51 0 L 210 -535 L 187 -614 Q 178 -644 169 -674.5 Q 160 -705 151 -735 L 232 -735 L 449 0 L 368 0 L 251 -430 Z " id="path140"/>
|
||||
<path d="M 45 0 L 200 -410 L 119 -410 L 119 -472 L 211 -472 L 211 -735 L 289 -735 L 289 -472 L 381 -472 L 381 -410 L 300 -410 L 455 0 L 372 0 L 250 -336 L 128 0 Z " id="path141"/>
|
||||
<path d="M 45 0 L 211 -439 L 211 -553 L 119 -553 L 119 -614 L 211 -614 L 211 -735 L 289 -735 L 289 -614 L 381 -614 L 381 -553 L 289 -553 L 289 -439 L 455 0 L 372 0 L 250 -336 L 128 0 Z " id="path141"/>
|
||||
<path d="M 248 -317 Q 229 -317 209.5 -320.5 Q 190 -324 173 -332.5 Q 156 -341 142 -354.5 Q 128 -368 119 -385 Q 110 -402 106.5 -421 Q 103 -440 103 -460 L 103 -701 Q 103 -720 106.5 -739 Q 110 -758 119 -775.5 Q 128 -793 142 -806.5 Q 156 -820 173 -828.5 Q 190 -837 209.5 -840 Q 229 -843 248 -843 Q 275 -843 302 -836 Q 329 -829 350 -812 Q 371 -795 382 -769 Q 393 -743 393 -716 L 393 -712 L 324 -712 L 324 -714 Q 324 -728 318 -741.5 Q 312 -755 301 -764 Q 290 -773 276 -777 Q 262 -781 248 -781 Q 232 -781 217 -775.5 Q 202 -770 191.5 -758.5 Q 181 -747 176.5 -732 Q 172 -717 172 -701 L 172 -460 Q 172 -444 176.5 -428.5 Q 181 -413 191.5 -401.5 Q 202 -390 217 -385 Q 232 -380 248 -380 Q 262 -380 276 -383.5 Q 290 -387 301 -396 Q 312 -405 318 -418.5 Q 324 -432 324 -447 L 324 -449 L 393 -449 L 393 -445 Q 393 -417 382 -391.5 Q 371 -366 350 -348.5 Q 329 -331 302 -324 Q 275 -317 248 -317 Z " id="path142"/>
|
||||
<path d="M 125 -323 L 125 -838 L 391 -838 L 391 -775 L 195 -775 L 195 -622 L 349 -622 L 349 -559 L 195 -559 L 195 -323 Z " id="path143"/>
|
||||
<path d="M 347 -197 Q 330 -197 313.5 -200 Q 297 -203 282.5 -210 Q 268 -217 255.5 -228.5 Q 243 -240 235.5 -255 Q 228 -270 224.5 -286 Q 221 -302 221 -319 Q 204 -321 188 -326.5 Q 172 -332 158 -341.5 Q 144 -351 133 -364.5 Q 122 -378 115 -393.5 Q 108 -409 105.5 -426 Q 103 -443 103 -460 L 103 -701 Q 103 -720 106.5 -739.5 Q 110 -759 119 -776 Q 128 -793 142.5 -806.5 Q 157 -820 174.5 -828.5 Q 192 -837 211.5 -840 Q 231 -843 250 -843 Q 269 -843 288.5 -840 Q 308 -837 325.5 -828.5 Q 343 -820 357.5 -806.5 Q 372 -793 381 -776 Q 390 -759 393.5 -739.5 Q 397 -720 397 -701 L 397 -460 Q 397 -435 391 -411.5 Q 385 -388 370.5 -369 Q 356 -350 335 -337.5 Q 314 -325 290 -321 Q 290 -309 293.5 -297.5 Q 297 -286 304.5 -277 Q 312 -268 323.5 -263.5 Q 335 -259 347 -259 L 369 -259 L 369 -197 Z M 250 -380 Q 266 -380 281.5 -385 Q 297 -390 308 -401.5 Q 319 -413 323.5 -428.5 Q 328 -444 328 -460 L 328 -701 Q 328 -717 323.5 -732.5 Q 319 -748 308 -759.5 Q 297 -771 281.5 -776 Q 266 -781 250 -781 Q 234 -781 218.5 -776 Q 203 -771 192 -759.5 Q 181 -748 176.5 -732.5 Q 172 -717 172 -701 L 172 -460 Q 172 -444 176.5 -428.5 Q 181 -413 192 -401.5 Q 203 -390 218.5 -385 Q 234 -380 250 -380 Z " id="path144"/>
|
||||
|
|
Before Width: | Height: | Size: 160 KiB After Width: | Height: | Size: 160 KiB |
|
@ -141,7 +141,7 @@
|
|||
<path d="M 249 8 Q 227 8 205.5 5.5 Q 184 3 163 -3.5 Q 142 -10 123.5 -21.5 Q 105 -33 91 -49.5 Q 77 -66 69.5 -87 Q 62 -108 62 -130 L 62 -135 L 140 -135 L 140 -132 Q 140 -114 151 -99 Q 162 -84 178.5 -75.5 Q 195 -67 213 -64.5 Q 231 -62 249 -62 Q 267 -62 285.5 -65 Q 304 -68 320 -76 Q 336 -84 347.5 -99.5 Q 359 -115 359 -133 Q 359 -151 349 -165.5 Q 339 -180 324.5 -189.5 Q 310 -199 294 -205 Q 278 -211 261.5 -216 Q 245 -221 228.5 -226.5 Q 212 -232 196 -238.5 Q 180 -245 165 -253 Q 150 -261 136 -271.5 Q 122 -282 110.5 -294.5 Q 99 -307 90 -321.5 Q 81 -336 76.5 -353 Q 72 -370 72 -387 Q 72 -408 78.5 -429 Q 85 -450 98 -467 Q 111 -484 129 -496 Q 147 -508 167 -515.5 Q 187 -523 208.5 -525.5 Q 230 -528 251 -528 Q 272 -528 293 -525.5 Q 314 -523 334 -516 Q 354 -509 372 -497.5 Q 390 -486 403 -469.5 Q 416 -453 423 -432.5 Q 430 -412 430 -391 L 430 -385 L 352 -385 L 352 -388 Q 352 -405 342.5 -420 Q 333 -435 318 -443.5 Q 303 -452 285.5 -455 Q 268 -458 251 -458 Q 234 -458 216.5 -455 Q 199 -452 184 -443.5 Q 169 -435 159 -419.5 Q 149 -404 149 -387 Q 149 -370 159 -355 Q 169 -340 183 -330.5 Q 197 -321 213.5 -315 Q 230 -309 246.5 -304 Q 263 -299 279 -293.5 Q 295 -288 311 -281.5 Q 327 -275 342.5 -267 Q 358 -259 371.5 -248.5 Q 385 -238 397 -225.5 Q 409 -213 418 -198.5 Q 427 -184 431.5 -167 Q 436 -150 436 -133 Q 436 -111 428.5 -90 Q 421 -69 407.5 -52 Q 394 -35 375 -23 Q 356 -11 335.5 -4 Q 315 3 293 5.5 Q 271 8 249 8 Z M 137 62 L 88 42 L 363 -582 L 412 -562 Z " id="path138"/>
|
||||
<path d="M 45 0 L 211 -439 L 211 -735 L 289 -735 L 289 -439 L 455 0 L 372 0 L 250 -336 L 128 0 Z " id="path139"/>
|
||||
<path d="M 132 0 L 51 0 L 210 -535 L 187 -614 Q 178 -644 169 -674.5 Q 160 -705 151 -735 L 232 -735 L 449 0 L 368 0 L 251 -430 Z " id="path140"/>
|
||||
<path d="M 45 0 L 200 -410 L 119 -410 L 119 -472 L 211 -472 L 211 -735 L 289 -735 L 289 -472 L 381 -472 L 381 -410 L 300 -410 L 455 0 L 372 0 L 250 -336 L 128 0 Z " id="path141"/>
|
||||
<path d="M 45 0 L 211 -439 L 211 -553 L 119 -553 L 119 -614 L 211 -614 L 211 -735 L 289 -735 L 289 -614 L 381 -614 L 381 -553 L 289 -553 L 289 -439 L 455 0 L 372 0 L 250 -336 L 128 0 Z " id="path141"/>
|
||||
<path d="M 248 -317 Q 229 -317 209.5 -320.5 Q 190 -324 173 -332.5 Q 156 -341 142 -354.5 Q 128 -368 119 -385 Q 110 -402 106.5 -421 Q 103 -440 103 -460 L 103 -701 Q 103 -720 106.5 -739 Q 110 -758 119 -775.5 Q 128 -793 142 -806.5 Q 156 -820 173 -828.5 Q 190 -837 209.5 -840 Q 229 -843 248 -843 Q 275 -843 302 -836 Q 329 -829 350 -812 Q 371 -795 382 -769 Q 393 -743 393 -716 L 393 -712 L 324 -712 L 324 -714 Q 324 -728 318 -741.5 Q 312 -755 301 -764 Q 290 -773 276 -777 Q 262 -781 248 -781 Q 232 -781 217 -775.5 Q 202 -770 191.5 -758.5 Q 181 -747 176.5 -732 Q 172 -717 172 -701 L 172 -460 Q 172 -444 176.5 -428.5 Q 181 -413 191.5 -401.5 Q 202 -390 217 -385 Q 232 -380 248 -380 Q 262 -380 276 -383.5 Q 290 -387 301 -396 Q 312 -405 318 -418.5 Q 324 -432 324 -447 L 324 -449 L 393 -449 L 393 -445 Q 393 -417 382 -391.5 Q 371 -366 350 -348.5 Q 329 -331 302 -324 Q 275 -317 248 -317 Z " id="path142"/>
|
||||
<path d="M 125 -323 L 125 -838 L 391 -838 L 391 -775 L 195 -775 L 195 -622 L 349 -622 L 349 -559 L 195 -559 L 195 -323 Z " id="path143"/>
|
||||
<path d="M 347 -197 Q 330 -197 313.5 -200 Q 297 -203 282.5 -210 Q 268 -217 255.5 -228.5 Q 243 -240 235.5 -255 Q 228 -270 224.5 -286 Q 221 -302 221 -319 Q 204 -321 188 -326.5 Q 172 -332 158 -341.5 Q 144 -351 133 -364.5 Q 122 -378 115 -393.5 Q 108 -409 105.5 -426 Q 103 -443 103 -460 L 103 -701 Q 103 -720 106.5 -739.5 Q 110 -759 119 -776 Q 128 -793 142.5 -806.5 Q 157 -820 174.5 -828.5 Q 192 -837 211.5 -840 Q 231 -843 250 -843 Q 269 -843 288.5 -840 Q 308 -837 325.5 -828.5 Q 343 -820 357.5 -806.5 Q 372 -793 381 -776 Q 390 -759 393.5 -739.5 Q 397 -720 397 -701 L 397 -460 Q 397 -435 391 -411.5 Q 385 -388 370.5 -369 Q 356 -350 335 -337.5 Q 314 -325 290 -321 Q 290 -309 293.5 -297.5 Q 297 -286 304.5 -277 Q 312 -268 323.5 -263.5 Q 335 -259 347 -259 L 369 -259 L 369 -197 Z M 250 -380 Q 266 -380 281.5 -385 Q 297 -390 308 -401.5 Q 319 -413 323.5 -428.5 Q 328 -444 328 -460 L 328 -701 Q 328 -717 323.5 -732.5 Q 319 -748 308 -759.5 Q 297 -771 281.5 -776 Q 266 -781 250 -781 Q 234 -781 218.5 -776 Q 203 -771 192 -759.5 Q 181 -748 176.5 -732.5 Q 172 -717 172 -701 L 172 -460 Q 172 -444 176.5 -428.5 Q 181 -413 192 -401.5 Q 203 -390 218.5 -385 Q 234 -380 250 -380 Z " id="path144"/>
|
||||
|
|
Before Width: | Height: | Size: 160 KiB After Width: | Height: | Size: 160 KiB |
|
@ -415,7 +415,6 @@ define [buildLigationsImpl gsub para $LigGroup$] : begin
|
|||
hyphen ~> [lsx 'cf']
|
||||
|
||||
LigGroup "Arrows" : begin
|
||||
define singular : hyphen.concat anyWave
|
||||
define [CBarSingular k] : begin
|
||||
local hyphenSet : new Set hyphen
|
||||
local fHyphen : arrowBarX k
|
||||
|
@ -427,9 +426,10 @@ define [buildLigationsImpl gsub para $LigGroup$] : begin
|
|||
if [hyphenSet.has x] hyphenResults.(j) waveResults.(j)
|
||||
|
||||
define ArrowFormationConfig : list
|
||||
# rod dbl ltgt FBarCls
|
||||
list equal 1 1 arrowBarX
|
||||
list singular 0 0 CBarSingular
|
||||
# rod dbl ltgt FBarCls groupNameSuffix
|
||||
list equal 1 1 arrowBarX 'equal'
|
||||
list hyphen 0 0 CBarSingular 'hyphen'
|
||||
list anyWave 0 0 CBarSingular 'wave'
|
||||
|
||||
define ArrowExtensionConfig : list
|
||||
# rod FBarCls
|
||||
|
@ -437,13 +437,13 @@ define [buildLigationsImpl gsub para $LigGroup$] : begin
|
|||
list hyphen arrowBarX
|
||||
list anyWave [lambda [k] [just "wave.lig.\(k)"]]
|
||||
|
||||
foreach [{rodCls dbl ltgt CRod} : items-of ArrowFormationConfig] : do
|
||||
foreach [{rodCls dbl ltgt CRod groupNameSuffix} : items-of ArrowFormationConfig] : do
|
||||
define heads {}
|
||||
define rods {}
|
||||
|
||||
define doLT : [not ltgt] || [hasLG 'arrow-l'] && ![hasLG 'lteq'] && ![hasLG 'lteq-separate']
|
||||
define doLTAlt : [not ltgt] || [hasLG 'counter-arrow-l'] && ![hasLG 'eqlt'] && ![hasLG 'eqlt-separate']
|
||||
define doRT : [not ltgt] || [hasLG 'counter-arrow-r'] && ![hasLG 'gteq'] && ![hasLG 'gteq-separate']
|
||||
define doLT : [not ltgt] || [hasLG "arrow-l-\(groupNameSuffix)"] && ![hasLG 'lteq'] && ![hasLG 'lteq-separate']
|
||||
define doLTAlt : [not ltgt] || [hasLG "counter-arrow-l-\(groupNameSuffix)"] && ![hasLG 'eqlt'] && ![hasLG 'eqlt-separate']
|
||||
define doRT : [not ltgt] || [hasLG "counter-arrow-r-\(groupNameSuffix)"] && ![hasLG 'gteq'] && ![hasLG 'gteq-separate']
|
||||
|
||||
# Disable regular expression lookaheads
|
||||
heads.push : chain-rule
|
||||
|
@ -471,21 +471,21 @@ define [buildLigationsImpl gsub para $LigGroup$] : begin
|
|||
define [CAntiHeadForce] : if dbl [lsx 'hole'] [lsx 'shift0.anti']
|
||||
define [CAntiHeadForceShiftN1] : if dbl [lsx 'hole.shiftN1'] [lsx 'shiftN1.anti']
|
||||
|
||||
define [LJoinHeadForce] : if [hasLG 'arrow-l'] [CJoinHeadForce] advance
|
||||
define [LJoinHeadForceLR] : if [hasLG 'arrow-lr'] [CJoinHeadForce] advance
|
||||
define [LJoinHeadForceShift1] : if [hasLG 'arrow-l'] [CJoinHeadForceShift1] advance
|
||||
define [LJoinHeadForceShift1LR] : if [hasLG 'arrow-lr'] [CJoinHeadForce] advance
|
||||
define [LMiddleHead] : if [hasLG 'counter-arrow-l'] [CJoinHeadMid] : if [hasLG 'arrow-l'] [LJoinHeadForce] advance
|
||||
define [LAntiHeadForce] : if [hasLG 'counter-arrow-l'] [CAntiHeadForce] advance
|
||||
define [LAntiHeadForceShiftN1] : if [hasLG 'counter-arrow-l'] [CAntiHeadForceShiftN1] advance
|
||||
define [LJoinHeadForce] : if [hasLG "arrow-l-\(groupNameSuffix)"] [CJoinHeadForce] advance
|
||||
define [LJoinHeadForceLR] : if [hasLG "arrow-lr-\(groupNameSuffix)"] [CJoinHeadForce] advance
|
||||
define [LJoinHeadForceShift1] : if [hasLG "arrow-l-\(groupNameSuffix)"] [CJoinHeadForceShift1] advance
|
||||
define [LJoinHeadForceShift1LR] : if [hasLG "arrow-lr-\(groupNameSuffix)"] [CJoinHeadForce] advance
|
||||
define [LMiddleHead] : if [hasLG "counter-arrow-l-\(groupNameSuffix)"] [CJoinHeadMid] : if [hasLG "arrow-l-\(groupNameSuffix)"] [LJoinHeadForce] advance
|
||||
define [LAntiHeadForce] : if [hasLG "counter-arrow-l-\(groupNameSuffix)"] [CAntiHeadForce] advance
|
||||
define [LAntiHeadForceShiftN1] : if [hasLG "counter-arrow-l-\(groupNameSuffix)"] [CAntiHeadForceShiftN1] advance
|
||||
|
||||
define [RJoinHeadForce] : if [hasLG 'arrow-r'] [CJoinHeadForce] advance
|
||||
define [RJoinHeadForceLR] : if [hasLG 'arrow-lr'] [CJoinHeadForce] advance
|
||||
define [RJoinHeadForceShift1] : if [hasLG 'arrow-r'] [CJoinHeadForceShift1] advance
|
||||
define [RJoinHeadForceShift1LR] : if [hasLG 'arrow-lr'] [CJoinHeadForce] advance
|
||||
define [RMiddleHead] : if [hasLG 'counter-arrow-r'] [CJoinHeadMid] : if [hasLG 'arrow-r'] [RJoinHeadForce] advance
|
||||
define [RAntiHeadForce] : if [hasLG 'counter-arrow-r'] [CAntiHeadForce] advance
|
||||
define [RAntiHeadForceShiftN1] : if [hasLG 'counter-arrow-r'] [CAntiHeadForceShiftN1] advance
|
||||
define [RJoinHeadForce] : if [hasLG "arrow-r-\(groupNameSuffix)"] [CJoinHeadForce] advance
|
||||
define [RJoinHeadForceLR] : if [hasLG "arrow-lr-\(groupNameSuffix)"] [CJoinHeadForce] advance
|
||||
define [RJoinHeadForceShift1] : if [hasLG "arrow-r-\(groupNameSuffix)"] [CJoinHeadForceShift1] advance
|
||||
define [RJoinHeadForceShift1LR] : if [hasLG "arrow-lr-\(groupNameSuffix)"] [CJoinHeadForce] advance
|
||||
define [RMiddleHead] : if [hasLG "counter-arrow-r-\(groupNameSuffix)"] [CJoinHeadMid] : if [hasLG "arrow-r-\(groupNameSuffix)"] [RJoinHeadForce] advance
|
||||
define [RAntiHeadForce] : if [hasLG "counter-arrow-r-\(groupNameSuffix)"] [CAntiHeadForce] advance
|
||||
define [RAntiHeadForceShiftN1] : if [hasLG "counter-arrow-r-\(groupNameSuffix)"] [CAntiHeadForceShiftN1] advance
|
||||
|
||||
# Ambiguous
|
||||
define [LAntiHeadAmbig] : if doLTAlt [LAntiHeadForce] advance
|
||||
|
|
|
@ -1,72 +1,72 @@
|
|||
[simple.center-ops]
|
||||
samples = [":=", ":-", ":+", "<*", "<*>", "*>", "+:", "-:", "=:", "<***>", "<:", ":>", "*-", "-*", "*=", "=*", "*+", "+*"]
|
||||
desc = 'Vertically align some of the operators (like `*`) to the center position it is before or after a "center" operator (like `+`)'
|
||||
###################################################################################################
|
||||
# The following section defines the fine-grained ligation set for the ligature font.
|
||||
# The ligation builder code (font-otl/src/gsub-ligation.ptl) will be driven by these settings.
|
||||
|
||||
[simple.center-op-trigger-plus-minus-l]
|
||||
samples = ["*+", "*-", ":+", ":-", ".+", ".-"]
|
||||
desc = 'Plus (`+`) and Minus (`-`) will trigger other operator characters at left to be centered'
|
||||
### Arrows
|
||||
|
||||
[simple.center-op-trigger-plus-minus-r]
|
||||
samples = ["+*", "-*", "+:", "-:", "+.", "-."]
|
||||
desc = 'Plus (`+`) and Minus (`-`) will trigger other operator characters at right to be centered'
|
||||
[simple.arrow-l-hyphen]
|
||||
samples = ["<--", "<---", "<<-", "<-", "<-->", "<--->", "<---->", "<-<"]
|
||||
desc = 'Left-pointing arrows with hyphen-minus (`-`) being the rod'
|
||||
|
||||
[simple.center-op-trigger-equal-l]
|
||||
samples = ["*=", ":=", ".="]
|
||||
desc = 'Equal (`=`) will trigger other operator characters at left to be centered'
|
||||
[simple.arrow-r-hyphen]
|
||||
samples = ["->", "->>", "-->", "--->", "<-->", "<--->", "<---->", ">->"]
|
||||
desc = 'Right-pointing arrows with hyphen-minus (`-`) being the rod'
|
||||
|
||||
[simple.center-op-trigger-equal-r]
|
||||
samples = ["=*", "=:", "=."]
|
||||
desc = 'Equal (`=`) will trigger other operator characters at right to be centered'
|
||||
[simple.arrow-lr-hyphen]
|
||||
samples = ["<->"]
|
||||
desc = 'Dual-pointing arrows with hyphen-minus (`-`) being the rod'
|
||||
|
||||
[simple.center-op-trigger-bar-l]
|
||||
samples = ["*|", ":|"]
|
||||
desc = 'Bars (`|`) will trigger other operator characters at left to be centered'
|
||||
[simple.counter-arrow-l-hyphen]
|
||||
samples = ["-<<", "-<", "-<-", "-<<", "-<", "-<-"]
|
||||
desc = 'Left-pointing counter-arrows with hyphen-minus (`-`) being the rod'
|
||||
|
||||
[simple.center-op-trigger-bar-r]
|
||||
samples = ["|*", "|:"]
|
||||
desc = 'Bars (`|`) will trigger other operator characters at right to be centered'
|
||||
|
||||
[simple.center-op-trigger-angle-inside]
|
||||
samples = ["<:", "<:>", ":>", "<*", "<*>", "*>", "<.", "<.>", ".>"]
|
||||
desc = 'Less (`<`) and Greater (`>`) will trigger other operator characters at inside to be centered'
|
||||
|
||||
[simple.center-op-trigger-angle-outside]
|
||||
samples = [">*", "*<"]
|
||||
desc = 'Less (`<`) and Greater (`>`) will trigger other operator characters at outside to be centered'
|
||||
|
||||
[simple.center-op-influence-dot]
|
||||
samples = ["<.", "<.>", ".>"]
|
||||
desc = 'Treat dot (`.`) as operator and perform chained centering'
|
||||
|
||||
[simple.center-op-influence-colon]
|
||||
samples = ["<:", "<:>", ":>", ":=", "=:", ":-", "-:"]
|
||||
desc = 'Treat colon (`:`) as operator and perform chained centering'
|
||||
[simple.counter-arrow-r-hyphen]
|
||||
samples = ["->-", ">-", ">>-", "->-", ">-", ">>-"]
|
||||
desc = 'Right-pointing counter-arrows with hyphen-minus (`-`) being the rod'
|
||||
|
||||
|
||||
[simple.arrow-l-equal]
|
||||
samples = ["<==", "<===", "<<=", "<=", "<==>", "<===>", "<====>", "<=<"]
|
||||
desc = 'Left-pointing arrows with equal sign (`=`) being the rod'
|
||||
|
||||
[simple.arrow-l]
|
||||
samples = ["<--", "<---", "<<-", "<-", "<-->", "<--->", "<---->", "<=", "<==", "<===", "<<=", "<==>", "<===>", "<====>", "<~~", "<~", "<=<", "<-<"]
|
||||
desc = 'Enable ligation set that forms left-pointing arrows'
|
||||
[simple.arrow-r-equal]
|
||||
samples = ["=>", "=>>", "==>", "===>", "<==>", "<===>", "<====>", ">=>"]
|
||||
desc = 'Right-pointing arrows with equal sign (`=`) being the rod'
|
||||
|
||||
[simple.arrow-r]
|
||||
samples = ["->", "->>", "-->", "--->", "<-->", "<--->", "<---->", "=>", "=>>", "==>", "===>", "<==>", "<===>", "<====>", "~>", "~~>", "-------->", ">=>", ">->"]
|
||||
desc = 'Enable ligation set that forms right-pointing arrows'
|
||||
[simple.arrow-lr-equal]
|
||||
samples = ["<=>"]
|
||||
desc = 'Dual-pointing arrows with equal sign (`=`) being the rod'
|
||||
|
||||
[simple.arrow-lr]
|
||||
samples = ["<->", "<=>", "<~>"]
|
||||
desc = 'Enable ligation set that forms dual-pointing arrows'
|
||||
[simple.counter-arrow-l-equal]
|
||||
samples = ["=<<", "=<", "=<=", "=<<", "=<", "=<="]
|
||||
desc = 'Left-pointing counter-arrows with equal sign (`=`) being the rod'
|
||||
|
||||
[simple.counter-arrow-l]
|
||||
samples = ["-<<", "-<", "-<-", "=<<", "=<", "=<=", "<=<", "-<<", "-<", "-<-", "=<<", "=<", "=<="]
|
||||
desc = 'Enable ligation that produces left-pointing counter-arrows'
|
||||
[simple.counter-arrow-r-equal]
|
||||
samples = ["=>=", ">=", ">>=", "=>=", ">=", ">>="]
|
||||
desc = 'Right-pointing counter-arrows with equal sign (`=`) being the rod'
|
||||
|
||||
[simple.counter-arrow-r]
|
||||
samples = ["->-", ">-", ">>-", "=>=", ">=>", "->-", ">-", ">>-", ">>=", "=>="]
|
||||
desc = 'Enable ligation that produces right-pointing counter-arrows'
|
||||
|
||||
[simple.trig]
|
||||
samples = ["<|", "<|>", "|>"]
|
||||
desc = 'Enable ligation for `<|`, `|>` , `<||`, and other bar-and-angle-bracket symbols'
|
||||
[simple.arrow-l-wave]
|
||||
samples = ["<~~", "<~~~", "<<~", "<~", "<~~>", "<~~~>", "<~~~~>", "<~<"]
|
||||
desc = 'Left-pointing arrows with tilde (`~`) being the rod'
|
||||
|
||||
[simple.arrow-r-wave]
|
||||
samples = ["~>", "~>>", "~~>", "~~~>", "<~~>", "<~~~>", "<~~~~>", ">~>"]
|
||||
desc = 'Right-pointing arrows with tilde (`~`) being the rod'
|
||||
|
||||
[simple.arrow-lr-wave]
|
||||
samples = ["<~>"]
|
||||
desc = 'Dual-pointing arrows with tilde (`~`) being the rod'
|
||||
|
||||
[simple.counter-arrow-l-wave]
|
||||
samples = ["~<<", "~<", "~<~", "~<<", "~<", "~<~"]
|
||||
desc = 'Left-pointing counter-arrows with tilde (`~`) being the rod'
|
||||
|
||||
[simple.counter-arrow-r-wave]
|
||||
samples = ["~>~", ">~", ">>~", "~>~", ">~", ">>~"]
|
||||
desc = 'Right-pointing counter-arrows with tilde (`~`) being the rod'
|
||||
|
||||
### Equality and Inequality
|
||||
|
||||
[simple.eqeqeq]
|
||||
samples = ["==="]
|
||||
|
@ -142,6 +142,12 @@ desc = 'Enable special triple-line ligation for `=/=` as inequality'
|
|||
samples = ["/=", "=/="]
|
||||
desc = 'Enable ligation for `/=` and `=/=` as inequality'
|
||||
|
||||
### Triangles and Diamonds
|
||||
|
||||
[simple.trig]
|
||||
samples = ["<|", "<|>", "|>"]
|
||||
desc = 'Enable ligation for `<|`, `|>` , `<||`, and other bar-and-angle-bracket symbols'
|
||||
|
||||
[simple.ltgt-ne]
|
||||
samples = ["<>"]
|
||||
sampleRank = 2
|
||||
|
@ -161,6 +167,8 @@ samples = ["</", "/>", "</>"]
|
|||
sampleRank = 2
|
||||
desc = 'Enable ligation for `</`, `/>` and `</>`'
|
||||
|
||||
### Comment symbols
|
||||
|
||||
[simple.brst]
|
||||
samples = ["(*", "*)", "(* comm *)"]
|
||||
desc = 'Center asterisk in `(*` and `*)`'
|
||||
|
@ -169,6 +177,8 @@ desc = 'Center asterisk in `(*` and `*)`'
|
|||
samples = ["/*", "*/", "/* comm */"]
|
||||
desc = 'Shift asterisk in `/*` and `*/`'
|
||||
|
||||
### Distance arrangement
|
||||
|
||||
[simple.kern-dotty]
|
||||
samples = ["::", ":::"]
|
||||
desc = 'Move connecting dotty punctuations closer, like for `::`, `:::` and `...`'
|
||||
|
@ -177,37 +187,54 @@ desc = 'Move connecting dotty punctuations closer, like for `::`, `:::` and `...
|
|||
samples = ["||", "|||"]
|
||||
desc = 'Move consecutive bars closer, like for `||`, `|||` and `//`'
|
||||
|
||||
[simple.logic]
|
||||
samples = ["/\\", "\\/", "|-", "-|"]
|
||||
desc = 'Enable ligation for `/\` and `\/`'
|
||||
### Operator Centering
|
||||
|
||||
[simple.llgg]
|
||||
samples = ["<<", ">>", "<<<", ">>>"]
|
||||
desc = 'Enable ligation for `<<`, `>>` and other angle-bracket chaining'
|
||||
[simple.center-ops]
|
||||
samples = [":=", ":-", ":+", "<*", "<*>", "*>", "+:", "-:", "=:", "<***>", "<:", ":>", "*-", "-*", "*=", "=*", "*+", "+*"]
|
||||
desc = 'Vertically align some of the operators (like `*`) to the center position it is before or after a "center" operator (like `+`)'
|
||||
|
||||
[simple.llggeq]
|
||||
samples = ["<<=", ">>="]
|
||||
sampleRank = 2
|
||||
desc = 'Enable ligation for `<<=`, `>>=` as shift operator'
|
||||
[simple.center-op-trigger-plus-minus-l]
|
||||
samples = ["*+", "*-", ":+", ":-", ".+", ".-"]
|
||||
desc = 'Plus (`+`) and Minus (`-`) will trigger other operator characters at left to be centered'
|
||||
|
||||
[simple.html-comment]
|
||||
samples = ["<!--", "<!---"]
|
||||
desc = 'Enable ligation for `<!--` and `<!---`'
|
||||
[simple.center-op-trigger-plus-minus-r]
|
||||
samples = ["+*", "-*", "+:", "-:", "+.", "-."]
|
||||
desc = 'Plus (`+`) and Minus (`-`) will trigger other operator characters at right to be centered'
|
||||
|
||||
[simple.colon-greater-as-colon-arrow]
|
||||
samples = [":>"]
|
||||
sampleRank = 2
|
||||
desc = 'Transform `:>` into `:` and a narrow arrow'
|
||||
[simple.center-op-trigger-equal-l]
|
||||
samples = ["*=", ":=", ".="]
|
||||
desc = 'Equal (`=`) will trigger other operator characters at left to be centered'
|
||||
|
||||
[simple.brace-bar]
|
||||
samples = ["{|", "|}"]
|
||||
desc = 'Enable ligation for `{|` and `|}`'
|
||||
[simple.center-op-trigger-equal-r]
|
||||
samples = ["=*", "=:", "=."]
|
||||
desc = 'Equal (`=`) will trigger other operator characters at right to be centered'
|
||||
|
||||
[simple.brack-bar]
|
||||
samples = ["[|", "|]"]
|
||||
desc = 'Enable ligation for `[|` and `|]`'
|
||||
[simple.center-op-trigger-bar-l]
|
||||
samples = ["*|", ":|"]
|
||||
desc = 'Bars (`|`) will trigger other operator characters at left to be centered'
|
||||
|
||||
[simple.center-op-trigger-bar-r]
|
||||
samples = ["|*", "|:"]
|
||||
desc = 'Bars (`|`) will trigger other operator characters at right to be centered'
|
||||
|
||||
[simple.center-op-trigger-angle-inside]
|
||||
samples = ["<:", "<:>", ":>", "<*", "<*>", "*>", "<.", "<.>", ".>"]
|
||||
desc = 'Less (`<`) and Greater (`>`) will trigger other operator characters at inside to be centered'
|
||||
|
||||
[simple.center-op-trigger-angle-outside]
|
||||
samples = [">*", "*<"]
|
||||
desc = 'Less (`<`) and Greater (`>`) will trigger other operator characters at outside to be centered'
|
||||
|
||||
[simple.center-op-influence-dot]
|
||||
samples = ["<.", "<.>", ".>"]
|
||||
desc = 'Treat dot (`.`) as operator and perform chained centering'
|
||||
|
||||
[simple.center-op-influence-colon]
|
||||
samples = ["<:", "<:>", ":>", ":=", "=:", ":-", "-:"]
|
||||
desc = 'Treat colon (`:`) as operator and perform chained centering'
|
||||
|
||||
### Connection
|
||||
|
||||
# Connection
|
||||
[simple.tilde-tilde]
|
||||
samples = ["~~"]
|
||||
implies = ["tilde-tilde-tilde"]
|
||||
|
@ -253,7 +280,42 @@ desc = 'Make 2 or more contiguous hash signs (number signs) (like `##`, `###` an
|
|||
samples = ["###", "####"]
|
||||
desc = 'Make 3 or more contiguous hash signs (number signs) (like `##` and `###`) connected'
|
||||
|
||||
### Miscellaneous
|
||||
|
||||
[simple.logic]
|
||||
samples = ["/\\", "\\/", "|-", "-|"]
|
||||
desc = 'Enable ligation for `/\` and `\/`'
|
||||
|
||||
[simple.llgg]
|
||||
samples = ["<<", ">>", "<<<", ">>>"]
|
||||
desc = 'Enable ligation for `<<`, `>>` and other angle-bracket chaining'
|
||||
|
||||
[simple.llggeq]
|
||||
samples = ["<<=", ">>="]
|
||||
sampleRank = 2
|
||||
desc = 'Enable ligation for `<<=`, `>>=` as shift operator'
|
||||
|
||||
[simple.html-comment]
|
||||
samples = ["<!--", "<!---"]
|
||||
desc = 'Enable ligation for `<!--` and `<!---`'
|
||||
|
||||
[simple.colon-greater-as-colon-arrow]
|
||||
samples = [":>"]
|
||||
sampleRank = 2
|
||||
desc = 'Transform `:>` into `:` and a narrow arrow'
|
||||
|
||||
[simple.brace-bar]
|
||||
samples = ["{|", "|}"]
|
||||
desc = 'Enable ligation for `{|` and `|}`'
|
||||
|
||||
[simple.brack-bar]
|
||||
samples = ["[|", "|]"]
|
||||
desc = 'Enable ligation for `[|` and `|]`'
|
||||
|
||||
###################################################################################################
|
||||
# The following section defines composites of ligation sets.
|
||||
# The buildup property defines its formation, and we allow composites to be recursive.
|
||||
# When the tag property is not defined, the composite will be exposed in the final font file.
|
||||
|
||||
# Non-tagged composites, used for inheritance
|
||||
[composite.--default-center-ops--]
|
||||
|
@ -316,6 +378,52 @@ buildup = [ 'plus-plus', 'minus-minus', 'underscore-underscore', 'hash-hash', 't
|
|||
[composite.--c-like-chaining--]
|
||||
buildup = [ 'plus-plus', 'minus-minus-minus', 'underscore-underscore', 'hash-hash-hash', 'tilde-tilde-tilde' ]
|
||||
|
||||
[composite.arrow-l]
|
||||
showAsCherryPicking = true
|
||||
desc = "Left-pointing arrows"
|
||||
buildup = ['arrow-l-hyphen', 'arrow-l-equal', 'arrow-l-wave']
|
||||
[composite.arrow-r]
|
||||
showAsCherryPicking = true
|
||||
desc = "Right-pointing arrows"
|
||||
buildup = ['arrow-r-hyphen', 'arrow-r-equal', 'arrow-r-wave']
|
||||
[composite.arrow-lr]
|
||||
showAsCherryPicking = true
|
||||
desc = "Dual-pointing arrows"
|
||||
buildup = ['arrow-lr-hyphen', 'arrow-lr-equal', 'arrow-lr-wave']
|
||||
[composite.counter-arrow-l]
|
||||
showAsCherryPicking = true
|
||||
desc = "Left-pointing counter-arrows"
|
||||
buildup = ['counter-arrow-l-hyphen', 'counter-arrow-l-equal', 'counter-arrow-l-wave']
|
||||
[composite.counter-arrow-r]
|
||||
showAsCherryPicking = true
|
||||
desc = "Right-pointing counter-arrows"
|
||||
buildup = ['counter-arrow-r-hyphen', 'counter-arrow-r-equal', 'counter-arrow-r-wave']
|
||||
|
||||
[composite.arrow-hyphen]
|
||||
showAsCherryPicking = true
|
||||
desc = "Arrows using hyphen-minus (`-`) as the rod"
|
||||
buildup = ['arrow-l-hyphen', 'arrow-r-hyphen', 'arrow-lr-hyphen']
|
||||
[composite.arrow-equal]
|
||||
showAsCherryPicking = true
|
||||
desc = "Arrows using equal sign (`=`) as the rod"
|
||||
buildup = ['arrow-l-equal', 'arrow-r-equal', 'arrow-lr-equal']
|
||||
[composite.arrow-wave]
|
||||
showAsCherryPicking = true
|
||||
desc = "Arrows using tilde (`~`) as the rod"
|
||||
buildup = ['arrow-l-wave', 'arrow-r-wave', 'arrow-lr-wave']
|
||||
[composite.counter-arrow-hyphen]
|
||||
showAsCherryPicking = true
|
||||
desc = "Counter-arrows using hyphen-minus (`-`) as the rod"
|
||||
buildup = ['counter-arrow-l-hyphen', 'counter-arrow-r-hyphen']
|
||||
[composite.counter-arrow-equal]
|
||||
showAsCherryPicking = true
|
||||
desc = "Counter-arrows using equal sign (`=`) as the rod"
|
||||
buildup = ['counter-arrow-l-equal', 'counter-arrow-r-equal']
|
||||
[composite.counter-arrow-wave]
|
||||
showAsCherryPicking = true
|
||||
desc = "Counter-arrows using tilde (`~`) as the rod"
|
||||
buildup = ['counter-arrow-l-wave', 'counter-arrow-r-wave']
|
||||
|
||||
# This feature is on by default by many software
|
||||
[composite.default-calt]
|
||||
tag = 'calt'
|
||||
|
|
|
@ -10,6 +10,11 @@ export default async function processLigSetCherryPicking(argv, dirs) {
|
|||
const md = new MdCol("Section-Cherry-Picking-Ligation-Sets");
|
||||
const headerPath = path.resolve(dirs.fragments, "description-cherry-picking-ligation-sets.md");
|
||||
md.log(await fs.promises.readFile(headerPath, "utf-8"));
|
||||
for (const gr in ligData.rawSets) {
|
||||
if (!ligData.rawSets[gr].desc) continue;
|
||||
if (!ligData.rawSets[gr].showAsCherryPicking) continue;
|
||||
md.log(` - \`${gr}\`: ${ligData.rawSets[gr].desc}.`);
|
||||
}
|
||||
for (const gr in ligData.cherry) {
|
||||
md.log(` - \`${gr}\`: ${ligData.cherry[gr].desc}.`);
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ export default async function processLigSetPreDef(argv, dirs) {
|
|||
md.log(await fs.promises.readFile(headerPath, "utf-8"));
|
||||
for (const gr in ligData.rawSets) {
|
||||
if (!ligData.rawSets[gr].desc) continue;
|
||||
if (ligData.rawSets[gr].showAsCherryPicking) continue;
|
||||
const readmeDesc =
|
||||
ligData.rawSets[gr].readmeDesc ||
|
||||
`Default ligation set would be assigned to ${ligData.rawSets[gr].desc}`;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue