latin: alternate tap styling using crossed dashes
[sheet.git] / writing-latn.inc.pl
index 1ba352507b64d831cadd64c8122c0c1f2a8a877d..7ed03ed496620679e197d6edabaa98e8ba80059e 100644 (file)
@@ -60,6 +60,21 @@ sub dispdomino {
        return $prefix . chr(0x1F031 + ($dots[0] * 7) + $dots[1]);
 }
 
+sub dispdash {
+       my $code = shift;
+       my ($prefix, @dots) = $code =~ m/\A(-?)(\d)(\d)/ or return $code;
+       my ($w, $h) = (12, 9);
+       my @w = map { $w / ($_ || 1) } @dots;
+       return sprintf(
+               '<svg height="20" viewBox="-.5 -.5 %s %s">'
+               . '<path d="%s" /></svg>',
+               $w + 1, $h + 1, join(' ',
+                       "m0,$h l+$w[0],-$h" x $dots[0], # slashes
+                       "m0,$h l-$w[1],-$h" x $dots[1], # backslashes
+               )
+       );
+}
+
 sub dispblock {
        my $code = shift;
        my ($prefix, $shape, $rotate) = $code =~ m/\A(-?)(\w)(\d?)/
@@ -367,7 +382,7 @@ shorttap => {
                11 12 13 14 21 22 23 20 > 31 -13 32 33
                30 41 42 -13 43 40 10 51 52 53 50 -31 -40
        }],
-       altlist => [map { disptap($_) } qw{
+       altlist => [map { dispdash($_) } qw{
                10 14 -13 12 20 23 22 21 30 -34 13 33 32
                31 40 43 -13 42 41 11 50 -23 -50 -1341 -31 -41
        }],