Esta é uma exploração do conceito de Grito Escrito, ou, ainda, da Tipografia do Grito. É uma obra magnifica provocação que leva à pergunta: “tipograficamente, qual a maneira correta de se gritar em texto?”
Existem muitas possíveis respostas para essa pergunta. Entre elas, “a pergunta não faz sentido, pois não há maneira correta”, ou “qual é o seu problema?”, ou ainda “a terceira” — embora essa última só faça sentido para gritos mais expressivos do que dois caractéres.
É uma pergunta relevante, na medida em que você se preocupe com tipografia (o que provavelmente não é verdade, mas eu sim me preocupo, muito obrigado), e na medida em que gritar é uma ação muitas vezes necessária na Internet.
“Mas eu posso gravar um audio no WhatsApp gritando”, me respondem. Sim, pode. Mas em honra à tradição escrita da comunicação humana, a questão da Tipografia do Grito é um problema que deve ser discutido. Numa época em que audios, InstaStories e afins estão destruíndo a nossa capacidade comunicativa, acredito numa retomada da tradição dos grandes tipógrafos — na forma de gritos.
Gritos 1
A primeira iteração da ideia é um “projeto” antigo meu, escrito em Racket, usando a biblioteca Pict (que fique registrado que eu não sei programar em Racket).
Primeiro algumas definições inclusas a título de esclarecimento.
Este é o código que gera, efetivamente, os gritos. A primeira função repete um caractere, e a segunda gera o i-ésimo grito dos gritos de (arbitrariamente decididos) cinco caracteres.
Note como a presença de números mágicos no código o torna feio. Porque merda tem uma (list 1 2 3 4) que poderia ser facilmente abstraída? De qualquer forma, não modifiquei o código por seu valor histórico pessoal; e como um testemunho à minha antiga incompetência.
A final, existe código (omitido) para gerar um .png.
O resultado foi esse:
screams
Gritos 2
Mais recentemente decidi refazer esse projeto. Contando com a mesma incapacidade mais experiência e conhecimento de programação, imaginei que seria capaz de programá-lo melhor e mais elegante.
Continua ruim.
Este é o código que gera as linhas de texto
screams ::Int-> [String]screams n =map (scream n) [1..(n-1)]scream ::Int->Int->Stringscream n m =replicate m 'A'++replicate (n-m) 'H'
O resto do programa serve para transformar as linhas de texto em código de SVG, e para lidar com opções de linha de comando (n e o tamanho da fonte). Por algum senso de vergonha, não vou reproduzí-lo aqui. Mas o resultado para n = 80 é