Existe uma maneira aceita de ajustar glifos de fonte para simular figuras de texto ?
fundo
As figuras de texto são dígitos "minúsculos". Você normalmente usa dígitos em minúsculas, onde também usa texto em minúsculas (por exemplo, no meio de uma frase).
Os teclados nunca foram criados com dígitos maiúsculos e minúsculos; e o Unicode não os codifica especificamente, pois "eles não são considerados caracteres separados das figuras de revestimento, apenas uma maneira diferente de escrever os mesmos caracteres".
O que me leva à minha pergunta; qual é a maneira aceita de criar números minúsculos dos "maiúsculos" padrão de uma fonte?
A Wikipedia menciona que normalmente :
012
são dex
altura68
ter ascendentes34579
tem descendentes
Minha primeira tentativa (no photoshop) seria:
- smush 012
- cutucar 34579 para baixo
- deixe 68 onde estão:
Mas as figuras esquecidas (0, 1, 2) parecem claramente desagradáveis.
Se o consórcio Unicode sugerir que "dígitos minúsculos" podem ser simplesmente construídos com caracteres "maiúsculos" - o que eles recomendam que eu faça?
Idealmente em HTML
Meu objetivo final é exibir texto em minúsculas em um navegador. Eu sei que algumas fontes (por exemplo, Geórgia) já exibem todos os seus dígitos em minúsculas:
Mas não estou perguntando como mudar para o uso da Geórgia ; Estou perguntando como construir figuras de revestimento a partir de figuras não-revestimento.
E como isso é para exibição na Web, eu percebo que provavelmente acabaria tendo que aplicar a formatação por caractere:
<!doctype html">
<html>
<head>
<style type="text/css">
body {
font-family: "Segoe UI", "Calibri", sans-serif;
font-size: larger;
}
.xheight {
font-size: 1.5ex;
}
.descender {
position: relative;
bottom: -0.4ex;
}
</style>
</head>
<body>
<p>In the year <span class="xheight">21</span><span class="descender">5</span><span>6</span> the Romulan war...
</body>
</html>
Renderizando como:
O que, novamente, não parece tão agradável quanto eu acho que deveria.
Ei, olha, um centavo!
fonte
A
(U+0041
), minúsculasa
(U+0061
), e até mesmo cᴀᴘɪᴛᴀʟ sᴍᴀʟʟᴀ
(U+1D00
)? Ou seja, qual pode ser o raciocínio que exclui dígitos maiúsculos e minúsculos separados, mas inclui letras maiúsculas e minúsculas separadas?A maneira correta de renderizar dígitos / números em minúsculas ou "figuras à moda antiga" é usar CSS para selecionar um recurso de fonte adequado. Obviamente, a fonte usada deve suportar esse recurso de fonte em primeiro lugar. O suporte do mundo real com as fachadas da web não parece ser muito forte.
A configuração CSS que você está procurando é
e a documentação:
A documentação dos recursos do OpenType,
onum
em particular, pode ser encontrada no registro de tags OpenType Layout da Microsoft .Documentação alternativa sobre recursos de fonte está disponível no artigo Como codificar recursos OpenType em CSS .
Oficialmente, você deveria usar
mas o suporte a isso parece ser ainda mais fraco, de acordo com a referência de compatibilidade do navegador da Mozilla .
Em teoria, isso é melhor porque não se refere diretamente aos recursos do OpenType, portanto, também deve funcionar com fontes que não sejam do OpenType. Da mesma maneira que você deve usar:
para ativar letras minúsculas . Você não usar a colocação como recurso OpenType
para alcançar esse efeito porque a
font-variant
propriedade já está bem suportada.fonte
font-variant: small-caps;
porque isso cria letras maiúsculas FAKE . Sempre use o outro e sempre use fontes OpenType. Simples e resolvido.acceptable
se osmall-caps
recurso está falsificado. Isso não é um requisito e o agente do usuário de alta qualidade faria a coisa certa (mapeie-o para o recurso OpenType). Concordo que, se você preferir não mudar, em vez de letras maiúsculas falsificadas, você deve usá-lofont-feature-settings
. Normalmente, as letras minúsculas falsas são melhores do que não surtir efeito algum.