Estou usando o fontspec
pacote com LuaLaTeX
. Estou curioso para saber se existe uma maneira de definir automaticamente números em versalete por padrão, semelhante a como você pode definir números em OldStyle/Lowercase por padrão por meio das fontspec
opções do pacote Numbers=OldStyle
ouNumbers=Lowercase
Nota: Nem todas as fontes suportam números em versalete. Eu uso uma fonte gratuita em meu MWE que suporta números maiúsculos.
Minha motivação para fazer essa pergunta é que atualmente estou testando se a composição de números em versalete é mais fácil ou mais agradável de ler do que os habituais números maiúsculos e monoespaçados. Ter uma maneira mais fácil de gerar números em versalete seria maravilhoso.
\documentclass{article}
\newcommand{\alphabet}{abcdefghijklmnopqrstuvwxyz}
\newcommand{\digits}{0123456789}
\usepackage{fontspec}
\setmainfont{Source Serif Pro}%Available for free on Google Fonts.
[
%Numbers=OldStyle%
%Numbers=Lowercase%
]
\begin{document}
\textbf{Regular letters and digits:}
\par
\alphabet\quad\digits
\par
\textbf{Small caps letters and digits:}
\par
\textsc{\alphabet\quad\digits}
\par
\textbf{Regular letters and Oldstyle digits:}
\par
\alphabet\quad\oldstylenums{\digits}
\end{document}
EDIT 1: adicionei uma foto exibindo números com versalete.
EDIT 2: Estou procurando uma solução, se possível, que faça com que os números sejam exibidos em letras maiúsculaspor padrãosem ter que usar \textsc
ou qualquer outra macro no texto. Portanto, \textsc{1234}
e 1234
deve parecer idêntico. Se isso não for possível, é claro, posso sempre recorrer à criação de uma macro em texto.
Responder1
Então, o que você procura são dígitos que correspondam ao tamanho de letras maiúsculas (que não têm realmente um nome, que eu saiba, já que o termo "versalete" geralmente é usado apenas para letras), mas você deseja que eles sejam impressos neste estilo independentemente do estilo envolvente do texto.
Você pode selecionar recursos OpenType específicos usando fontspec
a opção RawFeature=+xxxx
onde xxxx
está a abreviatura do recurso OpenType relevante. Portanto, você pode optar RawFeature=+smcp
por ativar letras maiúsculas em geral. Infelizmente, o Source Sans Pro não contém um recurso que permite selecionar apenas esses pequenos números sem afetar outras letras e, por outro lado, parece que não é diretamente possível selecionar esses recursos apenas para números usando fontspec
.
No entanto, você pode usar fonts.handlers.otf.addfeature
e aprimorar a fonte com seu próprio recurso OpenType personalizado, que pode ser usado com arquivos fontspec
. No exemplo a seguir, criei o recurso xnum
que substitui os glifos de dígitos pelas variantes em versalete (no entanto, você precisaria procurar os nomes dos glifos relevantes na fonte):
\documentclass{article}
\usepackage{fontspec}
\directlua{
fonts.handlers.otf.addfeature {
name = "xnum",
type = "substitution",
data = {
["zero"] = "zero.sc",
["one"] = "one.sc",
["two"] = "two.sc",
["three"] = "three.sc",
["four"] = "four.sc",
["five"] = "five.sc",
["six"] = "six.sc",
["seven"] = "seven.sc",
["eight"] = "eight.sc",
["nine"] = "nine.sc",
},
}
}
\setmainfont[RawFeature=+xnum]{Source Serif Pro}
\newcommand{\alphabet}{abcdefghijklmnopqrstuvwxyz}
\newcommand{\digits}{0123456789}
\begin{document}
\textbf{Regular letters and digits:}
\par
\alphabet\quad\digits
\end{document}
Outra forma seria criar um combofont
usando o pacote com o mesmo nome (que é baseado nos mecanismos fornecidos pelo luaotfload
pacote). É importante observar que adicionar recursos como smcp
a segunda fonte só funciona com a configuração mode=base
.
\documentclass{article}
\usepackage{combofont}
\setupcombofont{sourceserifpro-regular}{
{name:Source Serif Pro-Regular:mode=base;language=DFLT;+tlig} at #1pt,
{name:Source Serif Pro-Regular:mode=base;language=DFLT;+tlig;+smcp} at #1pt
}{
{} ,
0x30-0x39
}
\setupcombofont{sourceserifpro-bold}{
{name:Source Serif Pro-Bold:mode=base;language=DFLT;+tlig} at #1pt,
{name:Source Serif Pro-Bold:mode=base;language=DFLT;+tlig;+smcp} at #1pt
}{
{} ,
0x30-0x39
}
\DeclareFontFamily{TU}{sourceserifpro-combo}{}
\DeclareFontShape {TU}{sourceserifpro-combo}{m}{n} {<->combo*sourceserifpro-regular}{}
\DeclareFontShape {TU}{sourceserifpro-combo}{bx}{n}{<->combo*sourceserifpro-bold}{}
\newcommand{\alphabet}{abcdefghijklmnopqrstuvwxyz}
\newcommand{\digits}{0123456789}
\begin{document}
\fontfamily{sourceserifpro-combo}\selectfont
\textbf{Regular letters and digits:}
\par
\alphabet\quad\digits
\end{document}
A saída é a mesma acima.