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;
54 vertical-align: middle;
58 #old-roman-cursive .sample span {
62 #tap-simplified .sample {
67 #tap-simplified .sample {
71 #tap-code .sample span,
72 #tap-simplified .sample span {
76 #sutton-asl .sample span,
77 #maritime-flags .sample span,
84 #nyctographs .sample svg {
85 background: rgba(0,0,0, .1);
90 svg path:not([fill]) {
94 svg circle:not([fill]) {
102 vertical-align: middle;
106 <h1>Latin alphabet</h1>
108 <p id=intro>Variant encodings of the common ASCII (latin, roman,
109 or <span title="fuck yeah!">'mercan</span>) letters A–Z.
110 Also see <a href="/writing">related alphabets</a>
111 and <a href="/chars/abc">font comparison</a>.</p>
116 use List::Util qw( pairs );
118 my @table = do 'writing-latn.inc.pl';
120 Alert("Table data not found", $@ || $!);
123 say '<table class="glyphs">';
124 for my $row (pairs @table) {
125 my ($title, $cells) = @{$row};
126 printf '<tr id="%s">', (lc $title) =~ s/<[^>]+>//gr =~ s/\s+/-/gr;
138 print " colspan=$colspan";
141 print ' hidden' if $col > 26; # sample only
142 print ' class=', $_ ? 'ex' : 'u-invalid' if s/^-//;
152 <script type="text/javascript" src="/latinsample.js"></script>
153 <script type="text/javascript"> prependinput(document.getElementById('intro')) </script>