Zahlen standardmäßig in Kapitälchen setzen

Zahlen standardmäßig in Kapitälchen setzen

Ich verwende das fontspecPaket mit LuaLaTeX. Ich bin neugierig, ob es eine Möglichkeit gibt, Zahlen standardmäßig automatisch in Kapitälchen zu setzen, ähnlich wie Sie Zahlen standardmäßig in OldStyle/Kleinbuchstaben über die fontspecPaketoptionen setzen können Numbers=OldStyleoderNumbers=Lowercase

Hinweis: Nicht alle Schriftarten unterstützen Zahlen in Kapitälchen. Ich verwende in meinem MWE eine kostenlose Schriftart, die Zahlen in Kapitälchen unterstützt.

Der Grund für diese Frage ist, dass ich derzeit teste, ob es einfacher oder angenehmer ist, Zahlen in Kapitälchen zu setzen, als die üblichen Großbuchstaben mit fester Schreibbreite. Es wäre wunderbar, wenn es eine einfachere Möglichkeit gäbe, Zahlen in Kapitälchen auszugeben.

\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}

BEARBEITEN 1: Ich habe ein Foto hinzugefügt, das Zahlen in Kapitälchen anzeigt. Bildbeschreibung hier eingeben

EDIT 2: Ich suche nach einer Lösung, bei der Zahlen möglichst als Kapitälchen angezeigt werdenstandardmäßig\textscohne dass ich ein anderes Textmakro verwenden muss . Daher sollten \textsc{1234}und 1234identisch aussehen. Wenn dies nicht möglich ist, kann ich natürlich immer auf ein Textmakro zurückgreifen.

Antwort1

Sie suchen also nach Ziffern, die von der Größe her Kapitälchen entsprechen (die meines Wissens keinen richtigen Namen haben, da der Begriff „Kapitälchen“ normalerweise nur für Buchstaben verwendet wird), die aber unabhängig von der umgebenden Schreibweise des Textes in diesem Stil gedruckt werden sollen.

Sie können bestimmte OpenType-Funktionen über fontspecdie Option auswählen RawFeature=+xxxx, wobei xxxxdie Abkürzung der entsprechenden OpenType-Funktion ist. Sie könnten also auswählen, RawFeature=+smcpKapitälchen generell zu aktivieren. Leider enthält Source Sans Pro keine Funktion, mit der Sie nur diese kleinen Zahlen auswählen können, ohne andere Buchstaben zu beeinflussen, und andererseits scheint es nicht direkt möglich zu sein, solche Funktionen nur für Zahlen auszuwählen, indem Sie verwenden fontspec.

Sie können die Schriftart jedoch fonts.handlers.otf.addfeaturemit Ihrer eigenen benutzerdefinierten OpenType-Funktion erweitern, die Sie dann mit verwenden können fontspec. Im folgenden Beispiel habe ich die Funktion erstellt xnum, die die Ziffernglyphen durch die Kapitälchenvarianten ersetzt (Sie müssen jedoch die entsprechenden Glyphennamen in der Schriftart nachschlagen):

\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}

Bildbeschreibung hier eingeben


Eine andere Möglichkeit wäre, ein combofontusing-Paket mit gleichem Namen zu erstellen (das auf den Mechanismen basiert, die das luaotfloadPaket bereitstellt). Wichtig zu beachten ist, dass das Hinzufügen von Features wie z. B. smcpzur zweiten Schriftart nur mit der Einstellung funktioniert 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}

Die Ausgabe ist die gleiche wie oben.

verwandte Informationen