Establecer números en versales de forma predeterminada

Establecer números en versales de forma predeterminada

Estoy usando el fontspecpaquete 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 fontspecopciones del paquete Numbers=OldStyleoNumbers=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. ingrese la descripción de la imagen aquí

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 \textscni ninguna otra macro en el texto. Por lo tanto, \textsc{1234}y 1234deberí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 fontspecla opción RawFeature=+xxxxdonde xxxxestá la abreviatura de la función OpenType relevante. Por lo tanto, puede optar RawFeature=+smcppor 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.addfeaturey mejorar la fuente con su propia función OpenType personalizada que luego puede usar con fontspec. En el siguiente ejemplo, creé la función xnumque 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}

ingrese la descripción de la imagen aquí


Otra forma sería crear combofontusando el paquete con el mismo nombre (que se basa en los mecanismos proporcionados por el luaotfloadpaquete). Es importante tener en cuenta que agregar características como smcpla 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.

información relacionada