Suponha que eu tenho uma fonte em um formato modestamente popular ( .ttf
, .otf
, etc.), e eu tenho os direitos legais para modificá-lo. Tal como está, é uma fonte normal com diferentes caracteres (glifos?) Variando em larguras e espaçamentos. Como eu iria transformar a fonte em uma fonte monoespaçada (por exemplo, todos os caracteres têm as mesmas dimensões, etc.)?
Se possível, existem ferramentas automatizadas que podem fazer algumas das suposições? (Os resultados não precisam ser perfeitos .) A fonte pode ser grande (muitos caracteres) e a edição pode ser entediante.
Todas as sugestões sobre o problema são muito apreciadas! :)
Isenção de responsabilidade: desculpe se isso é considerado um simples passo a passo , mas o Google tem muito pouca informação sobre o assunto e, para um programador que não lida muito com gráficos ou fontes, com certeza não é simples . Além disso, desculpe se minha terminologia está desativada ...: P
Respostas:
Se você ainda não possui nenhum software de edição de fontes, a boa notícia é que o Fontforge é gratuito e de código aberto. A má notícia é que ele possui uma curva de aprendizado relativamente alta e uma interface de usuário um tanto incomum.
Basicamente, para que uma fonte seja considerada monoespaçada, todo glifo deve ter a mesma largura, até exatamente o mesmo número de unidades. Isso inclui até glifos que normalmente devem ter largura zero ou certa largura (como espaços em, traços, etc.).
Consulte a entrada da FAQ "Como faço para marcar uma fonte como monoespaçada?"
Para editar a largura de todos os glifos de uma só vez em um lote, basta ir em "Métricas" -> "Definir largura" no menu, mas eu não esperava que funcionasse para todos os caracteres. Você provavelmente terá que editar manualmente todos os caracteres largos, como 'W', 'M', '@', etc., para que eles não se sobreponham. E combinar diacríticos (acentos que devem ser "combinados" com letras no momento da renderização) pode ter todas as suas posições confusas (o que é difícil de testar se você é americano / inglês e quase nunca as usa).
Uma pessoa que sabe como criar e editar fontes seria capaz de executar esta tarefa, mas ainda não seria simples.
fonte
Set Width
debaixoMetrics
menu drop-down: definir todos os glifos para uma largura média (mudança posteriormente, se necessário) e, finalmente, selecioneEqualise Sidebearings
também sobMetrics
menu para centralizar os glifos no em-quadrado. Obviamente: estude como outras pessoas superaram as dificuldades específicas do design de fontes de largura fixa de sucesso.thomasrutter oferece mais uma resposta técnica; Vou mostrar alguns princípios de tipografia para desencorajá-lo a fazer o que deseja, a menos que realmente precise.
Aumente o zoom em um 'i' e um 'm' em Consolas ou Courier e, em seguida, Corbel ou Verdana. Observe como as letras devem ser diferentes para que o monoespaço funcione. Para converter corretamente uma fonte em monoespaço, é preciso muito conhecimento e trabalho. A idéia geral de esticar as fontes é desaprovada por qualquer designer que se preze, é por isso que mesmo ir do normal para uma variante condensada leva a um redesenho de todos os glifos.
Portanto, veja Consolas vs. Corbel aqui e veja como, quando ampliado, você pode observar 1) espaçamento entre letras, 2) consistência da espessura do traço e 3) como cada letra se encaixa em sua caixa. Observe a face monoespaçada (primeiro) em comparação com a face espaçada variável (segunda), depois veja a terceira e a quarta para ver o que acontece quando você tenta esticar e espaço para torná-la igual. No quarto, fiz a Sra. Esmagar para 75% para entrar na caixa, mas agora eles são muito mais magros que o Is. isso será perceptível quando usado.
Então, resumindo: não mexa com os tipos de letra; eles são muito mais formidáveis do que você esperaria!
fonte
Me deparei com esse mesmo problema, tentando editar o código-fonte, fazendo uso pesado de símbolos Unicode. Nesse contexto, a maior parte do código-fonte é exibida em uma fonte monoespaçada, e alguns símbolos que não são cobertos por essa fonte acabam prejudicando o alinhamento.
Embora seja verdade que "monoespacificar" uma fonte completa produzirá resultados horríveis (kerning, larguras de traço e equilíbrio geral serão totalmente confusos), importando apenas alguns símbolos de uma fonte de largura variável para uma monoespaço, obtemos resultados decentes. A animação abaixo mostra o uso do Consolas + Symbola como substituto, em comparação com o Consolas + uma versão monoespacificada do Symbola:
Isso é inútil para tipografia avançada, mas é um bom compromisso se você deseja usar símbolos em seu código-fonte sem arruinar o recuo. Existem várias advertências:
Eu lancei um projeto GitHub para lidar com este tipo de transformações fonte automaticamente. Ele inclui fontes pré-geradas e código usando as ligações Python do fontforge.
Veja também esta pergunta do emacs.se .
fonte
No processador de texto, eu: (1) criei uma tabela; (2) dividido em colunas - uma coluna para cada letra; (3) centralizou as letras; e (4) tornou todas as fronteiras internas e externas invisíveis.
fonte