Estoy usando el fontspec
paquete con LuaLaTeX
. Tengo curiosidad por saber si hay una manera de configurar automáticamente los números en minúsculas de forma predeterminada, similar a cómo se pueden configurar los números en estilo antiguo/minúsculas de forma predeterminada a través de las fontspec
opciones del paquete Numbers=OldStyle
oNumbers=Lowercase
Nota: No todas las fuentes admiten números en versales. Utilizo una fuente gratuita en mi MWE que admite números en minúsculas.
Mi motivación para hacer esta pregunta es que actualmente estoy probando si escribir números en versalitas es más fácil o mejor de leer que los habituales números en mayúsculas y monoespaciados. Sería maravilloso tener una forma más sencilla de generar números en versalitas.
\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}
EDITAR 1: agregué una foto que muestra números con versalitas.
EDITAR 2: Estoy buscando una solución, si es posible, que haga que los números se muestren en minúsculaspor defectosin tener que usar \textsc
ni ninguna otra macro en el texto. Por lo tanto, \textsc{1234}
y 1234
debería verse idéntico. Si esto no es posible, por supuesto, siempre puedo recurrir a crear una macro en el texto.
Respuesta1
Entonces, lo que busca son dígitos que coincidan con el tamaño de las versitas (que, que yo sepa, no tienen realmente un nombre, ya que el término "versalitas" generalmente solo se usa para letras), pero desea que se impriman en este estilo independientemente. del estilo circundante del texto.
Puede seleccionar funciones OpenType específicas mediante fontspec
la opción RawFeature=+xxxx
donde xxxx
está la abreviatura de la función OpenType relevante. Por lo tanto, puede optar RawFeature=+smcp
por habilitar las versalitas en general. Lamentablemente, Source Sans Pro no contiene una función que le permita seleccionar solo estos números pequeños sin afectar otras letras y, por otro lado, parece que no es directamente posible seleccionar dichas funciones solo para números usando fontspec
.
Sin embargo, puede usar fonts.handlers.otf.addfeature
y mejorar la fuente con su propia función OpenType personalizada que luego puede usar con fontspec
. En el siguiente ejemplo, creé la función xnum
que reemplaza los glifos de dígitos con las variantes en versalitas (aunque necesitarías buscar los nombres de los glifos relevantes en la fuente):
\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}
Otra forma sería crear combofont
usando el paquete con el mismo nombre (que se basa en los mecanismos proporcionados por el luaotfload
paquete). Es importante tener en cuenta que agregar características como smcp
la segunda fuente solo funciona con la configuración 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}
El resultado es el mismo que el anterior.