X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/2a817c01f188212c41ee9500b17760a8caa02190..e243ba6955889ecb639cd547e1420520527b9d3e:/writing-latn.inc.pl diff --git a/writing-latn.inc.pl b/writing-latn.inc.pl index 93b5edc..c7ed2dd 100644 --- a/writing-latn.inc.pl +++ b/writing-latn.inc.pl @@ -1,15 +1,17 @@ use utf8; +use List::Util qw( pairs ); sub disptap { return map { !m/\A(-?)(\d)(\d)/ ? $_ : - $1.sprintf('%s
%s', + $1.join(' ', '·' x $2, '·' x $3, ); } @_; } my %C = qw(red #EC1C24 blue #3953A3 yellow #F9EC31 black #231F20); +my $U = 0; # optional unicode alternatives ( 'Uppercase' => [qw{ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z }], @@ -54,6 +56,11 @@ my %C = qw(red #EC1C24 blue #3953A3 yellow #F9EC31 black #231F20); 903a9c 8FBa9c 815a9c 80Ea9c 887a9c 806a9c 89Aa9c 800a9c945aaa }], +'ITA2' => [ + map { tr/01/○●/r =~ s/..\K/ /r } qw( + 11000 10011 01110 10010 10000 10110 01011 00101 01100 11010 11110 01001 00111 + 00110 00011 01101 11101 01010 10100 00001 11100 01111 11001 10111 10101 10001 +)], 'Braille' => [qw{ ⠁ ⠃ ⠉ ⠙ ⠑ ⠋ ⠛ ⠓ ⠊ ⠚ ⠅ ⠇ ⠍ ⠝ ⠕ ⠏ ⠟ ⠗ ⠎ ⠞ ⠥ ⠧ ⠺ ⠭ ⠽ ⠵ }], '5-point Tactile' => [ map { ''.$_.'' } @@ -181,7 +188,7 @@ my %C = qw(red #EC1C24 blue #3953A3 yellow #F9EC31 black #231F20); 'Flag semaphore' => [ map { local $_ = $_; - s/[1-4]\K(?=[4-9])/ /; + s/[1-4]\K(?=[4-9])/ /; # prevent unwanted vertical crossing tr/1-9/↙←↖↑↗→↘↓/; s{(\S)(?=.)}{$1}; $_ @@ -196,7 +203,7 @@ my %C = qw(red #EC1C24 blue #3953A3 yellow #F9EC31 black #231F20); my ($r, $pr, $pl) = split //, $_; /^\D$/ ? $_ : sprintf( join('', - '', + '', '', '', '', @@ -216,7 +223,7 @@ my %C = qw(red #EC1C24 blue #3953A3 yellow #F9EC31 black #231F20); 'Prussian semaphore' => [ map { /^\D+$/ ? $_ : sprintf join('', - '', + '', '', (map {( qq(), @@ -241,8 +248,35 @@ my %C = qw(red #EC1C24 blue #3953A3 yellow #F9EC31 black #231F20); 201112 102112 202111 101212 201211 102211 ) ], +'Code 93' => [ + map { + sprintf + '', + join ' ', + map { + join('m1,-7', ('v7') x $_->[0]), # line per bar width + (map { sprintf 'm%d,-7', $_ + 1 } $_->[1] || ()), # space forward + } + pairs split // + } + # bar and space widths (1-3) + qw( + 21111 21121 21131 22111 22121 23111 11211 11221 11231 + 12211 13211 11112 11122 11132 12112 13112 21211 21221 + 21112 21122 22112 22211 11212 11222 12212 12311 + ) +], 'Code 128' => [ - map { tr/1-3-/❘❙❚ /r } + map { $U ? tr/1-3-/❘❙❚ /r : sprintf + '', + join ' ', + map { + $_ eq '' ? 'm2,-7' : + $_ eq '-' ? 'm4,-7' : + join 'm1,-7', ('v7') x $_ + } + split /(-)?/, $_ # each bar [123] and space [ -] + } # bar widths (1-3) followed by space of width 1 (implied) or 3 (-) qw( 11-2 1-12 1-1-2 12-1 1-21 1-2-1 21-1 2-11 2-1-1 123 12-3 1-23 132 @@ -281,7 +315,7 @@ my %C = qw(red #EC1C24 blue #3953A3 yellow #F9EC31 black #231F20); m/h/ or s/v/l3,/g; m/v/ or s/h([^h]*)/l$1,3/g; my $dot = s/\.// && qq(); - qq($dot) + qq($dot) } qw( Hvh vhv vh hvh vhvh Hhvh hv Vvhv Hhv @@ -294,8 +328,7 @@ my %C = qw(red #EC1C24 blue #3953A3 yellow #F9EC31 black #231F20); map { s/M[\d,\hM]+(?=[M"])//gr } # clean up superfluous moves map { sprintf '' - . '', - ' stroke-linecap="round" stroke-linejoin="round"', + . '', 'h.5v.5h-.5v-.5', # start anchor map { ['M', 'h0M', 'L']->[$_] } split //, $_