4 title => 'latin alphabet cheat sheet',
9 latin roman alphabet script letter unicode font glyph abc
10 code encoding spelling symbol writing comparison character
11 secret cursive fraktur blind braille morse deaf asl hand
12 barcode bar color semaphore flag
14 stylesheet => [qw( light dark red mono )],
15 data => ['writing-latn.inc.pl'],
21 font-family: Suetterlin; /* R. G. Arens */
22 src: url("/suetterlin.ttf");
24 #sütterlin td { font-family: Suetterlin }
29 word-spacing: 5em; /* force line break between words */
39 font-family: Symbola, "DejaVu Sans", serif, sans;
42 stroke-linecap: square;
46 stroke-linecap: round;
47 stroke-linejoin: round;
53 width: auto !important;
57 vertical-align: middle;
61 #old-roman-cursive .sample span {
74 #tap-code .sample span,
75 #short-tap .sample span {
79 #sutton-asl .sample span,
80 #maritime-flags .sample span,
87 #nyctographs .sample svg {
88 background: rgba(0,0,0, .1);
93 svg path:not([fill]) {
97 svg circle:not([fill]) {
105 vertical-align: middle;
109 <h1>Latin alphabet</h1>
111 <p id=intro>Variant encodings of the common ASCII (latin, roman,
112 or <span title="fuck yeah!">'mercan</span>) letters A–Z.
113 Also see <a href="/writing">related alphabets</a>
114 and <a href="/chars/abc">font comparison</a>.</p>
119 use List::Util qw( pairs );
121 my @table = do 'writing-latn.inc.pl';
123 Alert("Table data not found", $@ || $!);
126 my %VOWELCOLS = (map { ($_ => 1) } 0, 4, 8, 14, 20, 24);
127 say '<table class="glyphs">';
128 say '<thead><tr><th># <small>ASCII − 64</small>';
129 print '<td>', $_ for 1 .. 26;
132 for my $row (pairs @table) {
133 my ($title, $cells) = @{$row};
134 printf '<tr id="%s">', (lc $title) =~ s/<[^>]+>//gr =~ s/\s+/-/gr;
145 push @class ,'l0' if $VOWELCOLS{$col - $colspan};
146 push @class, $_ ? 'ex' : 'u-invalid' if s/^-//;
150 # special character for sample generation
151 print ' hidden'; # sample only
154 print ' title=', chr($col + ord('A') - $colspan);
157 print " colspan=$colspan";
160 printf ' class="%s"', "@class" if @class;
170 <script type="text/javascript" src="/latinsample.js"></script>
171 <script type="text/javascript"> prependinput(document.getElementById('intro')) </script>