기본적으로 작은 대문자로 숫자 설정

기본적으로 작은 대문자로 숫자 설정

fontspec와 함께 패키지를 사용하고 있습니다 LuaLaTeX. fontspec패키지 옵션을 통해 기본적으로 OldStyle/소문자로 숫자를 설정하는 방법 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}

편집 1: 작은 대문자로 숫자를 표시하는 사진을 추가했습니다. 여기에 이미지 설명을 입력하세요

편집 2: 가능하다면 숫자를 작은 대문자로 표시하는 솔루션을 찾고 있습니다.기본적으로\textsc또는 다른 텍스트 내 매크로를 사용하지 않고도 가능합니다 . 따라서 \textsc{1234}및 는 1234동일하게 보일 것입니다. 물론 이것이 가능하지 않다면 언제든지 텍스트 내 매크로를 만드는 것으로 대체할 수 있습니다.

답변1

따라서 당신이 찾고 있는 것은 크기가 작은 대문자와 일치하는 숫자입니다("작은 대문자"라는 용어는 일반적으로 문자에만 사용되기 때문에 실제로 이름이 없습니다). 하지만 관계없이 이 스타일로 인쇄하기를 원합니다. 텍스트의 주변 스타일.

해당 OpenType 기능의 약어인 옵션 fontspec을 통해 특정 OpenType 기능을 선택할 수 있습니다 . 따라서 일반적으로 작은 대문자를 활성화하도록 선택할 수 있습니다. 아쉽게도 Source Sans Pro에는 다른 문자에 영향을 주지 않고 이 작은 숫자만 선택할 수 있는 기능이 없고, 반면에 를 사용하여 숫자에만 이러한 기능을 직접 선택할 수는 없는 것 같습니다 .RawFeature=+xxxxxxxxRawFeature=+smcpfontspec

그러나 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또 다른 방법은 동일한 이름의 패키지를 사용하여 생성하는 것입니다 ( 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}

출력은 위와 동일합니다.

관련 정보