私はfontspec
パッケージを使用しています。パッケージオプションまたはLuaLaTeX
で数字をデフォルトでOldStyle/Lowercaseに設定するのと同様に、数字をデフォルトで小文字で自動的に設定する方法があるかどうか知りたいです。fontspec
Numbers=OldStyle
Numbers=Lowercase
注: すべてのフォントが小文字大文字の数字をサポートしているわけではありません。私は MWE で小文字大文字の数字をサポートする無料フォントを使用しています。
この質問をする動機は、現在、数字を小文字でタイプセットすると、通常の大文字の等幅数字よりも読みやすく、見やすいかどうかをテストしているからです。数字を小文字で出力するためのより簡単な方法があれば素晴らしいと思います。
\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}
編集2:可能であれば、数字を小文字で表示する解決策を探しています。デフォルトで\textsc
または他のテキスト内マクロを使用する必要はありません。したがって、\textsc{1234}
とは1234
同じに見えるはずです。もちろん、これが不可能な場合は、いつでもテキスト内マクロを作成することができます。
答え1
つまり、必要なのは、サイズがスモールキャップスに一致する数字 (私の知る限り、スモールキャップスという用語は通常文字にのみ使用されるため、実際には名前はありません) ですが、テキストの周囲のスタイルに関係なく、このスタイルで印刷する必要があります。
fontspec
オプション (は関連する OpenType 機能の略語)を使用して、特定の OpenType 機能を選択できます。したがって、全般的にスモール キャップスを有効にするように選択できますRawFeature=+xxxx
。残念ながら、Source Sans Pro には、他の文字に影響を与えずにこれらの小さな数字だけを選択できる機能は含まれていません。また、 を使用して数字に対してのみこのような機能を直接選択することはできないようです。xxxx
RawFeature=+smcp
fontspec
ただし、fonts.handlers.otf.addfeature
独自のカスタム OpenType 機能を使用してフォントを使用および拡張し、 で使用することもできますfontspec
。次の例では、数字のグリフをスモールキャップスのバリエーションに置き換える機能を作成しましたxnum
(ただし、フォント内の関連するグリフ名を検索する必要があります)。
\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}
combofont
もう 1 つの方法は、同じ名前のパッケージを使用してを作成することです(これは、パッケージによって提供されるメカニズムに基づいています)。 などの機能を2 番目のフォントに追加できるのは、 の設定のみであることにluaotfload
注意してください。smcp
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}
出力は上記と同じです。